Skip to content

Add release tooling: release-crispritz skill, RELEASING guide, CHANGELOG, prepare_release.py - #22

Open
lucapinello wants to merge 2 commits into
masterfrom
release-tooling
Open

Add release tooling: release-crispritz skill, RELEASING guide, CHANGELOG, prepare_release.py#22
lucapinello wants to merge 2 commits into
masterfrom
release-tooling

Conversation

@lucapinello

Copy link
Copy Markdown
Contributor

What this adds

Release tooling for CRISPRitz that mirrors what CRISPRme already has, so a maintainer can cut a CRISPRitz release to Bioconda and then repin CRISPRme to it.

  • .claude/skills/release-crispritz/SKILL.md — end-to-end release skill: (a) version-consistency pre-flight across crispritz.py / conda/meta.yaml / Dockerfile / git tag; (b) update CHANGELOG.md; (c) create the GitHub release/tag vX.Y.Z; (d) update the Bioconda crispritz recipe (version + sha256 + build.number: 0) — CRISPRitz is compiled, so autobump opens the PR but the build CI must pass on linux-64 + linux-aarch64 and a Bioconda maintainer merges; (e) the cross-repo repin: bump crispritz_version in CRISPRme's Dockerfile AND the crispritz X.Y.Z pin in CRISPRme's Bioconda recipe, then cut a CRISPRme release; (f) verify install on both arches.
  • docs/RELEASING.md — human-readable guide with a crispritz → Bioconda → CRISPRme-repin diagram and the compiled-package caveat (arm64 must build).
  • CHANGELOG.md — Keep a Changelog, seeded [2.7.0] + prior tags, plus an [Unreleased] entry for the pending #105 fix + CI + the stale-.pyc cleanup.
  • scripts/prepare_release.py — idempotent version bump across the version-pinned files (crispritz.py, conda/meta.yaml; Dockerfile skipped when it holds no pin), computes the sha256 of the GitHub release tarball, and prints the meta.yaml diff + changelog scaffold + cross-repo reminder. Mirrors CRISPRme's scripts/prepare_release.py.

The chain this documents

git tag vX.Y.Z → GitHub release tarball → Bioconda recipes/crispritz/meta.yaml
   (sha256 of tarball; COMPILED → build CI must pass on linux-64 + linux-aarch64)
        → crispritz X.Y.Z live on Bioconda
        → CRISPRme repin (Dockerfile ARG crispritz_version + recipe `- crispritz X.Y.Z`)
        → CRISPRme release

sha256 test result (proves the flow)

Downloaded the live v2.7.0 tarball (https://github.com/pinellolab/CRISPRitz/archive/v2.7.0.tar.gz — the exact URL form the Bioconda recipe uses), computed its sha256 via prepare_release.py, and compared it to the live crispritz Bioconda recipe:

  • computed: 89edad0570e3766c41184139197320aae1263f8d91fbc8c30f12105329d67377
  • bioconda: 89edad0570e3766c41184139197320aae1263f8d91fbc8c30f12105329d67377
  • MATCH ✅ (67,990,972 bytes)

Also verified prepare_release.py for a fake next version edits only the intended version files and is idempotent on re-run, then reverted.

Notes

  • CRISPRitz version currently lives in crispritz.py (VERSION = "...") and the in-repo conda/meta.yaml stub. The authoritative recipe is on bioconda/bioconda-recipes (recipes/crispritz/meta.yaml); the in-repo conda/meta.yaml has drifted (stale version + old InfOmics URL) and is treated as advisory. The pre-flight step exists to catch exactly this drift.
  • This PR is tooling/docs only — no version bump and no release are performed here.

cc @ManuelTgn

🤖 Generated with Claude Code

lucapinello and others added 2 commits August 1, 2026 16:42
…LOG, prepare_release.py

Mirror CRISPRme's release tooling for CRISPRitz so a maintainer can cut a
CRISPRitz release to Bioconda and then repin CRISPRme to it.

- .claude/skills/release-crispritz/SKILL.md: end-to-end release skill
  (version-consistency pre-flight across crispritz.py / conda/meta.yaml /
  Dockerfile / git tag; CHANGELOG; GitHub release/tag vX.Y.Z; COMPILED Bioconda
  crispritz recipe update with sha256 + build.number:0 requiring green
  linux-64 + linux-aarch64 build CI; cross-repo CRISPRme repin of both pins +
  CRISPRme release; install verification on both arches).
- docs/RELEASING.md: human-readable guide with a crispritz -> Bioconda ->
  CRISPRme-repin diagram and the compiled-package caveat (arm64 must build).
- CHANGELOG.md: Keep a Changelog, seeded [2.7.0] + prior tags, with an
  [Unreleased] entry for the pending #105 fix + CI + stale-.pyc cleanup.
- scripts/prepare_release.py: idempotent version bump across the version-pinned
  files, sha256 of the GitHub release tarball, meta.yaml diff + changelog
  scaffold + cross-repo reminder.

Verified: the v2.7.0 tarball sha256 computed by prepare_release.py matches the
live Bioconda crispritz recipe (89edad0570e3766c41184139197320aae1263f8d91fbc8c30f12105329d67377).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… meta.yaml 1.1.1)

The 'crispritz.py --version' string had drifted (2.6.6 even on the v2.7.0 tag) and
the in-repo conda/meta.yaml stub was a stale 1.1.1. Align both to the released
2.7.0 so the repo reflects reality; prepare_release.py bumps from here on release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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