Meteor 3 (alpha 15): time to start packages' upgrades?

Hey, I just updated the quave meteor-template from Meteor 3 alpha 11 to alpha 15, and I believe now is a good time to start upgrading some packages as we have a lot fewer major bumps, as you can see in the logs (downgraded) of the upgrade command below.

I had stopped this work for quave packages due to these major bumps, but now it’s a good time for us to resume.

If you find other packages with unnecessary major bumps please report them.

➜  meteor-template git:(main) ✗ meteor update --release 3.0-alpha.15
                                                                                   
Changes to your project's package version selections from updating the release:
                                              
accounts-base               upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
accounts-passwordless       upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
allow-deny                  upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
autoupdate                  upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
babel-compiler*             downgraded from 8.0.0-alpha300.11 to 7.11.0-alpha300.15
babel-runtime*              downgraded from 2.0.0-alpha300.11 to 1.5.2-alpha300.15
base64*                     downgraded from 2.0.0-alpha300.11 to 1.0.12
binary-heap*                downgraded from 2.0.0-alpha300.11 to 1.0.12-alpha300.15
blaze-tools+                upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
boilerplate-generator       upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
caching-compiler            upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
caching-html-compiler+      upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
callback-hook*              downgraded from 2.0.0-alpha300.11 to 1.6.0-alpha300.15
check*                      downgraded from 2.0.0-alpha300.11 to 1.3.3-alpha300.15
core-runtime*               downgraded from 2.0.0-alpha300.11 to 1.0.0-alpha300.15
ddp*                        downgraded from 2.0.0-alpha300.11 to 1.4.2-alpha300.15
ddp-client                  upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
ddp-common*                 downgraded from 2.0.0-alpha300.11 to 1.4.1-alpha300.15
ddp-rate-limiter*           downgraded from 2.0.0-alpha300.11 to 1.2.1-alpha300.15
ddp-server                  upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
diff-sequence*              downgraded from 2.0.0-alpha300.11 to 1.1.3-alpha300.15
dynamic-import*             downgraded from 1.0.0-alpha300.11 to 0.7.4-alpha300.15
ecmascript*                 downgraded from 1.0.0-alpha300.11 to 0.16.8-alpha300.15
ecmascript-runtime*         downgraded from 1.0.0-alpha300.11 to 0.8.2-alpha300.15
ecmascript-runtime-client*  downgraded from 1.0.0-alpha300.11 to 0.12.2-alpha300.15
ecmascript-runtime-server*  downgraded from 1.0.0-alpha300.11 to 0.11.1-alpha300.15
ejson*                      downgraded from 2.0.0-alpha300.11 to 1.1.4-alpha300.15
email                       upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
es5-shim*                   downgraded from 5.0.0-alpha300.11 to 4.8.1-alpha300.15
facts-base*                 downgraded from 2.0.0-alpha300.11 to 1.0.2-alpha300.15
fetch*                      downgraded from 1.0.0-alpha300.11 to 0.1.4-alpha300.15
geojson-utils*              downgraded from 2.0.0-alpha300.11 to 1.0.12-alpha300.15
hot-code-push*              downgraded from 2.0.0-alpha300.11 to 1.0.5-alpha300.15
hot-module-replacement*     downgraded from 1.0.0-alpha300.11 to 0.5.4-alpha300.15
html-tools+                 upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
htmljs+                     upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
id-map*                     downgraded from 2.0.0-alpha300.11 to 1.2.0-alpha300.15
inter-process-messaging*    downgraded from 1.0.0-alpha300.11 to 0.1.2-alpha300.15
launch-screen*              downgraded from 2.0.0-alpha300.11 to 1.3.1-alpha300.15
localstorage*               downgraded from 2.0.0-alpha300.11 to 1.2.1-alpha300.15
logging*                    downgraded from 2.0.0-alpha300.11 to 1.3.3-alpha300.15
meteor                      upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
meteor-base*                downgraded from 2.0.0-alpha300.11 to 1.5.2-alpha300.15
minifier-css                upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
minifier-js                 upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
minimongo                   upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
mobile-experience*          downgraded from 2.0.0-alpha300.11 to 1.1.1-alpha300.15
mobile-status-bar*          downgraded from 2.0.0-alpha300.11 to 1.1.1-alpha300.15
modern-browsers*            downgraded from 1.0.0-alpha300.11 to 0.1.10-alpha300.15
modules*                    downgraded from 1.0.0-alpha300.11 to 0.19.1-alpha300.15
modules-runtime*            downgraded from 1.0.0-alpha300.11 to 0.13.2-alpha300.15
modules-runtime-hot*        downgraded from 1.0.0-alpha300.11 to 0.14.3-alpha300.15
mongo                       upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
mongo-decimal*+             downgraded from 1.0.0-alpha300.5 to 0.1.4-alpha300.15
mongo-dev-server*           downgraded from 2.0.0-alpha300.11 to 1.1.1-alpha.12
mongo-id*                   downgraded from 2.0.0-alpha300.11 to 1.0.8
npm-mongo*                  downgraded from 5.0.0-alpha300.11 to 4.16.1-alpha300.15
ordered-dict*               downgraded from 2.0.0-alpha300.11 to 1.2.0-alpha300.15
promise                     upgraded from 1.0.0-alpha300.11 to 1.0.0-alpha300.15
random*                     downgraded from 2.0.0-alpha300.11 to 1.2.2-alpha300.15
rate-limit*                 downgraded from 2.0.0-alpha300.11 to 1.1.2-alpha300.15
react-fast-refresh*         downgraded from 1.0.0-alpha300.11 to 0.2.8-alpha300.15
react-meteor-data*          downgraded from 3.0.0-alpha300.6 to 2.7.2
reactive-var*               downgraded from 2.0.0-alpha300.11 to 1.0.13-alpha300.15
reload*                     downgraded from 2.0.0-alpha300.11 to 1.3.2-alpha300.15
retry*                      downgraded from 2.0.0-alpha300.11 to 1.1.1-alpha300.15
routepolicy*                downgraded from 2.0.0-alpha300.11 to 1.1.2-alpha300.15
sha*                        downgraded from 2.0.0-alpha300.11 to 1.0.10-alpha300.15
shell-server*               downgraded from 1.0.0-alpha300.11 to 0.6.0-alpha300.15
socket-stream-client*       downgraded from 1.0.0-alpha300.11 to 0.5.2-alpha300.15
spacebars-compiler+         upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
standard-minifier-css*      downgraded from 2.0.0-alpha300.11 to 1.9.3-alpha300.15
standard-minifier-js        upgraded from 3.0.0-alpha300.11 to 3.0.0-alpha300.15
static-html*                downgraded from 2.0.0-alpha300.11 to 1.3.3-alpha300.15
templating-tools+           upgraded from 2.0.0-alpha300.10 to 2.0.0-alpha300.15
tracker*                    downgraded from 2.0.0-alpha300.11 to 1.3.3-alpha300.15
typescript*                 downgraded from 5.0.0-alpha300.11 to 4.9.5-alpha300.15
underscore*                 downgraded from 2.0.0-alpha300.11 to 1.0.14-alpha300.15
url*                        downgraded from 2.0.0-alpha300.11 to 1.3.2
webapp                      upgraded from 2.0.0-alpha300.11 to 2.0.0-alpha300.15
webapp-hashing*             downgraded from 2.0.0-alpha300.11 to 1.1.2-alpha300.15

                                              
* These packages have been updated to new versions that are not backwards
compatible.
                                              
+ In order to resolve constraints, we had to use experimental versions of these
packages.
meteor-template: updated to Meteor 3.0-alpha.15.

Commit:

Live here

1 Like

@storyteller are you following any process to apply upgrades to Community Packages?

For example, a versioning pattern for alphas, and betas? Or readme to document migration path?

It would be good if most of the packages followed the same conventions so devs would have the same way to analyze every package upgrade :slight_smile:

1 Like

Yes.

First step is to clear the update script. So for packages that need that I’m adding the 3.0-alpha.15 to the api.packagesFrom and releasing the package as X.Y.Z-alpha.x version. If there is a regular release then I’m also adding the compatibility with the alpha as an extra to the release for people to test.

Once we are past that, if needed we will start major version upgrades on the affected APIs.

what are the commands I should use to upgrade to 3.0-alpha.15?

When I run
meteor update --release 3.0-alpha.15
I get lots of errors

=> Errors while initializing project:         
                                              
While selecting package versions:
error: Conflict: Constraint caching-compiler@1.2.2 is not satisfied by caching-compiler 2.0.0-alpha300.15.
Constraints on package "caching-compiler":
* caching-compiler@~2.0.0-alpha300.15 <- top level
* caching-compiler@2.0.0-alpha300.15 <- caching-html-compiler 2.0.0-alpha300.15 <- static-html 1.3.3-alpha300.15
* caching-compiler@1.2.2 <- less 4.0.0

Conflict: Constraint webapp@1.12.0 is not satisfied by webapp 2.0.0-alpha300.15.
Constraints on package "webapp":
* webapp@~2.0.0-alpha300.15 <- top level
* webapp@2.0.0-alpha300.15 <- meteor-base 1.5.2-alpha300.15
* webapp@2.0.0-alpha300.15 <- routepolicy 1.1.2-alpha300.15 <- ddp-server 3.0.0-alpha300.15 <- ddp 1.4.2-alpha300.15 <- accounts-base 3.0.0-alpha300.15
* webapp@2.0.0-alpha300.15 <- routepolicy 1.1.2-alpha300.15 <- webapp 2.0.0-alpha300.15 <- meteor-base 1.5.2-alpha300.15
* webapp@2.0.0-alpha300.15 <- ddp-server 3.0.0-alpha300.15 <- ddp 1.4.2-alpha300.15 <- accounts-base 3.0.0-alpha300.15
* webapp@2.0.0-alpha300.15 <- autoupdate 2.0.0-alpha300.15 <- hot-code-push 1.0.5-alpha300.15 <- meteor-base 1.5.2-alpha300.15
* webapp@2.0.0-alpha300.15 <- mongo 2.0.0-alpha300.15
* webapp@1.12.0 <- simple:json-routes 2.3.1
* webapp@1.9.1 || 1.11.0 <- mizzao:timesync 0.5.3 <- mizzao:user-status 1.0.1
...

I think you’re using the right command. The problem here is you have these packages which are not compatible with new webapp package.

* webapp@1.12.0 <- simple:json-routes 2.3.1
* webapp@1.9.1 || 1.11.0 <- mizzao:timesync 0.5.3 <- mizzao:user-status 1.0.1
1 Like

the solution was to remove the @1.2.3 form all entries in .meteor/packages. Most packages are update but some external packages do not work. What is the strategy find the compatible community packages?

Depends on the package. First check the ones that give you trouble for beta releases if they are working on 3.0 support. If not file an issue on the repository. If you need it urgently, then fork the package, add it locally to your app, then update to depend on the 3.0 alpha release, then fix any issues and finally submit a PR back to the original package.

Is there somewhere an instruction how to do that?

Yes:
https://guide.meteor.com/writing-atmosphere-packages.html#overriding-atmosphere-packages

A quick guide:

  1. Create a packages directory in the root of your app.
  2. Clone the problem package into that directory.
  3. Bump the patch version of the package in package.js, that will ensure that your local package for sure overrides the online one.
  4. Change anything you need and test with your app.
  5. Submit PR with your fixes back to the original project.
  6. Remove the local package once a release with your fixes is published.
3 Likes