Skip to content

CITATION.cff carries no release version or date — wire it into the release tooling, or add a DOI for citable releases #967

Open

Description

@cemililik

CITATION.cff (added in #964) deliberately omits version and date-released, because nothing would keep them in sync: the released version is single-sourced in pyproject.toml, and the only other mirror of a released version — the marketing site — is guarded by tools/update_site_version.py --check. Adding a literal here without extending that tool would create exactly the un-guarded duplicate docs/standards/release.md exists to prevent.

The cost of omitting it: GitHub's "Cite this repository" panel emits a citation with no year, an undated APA string and a placeholder BibTeX key. For a project whose selling point is reproducibility, that is weak.

Two ways to close this, and they compose:

  1. Extend the release tooling. Teach tools/update_site_version.py (or a sibling) to rewrite version: in CITATION.cff from the same CHANGELOG.md header it already reads, and add it to the --check step in docs/standards/release.md and the cut-release skill — keeping the .claude/ and .agents/ skill mirrors in parity (the skill-parity guard checks this).
  2. Add a DOI for citable releases (Zenodo's GitHub integration, or a manual deposit). A DOI is version-independent, so nothing has to be kept in sync at all.

Acceptance criteria:

  • CITATION.cff either carries version/date-released that the release tooling rewrites and --check verifies, or records a DOI and links the Zenodo record.
  • docs/standards/release.md names the new step, or states explicitly that the DOI makes the step unnecessary.
  • If the tooling route is taken: a test covering the rewrite, and .claude/skills/ and .agents/skills/ stay in parity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: packaging-ciCode area: packaging-cienhancementNew feature or requestseverity: lowMinor defect, inaccuracy or rough edgewave: 4Roadmap wave 4: low / info / watch, when touching the module

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions