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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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