Commit Graph

22356 Commits

Author SHA1 Message Date
Ben Newman
d3571161e5 Merge pull request #9311 from meteor/package.json-browser-object-relative-style
Support object-valued "browser" field in package.json.
2017-11-06 16:54:33 -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
Jesse Rosenberger
6f716eec93 Merge branch 'master' into devel 2017-11-05 15:20:05 +02:00
Jesse Rosenberger
c69ead89dc Merge pull request #9304 from meteor/abernix/update-1.5.3-history-master
Update History.md with miscellaneous changes in Meteor 1.5.3.
2017-11-05 15:19:40 +02:00
Jesse Rosenberger
e3dce16795 Update History.md with miscellaneous changes in Meteor 1.5.3. 2017-11-05 15:13:43 +02:00
Jesse Rosenberger
0191e86beb Merge pull request #9266 from meteor/release-1.5.3
Release 1.5.3
2017-11-05 14:58:50 +02:00
Jesse Rosenberger
12f45e9ad6 Tweaks to History.md for 1.5.3.
[ci skip] (Hopefully.)
2017-11-04 20:36:34 +02:00
Jesse Rosenberger
c2157bb4bb Update History.md with miscellaneous changes in Meteor 1.5.3. 2017-11-04 13:56:29 +02:00
Jesse Rosenberger
5d8e5013fa Bump package versions for the official 1.5.3 release. 2017-11-04 10:13:20 +02:00
Jesse Rosenberger
b0f624ae57 Throw an error when any external command fails during test preparation.
Even with $ErrorActionPreference, PowerShell won't automatically fail
when an external command fails with an error code.  This explicitly
checks those exit codes and throws an error when that occurs.

Hopefully prevents false successes like that shown in this AppVeyor
test run: https://goo.gl/xxRsF9.
2017-11-02 08:49:25 -07:00
Jesse Rosenberger
790871796c Remove problematic Windows test, until it can be researched further.
Though it was thought to be reliable when running through 'self-test' on
Windows, it's yet to be seen how reliable.

The worst thing that could come of adding Windows testing would be that
we have test failures again after such a string of green checkmarks and
confidence.

Also, reordered.
2017-11-02 08:49:16 -07:00
Jesse Rosenberger
975e12828c Use YAML config for Appveyor settings, rather than their UI.
These take precedence over the UI, and I'm not sure the UI is taking
effect at the moment.

We don't need to build branches which start with 'dev-bundle-' since
those dev bundles won't be built yet when the tests are kicked off.
2017-11-02 08:48:28 -07:00
Jesse Rosenberger
dff4325341 Basic Appveyor testing for Windows.
This implements a first generation of Windows CI testing.  Presently,
this only runs valuable, hand-picked tests which have been known to work
in the past, and whose failure would indicate a critical problem.

A test which isn't passing doesn't mean that the feature being tested is
not working. For example, the 'create' test fails ostentatiously,
though the 'meteor create' command certainly works in practice. This
points to problems some compatibility problems with the 'self-test'
harness itself, some of which I'm aware of.  Though, it likely will
highlight some legitimate problems which Windows users experience too.

There are a number of additional tests which should be enabled which
likely pass already, and many more which are failing and we should fix.

Additional tests can be added to the scripts/windows/appveyor/test.ps1
file as they've been deemed working.

Altogether, this will take extensive work to achieve the same level of
coverage our Unix test suite enjoy, but we've got to start somewhere!

