Skip to content

Set up cargo-release, add CHANGELOG, and fix repo URLs#15

Merged
tfenne merged 3 commits into
mainfrom
tf/cargo-release-setup
Jun 13, 2026
Merged

Set up cargo-release, add CHANGELOG, and fix repo URLs#15
tfenne merged 3 commits into
mainfrom
tf/cargo-release-setup

Conversation

@tfenne

@tfenne tfenne commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Sets up local-from-main releases with cargo release, adds a CHANGELOG.md, documents the release flow, and fixes repo-URL inconsistencies.

release.toml

A single cargo release patch|minor|major --execute (dry-run by default) now: runs the full CI gate (ci-fmt && ci-lint && ci-test) as a pre-release hook, bumps the version in Cargo.toml/Cargo.lock, rolls the CHANGELOG's [Unreleased] section into a dated version section, commits, creates an annotated vX.Y.Z tag, pushes, and publishes to crates.io. Guarded to main-only via allow-branch.

CHANGELOG.md

New, in Keep a Changelog format, back-filled from the existing v0.1.0/v0.2.0/v0.2.1 GitHub releases. The unreleased methylation/bisulfite stack is staged under [Unreleased]. cargo release rolls this forward automatically via pre-release-replacements.

Repo URL fix

Cargo.toml repository/homepage, the README and CONTRIBUTING clone commands, and the startup log banner pointed at github.com/fulcrumgenomics/holodeck, but the repo actually lives at fg-labs/holodeck (remote, releases, badges, CI). Aligned them so the crates.io metadata and docs match reality. The author email is intentionally unchanged.

Docs

CONTRIBUTING.md gains a "Releasing" section and the previously-undocumented security/cargo audit CI job.

Notes

  • GitHub release creation is not automated (local-only by design); gh release create vX.Y.Z --generate-notes is still a manual step, documented in CONTRIBUTING.
  • The crate holodeck is already published and owned on crates.io, so publish = true is safe.
  • Reviewed by a cargo release dry-run: regexes match exactly once, the tag (v0.2.2) matches existing convention, and the CHANGELOG diff is well-formed.

Test plan

  • cargo ci-fmt, cargo ci-lint, cargo ci-test (418 tests pass)
  • cargo release patch dry-run validates config + CHANGELOG replacement

Summary by CodeRabbit

  • Documentation

    • Added changelog entries documenting new methylation simulation features, including methylate subcommand, methylation-mode option for EM-seq/bisulfite/TAPS conversion, and enhanced BAM methylation output capabilities.
    • Updated repository URLs and installation instructions.
  • Chores

    • Added cargo release automation configuration.

tfenne added 3 commits June 13, 2026 13:55
Add a release.toml so releases are cut locally from main with a single
`cargo release` command: it runs the full CI gate, bumps the version, rolls
the CHANGELOG's [Unreleased] section into a dated version section, commits,
tags, pushes, and publishes to crates.io. Guarded to main-only via
allow-branch.

Add CHANGELOG.md (Keep a Changelog format) back-filled from the existing
v0.1.0/v0.2.0/v0.2.1 GitHub releases, with the unreleased methylation work
staged under [Unreleased]. Document the release flow in CONTRIBUTING.md.
Cargo.toml repository/homepage, the README and CONTRIBUTING clone commands,
and the startup log banner all pointed at github.com/fulcrumgenomics/holodeck,
but the actual repository (remote, releases, badges, CI) lives at fg-labs.
Align them so the crates.io metadata and docs match where the code lives.
The author email is left unchanged.
Consistency with the 0.2.0/0.2.1 entries, which group items under typed
### subsections.
@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR migrates the Holodeck repository ownership from fulcrumgenomics to fg-labs, documents newly implemented methylation simulation features in the changelog, and configures cargo-release automation for versioned publishing with pre-release CI gates and automatic changelog updates.

Changes

Repository Transfer and Release Automation

Layer / File(s) Summary
Repository Ownership Migration
Cargo.toml, CONTRIBUTING.md, README.md, src/main.rs
Repository references updated from fulcrumgenomics/holodeck to fg-labs/holodeck in package metadata, clone instructions, and startup logging.
Methylation Features Changelog
CHANGELOG.md
New [Unreleased] section documents two-step methylate subcommand with spatially correlated Markov-chain methylation truth generation, simulate methylation-mode conversion for EM-seq/bisulfite/TAPS workflows, enhanced Bismark-compatible BAM tags, and coverage-weighted methylation truth outputs.
Release Process and CI Automation
release.toml, CONTRIBUTING.md
Introduces cargo-release configuration restricting releases to main branch, running pre-release CI gates (format/lint/test/security audit), and automating changelog rollforward; updates CONTRIBUTING to document security audit job and revised release workflow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • fg-labs/holodeck#13: Both PRs update documentation around methylation simulation features and Golden BAM tag outputs that were introduced in that feature work.

Suggested reviewers

  • nh13

Poem

🐰 From fulcrum's old home to fg-labs we hop,
With methylation tales and release configs top,
Changelog spins gold from Markov-chain dreams,
Cargo release flows in automated streams,
New homes, new tales—this rabbit's quite thrilled! 🧬

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately summarizes the three primary changes: cargo-release setup, CHANGELOG addition, and repository URL corrections across multiple files.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/main.rs`:
- Line 83: Update the startup banner string in the log::info! call in main (the
log::info!("Holodeck by Fulcrum Genomics -
https://github.com/fg-labs/holodeck"); statement) to reflect the new ownership
and URL—replace "Fulcrum Genomics" with the new owner name and ensure the URL
matches the intended repository; keep the same log::info! invocation but change
only the literal message text.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b9a6a111-e8f3-4210-be14-c1d36c4f1548

📥 Commits

Reviewing files that changed from the base of the PR and between ff816f3 and d75cbf4.

📒 Files selected for processing (6)
  • CHANGELOG.md
  • CONTRIBUTING.md
  • Cargo.toml
  • README.md
  • release.toml
  • src/main.rs

Comment thread src/main.rs

let cmdline = std::env::args().collect::<Vec<_>>().join(" ");
log::info!("Holodeck by Fulcrum Genomics - https://www.github.com/fulcrumgenomics/holodeck");
log::info!("Holodeck by Fulcrum Genomics - https://github.com/fg-labs/holodeck");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update the startup banner text to match the new ownership.

The URL is updated, but the log message still advertises Fulcrum Genomics. If this migration is meant to be complete, this string should be renamed too.

💡 Suggested fix
-    log::info!("Holodeck by Fulcrum Genomics - https://github.com/fg-labs/holodeck");
+    log::info!("Holodeck - https://github.com/fg-labs/holodeck");
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
log::info!("Holodeck by Fulcrum Genomics - https://github.com/fg-labs/holodeck");
log::info!("Holodeck - https://github.com/fg-labs/holodeck");
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/main.rs` at line 83, Update the startup banner string in the log::info!
call in main (the log::info!("Holodeck by Fulcrum Genomics -
https://github.com/fg-labs/holodeck"); statement) to reflect the new ownership
and URL—replace "Fulcrum Genomics" with the new owner name and ensure the URL
matches the intended repository; keep the same log::info! invocation but change
only the literal message text.

@tfenne
tfenne merged commit 74f3b56 into main Jun 13, 2026
5 checks passed
@tfenne
tfenne deleted the tf/cargo-release-setup branch June 13, 2026 20:23
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