Recently my Second Meteor App Broke because of Updates

Recently my Second Meteor App Broke because of Updates.

Is there a way to resolve this? I mean write the App and do not worry about updates
or Dependencies?

Thank you in advance.

Evolving a framework without breaking changes is a big challenge, but we usually don’t have this directly related to Meteor. It is common for packages to no longer be maintained and this can break your application.

What we recommend is following recent releases as closely as possible. And carefully read our changelog and migration docs when updating your app.

I understand, but is there no method that could make your Project Independent?

For example if I copmleted my Project, that does use external Packages and the Meteor Packages
cant I Download everything to my Local Machine? So that it will not brake if there any Update get released of Meteor or of any Package?

So that I could just Copy/Paste the whole App from one PC to Another?

E.g. today my PC at Office Broke… And I wrote an App for Saving ALL of our Passwords that are used internaly in company. Mails, Users for Servers, Internal CRM App…

After I copied the Project to Another PC it had many errors…

Did I done something wrong? Maybe you DO provide solution but I did not Found it in your Docs?

I really love the logic of the meteor.js…
But unfortunately I fear to use it, because from one day to another the App just might brake.

I understand that it is good to Evolve… But when we (devs) develop multiple Project, we don’t have time to maintain frequent the Completed Projects… idk…

This is the reason I stopped using Wordpress… Updates, plugins Deprication…

Is it possible to create a command to Download Locally all the dependancies AND the Meteor.js
so that despite the Meteor core Updates the Version for project Project will always stay the same
in case of a transfer of the Project to another machine?

Thank you

As you mentioned all other frameworks and platforms also continue to provide updates.

The only way to to ensure that everything stays the same is for you to code everything yourself or copy the code and make things run locally. Given today’s complexities and emerging security threads, updating things is required and always will be necessary, just to remain secure.

Now for Meteor if it is such a bother to update, then just don’t run the update command. Problem solved. If you don’t run the command even if you transfer the code to another machine it will download the version of packages for that given version.

If you want even more control you can copy all the packages into the packages directory so that you always use the local version. If you want even to have a stale local copy of Meteor, just clone the Meteor repository and run your app from it ../path/to/meteorDir/meteor run and then you have it without relaying on anything online.

Sir, that is excactly what I was looking fo but did not knew how to achieve this or even if it is possible at all?

  1. So “copy all the packages into the packages directory”
    could you provide more information?
    So should I go to git of each package and copy them ____ where?

  2. "clone the Meteor repository and run your app from it ../path/to/meteorDir/meteor"
    Did not thought of it… so really it will function without any need to communicate with meteor server?
    So meteor is 100% open-source?

Thank you.

  1. you will need to make sure that you have the actual package files and not files that can be around the package in repositories. Look for package.js file to determine that
  2. Yes, Meteor is open-source. For more info you can see the development instructions in the Meteor repository. It might still try to communicate with packaging server to check if there is a new version for Meteor, but if not possible then it will not care and still work. I do recall that there is are ways to disable that as well.

Regarding the 1
if we take it step by step:
a. Open the Git of the Package.
b. Download it locally.
c. Where should I paste the files of Package and how should I include the Package into the App?

In some “boot” file?

I assume I will not use the package.js anymore for Importing these packages.

Wrong, once you copy the package into the packages repository it will take precedent over any other source. You need the package.js as that one defines the package. Without it, it looks to Meteor just like a folder with some files that it doesn’t know anything about.

So in what folder should I copy the files of a Package, can you specify the Path please?

Here is a sample packages folder with socialize:requestable as a local package:

1 Like

So there is a folder named packaged on the same level with the server folder?

And how you tell the app to use this folder as a source for the packages?
Or meteor undrstands it from the name of the folder?

Yes, it is written in the guide:

More on this also in the guide:
https://guide.meteor.com/writing-atmosphere-packages.html#local-packages

Meteor understands local packages from their definition in package.js

2 Likes

And how to tell to Meteor that the package is locally downloaded? Is there any command for it in packages.js ? Or this is also recognised automatically?

Is there any syntax for that?

As I said, it is recognized automatically. If you have a package of the same name in your local packages directory it will take precedent over anything else.

1 Like

thank you for the information sir

@storyteller Thaaanks a lot for this info, It’s also interesting for me, when I’m developing/testing my own meteor packages :slight_smile:.

1 Like