getHostArch() in dev-bundle.js always returned "os.osx.x86_64" on
macOS, regardless of the actual architecture. On Apple Silicon machines,
the meteor-tool is installed under mt-os.osx.arm64, so the dev_bundle
directory lookup failed and the fast path for `meteor node` / `meteor
npm` was never used.
Check process.arch to return the correct architecture string on
Apple Silicon Macs.
After switching git branches, .meteor/release changes but
.meteor/local/dev_bundle (which is gitignored) keeps pointing to the
previous release's dev_bundle. This causes `meteor node` to use the
wrong Node.js version until another command like `meteor --version`
triggers a full springboard and refreshes the symlink.
Store the release string in .meteor/local/dev_bundle_release alongside
the dev_bundle symlink. Before trusting the cached symlink, verify it
still matches the current .meteor/release content.
* commit logs
* use the correct tools dir when using meteor warehouse dir env var
* remove logs
* remove logs
* run bin commands after springboarding
* revert change
* revert change
* fix npm command for checkout
* avoid to use unexisting tools path within a sandbox that describe a warehouse
---------
Co-authored-by: Nacho Codoñer <igcogi@gmail.com>
This commit reverts much of the work @hwillson had put in place for
meteor/meteor#9173, which made it possible for 32-bit and 64-bit
Mongo versions to exist in harmony within the same dev-bundle. That
hard work was not in vein though as it offered invaluable research.
Ultimately, this showed that a more aggressive approach would be ideal,
even if the proposed option would have worked great in the short-term.
In the wake of the news that Mongo would no longer be supporting 32-bit
versions, these changes are important so 32-bit users of Meteor can
continue to have a functioning Mongo binary in development, while still
allowing Meteor to ship newer Mongo (e.g. 3.4+) binaries for 64-bit
users. This is particularly relevant for Windows users, who have
previously only had 32-bit Meteor builds and represented a majority of
"32-bit" development, despite the fact most of their hosts supported
64-bit. During another time in Meteor's life, this made sense.
This commit takes improved functionality to the next level (and makes
the aforementioned changes obsolete) by introducing support for building
and shipping Meteor for Windows in a 64-bit flavor (in addition to
32-bit), which will hopefully solve a number of performance matters on
Windows by using binaries which are pre-compiled for 64-bit, rather than
forcing the Windows kernel to deal with 32-bit binaries. While Windows
has shown it's quite capable of dealing with such a situation, it seems
more and more clear (given improvements in underlying dependencies) that
performance gains could be had by freeing Windows of its 32-bit work.
This commit also further perpetuates the "archinfo" plot-line with more
story (about Windows) and various spelling corrections.
I'm deliberately leaving in the code to ensure .meteor/.gitignore contains
dev_bundle for now, so that the old file won't get accidentally checked
into anyone's app repository.
This wouldn't work if .meteor/dev_bundle needed to be a true symbolic
link, but fortunately we just need to record the target path in a way that
allows us to read it later.
Fixes#7374.