Updating Meteor packages - how to overcome the constant restrictions?

No matter which package I update it fails with some constraint from a downstream dependency. How do you guys do it?

meteor list
accounts-base                1.9.0* A user account system
accounts-password            1.7.0* Password support for accounts
audit-argument-checks        1.0.7  Try to detect inadequate input sanitization
check                        1.3.1  Check whether a value matches a pattern
dynamic-import               0.6.0* Runtime support for Meteor 1.5 dynamic import(...) syntax
ecmascript                   0.15.1* Compiler plugin that supports ES2015+ in all .js files
ejson                        1.1.1  Extended and Extensible JSON library
email                        2.0.0* Send email messages
lmieulet:meteor-coverage     3.2.0* Server and client coverage for Meteor
logging                      1.2.0* Logging facility.
matb33:collection-hooks      1.0.1* Extends Mongo.Collection with before/after hooks for insert/update/remove/find/findOne
meteor-base                  1.4.0* Packages that every Meteor app needs
meteorhacks:ssr              2.2.0  Server Side Rendering for Meteor with Blaze
meteortesting:mocha          2.0.2  Run Meteor package or app tests with Mocha
mongo                        1.11.0* Adaptor for using MongoDB and Minimongo over DDP
montiapm:agent               2.44.2  Performance Monitoring for Meteor
random                       1.2.0  Random number generator and utilities
reload                       1.3.1  Reload the page while preserving application state.
shell-server                 0.5.0  Server-side component of the `meteor shell` command.
simonsimcity:job-collection  1.6.1  A persistent and reactive job queue for Meteor, supporting distributed workers that can run anywhere
standard-minifier-js         2.6.0* Standard javascript minifiers used with Meteor apps by default.
tmeasday:publish-counts      0.8.0  Publish the count of a cursor, in real time
underscore                   1.0.10  Collection of small helpers: _.map, _.each, ...
xolvio:cleaner               0.4.0  Gives you methods to clear your Mongo database and collections for testing purposes
yuukan:streamy               1.4.1  Simple interface to use the underlying sockjs in a meteor application

Can you paste here the error you get? Also what Meteor version are you on?

Usually if the issue comes from unmaintained package I just fork it locally and fix it and in all cases try to provide a PR with the fix.

1 Like

Meteor version 2.2.1 currently and I wanted to update the packages individually but there are always some constraints.

I’ve managed to update to version 2.4 now.

The following top-level dependencies were not updated to the very latest version available:
 * lmieulet:meteor-coverage 3.2.0 (4.0.0 is available)

Newer versions of the following indirect dependencies are available:
 * blaze-tools 1.0.10 (1.1.2 is available)
 * html-tools 1.0.11 (1.1.2 is available)
 * http 1.4.4 (2.0.0 is available)
 * spacebars 1.0.15 (1.2.0 is available)
 * spacebars-compiler 1.1.3 (1.3.0 is available)
These versions may not be compatible with your project.
To update one or more of these packages to their latest
compatible versions, pass their names to `meteor update`,
or just run `meteor update --all-packages`.
If the packages do not upgrade after this, this could mean
that there is a newer version of Meteor which the package
requires, but it not yet recommended or that some package
dependencies are not up to date and don't allow you to get
the latest package version.

But now my app isn’t starting anymore:

W20210929-19:03:34.638(2)? (STDERR) /Users/andreaswest/.meteor/packages/promise/.0.12.0.1wc6isc.wd5j++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/meteor-promise/promise_server.js:218
W20210929-19:03:34.639(2)? (STDERR)       throw error;
W20210929-19:03:34.639(2)? (STDERR)       ^
W20210929-19:03:34.640(2)? (STDERR) 
W20210929-19:03:34.640(2)? (STDERR) TypeError: Cannot read property 'stream_server' of undefined
W20210929-19:03:34.640(2)? (STDERR)     at Object.Streamy.init (packages/yuukan_streamy.js:578:25)
W20210929-19:03:34.641(2)? (STDERR)     at onStartup (packages/yuukan_streamy.js:862:11)
W20210929-19:03:34.641(2)? (STDERR)     at Function.time (/Users/andreaswest/Documents/workspace/test2/.meteor/local/build/programs/server/profile.js:273:30)
W20210929-19:03:34.641(2)? (STDERR)     at /Users/andreaswest/Documents/workspace/test2/.meteor/local/build/programs/server/boot.js:415:15
W20210929-19:03:34.642(2)? (STDERR)     at /Users/andreaswest/Documents/workspace/test2/.meteor/local/build/programs/server/boot.js:465:7
W20210929-19:03:34.642(2)? (STDERR)     at Function.run (/Users/andreaswest/Documents/workspace/test2/.meteor/local/build/programs/server/profile.js:280:14)
W20210929-19:03:34.642(2)? (STDERR)     at /Users/andreaswest/Documents/workspace/test2/.meteor/local/build/programs/server/boot.js:463:13
=> Exited with code: 1
=> Your application is crashing. Waiting for file change.

It looks like

yuukan:streamy

is the culprit for your error. The issue seems to be coming from this location. Not really sure why though.

Try updating all the remaining packages:

meteor update --all-packages

and

meteor update --allow-incompatible-update

Let’s see if that helps. If not, we’ll have to dive more deeply into the streamy package.

1 Like

Updates 4 packages but doesn’t solve the error :frowning:

As expected, but now we at least know that it wasn’t related to one of those.

Strange, it looks like Meteor.server is not up. :thinking:

Not sure if this helps:

yuukan:streamy@1.4.1
├── check@1.3.1 (top level)
├── mongo@1.13.0 (top level)
├── reactive-var@1.0.11 (expanded above)
└── underscore@1.0.10

What is your usage of this package GitHub - YuukanOO/streamy: Use meteor underlying sockets for realtime communications?

Could you create a reproduction?

I seems that this runtime is another problem, not related to you not being able to update packages because of version restrictions.

The package is used for communication from out Meteor backend server to the frontend (to give feedback to the user). It’s essential for our app and unfortunately it stopped working after upgrading to version 2.4 (I did no other change). So yes, it’s a different topic, shall I open a new forum post for it?

Probably best to open issue on the streamy repository and if you don’t get reply there link to it from the forums. Maybe someone has a fix already.
In either case it would help us tremendously if you could provide a small reproduction of the issue so that we have a place to play with it for fixing.

2 Likes

Maybe this answer in another topic could provide you some insights in how to fix this problem.

I believe it’s a very similar root cause, some package using the core internals in a different way.

If you provide a reproduction I can also help trying to find the root cause and maybe providing a fix.

Thanks RJ. But I don’t understand how this solves my problem. I don’t use “default_server” or “default_connection” in my source code and I don’t see a new version of “streamy”.

Better to try checking out the branch with the fix to your packages folder and see if the compatibility fix created for Meteor 2.3 solve your issue

2 Likes

Hi, provide a reproduction so we can help you finding the root cause and fixing it :wink:

Sorry Filipe,

as a 1 man company now I don’t have time for such.

I will see if RJ’s suggestion helps and otherwise will stay on Meteor 2.2.1 which is working fine for me (never change a running system)

Hi, I understand how hard is to run a company alone but without a reproduction it’s hard for us to understand your problem and help you.

Also, I just posted something that I believe will help you in the long term here Introducing Meteor Compat Packages