Meteor.js v3.0.3 is out! 🎉

Hello everyone, we are happy to announce that Meteor v3.0.3 is out! :tada:

In this release, we focused on performance research to understand some of the isolated reports we received. @nachocodoner will soon share some of our findings and benchmarks in a post.

From that research, we extracted a few potential actionable ideas to improve Meteor 3 performance:

  1. Implement batching Observer > DDP calls can greatly reduce the amount of async contexts (Async Local Storage) we spawn, thus relieving garbage collection.
  2. You can disable WebSocket message compression to get a significant boost in performance depending on your app behavior if it’s heavy on reactivity.
  3. We must move away from ALS in high-frequency hotspots and use it sparingly.

We want to experiment with DDP batching in the next releases. If you have any feedback or ideas on it, let us know.

We also have a few notes that we would like to share after investigating a few issues:


If you’ve had your Meteor installation for over a year, we suggest reinstalling it to avoid any package installation issues. You can do this by running a few quick commands:

npx meteor uninstall // or rm -rf ~/.meteor
npx meteor

You can read more on it here.


Some packages seem to be improperly changing async context behavior, by using withValue in the wrong order, be sure to implement the correct behavior in your package. You can find more info here.


We have upgraded Cordova, here’s a few recommendations:

Cordova Upgrade Notes

  1. Update Java:
    Upgrade to Java 17. If you encounter issues, make sure to update your JAVA_HOME environment variable accordingly.

  2. Gradle Update:
    If you’re facing setup issues, upgrade Gradle to version 8.7.

  3. Android SDK Requirements:
    Android SDK 34 is now the minimum required version for app stores. To configure this, add the following line to your mobile-config.js file:

    App.setPreference('android-targetSdkVersion', '34');
    

Tasks and issues done in this release:

  • Fix Meteor.userId only being invoked with bindEnvironment
  • Upgrade cordova to latest compatible versions
  • Update to Node 20.17.0
  • Meteor 3 --open opens the browser before the app is started
  • Investigate error when installing package jam:method
  • Update the new available version message when running an app
  • Update docs link inside install.sh
  • Subscription stopping after parameter change
  • Add MongoDB connection telemetry
  • Bump email package so update errors don’t occur

We want to give a special thank you to the community for helping solve these issues:

:heart:

How to try it?

Installing Meteor

npx meteor

Existing projects:

meteor update --release 3.0.3

Starting a project:

meteor create app-name --release 3.0.3

Your help testing this version by creating a new app or migrating your current one will be extremely helpful!

Please give us your feedback, and if you find any issues, you can create a post here or open an issue on GitHub .

Next Releases

  • Meteor 3.0.4 (Early-October, 2024)
  • Meteor 3.0.5 (Mid-October, 2024)
13 Likes

Nice!

Sadly this morning I got swamped with dependabot demanding that I upgrade my express and related packages in my apps.

Started the work here:

Maybe it might be worth a while do to either do an independent release of the webapp package or get a patch release asap.

1 Like

I remember following this PR from @koenlav who was tackling this issue. Not sure if it’s still the best approach and it’ll no doubt need adapting to Meteor 3.

2 Likes

Thanks, @storyteller. Please let us know if you need anything from our side. Is the PR ready to be merged?


Amazing, @marklynch. This should help a ton!

Published the post about Meteor 3 performance, Meteor 3 Performance: Wins, Challenges and the Path Forward

1 Like

As part of this release, we updated the Cordova documentation to reflect the new Play Store requirement for Android SDK 34 and to begin migrating to the new documentation system.

The existing documentation is still valid, but the move to the new v3 docs allows us to simplify. Currently, we cover a quick start guide for setting up your environment, using development mode, and building artifacts for production. More updates will be included in future releases.

2 Likes