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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Release 1.9 (Node.js 12) #10527

Open
wants to merge 294 commits into
base: master
from

Conversation

@benjamn
Copy link
Member

commented Apr 12, 2019

馃毃 WARNING: This release has not been tested thoroughly. Use at your own risk, if you must satisfy your curiosity. Be prepared to reinstall Meteor from scratch because this release corrupted everything! Good luck! 馃毃

That said, if you would like to try this early alpha version of Meteor 1.9, you can run the following command to create a fresh application:

meteor create --release 1.9-alpha.0 new-19a0-app

Node.js 12 will be out by the time Meteor 1.9 is finalized, so I would like to get started validating the update to Node.js 11 (which will become 12) sooner rather than later.

The first casualty of this upgrade is that 32-bit Linux can no longer be supported. In fact, 32-bit Linux support was dropped in Node 10, so this is not exactly breaking news: nodejs/build#885

@benjamn benjamn added the in progress label Apr 12, 2019

@benjamn benjamn added this to the Release 1.9.0 milestone Apr 12, 2019

@benjamn benjamn self-assigned this Apr 12, 2019

@benjamn benjamn changed the title Release 1.9 [WIP] Release 1.9 Apr 12, 2019

@benjamn benjamn changed the base branch from devel to master Apr 12, 2019

@benjamn benjamn changed the title [WIP] Release 1.9 [WIP] Release 1.9 (Node.js 11-going-on-12) Apr 13, 2019

@KoenLav

This comment has been minimized.

Copy link

commented Apr 13, 2019

Just updated one of our more complicated apps to Meteor 1.9; at first look everything seems to work just fine.

The only thing holding us back was fourseven:scss (which relies on an older version of node-sass, which doesn't support Node 11). Created this PR to update node-sass in meteor-scss: Meteor-Community-Packages/meteor-scss#290

For anyone wanting to try out Meteor 1.9 with fourseven:scss:
cd packages
git clone https://github.com/KoenLav/meteor-scss.git

@@ -1 +1 @@
METEOR@1.8
METEOR@1.8.1

This comment has been minimized.

Copy link
@KoenLav

KoenLav Apr 13, 2019

Shouldn't this be 1.9-alpha.0?

This comment has been minimized.

Copy link
@benjamn

benjamn Apr 14, 2019

Author Member

The modules test app runs from a checkout during Circle CI self-tests, so the .meteor/release file doesn't really matter (although we totally could update the version to METEOR@1.9-alpha.0). The reason it shows up in the changes for this PR is because I recently merged release-1.8.2 into release-1.9 (and both PRs are targeting master, which doesn't have the change).

@SimonSimCity

This comment has been minimized.

Copy link
Contributor

commented Apr 23, 2019

Node.js 12 will be out by the time Meteor 1.9 is finalized [...]

According to nodejs/node#25082 the initial version of Node.js 12 will be released today but LTS will start somewhen in October, so I guess you mean the latter one.

lpinca and others added 6 commits Apr 26, 2019
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.
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.
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.
@benjamn

This comment has been minimized.

Copy link
Member Author

commented Apr 27, 2019

@SimonSimCity Right, I was mostly thinking about the LTS schedule. That said, we will update this branch to Node.js 12 as soon as this fibers/V8 issue has been addressed: laverdet/node-fibers#409

@sebakerckhof

This comment has been minimized.

Copy link
Contributor

commented Apr 29, 2019

The only thing holding us back was fourseven:scss (which relies on an older version of node-sass, which doesn't support Node 11). Created this PR to update node-sass in meteor-scss: Meteor-Community-Packages/meteor-scss#290

Thanks. Just released a new version

@benjamn benjamn referenced this pull request Apr 30, 2019
@KoenLav

This comment has been minimized.

Copy link

commented May 1, 2019

@benjamn are there any specific areas of interest you would like to have tested?

This way people will know what to look out for.

benjamn added 6 commits May 2, 2019
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).
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.
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.
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
@agolomoodysaada

This comment has been minimized.

Copy link

commented Aug 23, 2019

How soon do we expect a release for this? Are we waiting for Node.js 12 to come out around October?

@morloy

This comment has been minimized.

Copy link
Contributor

commented Aug 27, 2019

@benjamn A release estimate would be great. Especially, since Google Cloud Platform will shut down Node v8 on October 1st.

