Skip to content

docs: name the authors in CITATION.cff and guard it - #193

Merged
bioedca merged 2 commits into
mainfrom
docs/citation-authors
Jul 20, 2026
Merged

docs: name the authors in CITATION.cff and guard it#193
bioedca merged 2 commits into
mainfrom
docs/citation-authors

Conversation

@bioedca

@bioedca bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

CITATION.cff listed a single CFF entityThe Tether Authors — with no named person and no ORCID. GitHub's "Cite this repository" button therefore produced a citation crediting nobody, and both Zenodo and JOSS require identifiable humans. Once papers begin citing a published archive, that credit is not recoverable.

The file was also schema-invalid on main, and nothing caught it. The entity entry carried affiliation, which CFF 1.2.0 permits on a person but not on an entity, so the entry matched neither variant:

jsonschema.exceptions.ValidationError: Additional properties are not allowed ('name' was unexpected)

Four changes:

  1. Add the two authors as CFF person entries with ORCIDs.
  2. Drop the illegal affiliation key from the entity entry, which is retained as an additional credit since it remains the copyright holder in NOTICE, REUSE.toml, pyproject.toml and every SPDX header.
  3. Replace the one-line version/doi TODO with the ordered release-time procedure.
  4. Add tests/test_citation_metadata.py so neither defect can return silently.

On the names

Both were verified against the ORCID public API rather than transcribed by hand:

ORCID given family affiliation on record
0000-0002-6416-5408 Eduardo Campos-Chávez Northwestern University — Molecular Biosciences
0000-0002-0423-6323 Alfonso Mondragon Northwestern University

