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
Merged

Release 1.8.1 #10248

merged 190 commits into from Apr 3, 2019

Conversation

@benjamn
Copy link
Member

@benjamn benjamn 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 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
Copy link
Member

@hwillson hwillson left a comment

Sounds good @benjamn - thanks!

@KoenLav
Copy link

@KoenLav KoenLav 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 benjamn changed the base branch from devel to master Oct 11, 2018
@sakulstra
Copy link
Contributor

@sakulstra sakulstra 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)

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
Copy link

@KoenLav KoenLav commented Oct 30, 2018

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

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
@benjamn
Copy link
Member Author

@benjamn benjamn 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 4 commits Mar 19, 2019
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
Copy link

@peernohell peernohell 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
Copy link
Member Author

@benjamn benjamn 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
Copy link

@rj-david rj-david 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
Copy link

@KoenLav KoenLav 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
Copy link

@rj-david rj-david 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
Copy link

@krishaamer krishaamer 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
Copy link
Member Author

@benjamn benjamn 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
Copy link

@krishaamer krishaamer 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
Copy link

@Nauzer Nauzer commented Mar 21, 2019

@meteor meteor deleted a comment from Giterdone78 Mar 21, 2019
@krishaamer
Copy link

@krishaamer krishaamer commented Mar 22, 2019

@Nauzer Thanks, tried this also however no difference.

@msand
Copy link
Contributor

@msand msand 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
Copy link
Member Author

@benjamn benjamn 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
Copy link
Contributor

@msand msand 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
Copy link
Contributor

@sakulstra sakulstra 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 benjamn merged commit aa686bf into master Apr 3, 2019
20 checks passed
@KoenLav
Copy link

@KoenLav KoenLav commented Apr 3, 2019

Thanks for making this happen @benjamn!

@MastroLindus
Copy link

@MastroLindus MastroLindus 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
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet