Skip to content

Zenodo fix #761

Merged
cvanelteren merged 1 commit into
mainfrom
fix/zenodo-release-sync
Jul 14, 2026
Merged

Zenodo fix #761
cvanelteren merged 1 commit into
mainfrom
fix/zenodo-release-sync

Conversation

@cvanelteren

Copy link
Copy Markdown
Collaborator

Zenodo stopped updating at v1.57.1 (June 2025) while the project shipped v2.4.0, because the API-based publish-zenodo job meant to do the syncing never worked and was commented out in 744d5a8, leaving no path at all; Zenodo's own GitHub integration is now enabled, and it webhooks the release: published event and mints a new version under the existing concept DOI without any job, token, or API call of ours, so this strips the dead job from publish-pypi.yml along with tools/release/publish_zenodo.py and tools/release/sync_citation.py (the ZENODO_ACCESS_TOKEN secret can now be revoked). It also removes version and date-released from CITATION.cff: the git tag is already the single source of truth, since setuptools_scm derives the package version from it and Zenodo takes the archive version and date from the release, so restating them here meant hand-editing the file on every release -- precisely how it drifted to 2.1.5 while 2.4.0 was current. Both fields are optional in CFF 1.2.0 and the file still validates against the schema. test_release_metadata.py now guards the invariants that actually matter (concept DOI pinned, no version restated, no .zenodo.json, no second API-based sync path) and matches only uncommented workflow lines, since the old assertion for sync_citation.py had been passing against commented-out YAML for months.

Note that the integration only archives releases published after it was enabled and never backfills, so v2.4.0 will not appear retroactively; the next tagged release is what will bring Zenodo current.

…version

Zenodo stopped updating at v1.57.1 (June 2025) while the project shipped v2.4.0, because the API-based `publish-zenodo` job meant to do the syncing never worked and was commented out in 744d5a8, leaving no path at all; Zenodo's own GitHub integration is now enabled, and it webhooks the `release: published` event and mints a new version under the existing concept DOI without any job, token, or API call of ours, so this strips the dead job from `publish-pypi.yml` along with `tools/release/publish_zenodo.py` and `tools/release/sync_citation.py` (the `ZENODO_ACCESS_TOKEN` secret can now be revoked). It also removes `version` and `date-released` from `CITATION.cff`: the git tag is already the single source of truth, since setuptools_scm derives the package version from it and Zenodo takes the archive version and date from the release, so restating them here meant hand-editing the file on every release -- precisely how it drifted to 2.1.5 while 2.4.0 was current. Both fields are optional in CFF 1.2.0 and the file still validates against the schema. `test_release_metadata.py` now guards the invariants that actually matter (concept DOI pinned, no version restated, no `.zenodo.json`, no second API-based sync path) and matches only uncommented workflow lines, since the old assertion for `sync_citation.py` had been passing against commented-out YAML for months.

Note that the integration only archives releases published after it was enabled and never backfills, so v2.4.0 will not appear retroactively; the next tagged release is what will bring Zenodo current.
@cvanelteren cvanelteren marked this pull request as ready for review July 14, 2026 03:27
@cvanelteren cvanelteren merged commit 5a01c40 into main Jul 14, 2026
5 of 7 checks passed
@cvanelteren cvanelteren deleted the fix/zenodo-release-sync branch July 14, 2026 03:27
@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cvanelteren cvanelteren mentioned this pull request Jul 14, 2026
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

Successfully merging this pull request may close these issues.

1 participant