⚠️ One thing to confirm: the second ORCID record registers the family name as Mondragon, without the accent, while this repository writes Mondragón Lab elsewhere (including in this file's own abstract and affiliation). I used each record's own registered spelling rather than "correcting" a name, but if the accented form is preferred for the author entry, change family-names — the ORCID iD is what machine consumers key on, so either spelling is safe.

On the release-time ordering

The previous comment said only "version and doi are filled at release tags". The ordering is load-bearing and the failure is silent: the Zenodo–GitHub webhook must be enabled before the tag is pushed. Zenodo only archives releases published while the webhook is active, so if it is off at tag time that version is never archived and the only remedy is cutting another release. That is now written into the file as ordered steps, including that the concept DOI belongs in README/citing while doi: here is the version DOI.

Linked tracking

Type of change

  • feat — new capability
  • fix — bug fix (the file did not validate)
  • docs / chore / ci / build / refactor / test / perf
  • ! / BREAKING CHANGE: — a deliberate schema-version bump

Self-review checklist (PRD §12.4)

  • Schema freeze respected — no HDF5 schema change. "Schema" here is the CFF citation schema.
  • conda-lock updated if dependencies changed — no dependency change. The new test uses yaml, already present via mkdocs, exactly as tests/test_adr_index.py does; cffconvert is deliberately not added.
  • Tests added/updatedtests/test_citation_metadata.py, five guards.
  • Provenance stamped — n/a.
  • New tunables registered in PRD §11.2 — n/a.
  • Scientific/statistical claims carry a citation — n/a; the references: block is untouched. SPDX header present on the new test file.
  • A resolved PRD decision that changed is reflected in the PRD and/or an ADR — n/a. Archiving on Zenodo is a maintainer decision recorded on docs: make CITATION.cff produce a real citation, and add a per-method citing page #162; it changes no PRD decision.

Testing

cffconvert --validate -i CITATION.cff"Citation metadata are valid according to schema version 1.2.0." The same command against the file on main fails with the additionalProperties error quoted above.

cffconvert -f apalike now renders Campos-Chávez E., Mondragon A., The Tether Authors — Tether instead of crediting only the entity.

pytest tests/test_citation_metadata.py5 passed.

Negative control: run against the previous CITATION.cff from main, 2 failtest_at_least_one_named_person and test_entity_authors_carry_no_person_only_fields — which are precisely the two real defects, and the other three still pass. Restored, all 5 pass.

ruff check and ruff format --check clean.

Repository owner deleted a comment from coderabbitai Bot Jul 20, 2026
@bioedca
bioedca force-pushed the docs/citation-authors branch from da5bb58 to 59b6d2b Compare July 20, 2026 15:28
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 94006fe2-70df-4336-8a11-71049c8b177e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@bioedca

bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@bioedca

bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.


You're currently rate limited under our Fair Usage Limits Policy. Your recent PR review activity is in the 95th percentile or higher among CodeRabbit users, so adaptive limits apply. Your next review will be available in 12 minutes.

@bioedca

bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 59b6d2b9e3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/test_citation_metadata.py Outdated
bioedca added a commit that referenced this pull request Jul 20, 2026
…rence

The release-field check only fired when `doi` was present, so a release
commit that added `version` and `date-released` but forgot the DOI passed
silently — which is the likelier mistake of the two, and it ships a
release whose citation cannot be resolved. It now requires the three
fields to be all present or all absent, so the omission fails in either
direction. All three absent stays valid: that is the pre-release state.

Also correct the Verma 2024 entry in the `references:` block, which
carried Biophysical Journal 123(14):2179-2193. Crossref resolves the DOI
to 123(17):2765-2780. The same error is fixed at its root in the PRD
bibliography and on the parity-gallery page in #192; it is fixed here
rather than there because both PRs would otherwise edit this file.

Verified: adding version + date-released without a doi now fails the
guard; cffconvert still reports the file valid against schema 1.2.0.

Addresses the review on #193.
@bioedca

bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@bioedca

bioedca commented Jul 20, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
✅ Action performed

Full review finished.


You're currently rate limited under our Fair Usage Limits Policy. Your recent PR review activity is in the 95th percentile or higher among CodeRabbit users, so adaptive limits apply. Your next review will be available in 56 minutes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 54ab18436e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CITATION.cff
Comment thread CITATION.cff
bioedca added 2 commits July 20, 2026 12:31
The author list was a single CFF *entity* — "The Tether Authors" — with
no named person and no ORCID, so GitHub's "Cite this repository" output
credited nobody. Zenodo and JOSS both require identifiable humans, and
the credit is unrecoverable once papers cite a published archive.

Add the two authors as CFF person entries with ORCIDs, verified against
the ORCID public API rather than transcribed by hand. Names use each
record's own registered spelling.

The file was also schema-INVALID on main, which nothing caught: the
entity entry carried `affiliation`, which CFF 1.2.0 allows on a person
but not on an entity, so it matched neither variant. Dropping that key
makes the file validate; `cffconvert --validate` now reports it valid
against schema 1.2.0 and renders both named authors.

Replace the one-line version/doi TODO with the ordered release-time
procedure. The Zenodo webhook must be enabled BEFORE the tag is pushed —
if it is off at tag time that version is never archived, and the only
remedy is cutting another release. That ordering was not written down
anywhere.

Add tests/test_citation_metadata.py: structural guards on the base 3-OS
matrix (cffconvert is not in the base conda-lock) encoding the two ways
this file has actually been wrong. Against the previous file they fail
on exactly those two defects.

Refs #162
…rence

The release-field check only fired when `doi` was present, so a release
commit that added `version` and `date-released` but forgot the DOI passed
silently — which is the likelier mistake of the two, and it ships a
release whose citation cannot be resolved. It now requires the three
fields to be all present or all absent, so the omission fails in either
direction. All three absent stays valid: that is the pre-release state.

Also correct the Verma 2024 entry in the `references:` block, which
carried Biophysical Journal 123(14):2179-2193. Crossref resolves the DOI
to 123(17):2765-2780. The same error is fixed at its root in the PRD
bibliography and on the parity-gallery page in #192; it is fixed here
rather than there because both PRs would otherwise edit this file.

Verified: adding version + date-released without a doi now fails the
guard; cffconvert still reports the file valid against schema 1.2.0.

Addresses the review on #193.
@bioedca
bioedca force-pushed the docs/citation-authors branch from 54ab184 to 6900e1e Compare July 20, 2026 17:31
@bioedca
bioedca merged commit 42cab3d into main Jul 20, 2026
15 checks passed
@bioedca
bioedca deleted the docs/citation-authors branch July 20, 2026 17:36

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6900e1e7a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CITATION.cff
Comment on lines +48 to +49
# 2. Reserve the DOI in Zenodo and write it into `doi:` below, so the tagged commit
# is self-consistent rather than pointing at a DOI minted later.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the Zenodo DOI ordering

For the Zenodo-GitHub webhook path described here, this release step cannot be performed: I checked Zenodo's GitHub integration FAQ (https://support.zenodo.org/help/en-gb/24-github-integration/73-can-i-pre-reserved-a-doi-before-a-github-release), and it says DOIs cannot be pre-reserved before using the GitHub integration. Following this ordered procedure would either block the release or put a manually reserved DOI in CITATION.cff that is not the DOI Zenodo mints for the GitHub release, so the release instructions need to use the post-release DOI update path or switch explicitly to a manual Zenodo upload.

Useful? React with 👍 / 👎.

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