I try to port some of my packages to the new meteor 0.9 rc.
2 of 3 did work, the 3rd has a hack in it which does work when installed via meteor add.
Is there a way to remove a published package from the meteor package server? I don't want a broken package in the repository.
It's currently impossible to remove published packages on meteor's packaging server and on atmosphere.
What you could do however is create a new version that has a empty Package.onUse. And a comment why it's empty. This makes your package inert and ensures you that you won't break anyones project.
Late edit:
You can now hide it from the search results with set-unmigrated
meteor admin set-unmigrated YOURPACKAGE
It is not possible to remove the package from atmosphere.js but it is possible to hide using .
meteor admin set-unmigrated PACKAGE-NAME . but this will not prevent users from adding the package in their project using . meteor add PACKAGE-NAME .
In this case it makes sense to put empty Package.onUse and update the package as highlighted by Marco in his answer.
Related
I'm new to developing with Meteor and node-based apps.
I intend to create a PR for a problem i noticed in Rocket.Chat.
I git cloned the Rocket.Chat dev branch and made a change to a certain file:
https://github.com/RocketChat/Rocket.Chat/blob/develop/packages/rocketchat-oembed/client/oembedImageWidget.html
After that i ran the build-script successfully. My build started, but the change is not included.
Using the Chrome Dev Tools to inspect the change, i still see the original unchanged code.
I know it's a rather generic question and i'm sure the solution is kind of stupid, but any idea why ?
Thank you.
Kind regards
It looks like the file you modified is in the packages directory. This is dealt with differently.
Check the .meteor/packages files to see if this package is referenced, if it is, then it will install the package from the atmosphere package management system.
Here the steps required to make your changes work...
1) Edit the .meteor/packages file and change the reference to rocketchat:oembed to be simply oembed
2) Edit the file packages/rocketchat-oembed/package.js and do the same thing, change rocketchat:oembed to be simply oembed
Package.describe({
name: 'oembed',
version: '0.0.1',
summary: 'Message pre-processor that insert oEmbed widget in template',
git: ''
});
I think you can leave the directory names as is.
Meteor will now use your local package instead of going out to get the published version of it
In addition to #Mikkel's answer: I think you don't have to change package name, but just change its version. That should be enough for Meteor to rebuild this package from its source and you won't have any dependency issues.
I am developing a small meteor package, and I know that, to be consistent with the builds, meteor will create a .versions file in my package when I publish it.
That's fine, and I understand that, but, as the .versions should go in my version control (git) and I would like to commit the release before publishing it, is there a way to update the .versions package before publishing?
Also, the .versions file has a reference to the package itself. Is this necessary? If I'm developing version x.y.z of a package, why do I need to update both the package.js and the .versions file to reflect x.y.z?
Thanks,
Oliver
I don't think there's a need to add it to version control b/c I don't think the set of calculated versions means anything in a stand-alone package outside of the context of a meteor project. I'm not really sure what the file is used for at all since it doesn't show up in .meteor/packages when you install the package. It might just be nothing more than a by-product of running the solver.
So I never check .versions into version control and I haven't encountered any problems.
I am trying to use meteor typeahead package in my project. It has some issues with it, so the developer asked me to create a local PR and use it. The thing is that I don't know how to create a local PR. Do I need to create a local package and then add it to my project, etc. I cloned the repository to my local machine, and changed the code that I need, but I don't know what to do after this. Can somebody help me with this please.
Thanks
After you cloned the package just copy all the files in a packages/name_of_the_package folder of your Meteor project.
You can also create a symbolic link between the package folder and the package folder in the Meteor project. So all changes are automatically reflected.
Then, add it as usual with meteor add name_of_the_package or by modifying the .meteor/packages file. Meteor will look in priority in the local package folder instead of the official repository.
Create a fork of the desired repo.
Clone your fork of the repo as a sub folder of the "packages" folder within your app.
Remove the atmosphere package by performing a meteor remove some:package
Add the package back, just as you normally would, with meteor add some:package. Meteor will find the local copy and use it, instead of downloading the package from Atmosphere.
Make the desired code changes, testing it before you commit.
Commit your changes to Github.
Create a pull request within the fork on Github.
I have installed http://atmospherejs.com/mrt/natural by 'meteor add mrt:natural' (I am using Meteor 0.9.1). It seems to be installed ok, but the 'usage' says to simply call :
natural = Natural
This doesn't work when applied on the server or client side. I'm sure this must be so obvious as I can't see anyone else having the problem...
Yes, I am pretty new to Meteor.
This package doesn't seem to be maintained (last update 6 Jun 2013). There's also no need for it to be, since it's a simple wrapper for a Npm package, which can be now loaded in a better way.
Add npm package to your app with
meteor add meteorhacks:npm
and then create packages.json file with natural specified as per documentation. Then you'll be able to require natural with Meteor.npmRequire('natural');.
I can add a package to a custom checkout of meteor as outlined in How to build a Meteor smart package
But this doesn't really work when developing with others.
I'm wondering if there's a way to do it within a project? A-la the old Rails vendor/plugins? If not, perhaps it could be something the devs might want to implement..
If you need others to use your package but you don't want your package in Meteor, then you could just fork the Meteor repo and work on your fork instead of Meteor itself. That way, the others can clone your repo instead of Meteor...