-
Notifications
You must be signed in to change notification settings - Fork 189
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
Automation for Zenodo DOI #365
Comments
Just thinking wildy here: why not just providing the top-level DOI that automatically routes to the latest Zenodo DOI version of a project and avoid the hassle? People can get the correct version DOI from the DOI authority easily, which is Zenodo in our case. Hit me :D |
You mean one like that: https://zenodo.org/badge/latestdoi/54024046
|
Exactly.
Sure, just raising up the question if adding another level of complexity is really necessary :) |
Yes this would definitely be easier, but we just made a bit song and dance in the manuscript about how every release gets its own DOI 😅 I guess with the general one, each release would still get its own release-specific DOI, but it's just a little trickier for people to find it. If it's explicitly in the repo then it can be saved with the results in the upcoming citation file, which I like. |
And this will be conserved. Zenodo will always create DOIs for every release. So we are still authentic ;)
Ah well, you click on the link and choose the DOI from the version you used from the right panel in the webpage. The benefit is very little compared to the implementation hassle imho.
ok, this is a point for which I don't have a solution yet. Or we just reserve a DOI everytime we merge to |
We really need this - it feels wrong to have to do this manually after doing a release and then manually adding it to the README when doing the very first release 😓 |
Agree that we should have this with #319 - although that enforces proper Git Commits everywhere too (though there are plugins for that for Atom / Code / IntelliJ to do that, e.g.: https://github.com/KnisterPeter/vscode-commitizen) |
I don't follow.. how come? |
Re-reading this now, I wonder if we are causing ourselves trouble and overcomplicating things massively here... Maybe we should just have the general DOI for the pipeline? Then if we develop the separate It certainly would be a hell of a lot easier.. 😰 (and less likely to cause problems) |
Given how many projects are hitting me at the moment, I tend to agree. Maybe start small first and then make it bigger afterward? |
I suggested the base DOI in the first place (#365 (comment)), so of course I am happy with it 😂 |
But thank you @ewels for appreciating my excitement about the implementation :P |
Maybe this? https://github.com/gbif/gbif-doi Check "Create an identifier in Draft state" in https://support.datacite.org/docs/api-create-dois "To reserve an identifier in Draft state, you will need to ..." |
GitHub Actions: https://github.com/ivotron/zenodo/ |
Looks nice but hasn't been updated in 3 years, which is forever with GitHub Actions. I don't recognise the syntax of the example at all... 👀 Also it doesn't show up in the GitHub Marketplace for actions, so pretty sure it won't work. There are a few that do though: https://github.com/marketplace?type=actions&query=zenodo |
I will check a bit more to figure out what might be most suitable for what we actually want to have... |
Just talking with @maxulysse about this, after the Zenodo ID issue (again) from this morning. We used the Zenodo API here directly: https://github.com/nf-core/sarek/blob/master/.github/workflows/upload.py which is working pretty well so far. We are not trying to reserve a pipeline ID, but just publishing files. If someone has time, maybe yet another angle to investigate if it's worthwhile. |
Zenodo DOIs are an excellent way to cite nf-core pipelines, especially as they give a specific DOI per version of the pipeline. However, there are two points with the current setup which are quite annoying:
master
branch then has to be updated to show the badge for the new DOI after the release is pushed. This changes the commit hash on master so that it no longer matches the release.nf-core list
and elsewhere, which checks commit hashes of local clones to see if the latest release is being run.-r
nextflow flag or by manually downloading), the bundled code cannot include any information about the proper DOI for citation. This will become more of an issue as we try to improve the ease of access to this information (see Add citation information following the citation file format #361)After a very, very quick skim read of the docs, I think that we should be able to solve both of these problems with what seems to be an excellent Zenodo API. I see two approaches:
Approach 1: Fully automate releases
prereserve_doi
flag), but not with the GitHub linkage.The downside is this has to be done before the release. This means that we can't use the GitHub release web interface, but instead have to trigger the release programatically somehow. This probably needs a little though as to how to do it nicely. Also, whether it's worth it!
Approach 2: More manual DOI fetching, with lint checks
An alternative to this is that we can go fully the other way, and instead of using the automated linkage, manually pre-reserve the DOI on the Zenodo website before release. This would have to be done by the pipeline authors. We could potentially then get the lint tests to check for this when running with the
--release
flag to ensure that it happens properly.Welcome for thoughts and feedback!
Phil
The text was updated successfully, but these errors were encountered: