Commit Graph

21736 Commits

Author SHA1 Message Date
Ben Newman
c0a35f0457 Bump package versions for 1.8.0.1-rc.2 release. release/METEOR@1.8.0.1-rc.2 2018-11-17 15:27:35 -05:00
Ben Newman
b55806f931 Relax precondition in ResourceSlot#addJavaScript.
https://github.com/meteor/meteor/issues/10337#issuecomment-439638590
2018-11-17 15:26:05 -05:00
Ben Newman
4c22e5ec97 Bump package versions for 1.8.0.1-rc.1 release. release/METEOR@1.8.0.1-rc.1 2018-11-15 13:51:00 -05:00
Ben Newman
0561124bde Note PR #10330 in History.md. 2018-11-15 13:50:59 -05:00
Ben Newman
c326591bb8 Note PR #10334 in History.md. 2018-11-15 13:50:53 -05:00
Ben Newman
0296f15880 Bump webapp and modern-browsers package versions for #10334. 2018-11-15 13:50:50 -05:00
Ben Newman
f3f584d96b Make modern/legacy browser name check case-insensitive.
https://github.com/meteor/meteor/pull/10334#commitcomment-31302219

cc @abernix @hwillson
2018-11-15 13:50:49 -05:00
Jesse Rosenberger
128c9311ea For modern bundles, treat Chromium and "Headless Chrome" the same as Chrome.
Best I can tell, the major version portion of Chromium versions has always
tracked all the way through to Chrome Canary, Dev and Stable releases.
Since we observe the major version of Chrome in terms of identifying it as a
"modern browser", it seems to make sense to treat "Headless Chrome" and
Chromium in the same regard.

Interestingly, when the same Chrome as we all use on our machines is run
with the `--headless` flag, it switches its `navigator.userAgent` to
`HeadlessChrome/`, rather than `Chrome/`.

This was initially problematic since the `useragent` npm we use for parsing
user agents didn't understand this designation, however, with the update of
`webapp`'s `useragent` npm in 058351b7, `headlesschrome` will now have its
version available from `WebAppInternals.identifyBrowser`, so we can
accurately identify it and serve it the modern bundle.
2018-11-15 13:50:49 -05:00
Jesse Rosenberger
5e98790291 Update webapp's useragent npm to v2.3.0 to support HeadlessChrome.
Previously, while the `useragent` package was able to parse the User-Agent
for so-called "Headless Chrome" and generate a family of "HeadlessChrome",
it was unable to parse out the individual portions of the version number
(e.g. major, minor, patch).

For example, the following User-Agent (herein referred to as `userAgentAbove`):

```
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36
```

Previously resulted in:

```
> require('useragent').lookup(userAgentAbove);

{
  family: 'HeadlessChrome',
  major: '0',
  minor: '0',
  patch: '0',
  /* ... */
}
```

With the newer version of `useragent`, these are now properly extracted and
set which will enable Meteor to treat Headless Chrome the same as Chrome in
a follow-up commit.  Now:

```
> require('useragent').lookup(userAgentAbove);

{
  family: 'HeadlessChrome',
  major: '69',
  minor: '0',
  patch: '3497'
  /* ... */
}
```
2018-11-15 13:50:48 -05:00
Ben Newman
5e7e809cd1 Implement ResourceSlot#_addDirectlyToJsOutputResources to fix #10337. (#10338) 2018-11-15 13:50:48 -05:00
Ben Newman
c06a31a322 Bump package versions for 1.8.0.1-rc.0 release. release/METEOR@1.8.0.1-rc.0 2018-11-14 12:08:13 -05:00
Ben Newman
7a7d5bd8a2 Bump $BUNDLE_VERSION to 8.11.4.6 before rebuilding dev bundle. 2018-11-14 11:44:14 -05:00
Ben Newman
f7bd8e9f37 Merge pull request #10330 from meteor/fix-findImportedModuleIdentifiers-hash-collision
Ensure file.hash is always computed from sha1(file.data).
2018-11-12 20:48:49 -05:00
Ben Newman
152879c093 Bump diff-sequence package version to fix #10320. (#10331)
After @nathan-muir's PR #10053, we did not publish a new version of the
diff-sequence package, which would have contained DiffSequence.diffMaps.

