Commit Graph

20024 Commits

Author SHA1 Message Date
Ben Newman
2777f5f6f7 Bump package versions for 1.6-rc.11 release. release/METEOR@1.6-rc.11 2017-10-16 10:00:45 -04:00
Ben Newman
b99f2be040 Reuse VALID_ARCHITECTURES for great DRY-ness. 2017-10-16 10:00:45 -04:00
Ben Newman
dad50b277e Merge pull request #9234 from meteor/windows-springboarding-subtleties
[WIP] Automatically switch between 64- and 32-bit Windows builds.
2017-10-16 08:40:46 -04:00
Ben Newman
bbd3b9ffca Tolerate springboarding to the same meteor-tool build directory.
Though this seems wasteful, it can happen if a SpringboardToLatestRelease
exception is thrown, and it definitely should spawn a new process rather
than returning normally from the springboard function.
2017-10-15 20:10:21 -04:00
Ben Newman
5a9e837937 Upgrade to 64-bit when possible on Windows.
Since we can't change the springboarding logic of existing Meteor
releases, this decision has to be made by the springboarded-to Meteor 1.6
release, and may result in a second springboarding.
2017-10-15 19:36:37 -04:00
Ben Newman
e9db660d03 Allow 64-bit Windows builds of meteor-tool to download 32-bit builds.
Once Windows developers update to a 64-bit version of Meteor 1.6, they may
still wish to run apps using older versions of Meteor where only 32-bit
builds of meteor-tool are available. This commit makes that possible.
2017-10-15 19:32:18 -04:00
Ben Newman
c476188cc6 Bump package versions for 1.6-rc.10 release. release/METEOR@1.6-rc.10 2017-10-14 15:00:41 -04:00
Ben Newman
842fc389b7 Bump $BUNDLE_VERSION to 8.7.2 before rebuilding dev bundle. 2017-10-14 14:23:05 -04:00
Ben Newman
0de61e3bf5 Add dev_bundle\bin to $env.PATH when generating Windows dev bundle. 2017-10-14 14:23:00 -04:00
Ben Newman
0cb2b4199f Merge pull request #9218 from meteor/abernix/enable-windows-64-builds
Windows 64-bit builds.
2017-10-14 13:39:44 -04:00
Ben Newman
d2a07edc49 Reword and reorganize History.md entry about 64-bit Windows. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
2574388ff0 Remove unnecessary line-continuation backticks. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
00bc5e6201 Address PR feedback from @benjamn on #9218. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
0dd116bd09 Update History.md for 64-bit Windows platform support. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
66b3ecfa85 Cleanup and comment dev-bundle-lib.psm1. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
9b989e2ee2 Remove Add-ToExistingPath.
The Generate Dev Bundle process no longer requires any modifications
to the $PATH, preventing environmental artifacts which pile up when
running the script over and over again.
2017-10-14 13:37:20 -04:00
Jesse Rosenberger
5f29b9d2a9 Update number of expected tarballs on S3. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
4ca9362fb4 Avoid ConvertFrom-Json Cmd-let, unsupported in PowerShell 4.
I thought it was nifty to use this Cmd-let from PowerShell, to directly
parse the JSON output from Node's `process.release`, but as it turns
out, that wasn't supported by the version of PowerShell on our Jenkins
server.  Alas!
2017-10-14 13:37:20 -04:00
Jesse Rosenberger
9f1ce8dd0d Bump $BUNDLE_VERSION to 9999.9173.2 for pull-request dev bundle testing. 2017-10-14 13:37:20 -04:00
Jesse Rosenberger
c81c2fb2b8 Re-work Windows "Generate Dev Bundle" process.
This is a re-write of the generate-dev-bundle.ps1 script, which occurred
during debugging of an unrelated concern of the (new) 64-bit Windows
build on our Jenkins server.  Ultimately, I'm afraid this script doesn't
solve the problem I originally set out to fix, which was a Windows
long-file path concern.

The hunch behind that thinking was that the use of npm@1 to install
npm@5 could be causing problems, since npm@1 had no concept of nested
node_modules directories.  We had used npm@1 because Node.js
for Windows hasn't always offered (via nodejs.org/dist/) versions
including npm which we could use to install our own requirements.
Happily, that is no longer the case!

While this script now deals with long paths much more gracefully itself,
I'm not sure it completely quelled the long-path issue, and there are
still some directory trees which are longer than I think they should be.

The warnings I was seeing may not have harmed the actual bundle and were
more problematic for this build script itself when it tried to deal with
the aftermath of all those files, since native Windows commands struggle
to deal with long file paths (when cleaning up, etc.).

In the end, this script does have performance enhancements though! For
starters, it's nearly twice as fast at finishing.  Most of this was
gained by avoiding back-and-forth moving of large file structures,
opting instead to directly install into the targets when possible.

It also ensures that the npm build cache is not bundled, which started
occurring since our modification of the $HOME and $USERPROFILE variables
led npm@5 to think the npm cache was in the root of the bundle.

Additionally, it no longer modifies the $PATH, in any way, during the
build. This became particularly helpful during testing when I found that
PowerShell maintained that $PATH in the environment of the host shell.

I'd like to say it increases readability of the script, which had
become a bit of a patchwork quilt, but that's YTBD and YMMV.

This is my first "complete" PowerShell script myself so it probably
still leaves some things to desired, formatting wise.  Functionality-
wise, I hope it's improved.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
a890b22238 On Windows, point node-gyp to dev_bundle/include/node headers.
In the same spirit as 67b76abc78 on Unix.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
54669f0f0b Use Mongo 3.2.15 for 64-bit, for now.
The Windows 64-bit support is believed to be important enough to be
included in  Meteor 1.6 since it fixes Meteor 1.6 issues on Windows.

