Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.8.1 #10248

Merged
merged 190 commits into from Apr 3, 2019

Conversation

Projects
None yet
@benjamn
Copy link
Member

commented Oct 6, 2018

As I explained in #9942 (comment), Meteor 1.8.1 will be a quick follow-up to Meteor 1.8 that upgrades Node to version 8.12.0, so that Galaxy customers can easily deploy their apps with that version of Node, even though there have been some reports that Node 8.12.0 has performance problems in production, due to excessive garbage collection.

We will not officially "recommend" the Meteor 1.8.1 release until we have resolved these concerns, but you can begin using it by running

meteor update --release 1.8.1-rc.n

where -rc.n refers to the most recent prerelease version of Meteor 1.8.1.

benjamn added some commits Oct 6, 2018

@benjamn benjamn added this to the Release 1.8.1 milestone Oct 6, 2018

@benjamn benjamn self-assigned this Oct 6, 2018

@benjamn benjamn requested review from hwillson and abernix Oct 6, 2018

@hwillson
Copy link
Member

left a comment

Sounds good @benjamn - thanks!

@KoenLav

This comment has been minimized.

Copy link

commented Oct 9, 2018

Created a base image for Node.js 8.12: https://hub.docker.com/r/koenlav/meteord/tags/

abernix/meteord#41

benjamn added some commits Oct 11, 2018

@benjamn benjamn changed the base branch from devel to master Oct 11, 2018

@sakulstra

This comment has been minimized.

Copy link
Contributor

commented Oct 26, 2018

We've been struggling with build time performance quite a while - apparently the node update alone (running beta-0) reduced the build time by nearly two minutes 💃 (it's still at 12 min, but a notable improvement)

webapp: add runtime config overrides when inline scripts are disabled
When generating boilerplate, meteor runtime config includes additional
options based on the arch.

However, these additional options were not present when generating
the response to `/meteor_runtime_config.js`, which is used when
inline scripts are disabled.

This change fixes Meteor.isModern in those circumstances.
@KoenLav

This comment has been minimized.

Copy link

commented Oct 30, 2018

Would it make sense to move to Node.js 10.13 right away?

benjamn and others added some commits Oct 31, 2018

Add missing weak dependencies on `reload` package
`autoupdate` and `reactive-dict` are using the `reload` package if it's available. To ensure that all packages are loaded in the correct order, these dependencies must be explicit.

@benjamn benjamn force-pushed the release-1.8.1 branch from dce08c6 to 0e96600 Nov 3, 2018

sakulstra and others added some commits Oct 27, 2018

Rely on native Node.js Promise implementation.
There's no reason to use a Promise polyfill in Node.js at this point.
@benjamn

This comment has been minimized.

Copy link
Member Author

commented Mar 19, 2019

Surfacing the most recent commit message:

Bump package versions for 1.8.1-rc.0 release.

Now that we've moved into the release candidate phase, there will be no
more new features added to Meteor 1.8.1, and all remaining effort will be
focused on fixing bugs.

Please test the release candidate if you have time, by running the
following command in any application directory:

  meteor update --release 1.8.1-rc.0

If you've been holding off on testing the betas for any reason, now would be a great time to try the first release candidate! 🍬

klaussner and others added some commits Mar 19, 2019

Wait until Mongo primary node is writable (#10500)
Using the `isMaster` command instead of checking the replica set member state is more reliable because a node can be a primary without being writable.

Fixes #10381 and #9026.
@peernohell

This comment has been minimized.

Copy link

commented Mar 20, 2019

Not sure if it's the good place.
I know that you patch node version of meteor and would love to know if you have plan on trying to patch following bug about setTimeout/setInterval. It's fixed in 10.9.0 but they don't seems to plan any backport for node 8.
nodejs/node#22149 (comment)

If you will be able to bring that fix with meteor 1.8.1 it would be awesome.

Sorry if I'm off topic 😥

@benjamn

This comment has been minimized.

Copy link
Member Author

commented Mar 20, 2019

@peernohell This is a fine place to bring that up, but I feel like shipping a custom version of Node at this point would be too big of a change for a Meteor release candidate.

What if we updated to Node 10 in Meteor 1.9? I'm really interested in Node 11/12, but Node 10 is a good stepping stone.

@rj-david

This comment has been minimized.

Copy link

commented Mar 21, 2019

Tested most of our projects using 1.8.1-rc.1 and we encountered no issues.

But, we have a problem with the supported nodejs version:

@benjamn Bump $BUNDLE_VERSION to 8.15.1.1 before rebuilding dev bundle.

There wasn't any version 8.15.1.1 in node (only 8.15.1). So our test deployments failed.

@KoenLav

This comment has been minimized.

Copy link

commented Mar 21, 2019

I believe bundle version does not correspond 100% with Node.js version, so just using 8.15.1 would be fine (correct me if I'm wrong).

@rj-david

This comment has been minimized.

Copy link

commented Mar 21, 2019

I believe bundle version does not correspond 100% with Node.js version, so just using 8.15.1 would be fine (correct me if I'm wrong).

Changing our process. As an unexpected positive result, we figured that we can automate this by just calling meteor node --version and use that output in our script

@krishaamer

This comment has been minimized.

Copy link

commented Mar 21, 2019

FYI just updating from 1.8.1-beta.1 to rc-1 resulted in a blank page with an "Unexpected error." message. However, there are no errors in the browser or servers logs. It's an existing website with a bunch of dependencies, so probably that's the source of some incompatibility. Downgraded back to beta-1 and it works again.

aldeed:geocoder 0.3.8 Easy geocoding by way of the node-geocoder package aldeed:template-extension 4.1.0 Adds template features currently missing from the templating package blaze-html-templates 1.1.2 Compile HTML templates into reactive UI with Meteor Blaze browser-policy 1.1.0 Configure security policies enforced by the browser browser-policy-content 1.1.0 Configure content security policies browser-policy-framing 1.1.0 Restrict which websites can frame your app ecmascript 0.12.4 Compiler plugin that supports ES2015+ in all .js files es5-shim 4.8.0 Shims and polyfills to improve ECMAScript 5 support francocatena:status 1.5.3 Displays the connection status between browser and server gadicohen:sitemaps 0.0.26 functions to easily output valid sitemaps http 1.4.2 Make HTTP calls to remote servers jquery 1.12.1-beta162.18 Manipulate the DOM using CSS selectors juliancwirko:postcss 2.0.3 Minifier for Meteor with PostCSS processing - use Autoprefixer and others with ease krishaamer:body-class 0.4.2 Automatically add classes for router templates and layouts for scoping with CSS. less 2.8.0 Leaner CSS language lukemadera:social-share 1.2.0 Cross platform (inc. Cordova) social sharing for facebook, twitter, pinterest mdg:meteor-apm-agent 3.2.1 Performance Monitoring for Meteor mdg:seo 3.2.1_1 Provide SEO support for enabled apps. meteor-base 1.4.0 Packages that every Meteor app needs mobile-experience 1.0.5 Packages for a great mobile user experience mongo 1.6.1 Adaptor for using MongoDB and Minimongo over DDP nolimits4web:swiper 4.4.1 iDangero.us Swiper - mobile touch slider with hardware accelerated transitions and native beha... okgrow:analytics 3.0.5 Extends @okgrow/auto-analytics adding automatic user identification for Meteor applications. ostrio:flow-router-extra 3.6.2 Carefully extended flow-router with waitOn and template context ostrio:flow-router-meta 2.0.14 Change meta tags, links to styles (CSS) and scripts on the fly within flow-router ostrio:flow-router-title 3.1.3 Change document.title (page title) on the fly within flow-router random 1.1.0 Random number generator and utilities react-meteor-data 0.2.16 React higher-order component for reactively tracking Meteor data react-template-helper 0.2.11 Use React components in native Meteor templates reactive-dict 1.2.1 Reactive dictionary reactive-var 1.0.11 Reactive variable semantic:ui 2.3.1 Official Semantic UI Integration for Meteor session 1.1.8* Session variable shell-server 0.4.0 Server-side component of the meteor shellcommand. standard-minifier-js 2.4.0 Standard javascript minifiers used with Meteor apps by default. tracker 1.2.0 Dependency tracker to allow reactive callbacks underscore 1.0.10 Collection of small helpers: _.map, _.each, ...

@benjamn

This comment has been minimized.

Copy link
Member Author

commented Mar 21, 2019

@krishaamer Please keep investigating! If all else fails, try updating to different beta versions to narrow down the problem? Note that not all 1.8.1-beta.n numbers were published (you can ignore -beta.19 for example).

@krishaamer

This comment has been minimized.

Copy link

commented Mar 21, 2019

Tested the following betas

Working w/o errors: 1, 2, 3, 6
Server error: “TypeError: Path must be a string. Received undefined”: 4,5
Browser: “Unexpected error”: 7, 8, 9, 10, 20

Hope this helps.

@Nauzer

This comment has been minimized.

Copy link

commented Mar 21, 2019

@meteor meteor deleted a comment from Giterdone78 Mar 21, 2019

@krishaamer

This comment has been minimized.

Copy link

commented Mar 22, 2019

@Nauzer Thanks, tried this also however no difference.

@msand

This comment has been minimized.

Copy link
Contributor

commented Mar 22, 2019

@benjamn Any plans to take built-in modules / Import maps / KV Storage into use for the dynamic module loading system? https://developers.google.com/web/updates/2019/03/kv-storage

@benjamn

This comment has been minimized.

Copy link
Member Author

commented Mar 22, 2019

@msand Eventually! Meteor is currently the only framework poised to take advantage of those features without just dropping support for older browsers, since our definition of a "modern" browser is not tied to whether the browser supports <script type=module>: https://twitter.com/benjamn/status/1005104014944538624

Besides the question of how much work is involved, the most important high-level issue is what percentage of browsers would be able to use import maps natively. That's a very small number (0%?) today, since only Chrome has committed to shipping import maps, last I checked. We may redefine "modern" as "supports native import maps" at some point, but that's way too strict right now.

@msand

This comment has been minimized.

Copy link
Contributor

commented Mar 22, 2019

@benjamn Sounds reasonable. At least with regards to KV Storage, it seems Edge has shown public support now at least: https://www.chromestatus.com/feature/6428344899862528
And I would expect this to happen in firefox and safari as well, as the use case for KV Storage is relatively clear, and in demand from developers.

And when I read up on it, I realized it could probably be used in the dynamic module loader of meteor, almost as a drop in replacement for https://github.com/meteor/meteor/blob/devel/packages/dynamic-import/cache.js

The polyfill and demo already works in all browsers, all the way down to internet explorer, and can probably adapt quite well to meteors definition of modern: https://glitch.com/edit/#!/rollup-built-in-modules?path=README.md:1:0
https://rollup-built-in-modules.glitch.me/

@sakulstra

This comment has been minimized.

Copy link
Contributor

commented Apr 2, 2019

just a quick heads up we're using the latest rc on production since 22.03 and everything runs smoothly 👏

actually it seems like overall performance improved a bit, but this might be due to other internal changes, not meteor 🤷‍♂

looking forward for a release with node 10/12 though 💃

benjamn added some commits Apr 2, 2019

@benjamn benjamn force-pushed the release-1.8.1 branch from 234c6a3 to 8b0256e Apr 2, 2019

@benjamn benjamn merged commit aa686bf into master Apr 3, 2019

20 checks passed

CLA Author has signed the Meteor CLA.
Details
ci/circleci: Clean Up Your tests passed on CircleCI!
Details
ci/circleci: Docs Your tests passed on CircleCI!
Details
ci/circleci: Get Ready Your tests passed on CircleCI!
Details
ci/circleci: Isolated Tests Your tests passed on CircleCI!
Details
ci/circleci: Test Group 0 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 1 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 10 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 2 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 3 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 4 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 5 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 6 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 7 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 8 Your tests passed on CircleCI!
Details
ci/circleci: Test Group 9 Your tests passed on CircleCI!
Details
continuous-integration/appveyor/branch AppVeyor build succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details
@KoenLav

This comment has been minimized.

Copy link

commented Apr 3, 2019

Thanks for making this happen @benjamn!

@MastroLindus

This comment has been minimized.

Copy link

commented Apr 3, 2019

Yep thanks @benjamn , just updated to the stable 1.8.1 and everything runs perfectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.