My journey towards meteor 3.0

I also came across the following question: I get a lot of warnings from the Accounts package, since obviously methods such as Accounts.findUserByUsername still use fibers, and Accounts.findUserByUsernameAsync doesn’t seem to exists (yet?).

Is this on the roadmap?

There’s no problem when you have callback function in Meteor.call. But if you call the Meteor.call without callback, then you need to use Meteor.callAsync

1 Like

Hello @bratelefant, we have reviewed the packages you mentioned and have encountered some challenges, particularly with packages that utilize the kernel architecture, such as redis-oplog. Migrating these packages to the 3.0 version may be a complex and resource-intensive task, and we believe it should be approached in a methodical and organized manner to avoid duplication of effort.

Unfortunately, we are currently unable to begin this activity due to limitations in the alpha version, which does not allow for the compilation of third-party packages. As a result, we have been focusing our efforts on migrating to the asynchronous version of the server-side mongo, which has been a significant undertaking and has occupied us for several months.

We have not yet addressed the possible migration of the client, and there is some concern about the timeline for releasing our applications. At this time, we are unable to provide a specific release date.

1 Like

Which ones do you mean, and where do you see complex tasks? E.g. the Roles and Migrations package could be a rather easy one to transform. Also meteor-push shouldn’t be to complicated too.

redis-oplog rewrites kernel logic, which is not exactly easy to modify and test. Collection hooks also has some peculiarities to consider which must be examined carefully. I am concerned that many of us are modifying packages, which I consider to be standard, on their behalf and losing sight of sharing them.

1 Like

I think that’s true, since preparing a PR means potentially quite some extra work for those who are already at (over) 100% load… :wink:

Ok, for now i finished the transition of all of my methods and pubs and have tests for my methods and rest api. The remaining warnings on fibers are coming from accounts-base, meteor-files and monti. Looking really forward for those packages to get updated.

5 Likes

That is a great case study, thanks for sharing your experience.

1 Like

Congrats!

You might want to report it here: https://github.com/meteor/meteor/pull/12359

1 Like

Thanks for sharing. I already feel my gray hair growing when I read all of this.

2 Likes

Yeah, it’s not so much fun really…
I also noticed that memory consumption is quite a bit higher when everything’s changed to promises.

Got my async update up and running in my staging environment. Monti reports RAM usage of ~300mb in contrast to ~225mb when no sessions are active…

I‘m really curious what will happen here when I get some load on the server…

1 Like

Ok guys, I’m rolling out my update (still on 2.12, but with tons of internal changes moving from fibers to async). Keep your fingers crossed :wink:

4 Likes

The improvements in performance and stability are impressive. The build times have significantly decreased, making development much smoother and faster. I used to experience frustrating delays during the build process, but now it’s a breeze. Also, I think the support for the latest JavaScript features and packages has been a major boost.

3 Likes

How is it going? Are you still on 2.12? Are you considering 2.13? Have you tried using the 3.0 alpha?

1 Like

Sorry for the late reply. I actually came across several packages, including Accounts, that still caused fiber warnings. On some I did a PR (like roles) and some I replaced with my own code (like meteor-tenancy). Meteor files is also an important package I think.
I didn’t yet upgrade to 2.13. Will give it a shot on my staging env on scalingo to see if building the app works as expected

2 Likes

Keep me informed. We mentioned this post in the MeteorJS Dispatches podcast.

1 Like

I did post about my progress of upgrading WeKan to Meteor 3.0 alpha 15 here:

2 Likes

Brief update:

  • PR for Meteor-Files is in the making, beta is out.
  • The only remaining warnings with WARN_WHEN_USING_OLD_API=true come from the accounts-password package
  • Got some trouble with updating to alpha resp. beta (cf. this thread)
2 Likes

Great job. Keep up the good work! :clap: :clap:

Consider cross posting here for reference
https://forums.meteor.com/t/looking-for-help-migrating-packages-to-meteor-3-0/

Yay! Got the first boot up of my app on meteor 3.0 beta! Wow! Worked around this issue by removing and re-adding packages step-by-step.

First a got a bit stuck at aldeed:collection2, didn’t read that you need to import 'meteor/aldeed:collection2/static'; to keep things working as before.

Now I’m a bit stuck with this problem here, related to Meteor.userAsync() calls from within publications, that throw an error. Will try to get a minimal reproducible example ready.

1 Like