Meteor 3.0-rc.1 is out!

We have a new release: meteor 3.0-rc.1

Hello everyone! Here we have one more update for Meteor 3! :tada: :rocket:

Breaking change:

  • All modules now use strict mode (discussion about it)
    • We had one or two reports with this the error ReferenceError: App is not defined while creating a code like:
      import SimpleSchema from "simpl-schema";
      
      App = {}
      
      This happens because now, with TLA enabled, Reify enables strict mode to all modules. This is something the spec requires.

Fixes:

  • Cordova development in Meteor 3.x has been fixed. [PR]
  • Fixed error next.runImage.call is not a function [PR]
  • Svelte projects are confirmed to work in Meteor 3.x. Remember to use zodern:melte and migrate any third-party packages.
  • Vue projects are confirmed to work in Meteor 3.x. Make sure to use jorgenvatle:vite-bundler and migrate any third-party packages.
     meteor npm i -D vite@4
     meteor npm i meteor-vite
     meteor add jorgenvatle:vite-bundler@2.0.0-beta.12 --allow-incompatible-update
    
  • Added changes from the 2.16 release. Check them out for details

How to test it?

Existing projects:

meteor update --release 3.0-rc.1

Starting a project:

meteor create app-name --release 3.0-rc.1

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.

14 Likes

The glitch documented here is still present in rc.1.

2 Likes

Yes, we are going to look into this in this next RC!

1 Like

Congratulations! Is Blaze and FlowRouter compatible and ready to go?

Coming back to Meteor after last using it 5 years ago.

2 Likes

That’s great, Christopher. Can you tell us one or two of the reasons you are returning to Meteor?

My day job is google integrations and tactical scripts with Appscript and Javascript.

As a result my time is not focused on full stack. Meteor and Blaze are the fastest way to spin up a solution that requires a reactive front end and a data backend, without me having to keep up-to-date with 15 frameworks I might need if I was full stack developing without it.

I was reluctant to use it whilst it was using a non supported Node version for liability reasons.

1 Like

Please make allow deny handle async functions. It’s a core meteor feature

Did you mean something like this:

  collection.deny({
    insert() {
      return true;
    },
    update() {
      return true;
    },
    remove() {
      return true;
    },
    insertAsync() {
      return true;
    },
    updateAsync() {
      return true;
    },
    removeAsync() {
      return true;
    },
  });

It is already possible.

Now add async in front of insertAsync() and return await Meteor.userAsync() and it’ll not work

1 Like

I am converting my app to 3.0. Since 3.0 was in a rc phase, I thought it was close enough that I could finish the migration. However I’m finding a few community packages are still not 3.0 compatible (Though they do have in-progress PR’s), which is going to block a 3.0 migration. Do you know where on the roadmap it would be to make sure community packages are 3.0 compatible? If not by the time 3.0 releases?

I did trim the fat in my app and removed/replaced several unmaintained packages, but with community packages I’m not sure I should do that.

Which packages are holding you back?

Here’s a Google Sheet where the community is keeping track of 3.0 compatibility. (Thanks again to @harry97 for putting it together)

4 Likes

Glad to find someone other than me using this sheet. This whole 3.0 transition show me the true plight of open source.

1 Like

Thanks, the 2 I’m stuck on are
matb33:collection-hooks and mizzao:user-status

But I’m sure this afflicts other packages too.

I’m trying to use a .babelrc with my upgraded 3.0-rc based project and it seems to be being ignored. I have:

{
  "plugins": [
    "@babel/plugin-transform-private-methods", { "loose" : true } 
  ]
}

And am still getting the error “Class private methods are not enabled. Please add @babel/plugin-transform-private-methods to your configuration.”

Am I doing something wrong (more likely, I’m sure!) or could .babelrc support be broken?

I’ve been upgrading my app from 2.7.3 all the way to 2.16 with success at each version. Very happy!

Now, I’m trying to test out:

meteor update --release 3.0-rc.1

but I hit this error every time - for a couple of days now:

Unable to update package catalog (are you offline?)
                                              
If you are using Meteor behind a proxy, set HTTP_PROXY and HTTPS_PROXY environment variables or see this page for more details:
https://github.com/meteor/meteor/wiki/Using-Meteor-behind-a-proxy
                                              
=> Errors while initializing project:         
                                              
While selecting package versions:
error: Conflict: Constraint blaze@2.0.3 is not satisfied by blaze 3.0.0-alpha300.17.
Constraints on package "blaze":
* blaze@3.0.0-alpha300.17 <- launch-screen 2.0.1-rc300.1 <- mobile-experience 1.1.2-rc300.1
* blaze@3.0.0-alpha300.17 <- blaze-html-templates 3.0.0-alpha300.17
* blaze@3.0.0-alpha300.17 <- spacebars 2.0.0-alpha300.17 <- templating-runtime 2.0.0-alpha300.17 <- templating 1.4.4-alpha300.17 <- blaze-html-templates 3.0.0-alpha300.17
* blaze@3.0.0-alpha300.17 <- templating-runtime 2.0.0-alpha300.17 <- templating 1.4.4-alpha300.17 <- blaze-html-templates 3.0.0-alpha300.17
* blaze@2.0.3 <- kadira:blaze-layout 2.0.1
* blaze@3.0.0-alpha300.17 <- accounts-base 3.0.0-rc300.1

Do I have to update Blaze separately perhaps?

I have an npm package that requires node >= 18, but Meteor 2.16 is still on node 14.21.4

I am using GitHub - mikeborozdin/http-streaming-request exactly as described in it’s readme (to talk to OpenAi, but for me, Ollama installed locally) and it is exactly what I need.

Or will the upgrade to Meteor 3.0-rc.1 be better tried if I try to upgrade from an earlier version, rather than where I am currently with 2.16?

I suppose I could wrangle my own version of the streaming-request npm package, but … :slight_smile:
Any ideas, anyone?

Thanks!

Hi,

The problem is with the package kadira:blaze-layout. It requires blaze@2.0.3 but meteor needs blaze@3.x.x

You should look at kadira:blaze-layout to see if there is a new version or put it in your local packages folder and modify it

Blaze Layout is just a peer dependency of kadira:flow-router. Maybe you go switch to ostrio:flow-router-extra to drop kadira:blaze-layout. The ostrio router also enables yielding render targets.

1 Like

@jkuester @harry73
Thanks gents.

I already had the ostrio:flow-router-extra package installed.
I removed the kadira:blaze-layout package.
Then, I had to change BlazeLayout.render(… to this.render(… in the action() function of FlowRouter routes, but that now gives me a this.render is not a function error message.

I wrote a whole screed of code outlining my problems, but I’ll stop here and create another thread.

Thanks again

1 Like

I tried upgrading but got this error.

meteor update --release 3.0-rc.1 

=> Errors while initializing project:                                              
                                              
While selecting package versions:
error: Conflict: Constraint typescript@3.7.0 || 4.1.2 || 4.1.2 || 4.3.2 is not satisfied by typescript 5.4.3-rc300.1.
Constraints on package "typescript":
* typescript@~5.4.3-rc300.1 <- top level
* typescript@5.4.3-rc300.1 <- logging 1.3.5-rc300.1 <- email 3.0.0-rc300.1
* typescript@3.7.0 || 4.1.2 || 4.1.2 || 4.3.2 <- react-meteor-data 2.7.2```

Edit: Found workaround, it was being held back by react-meteor-data and needs update

meteor add react-meteor-data@3.0.0-rc.0
meteor update --release 3.0-rc.1 
2 Likes

@bradzo
(cc @jkuester, @harry97)

There is a maintained BlazeLayout package pwix:blaze-layout. We use that in production and the package maintainer has just merged our PR for Meteor 3.0 compatibility.