Blog post: http://blog.rust-lang.org/2014/11/20/Cargo.html
“Take care when publishing a crate, because a publish is permanent. The version can never be overwritten, and the code cannot be deleted. There is no limit to the number of versions which can be published, however.”
This is good news!
I don’t know… What if you accidentally published private information? I feel like there should at least be some sort of window within which you could undo the push.
You can contact us and we’ll pull it in cases like this. There’ll be actual policy before 1.0: this is like a ‘beta prerelease’ for everyone to try out the infrastructure now.
But setting the expectation that you can’t just yank versions whenever you want is good.
I know hex supports this with a one hour grace period. After that, it’s locked in for good. Maybe crates.io would benefit from a feature like this.
Then it’s been published. Time to dust off that harm minimization document.
Deleting the version isn’t going to take it back. Especially as rust becomes more popular, and there are mirrors all over the net.
But it may erroneously contain third-party IP. Continuing to distribute it would put you at legal risk.
I won’t put any words in their mouths. There will almost certainly be a way to takedown specific URLs. (DMCA)
But, as a serious issue, if you have that as a risk then implement a delay / sign-off process. You can’t assume a central replication system is going to implement an “I take it back” system.
It is good news! A big beef I have had with maintaining node related ports on OpenBSD is people publishing updates to existing versions! Totally breaks the checksums in the port tree!
Squeee - Testing out my nifty hat!
I thought it was a boat. :)
From https://crates.io/install :
$ curl https://static.rust-lang.org/rustup.sh | sudo bash
What could possibly go wrong?
Once Rust and Cargo are stable, we’ll be recommending packages over doing this. But for now, while everything is under development, keeping up with a nightly is easier this way.
…and just in case you wanted to inspect it before running, it’s 500 lines of shell script.