Commit Graph

5955 Commits

Author SHA1 Message Date
Ben Newman
e882a7ea52 Merge branch 'devel' into release-1.4.2 2016-09-29 16:57:44 -04:00
Ben Newman
dd3fe9a264 Add additional delay to "run: run" test. 2016-09-29 16:03:18 -04:00
Ben Newman
295d3d5678 Kill mongo when server process exits.
We try to kill any mongod processes before starting new ones, but this
change kills it when the development server shuts down, too.

Killing mongo on shutdown is particularly important for tests that run
meteor multiple times in a row, and for whatever reason fail to find and
kill running mongod processes on startup, e.g. because the --port has
changed (#7563).

This comment by @glasser seems to suggest this is a reasonable idea:
https://github.com/meteor/meteor/issues/2182#issuecomment-45685614

Fixes #2182 and possibly other related bugs.
2016-09-29 09:48:55 -04:00
Ben Newman
5b2e08a80c Automatically reconfigure Mongo replication set when --port differs.
Fixes #7563.
2016-09-29 09:48:55 -04:00
Ben Newman
20a6604126 Remove pointless and exception-swallowing assert.doesNotThrow wrappers. 2016-09-29 08:51:57 -04:00
Ben Newman
f8ba1226b1 Rename test entry point module so that it isn't ignored. 2016-09-29 08:51:56 -04:00
Ben Newman
697e7ae0f7 Protect against null return values from getDevBundleForRelease. (#7841)
Fixes #7838.
2016-09-28 19:54:10 -04:00
Mehdi Ahraoui
2bc5b4b3b6 Meteor should check if is running as root and prevent it on Unix (#7821)
* Prevent running sudo meteor run it on Unix

Prevent running sudo meteor run it on Unix

Fix for all commands

remove empty line

Revert "Prevent running sudo meteor run it on Unix"

This reverts commit d2867561bb6fb1b259a59556628b56a64c677a0b.

improve PR

improve PR

improve PR

fix PR

* improve PR

* fix PR

* fix PR

* fix PR
2016-09-28 09:34:53 -04:00
Seba Kerckhof
8cdab91bc4 Do not check connection with protected npm registries (#7637)
* Do not check connection with protected npm registries

* Remove need for registry http get check by tuning npm retry parameters
2016-09-28 09:29:35 -04:00
Jesse Rosenberger
465a7f724c Merge pull request #7819 from alphanso/iss7478
Use -s as short form of --settings flag
2016-09-28 03:46:37 +03:00
Jesse Rosenberger
d787654e60 Update help.txt with -s shorthand for --settings flags.
The -s flag is now shorthand for --settings

Related to meteor/meteor#7478
2016-09-28 02:52:11 +03:00
Ben Newman
9304f76b52 Fix tests by avoiding printing inotify warning when Console.isHeadless(). 2016-09-27 11:09:46 -04:00
Ben Newman
b976cfa552 Fix reference error for file variable in tools/isobuild/compiler.js. 2016-09-27 11:03:28 -04:00
Ben Newman
0d3466b882 Be more defensive when terminating watchers. 2016-09-27 10:41:40 -04:00
Ben Newman
ea92d83744 Don't cache exceptions in optimistic functions.
I originally added the exception-caching functionality in order to avoid
calling files.stat repeatedly for files known to be missing, but now that
we're using statOrNull, knowledge of missing files (as indicated by
statOrNull returning null) is being properly cached.

The reason it's dangerous to cache exceptions is that (for example) when
an ENOENT exception indicates the file is missing, there will be no more
change events for that file, effectively making the exception permanent,
even if the file comes to exist at a later time.
2016-09-27 10:13:19 -04:00
Jesse Rosenberger
1c42e0fe22 Await Promise when running npm install (#7805)
I believe this is the fix for the (recent) CI server timeouts.
2016-09-26 20:12:46 -04:00
Ben Newman
c6b2a2f95e Use optimistic functions in meteorNpm.getProdPackageNames. 2016-09-26 20:12:46 -04:00
Ben Newman
8e57ecb731 Use optimistic functions in Builder#copyDirectory. 2016-09-26 20:12:46 -04:00
Ben Newman
c7b8b72e77 Never yield in files.symlink. 2016-09-26 20:04:30 -04:00
Ben Newman
5af59c58bc Always use rimraf.sync in files.rm_recursive. 2016-09-26 20:04:30 -04:00
Ben Newman
50a1f11a10 Use optimistic functions in compileUnibuild. 2016-09-26 20:04:29 -04:00
Ben Newman
978df6e043 Use optimistic functions in meteorNpm.isPortable. 2016-09-26 20:04:29 -04:00
Ben Newman
d954415752 Add profiling to PathWatcher watch function. 2016-09-26 20:04:29 -04:00
Ben Newman
83e7b38779 Break circular dependency between {files,watch,optimistic}.js. 2016-09-26 20:04:28 -04:00
Ben Newman
033a935a89 Use optimistic functions to speed up IO-bound bottlenecks. 2016-09-26 20:04:28 -04:00
Ben Newman
6b320bd64b Avoid starting optimistic watchers for node_modules files.
I've also moved both try-catch blocks out of the optimistic wrapper
function in an effort to help V8 optimize the optimistic functions.
2016-09-26 20:04:28 -04:00
Ben Newman
ae7bd2e5af Ignore meaningless initial fs.watchFile callback.
As a reminder, we use fs.watchFile only as a fallback in environments
where pathwatcher.watch is not available, such as on network or virtual
file systems.
2016-09-26 19:59:40 -04:00
Ben Newman
37647c8657 Implement optimistic versions of heavily used files.* methods. 2016-09-26 18:29:08 -04:00
Ben Newman
26597c4fbb Simplify rehashing in safe-pathwatcher.js. 2016-09-26 15:58:13 -04:00
Jesse Rosenberger
cba649f709 Add Newlines to end of .gitignore files, specifically the new app skel
Even though I think the fight is a bit futile, it is considered best practice to have newlines at the end of all files.  At the request of meteor/meteor#7786, this commit adds newlines to the end of the new app skeleton `.gitignore` file.  These skel files are used when generating new meteor apps so this avoids perpetuation of this problem into futrue generations. ;)

In an effort to beef up this PR, I also took the liberty of fixing the few other Meteor files which were lacking newlines (all `.gitignore` files)

Closes meteor/meteor#7786
2016-09-26 15:32:08 +03:00
Rishabh Singhal
ec644b729a Use -s as short form of --settings flag 2016-09-25 13:56:58 +05:30
Jesse Rosenberger
4c2ba4ff4b Await Promise when running npm install (#7805)
I believe this is the fix for the (recent) CI server timeouts.
2016-09-23 11:20:33 -04:00
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