Commit Graph

22356 Commits

Author SHA1 Message Date
zodern
eb5c0b5eed Fix checking for a rerender timeout (#10523) 2019-05-02 19:35:44 -04:00
Ben Newman
3fbf0619d5 Bump package versions for 1.8.2-beta.1 release. 2019-05-02 19:23:29 -04:00
Ben Newman
f166f226d8 Support the "module" field of package.json for client code. (#10541)
Supporting "module" in package.json for server code is not advisable
because Node.js will be adopting the "type":"module" convention instead,
and in the meantime we need to maintain consistency with Node's module
resolution rules, which only currently pay attention to "main":
https://medium.com/@nodejs/announcing-a-new-experimental-modules-1be8d2d6c2ff
2019-05-02 18:30:13 -04:00
Ben Newman
c4382c7d59 Bump $BUNDLE_VERSION to 8.16.0.2 before rebuilding dev bundle. 2019-05-02 17:11:18 -04:00
Ben Newman
35ca6980dc Use is-reachable to detect child process health in self-test.
On Linux, child processes that have exited may remain as <defunct>
"zombie" processes, which prevents process.kill(childPid, 0) from
throwing, so we need a different trick for detecting whether the child
process is still alive.
2019-05-02 17:10:41 -04:00
Ben Newman
4b0e4f8b0d Add package.json to tools/tests/apps/app-prints-pid.
The SIGKILL self-test in tools/tests/run.js has been failing recently
because @babel/runtime can't be found when the app-prints-pid app starts
up, which prevents the app from polling the parent process correctly.
2019-05-02 15:24:57 -04:00
Ben Newman
e680804ffc Wrap fs.copyFile[Sync] rather than reimplementing it. (#10542)
Should help prevent noYieldsAllowed errors due to the Promise#await call
in the removed copyFileHelper function, which is what caused 1.8.2-beta.0
to fail to publish on Linux (reported in #10540).
2019-05-02 13:48:02 -04:00
Ben Newman
b0a8e1bfaf Increase arbitrary SIGKILL timeout to make self-test more robust. 2019-05-02 13:44:49 -04:00
Ben Newman
f4b92a004e Bump package versions for 1.8.2-beta.0 release. release/METEOR@1.8.2-beta.0 2019-04-26 19:49:03 -04:00
Ben Newman
0482e66117 Bump $BUNDLE_VERSION to 8.16.0.1 before rebuilding dev bundle. 2019-04-26 18:55:08 -04:00
Ben Newman
114a348bb3 Convert programs/server/debug.js to TypeScript.
Another tiny module (like tools/isobuild/css-modules.ts) that proves we
can use TypeScript in programs/server/* code.
2019-04-26 18:55:08 -04:00
Ben Newman
c9ba0f3a22 Install latest Reify runtime in programs/server/main.js.
Also updated meteor-babel in the dev bundle to depend on reify@0.18.1, to
be consistent with the version used by server code.
2019-04-26 18:55:08 -04:00
Ben Newman
4ff27f8a52 Use Builder#copyTranspiledModules to compile .js and .ts files with Babel. 2019-04-26 18:55:07 -04:00
Luigi Pinca
efc8a3525d Fix variable scope (#10526)
Currenlty the `v` variable is only visible in the `if` block but it is
also used in the outer scope. Move the declaration to the outer scope.
2019-04-26 17:40:53 -04:00
Ben Newman
e3aecf2bc1 Bump $BUNDLE_VERSION to 8.16.0.0 before rebuilding dev bundle. 2019-04-23 19:21:57 -04:00
Ben Newman
15ba990d72 Update Node.js to version 8.16.0.
https://nodejs.org/en/blog/release/v8.16.0/
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8.16.0
2019-04-23 19:21:57 -04:00
Ben Newman
59c66baa9b Convert tools/static-assets/server/mini-files.js to module. 2019-04-23 19:21:57 -04:00
Ben Newman
f0192a82d9 Stop using mini-files.js in non-Babel-compiled code. 2019-04-23 19:21:57 -04:00
Ben Newman
36c4ae0a73 Bump accounts-base package version to 1.4.4.
This should have been done when PR #10299 was first merged. Thankfully,
@macrozone discovered the problem while diagnosing issue #10530.

Should fix #10530.
2019-04-23 16:59:24 -04:00
Ben Newman
154ca31faa Enable compilation of tools/static-assets/server. 2019-04-22 13:50:07 -04:00
Ben Newman
20273d72e9 Bump package versions for 1.8.2-alpha.1 release. release/METEOR@1.8.2-alpha.1 2019-04-14 14:27:07 -04:00
Ben Newman
5d52ff2685 Merge pull request #10528 from meteor/enable-TypeScript-compilation-of-meteor/tools
Enable TypeScript compilation of .ts modules in meteor/tools.
2019-04-14 14:25:28 -04:00
Ben Newman
543bed4e0b Convert tools/isobuild/css-modules.js to TypeScript.
Choosing this module first because it's tiny and only imported twice.
2019-04-14 14:00:48 -04:00
Ben Newman
257b2d62d3 Bump $BUNDLE_VERSION to 8.15.1.7 before rebuilding dev bundle. 2019-04-14 13:15:03 -04:00
Ben Newman
798a155c64 Enable Babel-powered TypeScript compilation of meteor/tools.
These changes pave the way for incrementally converting the implementation
of Meteor's command-line tool to TypeScript, which should have profound
benefits for self-documentation via types, as well as substantially
improving navigability and approachability for community contributors.

Just imagine being able to auto-complete the fields of the various
File-like classes currently floating around the codebase, instead of
having to track down their implementations every time. TypeScript was
designed with large projects like Meteor in mind, and it seems
increasingly irresponsible to forgo the benefits of a type system by
relying on the expertise of a few core contributors who know the codebase
inside and out. I am one of those few people, and I am very excited to
have the assistance of a type system, so I can only imagine how
transformative and empowering it will be for everyone else.

If you've ever wanted to get involved in core Meteor development, picking
a few meteor/tools modules to convert to TypeScript is a great way to get
to know that part of the codebase, while also making things easier for
everyone else who interacts with that code in the future.

Because we already compile meteor/tools using Babel, it makes the most
sense to use Babel's @babel/preset-typescript to compile .ts files:
https://babeljs.io/docs/en/next/babel-preset-typescript.html

Using Babel also means we get to keep all of our current advanced
compilation strategies, such as using Reify to compile module syntax:
https://www.npmjs.com/package/reify

Since we're using Babel, the meteor/tools/tsconfig.json file exists mostly
for the benefit of external tools like VSCode, rather than as a source of
truth for compilation behavior.

Despite our existing convention of including explicit .js file extensions
when importing modules, TypeScript and VSCode strongly encourage omitting
the file extension, so the import can be resolved to a .ts file in
development or a .js file when compiled. Although I find this ambiguity
somewhat unfortunate, it makes sense to follow community norms, at least
until Node.js begins supporting .ts modules by default.
2019-04-14 13:06:49 -04:00
Ben Newman
588d037ca6 Bump package versions for 1.8.2-alpha.0 release. release/METEOR@1.8.2-alpha.0 2019-04-12 19:34:13 -04:00
Ben Newman
96778efcc8 Shorten meteor/context summary. 2019-04-12 19:24:38 -04:00
Ben Newman
b510327f9c Add a basic summary and README.md to meteor/context. 2019-04-12 19:18:01 -04:00
Ben Newman
312dc29da7 Bump $BUNDLE_VERSION to 8.15.1.6 before rebuilding dev bundle. 2019-04-12 17:02:53 -04:00
Ben Newman
664560d8bb Implement basic meteor/context package with @wry/context.
The promise package needs a weak dependency on this package (on the
server) because meteor-promise saves a reference to Fiber.yield, so we
need to have wrapped Fiber.yield with noContext before that happens.
2019-04-12 16:12:51 -04:00
Ben Newman
f096796a8f Update optimism and @wry/context to latest versions. 2019-04-12 14:37:19 -04:00
Ben Newman
5e24494e01 Update dynamic import test app to Meteor 1.8.1 and meteor-node-stubs@1.0.0. 2019-04-10 19:18:36 -04:00
Ben Newman
07815583f1 Update modules test app to Meteor 1.8.1 and meteor-node-stubs@1.0.0. 2019-04-10 19:18:36 -04:00
Ben Newman
466cda693e Use wrapYieldingFiberMethods from @wry/context. 2019-04-10 18:48:10 -04:00
Ben Newman
d1f8bca88b Bump $BUNDLE_VERSION to 8.15.1.5 before rebuilding dev bundle. 2019-04-10 18:35:14 -04:00
Ben Newman
ca3caa9c8f Update optimism and explicitly depend on @wry/context and tslib. 2019-04-10 18:34:30 -04:00
Ben Newman
5adb7c64ab Wrap Fiber.prototype.{run,throwInto} as well as Fiber.yield.
ddebed9b8a/fibers.js (L97-L100)
2019-04-10 17:14:26 -04:00
Ben Newman
bb83acb286 Bump $BUNDLE_VERSION to 8.15.1.4 before rebuilding dev bundle. 2019-04-10 14:46:34 -04:00
Ben Newman
0383f01c63 Update optimism and use noContext to isolate Fiber contexts.
The optimism package no longer knows anything about Fibers, but it does
export various helpers for managing execution contexts, one of which
(noContext) allows us to censor the current context for the duration of a
function call. By wrapping Fiber.yield with noContext, we keep distinct
Fibers from accidentally registering cache dependencies on one another.
2019-04-10 14:42:34 -04:00
Ben Newman
b60101de86 Merge pull request #10517 from meteor/update-meteor-babel-to-7.4.3
Use meteor-babel@7.4.3 to compile meteor/tools (but not application or package code, yet).
2019-04-10 12:24:09 -04:00
Ben Newman
e6c3fb66c8 Bump $BUNDLE_VERSION to 8.15.1.3 before rebuilding dev bundle. 2019-04-10 11:05:57 -04:00
Ben Newman
3c225033ae Undo babel-compiler upgrade but keep meteor/tools using 7.4.3.
Until this issue is addressed: https://github.com/babel/babel/issues/9720
2019-04-10 11:03:53 -04:00
Ben Newman
b3807831e4 Update cordova-plugin-meteor-webapp to version 1.7.0 (#10520)
* Update cordova-plugin-meteor-webapp to version 1.7.0.

Fixes #10516.

* Bump meteor-tool and webapp to a temporary 1.8.1-issue-10516.0 version.

I attempted to publish webapp@1.7.4-rc.0 with @rj-david's changes from
https://github.com/meteor/cordova-plugin-meteor-webapp/pull/78 to verify
that they fix #10516, but prerelease versions like 1.7.4-rc.0 are not
compatible with non-prerelease core package constraints like ~1.7.3 (which
desugars to >=1.7.3 <1.8.0), as explained by this comment in the semver
source code: 5fb517b290/semver.js (L1246-L1250)

While this behavior was somewhat surprising to me, I haven't come up with
a way to fix it without accidentally allowing any prerelease version of
core Meteor packages to be installed in applications using an official
(non-prerelease) version of Meteor.

Instead, we can just cut a temporary prerelease version of Meteor itself.
If that fixes the problem, then we can publish webapp@1.7.4 safely,
without actually publishing a Meteor 1.8.1.1 release just for this.

* Update webapp to version 1.7.4 (without -issue-10516.0 suffix).
2019-04-09 17:17:13 -04:00
Seba Kerckhof
deaf8825b5 fix typo ie11 -> ie12 (#10519) 2019-04-09 15:24:59 -04:00
Ben Newman
a059f0b868 Bump $BUNDLE_VERSION to 8.15.1.2 before rebuilding dev bundle. 2019-04-08 15:54:24 -04:00
Ben Newman
7567fbca06 Update meteor-babel and babel-compiler to version 7.4.3. 2019-04-08 15:45:13 -04:00
Ben Newman
456314f002 Bump ecmascript version to 0.12.7.
This version was published specifically using Meteor 1.8.1, so that it
includes babel-compiler@7.3.4 instead of 7.2.4.
2019-04-02 20:32:17 -04:00
Ben Newman
5dcd0b2eb9 Merge branch 'master' into devel 2019-04-02 20:21:59 -04:00
Ben Newman
aa686bfafb Merge pull request #10248 from meteor/release-1.8.1
Release 1.8.1
2019-04-02 20:20:50 -04:00
Ben Newman
d376276158 Bump package versions for the official 1.8.1 release. release/METEOR@1.8.1 2019-04-02 18:51:59 -04:00