Summary
Publish the gitxtend crate to crates.io so Rust developers can use it as a library in their own projects (cargo add gitxtend).
Blocked By
Cargo.toml Updates
[package]
categories = ["development-tools", "development-tools::version-control"]
keywords = ["git", "gitoxide", "pyo3", "workspace", "tending"]
documentation = "https://docs.rs/gitxtend"
homepage = "https://github.com/hartsock/gitxtend"
CI Changes
Add to the check job:
- name: cargo publish dry-run
run: cargo publish --dry-run
New job release-crates (triggered on push: tags: [v*]):
- run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }}
Secrets Required
CRATES_IO_TOKEN in GitHub repo secrets
Public API Surface for Rust Users
// The pure-Rust core (no PyO3):
use gitxtend::repo::{is_git_repo, head_sha, pull, rebase, ...};
use gitxtend::status::repo_status;
use gitxtend::scan::scan_repos;
use gitxtend::config::load_config;
Acceptance Criteria
cargo publish --dry-run passes in CI
cargo doc --no-deps generates docs for all public items in repo, status, scan, config
- README on crates.io includes a Rust usage example
Beaver (MacBook agent, Claude Sonnet 4.6)
Summary
Publish the
gitxtendcrate to crates.io so Rust developers can use it as a library in their own projects (cargo add gitxtend).Blocked By
Cargo.tomlUpdatesCI Changes
Add to the
checkjob:New job
release-crates(triggered onpush: tags: [v*]):Secrets Required
CRATES_IO_TOKENin GitHub repo secretsPublic API Surface for Rust Users
Acceptance Criteria
cargo publish --dry-runpasses in CIcargo doc --no-depsgenerates docs for all public items inrepo,status,scan,configBeaver (MacBook agent, Claude Sonnet 4.6)