cc @benjamn
2017-11-02 08:48:20 -07:00
Ben Newman
4bbe849b35 Merge pull request #9107 from GeoffreyBooth/coffeescript-2
CoffeeScript 2.0.2
2017-11-01 10:49:20 -04:00
Geoffrey Booth
904ba9597d Bump coffeescript NPM module version 2017-10-31 14:00:56 -07: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
Geoffrey Booth
f663c621f0 Friendly error if runtime doesn't support CoffeeScript 2 2017-10-31 14:00:56 -07:00
Geoffrey Booth
f8298d0e9f Remove no-longer-correct comments, though leave the no-longer-necessary tests 2017-10-31 14:00:56 -07:00
Geoffrey Booth
269bd873d2 Add a test that we really are using the CS2 compiler, by checking that function parameter default values now behave like ES2015 ones do 2017-10-31 14:00:55 -07:00
Geoffrey Booth
7a7c8f4656 CoffeeScript 2 support for JSX (React only, it seems), with test 2017-10-31 14:00:55 -07:00
Geoffrey Booth
fd483c34e3 Use CoffeeScript 2.0.1 2017-10-31 14:00:55 -07:00
Ben Newman
f91ff783b7 Bump package versions for 1.6.1-beta.1 release. release/METEOR@1.6.1-beta.1 2017-10-31 15:38:31 -04:00
Ben Newman
a9fb4cd76a Bump $BUNDLE_VERSION to 8.9.0 before rebuilding dev bundle. 2017-10-31 15:01:18 -04:00
Ben Newman
c35f1f11ed Upgrade Node to version 8.9.0.
https://nodejs.org/en/blog/release/v8.9.0/
2017-10-31 14:59:56 -04:00
Ben Newman
f0970fd13f Merge branch 'devel' into release-1.6.1 2017-10-31 14:57:07 -04:00
Ben Newman
9e65d8bea7 Enable dead code elimination in minifier-js to fix #9260.
The react-dom@16 npm package recently got stricter about how it checks
that dead code elimination is enabled. Specifically, it no longer just
checks that process.env.NODE_ENV is replaced with "production" but also
requires conditional branches to be completely removed if the replacement
makes them unreachable:
https://github.com/facebook/react/blob/master/packages/react-dom/npm/index.js

The minifier-js package recently had its minor version bumped for Meteor
1.6, so I think it's safe to enable dead code elimination in a patch
version update. If we bumped the minor version again (to 2.3.0), this
version of minifier-js would not be usable with Meteor 1.6, and would
probably have to wait for Meteor 1.6.1.

Bumping the patch version of standard-minifier-js is also necessary
because it uses minifier-js as a compiler plugin, and would otherwise
continue to bundle the old minifier-js plugin.
2017-10-31 14:40:49 -04:00
Jesse Rosenberger
9efe9e8b80 Bump package versions for 1.5.3-rc.1 release. release/METEOR@1.5.3-rc.1 2017-10-31 11:21:02 -07:00
Ben Newman
f9a9e9f2f9 Another small improvement to temp directory removal logic. 2017-10-31 14:00:46 -04:00
Ben Newman
c257183a55 Use files.rm_recursive_async to implement files.freeTempDir. 2017-10-31 14:00:33 -04:00
Ben Newman
afd556f931 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-31 14:00:12 -04:00
Ben Newman
fe5479400e 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-31 14:00:05 -04:00
Ben Newman
b7695d2e8b Avoid creating symlinks in Builder#copyDirectory when forbidden. 2017-10-31 13:59:59 -04:00
Ben Newman
b2db70a727 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-31 13:59:37 -04:00
Ben Newman
f73c7207e2 Use files.rm_recursive_async to implement meteor reset.
This should hopefully prevent ENOTEMPTY errors on Windows.
2017-10-31 13:59:10 -04:00
Ben Newman
b567fa0a39 Allow asynchronous meteor command implementations. 2017-10-31 13:59:03 -04:00
Ben Newman
ddc490c66d Use module.watch live bindings to solve #9176.
Further explanation / discussion:
https://github.com/meteor/meteor/issues/9176#issuecomment-335913296

Another (complementary) solution to the same problem: #9190
2017-10-31 13:58:31 -04:00
Ben Newman
699768f39d Stop using file.imported to mark fake files in the ImportScanner.
Using a Symbol ensures compiler plugins can't mark files fake accidentally
(or maliciously) when calling inputFile.addJavaScript(options).
2017-10-31 13:58:30 -04:00
Ben Newman
f2b800c927 Remove target directory in files.rename to avoid Windows EPERM errors.
These errors are especially harmful because they cause files.rename to
fall back to copying rather than atomically renaming, which is both much
slower and not even remotely atomic.
2017-10-31 13:58:30 -04:00