Skip to content

crates.io publishing mechanics for v0.2.0 (issue #63)#64

Merged
cjfields merged 1 commit into
mainfrom
feat/crates-io-publish-issue63
Jul 6, 2026
Merged

crates.io publishing mechanics for v0.2.0 (issue #63)#64
cjfields merged 1 commit into
mainfrom
feat/crates-io-publish-issue63

Conversation

@cjfields

@cjfields cjfields commented Jul 6, 2026

Copy link
Copy Markdown
Member

Sets up a repeatable NW-only publish path that works around the git wfa2lib-rs dependency (which crates.io rejects), prepares the 0.2.0 release, and repairs a CI regression from the earlier WFA feature-gating.

What's here

  • scripts/publish-crate.sh — strips the WFA git dependency + wfa feature from the manifest, runs cargo publish (passing through args like --dry-run), then restores the manifest via an EXIT trap. The published crate is Needleman-Wunsch only; WFA stays a source-checkout developer build. Verified end-to-end with --dry-run.
  • justfile / Makefile — a publish-crate recipe/target (kept in sync per the CI check).
  • Cargo.toml
    • Bump to 0.2.0 (0.1.0 is already on crates.io).
    • Expand exclude to drop dev/, examples/, notes/, data/, tmp/, and CI/infra files → 116 → 68 files, ~7 MB of PacBio concordance FASTQs removed (1.1 MiB compressed).
    • [lints.rust] check-cfg declaration so the #[cfg(feature = \"wfa\")] code doesn't emit unexpected_cfgs warnings when built without the feature (e.g. cargo install dada2-rs).
  • .github/workflows/concordance.yml — build with --features wfa so its ALIGN_BACKEND=wfa2 steps exercise the real backend instead of the NW-only stub. This repairs a live break: the WFA feature-gating already merged to main, but without this the concordance workflow builds NW-only and then selects wfa2, hitting the stub panic.
  • CHANGELOG.md — new, with a curated 0.2.0 section.

Remaining (not in this PR — needs your crates.io credentials)

  1. cargo login with a crates.io token.
  2. Tag v0.2.0 + push (also triggers release.yml for the GitHub Release binaries).
  3. just publish-crate (no --dry-run) to upload.

Refs #63.

🤖 Generated with Claude Code

Set up a repeatable NW-only publish path that works around the git `wfa2lib-rs`
dependency (which crates.io rejects), and prepare the 0.2.0 release.

- Cargo.toml: bump to 0.2.0; expand `exclude` to drop dev/, examples/, notes/,
  data/, tmp/, and CI/infra files from the crate (116 -> 68 files, ~7 MB of
  PacBio concordance FASTQs removed; 1.1 MiB compressed). Add a `[lints.rust]`
  check-cfg declaration so the `#[cfg(feature = "wfa")]` code does not emit
  `unexpected_cfgs` warnings when built without the feature (e.g. the published
  crate / `cargo install`).
- scripts/publish-crate.sh: strips the WFA git dependency + `wfa` feature from
  the manifest, runs `cargo publish` (passing through args like --dry-run), and
  restores the manifest via an EXIT trap. Verified with --dry-run.
- justfile/Makefile: add a `publish-crate` recipe/target (kept in sync).
- concordance.yml: build with `--features wfa` so its `ALIGN_BACKEND=wfa2`
  steps exercise the real backend instead of the NW-only stub (regression from
  the feature-gating in the previous commit).
- CHANGELOG.md: new, with a curated 0.2.0 section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cjfields cjfields merged commit 347362f into main Jul 6, 2026
7 checks passed
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