Commit Graph

21471 Commits

Author SHA1 Message Date
Ben Newman
c32fd23b1a Bump package versions for 1.7.1-beta.22 release. release/METEOR@1.7.1-beta.22 2018-07-26 20:27:16 -04:00
Ben Newman
691053175b Ignore some {pause,refresh}Client errors if child process exited. 2018-07-26 20:18:15 -04:00
Ben Newman
8e3f3d8db6 Update mongodb npm package to version 3.1.1. 2018-07-26 19:36:21 -04:00
Ben Newman
d945c49736 Merge branch 'devel' into release-1.7.1 2018-07-26 19:35:58 -04:00
Ben Newman
6747a63c7c Update mongodb npm package to version 3.0.11. (#10101)
Should fix #10087.
2018-07-26 16:19:16 -07:00
James Burgess
644a3494fd Fix map and reduce functions in oauth1 package (#10099)
Also fix whitespace

Fixes #10094
2018-07-26 08:24:26 -07:00
James Burgess
30df020c9d Cache fetch and mongo-decimal npm dependencies and bump key versions (#10091) 2018-07-20 17:39:42 -07:00
Ben Newman
9fb02e9bb2 Bump package versions for 1.7.1-beta.21 release. release/METEOR@1.7.1-beta.21 2018-07-20 19:12:12 -04:00
Ben Newman
f8c76b90dc Force .meteor/local/build to be rebuilt in-place on Windows.
Because in-place rebuilds are disabled by default on Windows, we were
losing .meteor/local/build/programs/web.browser.legacy every time we
rebuilt .meteor/local/build as part of writeSiteArchive, as reported by
@lmachens in this comment: https://github.com/meteor/meteor/pull/9942#issuecomment-406656741

In-place rewriting of .meteor/local/build seems essential for the new
strategy of writing different targets at different times, though I have
attempted to limit the risk of overwriting open files on Windows by
continuing to build the individual target directories from scratch (that
is, by writing a fresh temporary directory and then renaming it over the
existing directory).

Though I don't have any specific ideas in this direction, it may be worth
noting: if we could find a way to make in-place builds safer on Windows
(as they are on Linux and Mac), Windows rebuilds would be significantly
faster than they are with the current strategy of rewriting everything
from scratch every time.
2018-07-20 19:10:18 -04:00
James Miller Burgess
4e22a7c086 Bump npm deps cache version numbers
With the addition of inter-process-messaging npm deps to the cache, but
no change in the shrinkwrap checksum, the cache will not get updated
until we either change any of the shrinkwrap files or change the cache
keys. So I'm bumping the version numbers to do the latter.
2018-07-19 18:28:12 -04:00
James Miller Burgess
fcc5101812 Cache inter-process-messaging dependencies in circleci
Also, fix some whitespace issues that I probably caused!
2018-07-19 18:28:11 -04:00
Ben Newman
a58775663f Bump package versions for 1.7.1-beta.20 release. release/METEOR@1.7.1-beta.20 2018-07-19 18:12:30 -04:00
Ben Newman
a4657f34d5 Merge branch 'devel' into release-1.7.1 2018-07-19 17:53:10 -04:00
Ben Newman
e91b3776e5 Make sure file.jsonData is defined for imported package.json modules.
The defaultExtensionHandlers[".json"] function in import-scanner.js sets
file.jsonData as a side effect, which is important because that's what the
linker uses to construct a stub module.exports object for dynamically
imported package.json modules.

When I introduced ImportScanner#_readPackageJson as an alternative to
ImportScanner#_readModule in a recent commit, I intentionally did not call
defaultExtensionHandlers[".json"], but in so doing I neglected to preserve
the behavior of setting file.jsonData.

Without a proper package.json stub with at least a "main" property, the
dynamic import() system can't resolve dynamically imported packages until
the full package.json module has been fetched from the server, which leads
to missing module errors in the initial dynamic import().
2018-07-19 17:43:53 -04:00
Ben Newman
35473f29e4 Move package.json private field stripping tests into modules test app.
Follow-up to #9903.
2018-07-19 15:31:17 -04:00
Ben Newman
8a7db9b094 Move logic for stripping private package.json fields into ImportScanner.
Follow-up to #9903.
2018-07-19 15:31:05 -04:00
Bartosz Wojtkowiak
c6b136d3ca Remove non deterministic fields from included package.json files. (#9903) 2018-07-19 12:30:17 -07:00
Ben Newman
753be8d2ff Rewrite RoutePolicy#checkForConflictWithStatic to avoid WebApp.defaultArch.
This should help with the problem that @lmachens reported here:
https://github.com/meteor/meteor/pull/9942#issuecomment-406241869
2018-07-19 14:06:42 -04:00
Ben Newman
82174ff0a8 Stop overriding autoupdate version in test-in-browser driver.
This hack dates all the way back to 2013: a2c4a78743

Though it is convenient to reload the browser when server files change
while running test-packages, that's not the behavior of most Meteor apps
that use the autoupdate package, and this hack introduced a signficant
difference in behavior between the test-in-browser and test-in-console
driver packages, which finally surfaced due to the interaction between
@toinevk's headless testing PR #9814 and my refactoring of the autoupdate
package (fe9e4035f9). Tests should behave
the same regardless of which driver package is used.

It turns out there's a better way to make the browser reload each time the
server restarts: simply modify Meteor.settings.public, since that object
is included in the client hashes computed by the webapp package.
2018-07-19 14:06:42 -04:00
Ben Newman
45bbac5940 Fix appcache test by tolerating both Autoupdate.{versions,autoupdateVersion}. 2018-07-19 14:04:33 -04:00
Ben Newman
60c670f0b3 Move AUTOUPDATE_VERSION logic out of webapp_server.js.
It seems obvious in hindsight, but any logic relating to the
AUTOUPDATE_VERSION override should reside within the autoupdate package,
and the true client hashes should be available to any other package that
needs them, without AUTOUPDATE_VERSION getting in the way.
2018-07-19 14:04:32 -04:00
Ben Newman
977ce228b3 Import puppeteer more reliably. 2018-07-19 14:04:32 -04:00
Ben Newman
2cc172bbed Fix meteor scripts in tools/tests/apps/modules/package.json. 2018-07-18 12:48:35 -04:00
Ben Newman
a756af487b Merge branch 'devel' into release-1.7.1 2018-07-18 12:42:01 -04:00
Ben Newman
af26e8b052 Merge pull request #9558 from jamesmillerburgess/accounts-remove-underscore
Modernize accounts packages
2018-07-18 09:33:28 -07:00
James Burgess
e56c18f26b Modernize binary-heap package (#9615) 2018-07-18 08:07:22 -07:00
Ben Newman
ea04dde68a Merge branch 'devel' into accounts-remove-underscore 2018-07-18 08:03:23 -07:00
zebra-lucky
a8c6701c60 Implement Mongo 3.4 Decimal128 in packages/non-core/mongo-decimal (#9662) 2018-07-18 07:59:54 -07:00
James Burgess
35b850d6f5 Cache npm dependencies from meteor packages in CircleCI (#9785) 2018-07-18 07:56:39 -07:00
Ben Newman
50b6751728 Merge pull request #9814 from toinevk/devel
Switch Meteor's headless browser tests from PhantomJS to Headless Chrome
2018-07-18 07:54:44 -07:00
Ben Newman
d8042c8fa9 Merge pull request #10053 from nathan-muir/nm-ddp-perf
ddp-server: replace usage of Object with Map & Set
2018-07-18 07:53:44 -07:00
Joachim Achtzehnter
093f9458a1 Request less than 4GB on 32-bit platforms (#10081)
A recent commit added a flag to request 4GB space for node, which
causes an immediate segmentation fault on 32-bit Linux.
2018-07-18 07:52:42 -07:00
Ben Newman
121eb30c90 Shorten initial README.md description for inter-process-messaging. release/METEOR@1.7.1-beta.19 2018-07-17 21:12:46 -04:00
Ben Newman
fe45f24c8f Bump package versions for 1.7.1-beta.19 release. 2018-07-17 21:02:07 -04:00
Ben Newman
fc1c762ad5 Bump $BUNDLE_VERSION to 8.11.3.6 before rebuilding dev bundle. 2018-07-17 21:00:18 -04:00
Ben Newman
50b44f6465 Update meteor-babel to version 7.0.0-beta.54. 2018-07-17 20:35:37 -04:00
Ben Newman
ff8cee9e4e Update npm to version 6.2.0.
The pacote dependency (a small fork of which we maintain) remains at
version 8.1.6.
2018-07-17 20:13:55 -04:00
Ben Newman
d7e489d5d5 Merge pull request #10077 from meteor/inter-process-messaging
Use listener API for communication between build/server processes.
2018-07-17 15:12:14 -07:00
Ben Newman
7d25b592b6 Use ARSON to encode and decode IPC payloads and results. 2018-07-17 16:44:59 -04:00
Ben Newman
5ea442bb12 Update packages/inter-process-messaging/README.md. 2018-07-17 16:44:58 -04:00
Ben Newman
f4946306c0 Make IPC system more testable, and implement some basic tests. 2018-07-17 16:44:58 -04:00
Ben Newman
eceb3b0f57 Silence UnhandledPromiseRejectionWarning in exit handler. 2018-07-17 16:44:58 -04:00
Ben Newman
9faaddd641 Handle child process 'exit' event in IPC system. 2018-07-17 13:24:02 -04:00
Ben Newman
393196eb93 Remove parent/child terminology from the IPC system.
Every process is potentially the child of some other process and the
parent of zero or more child processes of its own, so it's confusing to
use terminology that always treats the current global.process as a
"parent" process, or to include PARENT and CHILD in the message types.

Instead, this new implementation uses message types MESSAGE, RESPONSE,
PING, and PONG, and refers to `process` and `otherProcess` objects,
with the caveat that sometimes `process === otherProcess`, because
`process.send` can be used to send messages to the parent process.

Instead of relying on the child to send a special CHILD_READY message to
the parent when it's ready to receive messages, the sending process polls
the receiving process with a preflight PING message, and the receiving
process immediately responds with a PONG when ready.
2018-07-17 13:11:48 -04:00
Ben Newman
692b533d49 Extract IPC type strings into a shared module. 2018-07-17 10:27:00 -04:00
Ben Newman
2450ffe84d Remove unreliable modification of Autoupdate versions from self-test. 2018-07-16 18:59:51 -04:00
Ben Newman
77ed148614 Use listener API for communication between build/server processes.
Fixes #10073, per
https://github.com/meteor/meteor/issues/10073#issuecomment-405290391

While thinking about this bug, I realized that sending IPC messages to
specific packages in the server process was much less flexible than
sending messages based on an arbitrary topic string, since the topic
string approach allows both `autoupdate` and `dynamic-import` to listen
for the same message.

The topic string approach calls for a listener interface like
`onMessage(topic, callback)`, which elegantly replaces the previous
approach of requiring packages to export a single `onMessage` function.

However, because the `meteor` package does not have access to the module
system, implementing the `onMessage` listener interface in the `meteor`
package would have required exposing an API like `Meteor.onMessage(topic,
callback)`, which has an unpleasant global smell to it. Instead, the
`onMessage` function should be explicitly imported (using the module
system) from a less-generically-named package.

Since I knew I was going to have to move the message dispatch logic out of
the `meteor` package, I decided to create a new package called
`inter-process-messaging` to implement the parent/child components of the
IPC system.
2018-07-16 18:59:50 -04:00
Toine van Kampen
92b72bc46b Fix Failing Tests
Ensure Hot Code Push and Package Tests account for possible multiple runs.
2018-07-15 10:17:01 +10:00
Ben Newman
547b1675b7 Bump package versions for 1.7.1-beta.18 release. release/METEOR@1.7.1-beta.18 2018-07-13 03:50:39 -04:00
Ben Newman
34bbbcb0f9 Calculate autoupdate versions correctly in cordova/builder.js.
Follow-up to the recent rewrite of autoupdate:
fe9e4035f9

Should fix #10067.
2018-07-12 11:57:09 -04:00