Commit Graph

5923 Commits

Author SHA1 Message Date
Ben Newman
9810562403 Test that one package can have both node_modules and Npm.depends. 2016-09-22 14:34:32 -04:00
Ben Newman
da5f6956aa Merge branch 'devel' into release-1.4.2 2016-09-22 14:32:07 -04:00
Ben Newman
03c5346873 Stop building meteorInstall bundle for server node_modules.
This saves a potentially large amount of work by the ImportScanner and the
Resolver during makeServerTarget, because it means we no longer have to
scan and resolve modules to build a server bundle as a backup for native
Node evaluation.

I've attempted this optimization before, but it wasn't really safe until
I fixed some obscure bugs that caused module.useNode() to fail during
`meteor test-packages` (see recent local-test:-related commits).
2016-09-22 14:27:32 -04:00
Ben Newman
726074689e Don't prepend node_modules/meteor/<package>/ for npm/... directories. 2016-09-22 14:27:31 -04:00
Ben Newman
bbac272530 Prefer node_modules directories from non-test packages. 2016-09-22 14:27:31 -04:00
Ben Newman
7401bad8e3 Tolerate multiple node_modules directories per package.
Revert "Write node_modules metadata as single strings."
This reverts commit f74975d0df.

Packages published with multiple node_modules directories won't be
loadable by versions of Meteor before 1.3, because older versions of
Meteor don't understand object-valued isopack "node_modules" fields, but
the vast majority of Meteor developers are now using either 1.3 or 1.4.
2016-09-22 13:06:03 -04:00
Ben Newman
3313180a6f Always use dev_bundle/.npm as the cache for meteor npm ... commands.
I believe a strange interaction with the global cache (~/.npm on Unix
systems) may have been the root cause of the problem fixed by this commit:
https://github.com/meteor/meteor/pull/7668/commits/ad61a935146c34e7
2016-09-21 18:53:33 -04:00
Jesse Rosenberger
7097f78926 Add support for --no-release-check to meteor test command
This functionality for the `test` command was overlooked when meteor/meteor#7445 was implemented.

Closes meteor/meteor#7026
2016-09-21 15:59:47 +03:00
Ben Newman
1b25050aa8 Delay disposing of file watchers, in case acquireWatcher called again.
Typically all outstanding watchers will be closed when the development
server restarts, but we can save a lot of effort if they survive the
restart, for the small cost of keeping them open for an extra 30sec.
2016-09-15 19:44:00 -04:00
Ben Newman
d5f239e455 Use global file watching oracle to compute file hashes cheaply.
For the galaxy-server application, this reduces the time spent in
watch.isUpToDate from six seconds to a little over second. Of course we
should also try to call it less often, but making it cheaper helps!
2016-09-15 19:42:55 -04:00
Ben Newman
219b18168d Establish a global source of truth for file watching events.
This should not only reduce the total resource usage of the file watching
system, but pave the way for a faster implementation of watch.isUpToDate.
2016-09-15 19:34:57 -04:00
Ben Newman
d618cc61a3 Optimize meteorNpm.getProdPackageNames by not calling runNpmCommand.
For the galaxy-server application, this reduces the time taken to
determine production node_modules from 1400ms to 120ms.

As another optimization, we could record the hashes of all the
package.json files encountered in this scan, and return the same set of
production package names if those hashes have not changed, though the
benefits may not be worth the additional complexity.
2016-09-15 16:20:47 -04:00
Ben Newman
1850105f90 Refactor production node_modules filtering. 2016-09-15 16:15:04 -04:00
Ben Newman
3557d31347 Give POSIX paths without drive letters to glob on Windows. 2016-09-13 15:23:11 -04:00
Ben Newman
a6b42cc418 Make includeNonCore true by default in getAllNonTestPackageNames. 2016-09-13 13:58:43 -04:00
Ben Newman
4abaa5eb20 Exclude non-core packages from localCatalog.getAllNonTestPackageNames.
This should prevent `meteor admin publish-release` from unnecessarily
checking the consistency of non-core packages.
2016-09-13 13:09:05 -04:00
Ben Newman
1d6fb36547 Include packages/non-core/*/packages/ in self-test search. 2016-09-09 17:30:54 -04:00
Ben Newman
17f79c66ce Search packages/non-core/*/packages for local packages.
Currently this finds only Blaze-related packages, but it does so without
hard-coding "blaze" in tools code.
2016-09-09 13:28:16 -04:00
Ben Newman
3fce5e6f93 Accept glob patterns for local package search directories. 2016-09-09 13:28:16 -04:00
Ben Newman
c6a54546c2 Avoid hard-coding packages/non-core/blaze in tools code.
Now that the blaze submodule is mounted inside the packages/non-core/
directory, it appears that we no longer have to mention it explicitly in
the localPackageSearchDirs array.
2016-09-09 12:12:43 -04:00
Ben Newman
9001b75f44 Move packages-for-isopackets/blaze to packages/non-core/blaze. 2016-09-09 11:17:43 -04:00
Ben Newman
b64f1147e7 Merge branch 'devel' into release-1.4.2 2016-09-08 13:31:17 -04:00
Tom Coleman
74cf7b3b6e Not sure why these weird version numbers were in there
Previously didn't cause a problem because `static-html` was a core pkg
2016-08-29 11:38:45 +10:00
Tom Coleman
edf40c430b Use isopacket packages for self-test also 2016-08-25 13:24:40 +10:00
Tom Coleman
f01653e690 Use submodules for isopacket loading 2016-08-25 12:23:33 +10:00
Tom Coleman
f69f6c091a Added a minimum version for blaze to the skel 2016-08-25 12:23:33 +10:00
Ben Newman
b34a796600 Merge branch 'devel' into release-1.4.2 2016-08-24 11:06:22 -04:00
Ben Newman
d5c83aaf8f Don't try to use native tar command on Windows.
Fixes #7689.
2016-08-22 16:52:03 -04:00
Ben Newman
88db65c837 Update modules test app to Meteor 1.4.1. 2016-08-18 17:31:21 -04:00
Ben Newman
b552011180 Revert "Fix #7491 by wrapping child process in script on OSX"
This reverts commit 98aaaed084.