I honestly have no idea why #10320 did not manifest before now, but
publishing these changes seems to fix it.
2018-11-12 20:44:49 -05:00
Ben Newman
253213c24f Bump ecmascript package version after bumping babel-compiler version. 2018-11-12 19:35:50 -05:00
Ben Newman
4294414506 Update meteor-babel to version 7.1.5. 2018-11-12 19:35:47 -05:00
Ben Newman
44e713f046 Ensure file.hash is always computed from sha1(file.data).
With the introduction of lazy compilation in Meteor 1.8, calling

  inputFile.addJavaScript({
    ...
    hash: inputFile.getSourceHash(),
    ...
  }, function () {
    return compiler.processFilesForTarget(inputFile);
  });

becomes problematic, since inputFile.getSourceHash() is usually different
from compiler.processFilesForTarget(inputFile).hash, because the latter is
computed from the compiled code, whereas the former is computed from the
source code.

For example, when we use file.hash to cache imported module identifiers in
ImportScanner#_findImportedModuleIdentifiers, we really need to be using
the hash of the compiled code, since a single source module can be
compiled in different ways. If we cache based on the source hash, there's
a risk of reusing the scanned imports from the web.browser version for the
web.browser.legacy version, which can lead to all sorts of problems that
are only apparent in legacy browsers.

The quick fix is easy enough: BabelCompiler can simply stop including a
hash in the eager options to inputFile.addJavaScript. This fix can be
published as a minor update to the babel-compiler and ecmascript packages.

