Skip to content

Add Zenodo citation metadata and release verification - #37

Open
bernalde wants to merge 2 commits into
mainfrom
docs/issue-36-zenodo-citation
Open

Add Zenodo citation metadata and release verification#37
bernalde wants to merge 2 commits into
mainfrom
docs/issue-36-zenodo-citation

Conversation

@bernalde

@bernalde bernalde commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

  • add schema-valid CFF metadata using the existing concept DOI as the evergreen MQLib.jl identifier
  • distinguish citations for this wrapper, upstream MQLib, exact wrapper releases, and the QUBO.jl ecosystem article
  • add a repeatable release checklist for Zenodo stewardship and archive-drift verification
  • add focused tests that keep the CFF, README, package version, and checklist aligned

Current Zenodo baseline

  • Concept DOI: https://doi.org/10.5281/zenodo.7511329
  • v0.7.3 DOI: https://doi.org/10.5281/zenodo.20926960
  • Release commit: 8ce413f76df2837466fdb6f0178606d75b541277
  • Zenodo archive SHA-256: 88dba8fa0685f7466f104ce4f0e470c1722fc3616ce6181b8432802cc538b35a
  • Zenodo archive MD5: 811642db432136a949ad601473cdefa3 (matches the public record)
  • Julia package UUID: 16f11440-1623-44c9-850c-358a6c72f3c9

The public Zenodo API reports v0.7.3 as the latest published version under
the existing concept DOI, with the expected repository, MIT license, creator
list, and one owner entry. The archive contains Project.toml version 0.7.3
and identifies the release commit above.

Acceptance criteria

  • Concept DOI 10.5281/zenodo.7511329 remains authoritative.
  • At least two maintainers have Can manage access. The public record
    currently exposes one owner entry, and no authenticated Zenodo credential
    is available to verify or add a second manager.
  • README and CFF consistently identify this repository as the wrapper and
    preserve separate attribution to upstream MQLib.
  • The release checklist detects concept/version, repository, tag/version,
    source-commit, checksum, and stewardship drift.

Because the second-manager criterion remains open, this PR uses Refs #36
instead of closing the issue. JuliaQUBO/QUBO.jl#66 remains the ecosystem-level
stewardship and citation-policy tracker.

Validation

  • uvx --cache-dir /tmp/mqlib-uv-cache --from cffconvert cffconvert --validate --infile CITATION.cff
    (cffconvert 2.0.0): valid against CFF schema 1.2.0
  • julia +1.10 --project=test -e 'using Test; include("test/citation.jl"); test_citation_metadata()':
    15/15 passed
  • julia +1.10 --project -e 'using Pkg; Pkg.test()': all package testsets passed
    (213 assertions); the existing optional upstream C++ syntax check skipped
    because MQLIB_UPSTREAM_DIR was not set
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --check:
    passed (the README intentionally retains its existing mixed CRLF/LF endings)
  • GitHub Markdown rendering: citation links and the CFF link render correctly;
    both the canonical Zenodo badge and GitHub Camo badge display
    10.5281/zenodo.7511329
  • Zenodo API/archive verification: concept/version relation, creator list,
    repository, license, latest-version state, archive checksum, tagged version,
    and release commit all match

Branch Hygiene

  • Base branch: main
  • Source branch: docs/issue-36-zenodo-citation
  • Branch point: 7a56bc4e42c66cc980b6c2e566944d33e53b86ef
  • Stacked: no
  • Prerequisite PRs: none
  • Open-PR overlap: PR Make compatibility checks Dependabot-safe #33 also touches test/runtests.jl, but its compatibility
    assertions and this PR's end-of-file citation-test include are non-adjacent

Refs #36

@bernalde
bernalde marked this pull request as ready for review July 31, 2026 23:26

@bernalde bernalde left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Initial automated maintainer review

I reviewed head 32e543ad99c0e6730715f4d4718ebe20b2c88741 against issue #36 and the current main tip.

Findings

  • Blocking: none
  • Nonblocking: 1 inline line-ending cleanup
  • Questions: none

Validation

  • cffconvert --validate --infile CITATION.cff: valid against CFF 1.2.0
  • Focused citation test: 15/15 passed
  • Full local Julia 1.10 package suite: all testsets passed (213 assertions)
  • Current-head CI: all four jobs passed
  • GitHub-rendered README and both canonical/Camo DOI badges show the concept DOI
  • Live Zenodo metadata, archive checksum/content, release tag/commit, upstream MQLib paper DOI, and QUBO.jl article DOI match the PR claims
  • Local and GitHub changed-file sets match; the current-base merge probe and combined probe with overlapping PR #33 are conflict-free

Merge readiness

There are no blocking findings. This is a COMMENT review because the authenticated account authored the PR and cannot self-approve. main requires zero approving reviews, so no formal approval gate is enforced; the inline item is a small nonblocking cleanup before final human handoff.

Comment thread README.md Outdated
@@ -1,5 +1,5 @@
# MQLib.jl
[![DOI](https://zenodo.org/badge/568213607.svg)](https://zenodo.org/badge/latestdoi/568213607)
# MQLib.jl

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Nonblocking: this hunk also converts the unchanged heading from CRLF to LF. The raw README diff is 23 additions/2 deletions, while --ignore-cr-at-eol is 22/1; the mixed-ending file moves from 40 CRLF + 26 LF lines to 38 CRLF + 49 LF lines. Please restore the original CRLF ending on the unchanged heading and retain CRLF on the edited badge line, so this PR changes badge content without incidental line-ending churn.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Addressed in 4e9d9d9. The heading and edited DOI badge line again use CRLF, preserving the base file's 40 CRLF lines; only the 21 newly added README lines use LF. The raw and --ignore-cr-at-eol PR diffs now both report 22 additions / 1 deletion. The full 213-assertion Julia suite and all four current-head CI jobs pass. I have left this thread unresolved for human confirmation.

@bernalde

Copy link
Copy Markdown
Member Author

Addressed the review finding in 4e9d9d9 by restoring CRLF endings on the unchanged README heading and the edited DOI badge line. The raw and --ignore-cr-at-eol README diffs now agree at 22 additions / 1 deletion, so the remaining change is content-only.

Validation for this head:

  • full Julia 1.10 package suite: 213/213 assertions passed
  • CRLF-aware git diff --check: passed
  • all four current-head CI jobs: passed (native C ABI, Julia 1.10/Linux, Julia current/Linux, Julia current/Windows)

No review items were declined. The second-Zenodo-manager acceptance criterion remains an external human action, and the review thread is intentionally left unresolved for human confirmation.

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