Skip to content

M6-REL3: crates.io release — publish gitxtend Rust crate #40

Description

@hartsock

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    milestone:M6Examples + Release (v1.0.0)releaseRelease pipelinerustRust implementation

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions