Commit Graph

6722 Commits

Author SHA1 Message Date
Jesse Rosenberger
235d00e2c7 Update references to cordova_lib.raw to account for raw deprecation.
The changes made in #9213 were seemingly innocent, but when merging
I missed the fact that the 'cordova-lib' package bump was done to a new
entry on the 'dev bundle', rather than on the
`CORDOVA_DEV_BUNDLE_VERSIONS` in tools/cordova/index.js which, as of
meteor/meteor#8976, is responsible for auto-installing Cordova when it
is used rather than including it in the pre-packaged 'dev bundle'.

That mistake was fixed with 958c44ff1b and
d6adc1b3a9, but not before it caused the
Cordova tests to falsely pass on the PR since it was functionally still
testing the previous version of Cordova, 7.0.0.

Unfortunately, one of the changes in the 7.1.0 was the deprecation of an
API we use within Meteor: the `raw` API on `cordova_lib`. Luckily, as
seen on the following commit, that change was merely a re-organizational
commit and still provides us access to that API by simply removing
the `raw.` segment and accessing the various methods directly:

90b6857f4d

Never saw that deprecation message, but we certainly saw the failure in
CI: https://circleci.com/gh/meteor/meteor/10412.

With any luck, this commit/PR will fix the problem.
2017-11-08 19:20:49 -05:00
Jesse Rosenberger
c70054dff1 Remove unintented extra space in Console message. 2017-11-09 02:10:21 +02:00
Ben Newman
eb8cf102cd Update tools/tests/old/app-with-private test app. 2017-11-08 17:52:49 -05:00
Jesse Rosenberger
1d91e05264 Remove functionality behind the build farm command.
It's still possible to publish packages for different platforms by using
the `meteor publish-for-arch` command, though it's become increasingly
difficult to offer compatible versions for every circumstance due to the
wide matrix of Node.js ABI versions. This makes it unlikely that
a package built on the build farm will be appropriate for the
application which the package is consumed by, substantially reducing the
overall value of rather expensive infrastructure.

Since Meteor 1.4, and as part of the jump from Node 0.10 to Node 4,
Meteor introduced the capability to compile binary dependencies at the
time that a package is installed.  Additionally, many Node.js packages
are already pre-compiled in a much more effective and wide-spread nature
for the entire JavaScript ecosystem using tools like `node-pre-gyp`.

cc @benjamn.
2017-11-09 00:23:25 +02:00
Jesse Rosenberger
d6adc1b3a9 Update 'cordova-lib' to the intended version, 7.1.0, not 7.1.1.
I think I just typo-ed that patch version right before I committed it.

It certainly should have been 7.1.0. :(

Ref: https://github.com/meteor/meteor/pull/9213

cc @skirunman.
2017-11-08 21:55:48 +02:00
Jesse Rosenberger
958c44ff1b Move 'cordova-lib' back to CORDOVA_DEV_BUNDLE_VERSIONS for auto install.
While 'cordova-lib' used to live in 'dev-bundle-tool-package.js' where
it was pre-bundled into the "dev bundle", that is no longer the case.

It is now automatically installed, on demand, when Cordova is used.

This follows up on meteor/meteor#9213, which added it back to the
'dev-bundle-tool-package.js' and updates it in the new location.

Ref: https://github.com/meteor/meteor/pull/9213
Ref: 073f2410a6

cc @skirunman.
2017-11-08 21:53:37 +02:00
Ben Newman
35e70fd23d Stop adding line number comments to linked JavaScript files. (#9323)
Several years ago, before all major browsers supported source maps, we
felt it was important to provide line number information in generated
files using end-of-line comments like "// 123\n".

Adding all these comments was always slower than leaving the code
unmodified, and recently they have begun interacting badly with certain
newer ECMAScript syntax, such as multi-line template strings (#9160).

Since source maps are well supported in most browsers that developers are
likely to be using for development, and the line number comments are now
causing substantive problems beyond the performance cost, I think it's
time we stopped using them once and for all.

Fixes #9160.
2017-11-08 12:04:59 -05:00
skirunman
073f2410a6 Cordova 7.1.0, Android 6.3.0 and iOS 4.5.3 updates (#9213)
* Update to Cordova 7.1.0 and Cordova Android 6.3.0

* Update deprecated Cordova plugins

* Update History.md for both Cordova updates and previous iOS icons and launch screens

* Update the PR #

* Remove change to History.md

This change is now in https://github.com/meteor/meteor/pull/9227

* Update to iOS 4.5.2

Update to new Cordova iOS 4.5.2 release. https://cordova.apache.org/announcements/2017/10/16/ios-release.html

* Update History.md for Cordova iOS 4.5.2.

* Update to Cordova iOS 4.5.3

Update to Cordova iOS 4.5.3, see https://cordova.apache.org/announcements/2017/10/31/ios-release.html

* Tweak history for update to Cordova iOS 4.5.3

* Update iOS launch screens 

Updating iOS launch screens to match what is supported in Cordova iOS 4.5.3 and remove latest iPad Pro sizes that are not supported in Xcode 9 and therefore not in Cordova iOS. See c3d24a9f02/bin/templates/scripts/cordova/lib/prepare.js
2017-11-08 18:14:12 +02:00
Ben Newman
54b649d5f5 Encapsulate deserialization logic in Unibuild#fromJSON method. 2017-11-06 17:14:05 -05:00
Ben Newman
081d59fa1a Avoid passing two unnecessary parameters to Unibuild#toJSON. 2017-11-06 17:12:10 -05:00
Ben Newman
60fe3a096d Encapsulate serialization logic in Unibuild#toJSON method. 2017-11-06 17:12:10 -05:00
Ben Newman
206f6b7ce4 Convert Unibuild to class and extract into own module. 2017-11-06 17:12:10 -05:00
Ben Newman
f70f3f275c Bump LINKER_CACHE_SALT after recent linker changes. 2017-11-06 16:55:31 -05:00
Ben Newman
78a7cc0633 Use PackageRegistry for build plugins, too. 2017-11-06 16:55:31 -05:00
Ben Newman
57533d2205 Use Package._define helper to initialize Package.* exports.
This saves a little bit of boilerplate code in every package.
2017-11-06 16:55:31 -05:00
Ben Newman
5ee44ca81c Initialize global.Package once, instead of in every package. 2017-11-06 16:55:31 -05:00
Ben Newman
a33ac61ea8 Remove underscore import from boot.js. 2017-11-06 16:55:31 -05:00
Ben Newman
1cbcfb59bc Update dynamic-import test app to use React 16. 2017-11-06 15:46:33 -05:00
Ben Newman
9526ce8976 Test that object-valued package.json "browser" fields are respected.
Regression test for #6890.
2017-11-06 15:46:09 -05:00
Ben Newman
d6b8648eec Add a package-lock.json file to the dynamic-import test app. 2017-11-06 15:10:38 -05:00
Ben Newman
6ada1565aa Update dynamic-import test app to Meteor 1.6. 2017-11-06 15:10:38 -05:00
Ben Newman
234fb35174 Update modules test app to Meteor 1.6. 2017-11-06 15:09:55 -05:00
Ben Newman
8d3ae25eb8 Cache Resolver methods for finding package.json data. 2017-11-06 14:09:54 -05:00
Ben Newman
71cffb2a1f Output package.json "browser" aliases in tools/isobuild/linker.js. 2017-11-06 14:09:54 -05:00
Ben Newman
edc97bad27 Register aliases from package.json "browser" field in ImportScanner. 2017-11-06 14:09:54 -05:00
Ben Newman
d4872366d0 Refactor Resolver handling of package.json files.
Any package.json file that includes an object-valued "browser" field will
now be included in the .packageJsonMap.
2017-11-06 14:09:54 -05:00
Ben Newman
26ab2e5b4e Rename installPath property to absModuleId, and make absolute.
The `installPath` property was always essentially an absolute module
identifier that was simply missing the leading '/' character, so this
commit acknowledges that role by renaming the property to `absModuleId`
and adding the leading slash.
2017-11-06 14:09:54 -05:00
Ben Newman
92f5350e1e Merge instead of replacing implicit files in ImportScanner. 2017-11-06 11:21:27 -05:00
Geoffrey Booth
318d93ec0f See if the noop test driver can work here too 2017-10-31 14:00:56 -07:00
Geoffrey Booth
3cfea0c71d Use empty test driver for test that doesn't need Mocha 2017-10-31 14:00:56 -07:00
Geoffrey Booth
fbf1e9ee43 Try different Mocha test driver 2017-10-31 14:00:56 -07:00
Ben Newman
0fddc26a2e Adjust npm update notifier opt-out environment variable.
https://github.com/zkat/npx/issues/98#issuecomment-316936135
https://www.npmjs.com/package/update-notifier#user-settings
2017-10-23 19:37:44 -04:00
Ben Newman
1389db4631 Increase garbage collection throttling delay.
May help with this problem, which seems to stem from too much GC:
https://github.com/meteor/meteor/pull/8728#issuecomment-337636773

If this isn't enough, we could include this commit in 1.6.1:
5d212926e7
2017-10-19 11:31:23 -04:00
Ben Newman
9c1745f161 Update meteor-node-stubs to 0.3.2 everywhere else. 2017-10-18 21:52:16 -04:00
Ben Newman
301c1fe616 Update modules test app to use meteor-node-stubs@0.3.2. 2017-10-18 21:52:14 -04:00
Ben Newman
b499ad8c45 Another small improvement to temp directory removal logic. 2017-10-17 10:21:01 -04:00
Ben Newman
3739677140 Use files.rm_recursive_async to implement files.freeTempDir. 2017-10-16 17:59:52 -04:00
Ben Newman
9bedf027d4 Move VALID_ARCHITECTURES to its natural home, utils/archinfo.js.
Apparently importing cli/commands.js in isobuild/bundler.js led to calling
ensureIsopacketsLoadable more than once, which broke some tests.
2017-10-16 15:47:55 -04:00
Ben Newman
352b319646 Allow Builder#copyDirectory to re-create symlinks again.
Commit 86ec7eb5db broke tests because we
rely on symlinks even when the symlink option is false.
2017-10-16 14:59:01 -04:00
Ben Newman
eded323039 Avoid calling files.stat(source) in symlinkWithOverwrite.
This was dangerous because source is often a path relative to the old
target file, whereas files.stat was interpreting source as a path relative
to process.cwd().

Fixes #9203.
2017-10-16 14:07:11 -04:00
Ben Newman
86ec7eb5db Avoid creating symlinks in Builder#copyDirectory when forbidden. 2017-10-16 14:07:07 -04:00
Ben Newman
e6e5d427b4 Allow files.rm_recursive to yield whenever possible.
A while back, for performance reasons, we disabled yielding for all
files.* operations unless METEOR_DISABLE_FS_FIBERS was set to false.

This was safe for almost all files.* operations, because most of them have
a synchronous fs.*Sync version available.

For a more complicated operation like files.rm_recursive, however, there
is no synchronous or asynchronous counterpart in the fs.* namespace, so
the safety of disabling fibers is not guaranteed.

Lately, files.rm_recursive has become a major source of uncaught ENOTEMPTY
errors on Windows, because rimraf.sync fails with that error, and we don't
give files.rm_recursive_async a chance to delete the directory in a more
persistent, forgiving manner.

The only reason we haven't been falling back to files.rm_recursive_async
is that YIELD_ALLOWED is false by default, so canYield() returns false.

This commit distinguishes between canYield() and mayYield(), and uses
canYield() in files.rm_recursive to determine whether it is technically
safe to yield, regardless of YIELD_ALLOWED.

Anyone who ever asked "Can I go to the bathroom?" in elementary school,
only to be mercilessly rebuked with "I don't know, CAN YOU?" should
understand the difference between these two functions.
2017-10-16 13:58:49 -04:00
Ben Newman
af016aa306 Disable automatic switching to 64-bit meteor-tool on Windows.
This means running `meteor update` on Windows with an existing (pre-1.6)
installation of Meteor will install a 32-bit version of Meteor 1.6, even
if the underlying machine architecture could handle a 64-bit version.

To get a native 64-bit version of Meteor, Windows developers should
reinstall Meteor 1.6 from scratch using the new and improved Windows
installer (👋 @abernix), rather than running `meteor update`.

If we really want to make `meteor update` just work , we can
revisit this change in Meteor 1.6.1.
2017-10-16 13:58:49 -04:00
Ben Newman
11ea9aef58 Stop wasting time making extracted tarball trees read-only.
Whatever benefits this may have had, a general purpose function like
files.extractTarGz is definitely not the place for such an aggressive
safety measure, and the performance penalty is significant, especially on
Windows.
2017-10-16 13:58:49 -04:00
Ben Newman
132a835086 Fix typo in archinfo.canSwitchTo64Bit.
5a9e837937 (r144887020)
2017-10-16 12:46:49 -04:00
Ben Newman
b99f2be040 Reuse VALID_ARCHITECTURES for great DRY-ness. 2017-10-16 10:00:45 -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
Jesse Rosenberger
00bc5e6201 Address PR feedback from @benjamn on #9218. 2017-10-14 13:37:20 -04:00