Declare 0.2.0 and correct the release metadata - #39
Conversation
The source tree had moved well past the archived v0.1.0 release while still declaring 0.1.0, so the packaged version, the citation metadata, and the Zenodo record no longer described the code they name. Bumped the version to 0.2.0 in pyproject.toml, nmr_bind_fit/__init__.py, CITATION.cff, and paper/paper.bib. The bump is a minor one because v0.1.0 removed public CLI flags and fitting-API arguments. Corrected .zenodo.json, which still advertised "bootstrap uncertainty" and carried a "bootstrap" keyword after bootstrap resampling was replaced by the asymptotic covariance matrix and Student-t intervals. Removed the DOI from CITATION.cff and paper/paper.bib. 10.5281/zenodo.21071370 identifies the v0.1.0 archive alone, and 0.2.0 has no archive yet, so carrying that DOI forward would misattribute the release. CITATION.cff keeps it under identifiers, where it accurately describes the earlier archive. Renamed the changelog's Unreleased section to 0.2.0 and updated the release checklist so its tag commands, post-DOI steps, and preconditions match the current file layout.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a78815bb73
ℹ️ 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".
| identifiers: | ||
| - type: doi | ||
| value: 10.5281/zenodo.21071370 | ||
| description: Archived v0.1.0 release. Version 0.2.0 has not been archived yet. |
There was a problem hiding this comment.
Remove the v0.1 DOI from the v0.2 citation record
For CFF consumers, identifiers supplies machine-readable identifiers for the software described by this file; the free-text description does not make the DOI merely historical. Consequently, tools processing this version: 0.2.0 record can emit 10.5281/zenodo.21071370 as the DOI for 0.2.0 even though it resolves to the v0.1.0 archive—the exact misattribution this change intends to prevent. Remove the identifier until 0.2.0 is archived, or represent the older release as a related reference rather than an identifier of this record.
Useful? React with 👍 / 👎.
| The format follows the spirit of [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project uses semantic versioning once releases are tagged. | ||
|
|
||
| ## [Unreleased] | ||
| ## [0.2.0] - 2026-08-03 |
There was a problem hiding this comment.
Restore the Unreleased changelog section
After this heading is converted directly to 0.2.0, the changelog has no place for changes made after the release, while the updated pull-request template explicitly tells contributors to use the topmost unreleased heading. The next user-facing change will therefore either be recorded incorrectly under the already released 0.2.0 section or have to invent the missing structure; retain an empty [Unreleased] section and its compare link above this release.
Useful? React with 👍 / 👎.
Motivation
The source tree has moved a long way past the archived v0.1.0 release, but it still declared
0.1.0everywhere. That left three separate metadata claims wrong at once, and I could not cut a new archived release while they stood.The one I care about most is
.zenodo.json. It still advertised "bootstrap uncertainty" and carried abootstrapkeyword, months after bootstrap resampling was replaced by the asymptotic covariance matrix with Student-t intervals. It was the one consumer of that removal I had missed, so the archive record described a feature the code no longer has.Changes
Bumped the version to 0.2.0 in
pyproject.toml,nmr_bind_fit/__init__.py,CITATION.cff, andpaper/paper.bib. A minor bump rather than a patch: v0.1.0 removed public CLI flags and fitting-API arguments.Corrected the
.zenodo.jsondescription and keywords to name the method actually in use.Removed the DOI from
CITATION.cffandpaper/paper.bib. I checked the Zenodo record directly:10.5281/zenodo.21071370is the version DOI for the v0.1.0 archive, and no concept DOI is exposed. Version 0.2.0 has no archive yet, so carrying that DOI forward would have attributed this release to an archive that describes different code.CITATION.cffkeeps it underidentifiers, where it accurately describes the earlier archive, and the release checklist already forbids inventing a DOI.Renamed the changelog's
Unreleasedsection to0.2.0and dated it. Updateddocs/release_zenodo.mdso its tag commands target v0.2.0 — left as they were, they would have tried to recreate the existing v0.1.0 tag and failed — and so its post-DOI steps and preconditions match the current file layout.Adjusted the pull-request template, which pointed contributors at a
[Unreleased]changelog section that this change renames. It now names the topmost unreleased version heading instead, so it will not break again at the next release.No product code, CLI behaviour, or numerical path is touched.
Verification
I ran these locally on this branch and they passed:
python -m pytest -q(169 passed),python -m ruff check .(clean), and an isolatedpython -m buildfollowed bypython -m twine check, which produced 0.2.0 wheel and sdist artifacts and reported PASSED for both.I validated
CITATION.cffagainst the CFF 1.2.0 schema withcffconvert --validate; it reported the metadata valid, including the newidentifiersblock.I also ran the CLI end to end on
examples/synthetic_11.csvand confirmed the generated report describes the asymptotic covariance matrix and Student-t intervals, with no remaining mention of bootstrap.mypyreports the same 7 missing-stub import errors as before this change; none are in the files I touched. The five required CI jobs have not run yet at the time of writing.