This change is no longer necessary with Node 4.5.0, which was included
with Meteor 1.4.1.
2016-08-18 17:13:48 -04:00
Ben Newman
4618b3d8de Remove --no-bin-links flag from default npm rebuild arguments.
After recent discussion on https://github.com/meteor/meteor/issues/7401,
@glasser and I think the relatively obscure benefit of --no-bin-links is
outweighed by the problems it causes for packages whose rebuild scripts
need executable scripts installed in the node_modules/.bin/ directory.
2016-08-18 16:39:52 -04:00
Ben Newman
4c1fe8ff22 Convert options.npmDir only if it's a string. 2016-08-17 18:18:07 -04:00
Ben Newman
61c1ab0cac Avoid colons in .npm/plugin/... paths.
Fixes #7661.
2016-08-17 18:08:29 -04:00
Ben Newman
61012963a5 Fix test description to say --all-packages instead of --update-all. 2016-08-17 14:53:28 -04:00
Ben Newman
d6ffff50b5 Recommend meteor update --all-packages after partial update. 2016-08-17 14:53:28 -04:00
Ben Newman
9249985875 Filter --all-packages package names through isIsobuildFeaturePackage. 2016-08-17 14:53:28 -04:00
Yo-An Lin
e326fddafb Add option to skip release check (#7445)
* Add --no-release-check option to skip release check

* Add METEOR_NO_RELEASE_CHECK environment variable
2016-08-17 14:53:27 -04:00
Tom Coleman
2290911723 Added meteor update --all-packages to update indirect dependencies
See #7495. Still some decisions to be made:

 - Should we make --all-packages the default?
 - How should we deal with *new* indirect dependencies?
 - Should we do anything about underpinning indirect dependencies when updating?
2016-08-17 14:53:27 -04:00
Ben Newman
88bccdb36a Tolerate missing source files in files.cp_r. 2016-08-16 22:20:53 -04:00
Ben Newman
cc362a3bca Fix typo in new version of files.cp_r. 2016-08-16 18:34:25 -04:00
Ben Newman
31155ad990 Do not run npm rebuild for local node_modules directories.
Since we do not write .meteor-last-rebuild-version.json files when
developers run `meteor npm install ...`, this commit saves us from
unnecessarily rebuilding any freshly-installed binary npm dependencies
when Meteor starts.
2016-08-16 17:36:18 -04:00
Ben Newman
21462959f6 Try to symlink rather than copying node_modules when rebuilding. 2016-08-16 17:36:17 -04:00
Ben Newman
c5809a4a1c Allow files.cp_r to copy non-directories. 2016-08-16 16:27:09 -04:00
Ben Newman
b2e2d0651b Don't install node-gyp or node-pre-gyp in server bundle.
These packages need to be installed when we run `npm install` in
`bundle/programs/server` (which this commit ensures), but they don't need
to be part of the dev bundle.
2016-08-15 14:31:10 -04:00
Ben Newman
f6a52788f0 Remove BrowserStack from dev bundle. 2016-08-15 14:23:09 -04:00
Ben Newman
0a58a93490 Allow tests to share .meteor/local/shell with apps.
This change means `meteor shell` will now work when running tests with
`meteor test`.
2016-08-11 19:05:50 -04:00
Ben Newman
38096aafc8 Use --debug instead of --debug-brk for meteor debug.
Breaking on the first statement in the program used to be the only way to
get the debugger to stop at any breakpoints, but more recent versions of
node-inspector (compatible with Node 4) do a much better job of stopping
at breakpoints after the program starts.
2016-08-11 18:36:05 -04:00
Ben Newman
027a7b6e32 Merge branch 'devel' into release-1.4.1 2016-08-11 11:30:40 -04:00
Ben Newman
a78dde0225 Make meteor publish-for-arch unnecessary in most cases (#7608)
* Include process.{platform,arch} in .meteor-last-rebuild-version.json.

This supports rebuilding binary npm packages published by completely
different architectures, not just different versions of Node.

* Make publish-for-arch unnecessary in most cases.

* Don't rebuild binary packages when Node patch version changes.

* Permit patch-compatible versions in .meteor-last-rebuild-version.json.

This is a more general solution than simply discarding the patch version
for currentVersions.versions.node, as I did in a previous commit.
2016-08-11 11:24:38 -04:00
Ben Newman
3c7f83778f Move server-side component of meteor shell into a package. (#7624)
This will make it much easier to fix bugs and make improvements going
forward, since they won't have to wait for the next release of Meteor.

One functional change: when the parent process exits, it no longer forces
all connected shell clients to disconnect, which is actually a more
convenient behavior, because it gives the clients a chance to reconnect
when/if the server starts up again, and it's easy enough to kill the
clients if that's what you want.
2016-08-11 09:11:40 -04:00