There were two issues:
1. The meteor.bat file we used to simulate symlinks in Windows didn't
correctly deal with absolute paths
2. The way we overrided DEFAULT_TRACK in Windows led to some other piece
of code not doing the right thing, presumably because it compared
a track to DEFAULT_TRACK which wasn't overridden in Windows.
This will be useful when we want to be smart with windows file paths later
Also, all of the file calls are asynchronous with fibers now, which comes with
many benefits.
This is a combination of 23 commits. Original messages:
Wrap a large number of fs calls inside files.*
Convert a few more fs calls to files.*
More moving fs.* to files
Implement read/write streams and open/read/close
Get rid of fs from auth.js
Remove fs and unused imports from catalog-local and catalog-remote
Remove unused imports from catalog.js
Replace a whole lot of fs calls
Fix error
Migrate a lot more fs. calls to files.
Add a temporary symlink method
Convert old test to files.*
Use files.pathX instead of path.x everywhere
Replace path.x to files.pathX in tests
Small fixes to files.js and one rename
Make cleanup run in a fiber
Make wrapping functions take function name in case we need it
Add some timeouts and stuff to HCP tests
wrapFsFunc also makes a sync version of the function
Sometimes you just don't want to yield!
Make sure JsImage readFromDisk doesn't yield
Remove unused imports from npm test
Change order of test now that some things don't yield
Fix missing files import, and add a debug error printout
Generally reorganize some silent/quiet/background flags to be more
explicit about what is being show/hidden.
The main point here is that the 'background updater' wants to show
banners but ignore errors, whereas --get-ready wants to show errors but
not banners.
Change the downloader to no longer expect packages to contain package.js.
This actually requires us (already!) to bump BUILD_VERSION, since I've already
published packages without the package.js!
(the non-springboarding piece of that is now controlled by
METEOR_TEST_NO_SPRINGBOARD)
This means that run-all-tests.sh can use launch-meteor to bootstrap a warehouse
instead of starting with an empty warehouse directory (which is no longer
allowed).
also, fix npm module usage out of the bootstrap tarball: we were too liberal in
the "never update npm dependencies in the warehouse" rule since the bootstrap
tarball would contain packages with no node_modules (or if we had a failure
between downloading a package and running installNpmDependencies). instead,
"never update npm dependencies in the warehouse if .npm/node_modules already
exists".
Blessing is now the time that bootstrap tarballs are created.
There's a banner that goes into the global manifest (stored in
scripts/admin/banner.txt).
The global manifest.json is now entirely generated: there's no record of the
current version stored in git.
Have not yet updated launch-meteor or install-template.sh or the fake release
for this brave new bootstrap world, or https://install-bootstrap.meteor.com/.