Skip to content

Add CITATION.cff and widen pyqasm version range - #92

Merged
ryanhill1 merged 1 commit into
mainfrom
chore/add-citation-cff-and-bump-deps
Aug 20, 2026
Merged

Add CITATION.cff and widen pyqasm version range#92
ryanhill1 merged 1 commit into
mainfrom
chore/add-citation-cff-and-bump-deps

Conversation

@ryanhill1

@ryanhill1 ryanhill1 commented Aug 19, 2026

Copy link
Copy Markdown
Member

Changes

1. Add CITATION.cff

qbraid-algorithms was the only one of the four qBraid OSE repos without one. Without a CITATION.cff the repo cannot mint a Zenodo DOI, so this package is not citable. (Related: pyqasm and qbraid-qir citations still cannot be counted because neither has a DOI yet — only qBraid has one, 10.5281/zenodo.12627596. That is out of scope here but worth tracking.)

Field order, author formatting, keyword style, license, and repository-artifact follow qBraid/pyqasm and qBraid/qbraid-qir exactly. No doi key, since none has been minted.

2. Wire bin/update_citation.py into the release path

bin/update_citation.py already existed here but was never called: unlike the three sibling repos, bump-version.yml did not invoke it and did not stage CITATION.cff (it already installed pyyaml, so the step looks like it was dropped). Added the two lines the siblings have.

Verification that the tooling works against the new file:

  • The file was generated with yaml.dump(..., sort_keys=False), the same call update_citation.py writes with, so a release rewrite is byte-stable — no reordering, no requoting.
  • python3 bin/update_citation.py 0.1.2 against the committed file produces a diff of exactly one line (date-released, set to today by design). Running it with 0.2.0 / 0.1.3 changes only version, repository-artifact, and date-released.
  • Full release path simulated locally: VERSION=$(python3 bin/bump_version.py patch)0.1.3, then python3 bin/update_citation.py 0.1.3 → correct v0.1.3 artifact URL. Both files reverted afterwards.
  • Output validates against the CFF 1.2.0 schema (cffconvert --validate).

3. Dependencies

package old new
pyqasm >=0.5.0,<1.1.0 >=0.5.0,<1.2.0
qbraid >=0.11.0 unchanged

Latest on PyPI: pyqasm 1.1.0, qbraid 0.12.2. Constraint shape preserved; no floors raised; no switch to ==.

qbraid>=0.11.0 is unbounded and already resolves to 0.12.2, so no edit was needed to build against the latest SDK.

Caveat a reviewer should weigh: every qbraid release through 0.12.2 pins pyqasm<1.1.0, so widening our ceiling does not actually pull in pyqasm 1.1.0 — pip still resolves 1.0.4 via the transitive cap. The change is forward-positioning: it stops our pin from being the blocker once qBraid/qBraid relaxes its own. Relaxing that pin upstream is the real unblock and is not done here.

This supersedes dependabot #87 (pyqasm >=1.0.3,<1.1.0), which cannot cross the major ceiling on its own.

Testing

Ran, on Python 3.11 with an editable install of .[cli,pulse] plus requirements-test.txt:

  • pytest tests with pyqasm 1.1.0 + qbraid 0.12.2 — 124 passed.
  • pytest tests with pyqasm 1.0.4 (what pip actually resolves) + qbraid 0.12.2 — 124 passed.
  • pip check clean on the resolved set; import qbraid_algorithms OK.
  • cffconvert --validate on CITATION.cff — valid.
  • bin/update_citation.py and bin/bump_version.py run locally, as described above.

Not run: tox -e docs, tox -e format-check/linters (no .py under qbraid_algorithms/, tests/, or bin/ was touched), and the bump-version.yml workflow itself in CI — only its two commands, locally.

Uncertainty: author metadata

Authors mirror pyqasm and qbraid-qir, which both credit Harshit Gupta and Ryan Hill; ORCID is copied from the sibling files, none invented. Order is flipped relative to pyqasm because ryanhill1 (54 commits) is the dominant contributor here vs TheGupta2012 (4).

Both are real contributors to this repo, but several others are not credited: babcockt18 (13), Hirmay (7), vinayswamik (6), rjain37 (5), LukeAndreesen (3), sbopanna, Kenny-Heitritter, MTakahashi-KWH, robertjovanov. The sibling repos credit only qBraid Co. staff, so I followed that, but please confirm the author list before merge — this is the metadata that ends up in every citation of the package.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added citation metadata for the qbraid-algorithms software package, including author, license, version, and repository information.
  • Maintenance

    • Updated package compatibility to support newer pyqasm 1.1.x releases.
    • Automated version updates now keep citation metadata synchronized with package releases.

@argus-eye

argus-eye Bot commented Aug 19, 2026

Copy link
Copy Markdown

Argus review

Auto-review is off for this repo. Tick the box below to run a review on this PR.

  • Trigger Argus review

Estimated cost

  • Files changed: 3
  • Diff lines (±): 30

Tip: you can also comment @argus-eye review at any time.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5f16b515-5686-4bde-9a72-062a4ecb4c39

📥 Commits

Reviewing files that changed from the base of the PR and between e968191 and f338e56.

📒 Files selected for processing (3)
  • .github/workflows/bump-version.yml
  • CITATION.cff
  • requirements.txt

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The pull request adds CITATION.cff, updates the version bump workflow to maintain it, and expands the pyqasm dependency upper bound to <1.2.0.

Changes

Release maintenance

Layer / File(s) Summary
Citation metadata release flow
.github/workflows/bump-version.yml, CITATION.cff
The repository adds citation metadata. The version bump workflow updates and commits CITATION.cff with the package version.
pyqasm version constraint
requirements.txt
The allowed pyqasm version range changes from <1.1.0 to <1.2.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to f338e

The PR adds citation metadata that will be reused in Zenodo and package citations; the author list, affiliations, and ORCID should be confirmed before merge to avoid publishing incorrect attribution. The change is otherwise mergeable with this explicit owner follow-up.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the two primary changes: adding CITATION.cff and widening the pyqasm version range.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/add-citation-cff-and-bump-deps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ryanhill1
ryanhill1 merged commit bac92f7 into main Aug 20, 2026
8 checks passed
@ryanhill1
ryanhill1 deleted the chore/add-citation-cff-and-bump-deps branch August 20, 2026 14:22
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