-
-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deployment is not atomic #226
Comments
Agreed; happy to take a patch for this. |
Brain dump for anyone interested in this topic: Deploying through lein/maven ends up using aether. They end up eventually using wagon-http and is a series of PUTs for each artifact deployed (file, checksums) a GET for the maven-metadata.xml, and a PUT with an updated Note that an artifact is not a project. A project is made up of several artifacts such as a pom, signatures, and all jars that should be deployed, including ones with classifiers (such as -sources). A couple of ways it could be done: Artifact (file + checksums) as the atomic unit
Possible downsides:
Project as the atomic unithttp based deployments would no longer be acceptable. We'd have to write a custom wagon provider. This would allow complete control over the upload mechanism, such as to notifications of locking and completion. Possible downsides:
I'd be happy to hear other ideas. |
Fully atomic operations would be great, but a simple fix of making immutability contingent upon an uninterrupted deploy (jar/pom/sigs/checksums present) would go a long way too. |
Any progress on it? I'm currently have two last version of my library partially uploaded. I can't fix it reuploading and I can't delete them because clojars as far as I know does not supports delete uploaded versions... |
Sorry about this. I was performing maintenance on Clojars's DB, which is |
Another approach would be to write the uploaded artifacts to a Aether honors cookies, so we can use a session with deploys. Aether The process:
Possible Issues
|
Implemented via 57fc478 |
Deploying to Clojars isn't atomic, so that if there are any errors, it partially commits. Running the process again can therefore result in an inconsistent upload, and because redeployment is forbidden, it cannot be easily fixed.
Ideally Clojars should wait for a consistent project before locking the version.
The text was updated successfully, but these errors were encountered: