Skip to content

Modernize tada crate dependencies so it compiles and tests pass - #11

Open
evolvedmicrobe wants to merge 1 commit into
masterfrom
modernize-tada-deps
Open

Modernize tada crate dependencies so it compiles and tests pass#11
evolvedmicrobe wants to merge 1 commit into
masterfrom
modernize-tada-deps

Conversation

@evolvedmicrobe

Copy link
Copy Markdown

Summary

  • lib/tada hadn't been built since ~2017 and used wildcard "*" dependency versions, so a fresh checkout resolved today's incompatible latest crate releases and failed to compile (it also referenced a build.rs that never existed in git history).
  • Bumped every dependency in lib/tada and its three vendored external/* crates (martian, rust-shardio, rust-fastq-10x) to current major versions, and dropped the bio dependency entirely (it was declared but only referenced from commented-out code).
  • Migrated call sites off removed/changed APIs: rustc-serializeserde/serde_json, old bincode/docopt/log/fern/rand/crossbeam/csv/flate2 APIs → their current equivalents.
  • Recreated the missing build.rs (git-describe based version stamp, used by tada --version).

Notes

  • RNG output is no longer bit-identical to the old binary (XorShiftRngrand::rngs::SmallRng), but is still deterministic per seed.
  • This is a mechanical dependency/API migration — no behavior or logic changes beyond what was required to compile against modern crate versions.
  • 65 build warnings remain (unused Results, elided lifetimes, missing-ABI extern fns) — left alone since they don't block the build.

Test plan

  • cargo build succeeds (exit 0)
  • cargo build --release succeeds
  • cargo test passes: 27/27 tests across both the lib and bin test targets, plus doc-tests
  • tada --version runs and prints the expected git/rustc version info

🤖 Generated with Claude Code

The tada crate hadn't been touched since 2017 and used wildcard "*"
dependency versions throughout, so a fresh checkout resolved today's
incompatible latest releases and failed to build (it also referenced a
build.rs that never existed in git history). Pinned every dependency
to a current major version, dropped the unused `bio` dependency, and
migrated call sites off removed/changed APIs: rustc-serialize -> serde
+ serde_json, old bincode/docopt/log/fern/rand/crossbeam/csv/flate2
APIs -> their current equivalents.

`cargo build` and `cargo test` both pass; RNG output is no longer
bit-identical to the old binary (XorShiftRng -> SmallRng) but is still
deterministic per seed.

Co-authored-by: Claude Sonnet 5 <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