I've published a few packages in beta state to Atmosphere. Now, in development it turned out some of them are useless (they were consumed by another one). How can I unpublish them?
There is a temporary, undocumented way to do this:
Log into the atmosphere website with the same details you used to publish your package then in your javascript console in chrome, safari or firefox run:
Meteor.call("deletePackage","<your package name>",function(err,result){
console.log(result || err)
});
Replace <your package name> with the name of your package, the same that you could run mrt add <your package name> with.
It doesn't seem like there is a way to do this right now. The only non-local functions are publish and release:
https://github.com/oortcloud/meteorite/blob/master/lib/meteorite.js
However, I agree that this is a feature that definitely needs to be added, so that at least some people who want to clean things up have the ability to do so. Otherwise we'll end up in package hell like npm :)
You should open an issue in the meteorite repo.
I think you just remove them from your smart.json file manually and it will "unpublish" them
Related
I am really new to Julia and confused about using an old version of the SISL Vec package.
I am trying to setup ngsim_env and their instructions require you to use an older v0.1.0 of Vec. But, when I followed the instructions to install the Vec package and then checkout the v0.1.0 tag it didn't work.
Here's what I did
$ julia ../build.jl for some package which includes this block
packages = keys(Pkg.installed())
if !in("Vec", packages)
Pkg.clone("https://github.com/tawheeler/Vec.jl.git")
end
Note: This git URL actually goes to the SISL Vec page.
cd ~/.julia/packages/Vec
git fetch tags
git checkout v0.1.0
I did a bunch of other installations with many other packages. At some point I noticed that there is a package ~/.julia/dev/Vec and ~/.julia/packages/Vec. The one in dev has the correct v0.1.0 code and the one in packages has the newer wrong code. When I tried to use other packages that needed the older Vec they were throwing errors and the paths were to files in the packages directory.
I tried Pkg.rm("Vec"). This did something to the project manifest. After nothing worked, every package would throw errors like KeyError: key "Vec" not found and Pkg.add("Vec") nor original Vec installation helped. I even tried removing both the Vec directories from ~/.julia but that didn't help.
I guess a big question is why does Julia put some packages into packages/ and others into dev/ and how to control which one's get used if the same package appears in both places like Vec is.
Would greatly appreciate any assistance, totally confused.
The dev command fetches a full clone of the package to ~/.julia/dev/
via the docs. The only things I have in my dev directory there are the ones I am developing on my own.
I think that triggered when you did a check out manually with git checkout.
Accordingly:
to stop tracking a path and use the registered version again, use free
Try deleting the packages, and whipping mentions of Vec.jl from your manifest:
(v1.0) pkg> rm Vec
(v1.0) pkg> add https://github.com/tawheeler/Vec.jl.git#0.1.0
In general, try using Pkg when possible, cause it does a lot of house keeping magic in the back
(Also, the repl interface with pkg makes everything easier, so hit ] from a blank julia> to get there. And a quick Pkg.status() or ] st will show you what youre tracking and whats in dev and what version you have pinned, etc.)
I am trying to follow this tutorial, in order to install the Nix package manager in my home directory instead of /nix.
I am doing the PRoot installation (see 2. in tutorial). At the end, the
tutorial proposes to be smart in Building native packages section, to be
able to run packages without PRoot:
To run packages natively (without PRoot) they have to be build from source because all paths to the nix store are hard-coded. It is simple, really:
mkdir $HOME/nix
nix-channel --update
env NIX_STORE_DIR=$HOME/nix nix-env -i nix
And now your Nix store gets built up using the new paths. The built binaries can be run directly from there.
I did that, but I don't see how it frees me from PRoot. If I don't do the /nix mounting point with PRoot, nothing works (no nix-env executable,
I can't install new packages).
Should this NIX_STORE_DIR environment variable be put in my .bashrc ?
It seems I always need to run PRoot because ~/.nix-profile points to
a /nix/... directory:
.nix-profile -> /nix/var/nix/profiles/default
There are more steps in the tutorial (5., 6.) - should I follow them ? It seems they apply only in case of using the manual installation (step 4.),
although it is not explicit.
Any help would be appreciated :)
For anyone stumbling on this old question: there is no currently supported way to install Nix without root. The above wiki was moved to https://nixos.wiki/wiki/Nix_Installation_Guide . It may well be out of date. PRoot could work, but even then, rebuilding the whole store at a different path is not a good idea, not the least because the binary caches won't help and you'll need to build everything.
I suggest trying Nix in a virtual machine or cloud server.
Future people from Google, it's still unsupported but does work. Script here that installs a couple dependencies, builds a temporary Nix, and uses that to install a proper version in your directory of choice.
I'm getting the following error when after installing my Meteor app (developed on an older version of Meteor) on Meteor version 1.2.0.1:
ReferenceError: Random is not defined
Offending line:
Players.insert({name: names[i], score: Math.floor(Random.fraction()*10)*5});
I've never had a problem with this line of code before and according to the docs this should still work.
Any ideas?
You've got to install the random package, it's not installed by default anymore. A simple meteor add random will suffice.
Some basic packages were removed from Meteor to reduce its initial footprint. Perhaps if you run meteor add random your issue will be solved. The update process was supposed to detect your use of Random and automatically install the package but perhaps it slipped through.
If you are working inside of a package, you may need to add random#1.0.4 to your api.use().
For a list of packages that are no longer installed by default, see this link: https://quip.com/RXFlAk9Rc2xI . It also contains some other interesting notes about the update.
Seems like something that would have been asked/answered already but I cannot find anything related to this.
I have some CSS files that came with some packages. I want to not utilize a particular CSS file. Everything else in the package is great, but I'm having to use a lot of specificity to override the default styles it launches with, and it just seems hacky to override instead of remove.
I also don't want to just delete the file because I will likely want to update this package as new versions are released.
Is there some Meteor.ignore('thatCssFile.css') method of doing this?
The simplest way is probably to fork this package on github and clone it (git clone https://github.com/author/package.git package-clone) as a local package of your app (in my-app/packages/).
Then you can edit the package.js file of the cloned package and simply comment the api.addFiles directive where the problematic CSS is added.
Synchronizing with the package maintainer would be only a matter of git pulling the latest commits from the source repo.
You'll need to meteor remove author:package first and then add your local clone using meteor add package-clone.
Answer is correct, unless the cloned repo uses git submodules, in which case you must do:
git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive
I realize this is a bit late but another solution would be to use the meteor-postcss package and configure the excludedPackages option.
I'm using Meteor 0.9.3, and I want to try to make some changes to a Meteor smart package. I'm using the package in my app already, let's call it: author:smartpackage.
First, I removed my reference to the published package:
meteor remove author:smartpackage
I've forked the repository on GitHub, and made a local clone in:
/somedir/meteor-smartpackage/
I've created a directory in my meteor app:
/meteor/myApp/packages
and created a symlink:
ln -s /somedir/meteor-smartpackage /meteor/myApp/packages/meteor-smartpackage
How do I now add this local package into my app? I've tried a variety of
meteor add xxxx
options, but I can't find the right command. Am I even close?
The steps you described look good to me, so maybe this is the symlink stuff which is messing around.
The proper way of maintaining private packages is to have a packages/ directory somewhere in your filesystem, let's say in ~/meteor/packages, then you have to set a special environment variable that is called PACKAGE_DIRS, which is looked up by the meteor command line tool to find local packages that reside out of official package repositories.
So let's set this environment variable in your .bashrc and resource it :
echo "export PACKAGE_DIRS=$HOME/meteor/packages" >> ~/.bashrc;
. ~/.bashrc
Then assuming your forked package resides in ~/meteor/packages, meteor add author:package should work normally.
Update to saimeunt's answer, for Meteor 1.2+
I found that loading the local package requires leaving out the author when running meteor add.
Loads Local Package
meteor add cocos2d-meteor
Loads Remote Package
meteor add jakelin:cocos2d-meteor