The remaining changes in this commit add another layer of defense against
this problem, by ignoring any hash options provided by compiler plugins,
in favor of simply computing the hash from the compiled data buffer.
These additional changes will become available in the next release of
Meteor (likely 1.8.1).
2018-11-12 18:57:06 -05:00
Ben Newman
13388b4955 Bump session package version. 2018-11-03 16:21:32 -04:00
Ben Newman
6a18c7a2bf Bump caching-compiler package version. 2018-11-03 16:21:16 -04:00
Seba Kerckhof
05ae386b79 Sanitize compiler name for environment variables (#10270)
While strictly speaking more characters are allowed, they are not usable in a shell except for uppercase / digits / underscore.
( https://stackoverflow.com/a/2821183 )
2018-11-03 16:14:47 -04:00
Seba Kerckhof
f8e59735f6 Modernize session package (#10228) 2018-11-03 16:12:06 -04:00
Ben Newman
249f31707a Bump [standard-]minifier-css package versions. 2018-11-03 16:06:41 -04:00
lukas strassel
689ae3dfa7 Update postcss and cssnano to latest non breaking versions (#10260) 2018-11-03 16:04:42 -04:00
Geoffrey Challen
c5b51b0fc2 user.services is not an array. (#10299) 2018-11-03 15:48:29 -04:00
Lars Gleim
a54c9261ad Fix uncaught TypeError in autoupdate_client.js (#10281)
This fixes an issue (c.f. https://github.com/Urigo/meteor-client-bundler/issues/87) where when the __meteor_runtime_config__ does not contain a proper autoupdate configuration object, the client would fail to load properly.
2018-11-03 15:45:47 -04:00
Jan Dvorak
c622e51cd8 Fix #10305 (#10310) 2018-10-31 11:33:49 -04:00
Ben Newman
0e983deb69 Update coffeescript-compiler constraint in coffeescript/package.js. 2018-10-31 11:14:59 -04:00
Ben Newman
d7339dd3db Bump oauth1 patch version to 1.2.2. 2018-10-31 11:12:39 -04:00
Ben Newman
b04485c777 Merge pull request #10312 from meteor/lazy-coffeescript-compilation
Bump CoffeeScript to version 2.3.2 and enable lazy compilation.
2018-10-31 11:10:02 -04:00
Thomas Spiesser
eb4ae8b8fa [oauth1] Add default value for whitelistedQueryParams. (#10301) 2018-10-31 11:03:53 -04:00
Ben Newman
c96278700d Fix compiler plugins self-tests by waiting for lazy compilation to finish. 2018-10-31 10:41:31 -04:00
Ben Newman
ea173640f2 Bump CoffeeScript to version 2.3.2 and enable lazy compilation.
The introduction of lazy compilation should help with #10298.
2018-10-30 14:24:40 -04:00
Nathan Muir
8f86f19cd0 ddp-client: fix usage of reload package (#10286)
- Return type of onMigrate callback should be an array.
- onMigrate callback can be invoked many times until all components
  are ready to migrate.
- DDP negotiation failures should always migrate immediately.
2018-10-23 10:38:08 -04:00
Jan Dvorak
2cc8db1dd8 Fix #10290 (#10295) 2018-10-23 10:32:28 -04:00
Ben Newman
18762f97a2 Update modules test app to Meteor 1.8. 2018-10-13 19:32:10 -04:00
Ben Newman
94771d233e Update dynamic-import test app to Meteor 1.8. 2018-10-13 19:27:48 -04:00
Ben Newman
8e302da10d Update install npm package to v0.12.2 to fix #10182.
Thanks to PR https://github.com/benjamn/install/pull/50 by @Gariest.
2018-10-13 19:22:49 -04:00
Frederick Stark
cc3d5e08ae Add jsdoc comments to reactive-dict to fix meteor/docs#52 (#10273) 2018-10-13 19:06:10 -04:00
Ben Newman
308b4f1306 Bump ecmascript package version to 0.12.1.
This is necessary whenever we bump the babel-compiler version.
2018-10-11 12:29:33 -04:00
Ben Newman
e2e215d702 Update meteor-babel npm package to version 7.1.3. (#10272)
This update should help with #10262, per @sebakerckhof's comment
https://github.com/meteor/meteor/issues/10262#issuecomment-428968441,
thanks to these commits:
a38835d3e2
a1778d8d71

Also updated the json5 dependency of babel-compiler to its latest version,
while I was at it.
2018-10-11 12:17:55 -04:00
Ben Newman
ed41dcd4a6 Flatten buildmessage.{enterJob,capture} stacks by not using withValue. (#10266)
Whenever you're looking at a stack trace generated by the command-line
tool, you see tons and tons of useless stack frames for withValue,
enterJob, and/or capture.

Each of these function calls has its own try-finally block, which is
probably the real reason this pattern is slow, though the excess of
unnecessary stack frames is subjectively gross as well.

Initial build times for the `meteor create --full` app on my machine are
about 4.4 seconds with Meteor 1.8, and just 2.8 seconds after this change,
which is a nice 36% improvement. Rebuild times are not noticeably
different, however.

Looking to the future, flattening this function call pyramid should make
it easier to introduce non-Fiber-based async/await into the buildmessage
system, so that we can start properly propagating promises up the stack.
2018-10-11 09:47:17 -04:00
Jan Dvorak
65064f40df Fix duplicate WebApp.connectHandlers.use - fix #10265 (#10268) 2018-10-11 09:46:26 -04:00
Ben Newman
ccb479f4e7 Merge pull request #10263 from meteor/fix-issue-10112-by-ignoring-inline-source-maps
Ignore inline source maps when minifying CSS files.
2018-10-10 17:04:36 -04:00
Ben Newman
3f30d2208f Bump standard-minifier-css patch version to 1.5.1. 2018-10-10 16:40:22 -04:00
Ben Newman
b7267b76a1 Use null for sourcesContent[i] if sources[i] unrecognized.
Should help with #10112.
2018-10-10 16:40:19 -04:00
Ben Newman
9290ea7a06 Ignore inline source maps when minifying CSS files.
https://github.com/meteor/meteor/issues/10112#issuecomment-428646872

Further down in the mergeCss function, when we call CssTools.stringifyCss,
we pass the following option:

  // don't try to read the referenced sourcemaps from the input
  inputSourcemaps: false

Apparently this isn't enough to avoid reading inline source maps from the
input file, so we should be a bit more aggressive about preventing postcss
from picking up inline source maps.

This change mostly affects .css files imported from node_modules, and
possibly raw .css files in the application that happen to have inline
sourceMappingURL= comments. For CSS output from compiler plugins like LESS
and SCSS, we have a totally different mechanism of handling source maps,
namely file.getSourceMap().

Should fix #10112.
2018-10-10 14:13:23 -04:00
Jan Dvorak
2df1930bb0 Update Roadmap.md (#10254)
For even more details about upcoming work, see the 1.8 release blog post:
https://blog.meteor.com/meteor-1-8-erases-the-debts-of-1-7-77af4c931fe3
2018-10-09 14:02:46 -04:00
Ben Newman
3903194cee Trivial: fix spacing in History.md. 2018-10-07 10:04:18 -04:00
Ben Newman
3051150f2f Merge branch 'master' into devel 2018-10-05 18:06:30 -04:00
Ben Newman
88ce8341ff Merge pull request #9942 from meteor/release-1.7.1
Release 1.8 (formerly 1.7.1)
2018-10-05 18:05:34 -04:00