While the original reason for 64-bit may have been Mongo, we'll leave
this as the 3.2.15 (but 64-bit!) version for now.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
6238be978e Use the latest, platform-specific, Python 2.x for Windows: 2.4.14. 2017-10-14 13:36:29 -04:00
Jesse Rosenberger
0dac129770 Introduce os.windows.x86_64 architecture for 64-bit Windows.
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.
2017-10-14 13:36:29 -04:00
Jesse Rosenberger
2d87ac6f37 Fail the Windows dev bundle build when an error occurs.
If any part of the dev bundle generation fails, the script should stop.

I was encountering a barely-noticed failure in the Python extraction
when the download tarball was 404-ing (due to my own fault), but the
script proceeded as if the failure hadn't happened, resulting in a
broken dev bundle.
2017-10-14 13:36:29 -04:00
Hugh Willson
d828535811 Add PR reference to History.md 2017-10-14 13:36:29 -04:00
Hugh Willson
9a1f91843e Add Tool support for both 32 bit (3.2) and 64 bit (3.4) Mongo
These changes introduce dual Mongo support into the Meteor
Tool. 32-bit Mongo (3.2.15) will be used by Meteor when the
Tool is run on a 32-bit OS (32-bit Linux and Windows). 64-bit
Mongo (3.4.9) will be used when the Tool is run on a 64-bit
OS (64-bit Linux, Windows and macOS).

Fixes https://github.com/meteor/meteor-feature-requests/issues/129.
2017-10-14 13:36:29 -04:00
Ben Newman
5d7058dc17 Bump package versions for 1.6-rc.9 release. release/METEOR@1.6-rc.9 2017-10-13 13:54:47 -04:00
Ben Newman
b6d955ba11 Bump $BUNDLE_VERSION to 8.7.1 before rebuilding dev bundle. 2017-10-13 13:39:34 -04:00
Ben Newman
fffc9931fb Merge branch 'devel' into release-1.6 2017-10-13 13:31:48 -04:00
Jesse Rosenberger
ce27323caf logging: Guard against log color being undefined.
The 'info' log facility uses the default color, which is not present in
`LEVEL_COLORS`, thus `undefined` and unable to be `slice`d.

(As reported by @brucejo75).

Refs: https://github.com/meteor/meteor/pull/8728#issuecomment-336324674
Refs: meteor/meteor#9170
2017-10-13 14:12:17 +03:00
Ben Newman
621504efaf Merge branch 'devel' into release-1.6 2017-10-12 20:31:50 -04:00
Ben Newman
525cbc33b3 Fix Mongo authentication errors by upgrading mongodb[-core].
Fixes #9219.
2017-10-12 20:24:05 -04:00
Jesse Rosenberger
0454f23c8c Remove duplicate Node headers in Unix dev bundle.
This was accomplished in 67b76abc78 by
@benjamn, but a merge commit from devel to release-1.6 inadvertently
removed half of it.  Prior to this commit, the new headers have been
used, but the old headers were still in place and taking up room.
2017-10-13 01:43:37 +03:00
Ben Newman
cdeaf2cc61 Merge branch 'devel' into release-1.6 2017-10-12 18:28:50 -04:00
Ben Newman
8b65b6e86f Revert to source-map@0.5.7 in coffeescript-compiler to fix #9217. 2017-10-12 18:24:15 -04:00
Ben Newman
fdaa0f5145 Bump package versions for 1.6-rc.8 release. release/METEOR@1.6-rc.8 2017-10-12 17:42:21 -04:00
Ben Newman
f011bf2acc Don't add //#sourceURL comment to dynamic modules.
Dynamic modules get a dynamic //#sourceURL when they are evaluated:
948d9628f8/packages/dynamic-import/client.js (L103)
2017-10-12 17:42:21 -04:00
Ben Newman
948d9628f8 Add //#sourceURL comments to assist with source mapping on Windows.
Fixes #9166 (👋 @brucejo75).
2017-10-12 17:28:17 -04:00
Ben Newman
abd91ac7c5 Use files.rm_recursive_async to implement meteor reset.
This should hopefully prevent ENOTEMPTY errors on Windows.
2017-10-12 16:46:10 -04:00
Ben Newman
5154835c73 Allow asynchronous meteor command implementations. 2017-10-12 16:45:04 -04:00
Ben Newman
979ac73df1 Merge branch 'devel' into release-1.6 2017-10-12 14:17:26 -04:00
Ben Newman
01e4c9cfd8 Update to official versions of mongodb[-core] with @glasser's fixes.
Previously:
https://github.com/meteor/meteor/pull/9200
https://github.com/meteor/meteor/issues/8598
2017-10-12 14:13:07 -04:00
Ben Newman
2692f99f7a Merge branch 'devel' into release-1.6 2017-10-12 13:49:27 -04:00
Ben Newman
2dcc10c2cc Avoid matching exact language falsy destructuring error. 2017-10-12 12:44:41 -04:00
Ben Newman
3b93934217 Bump package versions for 1.6-rc.7 release. release/METEOR@1.6-rc.7 2017-10-12 11:23:36 -04:00
Ben Newman
074f09d829 Bump $BUNDLE_VERSION to 8.7.0 before rebuilding dev bundle. 2017-10-12 10:47:39 -04:00
Ben Newman
eebc70b1e0 Upgrade Node to version 8.7.0.
https://nodejs.org/en/blog/release/v8.7.0/
2017-10-12 10:47:37 -04:00
Geoffrey Booth
b2ec292fd2 Update another test to reflect new extension for imported CoffeeScript files 2017-10-12 10:26:05 -04:00
Geoffrey Booth
9447caf684 Update test to reflect new extension for imported CoffeeScript files 2017-10-12 10:26:05 -04:00