Note: this is pretty slow. Before merging this branch, should cache the fact
that replset has been initiated on port N so that on the next run, if the port
hasn't changed, we don't need to re-initiate.
These directories are often left around when switching from another
branch; git does not delete the gitignored .build directory (but it will
show up annoyingly in 'git status').
The dev bundle contains a copy of the handlebars NPM module solely for
creating app.html. This is separate from the NPM module used by the
handlebars NPM package.
On the shark branch, we no longer use the handlebars NPM module for
Meteor template (it is being replaced by Spacebars), so in preparation
for that, we'll remove this barely-used build-time dependency on
handlebars.
A subsequent commit will remove it from the dev bundle.
Once the Spacebars API has fully settled (eg, it has been merged to
devel), we should get rid of this ad hoc templating and replace it with
Spacebars, either in webapp_server (driven entirely by program.json) or
by using unipackage.load in bundler.
This was a regression in 0.6.6 when we upgraded to a new unreleased
version of http-proxy which now requires an explicit option to set them.
See #1624.
Followup to 72d3e08067. Without this, the hash wouldn't change and the client
wouldn't reload if a file was renamed in a way that didn't change the order
of files (eg, preserving its name in alphabetical order).
This didn't used to be a problem, as the hash computation was only used in
appcached, which included the file path already and would change if the
file was renamed.
Remove the unused `serverRequestedVersion` argument to
`onDDPVersionNegotiationFailure`.
And let's call the remaining argument `description` instead of `error`
since it isn't an Error object.
be a strong dependency of appcache.
Delaying publishing the current client version document until the auto
update version is available isn't necessary because the publish
callback won't be called before webapp starts listening, and that
happens after startup.
In the app cache manifest include both the client hash and the
AUTOUPDATE_VERSION, which both allows the browser to load new
client code even when the auto update version is explicitly set by the
developer, and also ensures that if the developer changes the auto
update version this is propagated to the client in the app HTML so
that autoupdate doesn't get into an infinite loop of reloads.
so that developers still get hot code pushes when writing tests.
Fix livedata tests.
Add a sanity check to deciding when to reload: only reload if there is
an available client version marked "current". (Otherwise if the
server fails to publish any valid client versions, perhaps as a bug in
a forked autopublish package, the client will go into an infinite loop
of reloads).
Update QA notes.
on the default connection, on the assumption that new
client code will be able to negotiate successfully.
Uses an exponential backoff if after reload the DDP version
negotiation fails again.