@atomoc

This comment has been minimized.

Copy link

commented Sep 5, 2019

When to wait for 2 versions? And there is an opinion that the meteor is dead, please debunk, if this is a myth. We even want to no longer use the meteor in new projects. Please write something that will give confidence to our team to continue using the meteor.

Personally, I have a very unpleasant experience working with Cordoba represented by a meteor and today I even posted the project in webview react native, which ensured a 50% increase in loading app and I strive to completely rewrite the mobile application to react-native, I am only stopped by the amount of work ahead. I think it would be right to advertise effective solutions, and not try to maintain a simple, but poorly functioning.

benjamn added 21 commits Sep 5, 2019
Add files to unibuild.watchSet only if needed by unibuild.arch.
Most importantly, this change means that changes to files not used by the
server bundle will not trigger a server restart.

Fixes #10449 by implementing the strategy I described in this comment:
#10414 (comment)
Explicitly track potentially unused WatchSet files.
The previous implementation simply avoided calling watchSet.addFile for
potentially unused files, trusting that addFile would be called later if
the file was eventually used. However, this strategy left the contents of
watchSet.files incomplete for tasks such as IsopackCache._checkUpToDate,
which require full information about all files, even the ones that might
not be used by the bundle. The new strategy maintains metadata about
potentially unused files in a separate data structure, which will be
merged/cloned/serialized/deserialized along with other WatchSet data.
Merge pull request #10686 from meteor/conservative-server-restart
Avoid restarting server in development when changed file(s) not used by server bundle.
Update typescript version to 3.6.2.
Most of these changes came for free with the update of meteor-babel to
version 7.6.0, but a few remaining spots needed to be updated.
@gunn

This comment has been minimized.

Copy link

commented Sep 7, 2019

@atomoc meteor and react-native work very well together for me. I'm using this approach: https://medium.com/the-guild/connecting-react-native-and-meteor-w-o-any-3rd-party-library-in-2018-3e784d33acb0

@sakulstra sakulstra referenced this pull request Sep 10, 2019
@benjamn

This comment has been minimized.

Copy link
Member Author

commented Sep 10, 2019

@atomoc Although we have done our best to keep Cordova working for the Meteor developers who depend on it, Cordova has a huge API beyond our control that isn't very backwards compatible from version to version. My honest recommendation would be to use React Native with Meteor if you can, and keep in mind that Cordova is not synonymous with Meteor.

@KoenLav

This comment has been minimized.

Copy link

commented Sep 11, 2019

This statement would vouch for migrating away Cordova support from the Meteor core, making the integration less tight and asking the community to step in (as suggested in the issue thread about improving the collaboration on Meteor, which is still unanswered).

It would be nice to see Meteor provide examples to integrate with Cordova, React Native or even Flutter like it has done for React, Angular and Blaze.

What would it take to move Cordova support to a meteor-cordova (npm?) package?

@xet7

This comment has been minimized.

Copy link

commented Sep 11, 2019

@atomoc

According to Quora etc, all programming languages and web frameworks are dead. For examples about that discussion, see FLOSS 544 about Perl.

The fact is, most programming languages and web frameworks are alive, there is new releases all the time. There is a lot of software using Meteor, and they are developed all the time.

I did today release new version of Wekan that is made with Meteor. Wekan is running on thousands of servers all around the world. Wekan is translated to about 50 languages.

Wekan has huge amount of very advanced interconnected features. Rewriting Wekan would take many years. Not counting all other Meteor based software.

We just need more community effort to keep all these web frameworks going forward. It's not like there's anything wrong with Meteor, Meteor has many advanced features and there are bugs also at other web frameworks and other software.

I mean, I have been maintaining Wekan since 2016-12. I still have not completely figure out how all this Wekan advanced feautures that have been contributed by about 130 various Wekan contributors work specifically. It's beyond amazing what Meteor and Wekan contributors have done.

@xet7

This comment has been minimized.

Copy link

commented Sep 11, 2019

@atomoc

Yes, users do complain about loading app time.

That is because all that Meteor code makes possible all these advanced features, that you have already developed.

Changing web framework is not the answer.

The answer is to look where Meteor loads too much data from MongoDB to frontend, and then load less data with infinite scroll.

And in general, find where the bottleneck is, and fix that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can鈥檛 perform that action at this time.