Skip to content
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

Zenodo integration similar to Codefair #438

Open
jpthiele opened this issue Nov 8, 2024 · 4 comments
Open

Zenodo integration similar to Codefair #438

jpthiele opened this issue Nov 8, 2024 · 4 comments

Comments

@jpthiele
Copy link

jpthiele commented Nov 8, 2024

As is stated in warning in the Codefair bot docs on making a release
the Zenodo-GitHub webhook makes a Zenodo release after the Github release,
which results in wrong metadata inside the GitHub release, i.e. no DOI for the actual release itself.

I think using Codefair and Registrator simultaneously will not work and the bots will clash somehow,
but I would like the feature of having an up to date DOI in the release itself.

@ericphanson
Copy link
Member

ericphanson commented Nov 8, 2024

Registrator does not actually make a github release or git tags. Instead, what it does is make a PR to the General registry to add the new version of the package to the Julia package registry. TagBot is a different piece of tooling which makes a GitHub release once a new Julia package version is released.

So I think this issue might belong on the TagBot issue tracker instead. However I don't really understand what you are asking for, or what codefair does. Can you clarify?

@jpthiele
Copy link
Author

jpthiele commented Nov 8, 2024

Right, possibly a TagBot thing as that does the actual work on the own GitHub repo even though everything is triggered by Registrator initially.

Codefair generally checks the repo for FAIRness of the data and as a final/recurring step allows you to make a new release.
This then guides you through these steps:

  • Checking the metadata in the repo (maybe new contributors missing?)
  • Choosing new or existing Zenodo record (so all releases are under the same general DOI)
  • Choosing Version (SemVer recommended)
  • Then it creates a draft GitHub release you can edit to add more information (apart from default commits since last version etc)
  • Once done this gets published to Zenodo and then Metadata inside the repo, i.e. Citation.cff and Codemeta.json get updated with the new Zenodo DOI before the GitHub release is then published.

@ericphanson
Copy link
Member

Interesting, I think it is a bit tricky as both Codefair and the Julia registry in some sense want to be the “last” step in the release process. Xref my blog post https://ericphanson.com/blog/2024/julias-package-registration-tooling/#why-is-the-registration-flow-like-this.

But they can’t both be last 😅. If codefair wants to update the citation metadata in the repo before the tag, if that happens after registration, then the commit being tagged is not exactly the commit that was registered. But if codefair-based tagging happens first, and the registry rejects registration (say, missing compat bound), then the version that’s tagged did not get registered in the end.

@ericphanson
Copy link
Member

I guess this issue always happens with codefair’s process, it sounds like they submit the tarball to Zotero, get a DOI, then update the repo with the metadata, then produce a git tag. So the tarball is different than the tag.

So I guess that could be done also in the Julia world via something like tagbot, where after registration, you submit what was registered to zotero, get a DOI, add it to the repo, and then tag that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants