citation-cff-current (TN106)#

Group

Default severity

Metadata

Error

A technote repository can publish its citation to GitHub through a CITATION.cff file, which Documenteer generates from technote.toml (see Generating a CITATION.cff). That file is fully managed: documenteer technote sync-cff regenerates it from scratch on every run, deterministically. This rule regenerates it in memory and compares it with the file on disk, so a technote.toml edit that was never synced is caught before the stale citation is published.

The comparison is the one documenteer technote sync-cff --check runs, so the linter and that check never disagree about whether a file is stale.

A repository with no CITATION.cff is not flagged. Adopting the file is opt-in per repository: an absent file means the repository has not asked for one, not that it is missing something.

A technote Sphinx cannot read is not flagged either. The citation is titled by the technote’s own top-level heading (see Generating a CITATION.cff), so a document that does not read leaves this rule with nothing to compare titles by; the read failure is reported once, as TN203.

Example of a failing technote#

A title is added to technote.toml, but CITATION.cff still carries the old one:

technote.toml#
[technote]
id = "SQR-000"
title = "The LSST DM Technical Note Publishing Platform"
[TN106] CITATION.cff is out of date with technote.toml. Run 'documenteer technote sync-cff' to regenerate it.

How to fix it#

Regenerate the file:

documenteer technote sync-cff

Commit the result alongside the technote.toml change that caused it. Edit technote.toml, never CITATION.cff — a hand-edit to the generated file is what this rule reports, and it is lost on the next sync.

To catch the two drifting apart before a reviewer does, run documenteer technote sync-cff --check in CI; it fails the build with the command to run, and Rubin’s shared technote workflow runs it for you.

If the repository no longer wants a CITATION.cff at all, delete the file: an absent file passes.

Note

Documenteer generates CITATION.cff from a technote’s own metadata, so a finding can also appear after a Documenteer upgrade that changes what is generated. Running the command resolves it the same way.

See also#

  • Generating a CITATION.cff — what is generated, and how each field is read from technote.toml.

  • TN001technote.toml does not conform to the schema, which is how a doi that is not a DOI is reported. Such a file cannot be parsed into metadata at all, so this rule stays silent until it is fixed.

  • TN203 — Sphinx cannot read the technote’s document, which is reported instead of this rule.