Files
meteor/packages
Ben Newman fe9e4035f9 Rewrite autoupdate to distinguish versions by client architecture.
Now that we're postponing the legacy build until after the first client
refresh message is sent, there's a risk that changes to the legacy build
will not be picked up until after the next rebuild.

If we attempted to fix that problem by sending the refresh message after
the legacy bundle is rebuilt, then we would lose most of the benefit of
delaying the legacy build, because the client would not refresh until
after the legacy build completed.

The right way to fix the problem is by sending a second client refresh
message after the legacy build finishes, but doing so with the current
autoupdate implementation would very likely cause modern clients to reload
a second time.

The solution implemented by this commit is simple in theory: the
autoupdate package should keep track of distinct versions for each client
architecture, so that modern clients will refresh only when the modern
versions change, and legacy clients will refresh only when the legacy
versions change, which allows us to send two refresh messages without
causing any clients to refresh more than once.

In reality, this was a fairly major rewrite, since the ClientVersions
collection has a totally different schema now. I've tested it as well as I
can, though I'm not entirely sure what will happen if clients using the
previous version of the autoupdate package begin receiving DDP messages
from this version of the autoupdate server code.
2018-07-06 19:58:57 -04:00
..
2018-02-08 10:24:02 -05:00
2018-03-07 11:36:48 -05:00
2016-08-30 15:40:14 -07:00
2018-06-28 18:52:58 -04:00
2018-05-28 14:06:53 -04:00
2018-03-07 11:33:29 -05:00
2018-02-08 10:43:06 -05:00
2017-11-24 11:34:56 -05:00
2018-02-21 21:06:20 +01:00