From 323aeae7262b2318818924a1ad9c372f2745bdf4 Mon Sep 17 00:00:00 2001 From: Blai Peidro Date: Fri, 30 Oct 2026 00:43:03 +0100 Subject: [PATCH 1/2] feat!: rename the crate to git-rs The crate name is the repository name with -rs, and no longer carries the unified- prefix, which belongs to products. Nothing else changes. BREAKING CHANGE: a service depends on git-rs instead of unified-git, and imports git_rs::. --- CODE_OF_CONDUCT.md | 2 +- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 2 +- README.md | 2 +- docs/development.md | 4 ++-- docs/releasing.md | 4 ++-- docs/usage.md | 6 +++--- src/lib.rs | 2 +- tests/cli_test.rs | 2 +- tests/no_git_test.rs | 2 +- tests/no_tar_test.rs | 2 +- 11 files changed, 24 insertions(+), 24 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index dd73ea6..5af0567 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -57,7 +57,7 @@ an individual is officially representing the community in public spaces. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement via -[GitHub Issues](https://github.com/OpusProjects/unified-gitops/issues). All complaints will be reviewed and investigated +[GitHub Issues](https://github.com/OpusProjects/git-rsops/issues). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/Cargo.lock b/Cargo.lock index 76d645f..423a8e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,6 +53,16 @@ dependencies = [ "r-efi", ] +[[package]] +name = "git-rs" +version = "0.1.0" +dependencies = [ + "base64", + "tempfile", + "tokio", + "tracing", +] + [[package]] name = "libc" version = "0.2.191" @@ -298,16 +308,6 @@ version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563" -[[package]] -name = "unified-git" -version = "0.1.0" -dependencies = [ - "base64", - "tempfile", - "tokio", - "tracing", -] - [[package]] name = "wasi" version = "0.11.1+wasi-snapshot-preview1" diff --git a/Cargo.toml b/Cargo.toml index dddb3ed..3ef8470 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "unified-git" +name = "git-rs" description = "Git checkouts for services that run code from a repository: clone, pull, commits and export, with credentials kept off the command line" version = "0.1.0" edition = "2024" diff --git a/README.md b/README.md index e65d4f2..937a842 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Git keeps a local checkout of a repository up to date and reads from it: which c what a pull brought, and a folder as it was at an older commit. It drives the `git` binary, so what it does is what `git -C log` shows, and it keeps credentials off the command line. -One crate, `unified-git`: the `GitPort` trait a service codes against, `CliGit` that implements it, +One crate, `git-rs`: the `GitPort` trait a service codes against, `CliGit` that implements it, and the functions that remove credentials written into an address before it is shown or logged. --- diff --git a/docs/development.md b/docs/development.md index e4e29fd..be74340 100644 --- a/docs/development.md +++ b/docs/development.md @@ -12,7 +12,7 @@ local copy before anything is released. ## Layout -One crate, `unified-git`, at the root of the repository. +One crate, `git-rs`, at the root of the repository. ``` Cargo.toml # the crate: version, MSRV, dependencies @@ -78,7 +78,7 @@ With this repository checked out next to the service, add a `[patch]` section to ```toml [patch."https://github.com/OpusProjects/git"] -unified-git = { path = "../git" } +git-rs = { path = "../git" } ``` Then run the service's own gates (`cargo clippy --all-targets -- -D warnings` and `cargo test`): diff --git a/docs/releasing.md b/docs/releasing.md index a76fee3..ee0bccc 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -151,10 +151,10 @@ gh workflow run build.yaml --ref release-please--branches--main A release here changes nothing in a service until it names the new tag. In each service that uses the crate, open a `build:` pull request (`build: move to git v0.2.0`) -that changes the `tag` of `unified-git` in `Cargo.toml` and refreshes the lockfile: +that changes the `tag` of `git-rs` in `Cargo.toml` and refreshes the lockfile: ```bash -cargo update -p unified-git +cargo update -p git-rs ``` The service's CI is the check that the release works there. A release that changes what a person diff --git a/docs/usage.md b/docs/usage.md index e8da1fe..2939edd 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,6 +1,6 @@ # Usage -How a service uses the `unified-git` crate: the trait it codes against, the adapter that implements +How a service uses the `git-rs` crate: the trait it codes against, the adapter that implements it, how credentials reach git, and what each operation does. - [Depending on the crate](#depending-on-the-crate) @@ -20,7 +20,7 @@ it, how credentials reach git, and what each operation does. A service names a release tag of this repository in its `Cargo.toml`, never a branch. ```toml -unified-git = { git = "https://github.com/OpusProjects/git", tag = "v0.1.0" } +git-rs = { git = "https://github.com/OpusProjects/git", tag = "v0.1.0" } ``` The machine that runs the service needs the `git` binary (2.31 or newer, for the credential @@ -34,7 +34,7 @@ A service holds a `GitPort` and builds a `CliGit` once, where it wires its adapt ```rust use std::sync::Arc; -use unified_git::{CliGit, GitPort, Remote}; +use git_rs::{CliGit, GitPort, Remote}; let git: Arc = Arc::new(CliGit::new()); let remote = Remote { url: project.git_url.clone(), branch: project.branch.clone() }; diff --git a/src/lib.rs b/src/lib.rs index 6d067f6..42156d1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -// unified-git — local checkouts of a git repository, kept up to date. +// git-rs — local checkouts of a git repository, kept up to date. // // A service that runs scripts or reads files from a repository needs the same // few things: clone it, pull it, know which commit it is at, see what a pull diff --git a/tests/cli_test.rs b/tests/cli_test.rs index 10b100f..9f9bfb1 100644 --- a/tests/cli_test.rs +++ b/tests/cli_test.rs @@ -4,7 +4,7 @@ use std::collections::HashMap; use std::path::Path; -use unified_git::{CliGit, GitPort, Remote}; +use git_rs::{CliGit, GitPort, Remote}; pub async fn run(dir: &Path, args: &[&str]) { let status = tokio::process::Command::new("git") diff --git a/tests/no_git_test.rs b/tests/no_git_test.rs index 82c2017..6975cc6 100644 --- a/tests/no_git_test.rs +++ b/tests/no_git_test.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use std::path::Path; -use unified_git::{CliGit, GitPort, Remote}; +use git_rs::{CliGit, GitPort, Remote}; #[tokio::test] async fn every_operation_says_git_is_missing() { diff --git a/tests/no_tar_test.rs b/tests/no_tar_test.rs index b72f9b0..c32f2d3 100644 --- a/tests/no_tar_test.rs +++ b/tests/no_tar_test.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use std::path::Path; -use unified_git::{CliGit, GitPort, Remote}; +use git_rs::{CliGit, GitPort, Remote}; async fn git(dir: &Path, args: &[&str]) { let status = tokio::process::Command::new("git") From 41bf2acfb74b0297bb3413e9c96438edb8ff001b Mon Sep 17 00:00:00 2001 From: Blai Peidro Date: Fri, 30 Oct 2026 00:43:35 +0100 Subject: [PATCH 2/2] docs: point the code of conduct at this repository's issues --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5af0567..136e75d 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -57,7 +57,7 @@ an individual is officially representing the community in public spaces. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement via -[GitHub Issues](https://github.com/OpusProjects/git-rsops/issues). All complaints will be reviewed and investigated +[GitHub Issues](https://github.com/OpusProjects/git/issues). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the