Skip to content

Commit

Permalink
rename git-repository to gix
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed Feb 11, 2023
1 parent abe1e91 commit 7bed2a9
Show file tree
Hide file tree
Showing 334 changed files with 5,346 additions and 5,479 deletions.
10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,12 @@ This release also fixes compatibility issues that formerly prevented to fetch or
- upgrade to prodash v22 for API improvements ([`77ab98d`](https://github.com/Byron/gitoxide/commit/77ab98dd41c3849b674d8b3794ef29219ca1447d))
- auto-enabled verbosity for `gix fetch/clone` and add `--no-verbose`. ([`9814369`](https://github.com/Byron/gitoxide/commit/98143699bb9481b010e21647f64dcb8a74bd80ad))
- switch from `atty` to `is-terminal` ([`7304bc1`](https://github.com/Byron/gitoxide/commit/7304bc1c0efaad64a39520962072343ef02f6c25))
- adapt to changes in `git-repository` ([`c4f68bf`](https://github.com/Byron/gitoxide/commit/c4f68bf775b854625d901fe0bfcbdd38f656d408))
- adapt to changes in `gix` ([`c4f68bf`](https://github.com/Byron/gitoxide/commit/c4f68bf775b854625d901fe0bfcbdd38f656d408))
- represent object cache configuration like `GITOXIDE_PACK_CACHE_MEMORY` in git-configuration. ([`becbd8d`](https://github.com/Byron/gitoxide/commit/becbd8d896a1663f1607be4e86e632773e926f1f))
- represent `GIT_(COMMITTER|AUTHOR)_(NAME|EMAIL|DATE)` with git configuration. ([`a4ac9cf`](https://github.com/Byron/gitoxide/commit/a4ac9cf3e667a3059e33aac8188150529578622d))
- `open::ReplacementObjects` is removed in favor of two custom git-configuration flags. ([`49f39d6`](https://github.com/Byron/gitoxide/commit/49f39d6bb487c0254176a5082f2c7851b83952a1))
- apply related environment variables as config overrides ([`9441c26`](https://github.com/Byron/gitoxide/commit/9441c261bcae61d1d1e674b5e783f38b0471be29))
- adapt to changes in `git-repository` ([`f1a4c8b`](https://github.com/Byron/gitoxide/commit/f1a4c8b42ed8c94e7fe3a61eb222cf6b0886f4ee))
- adapt to changes in `gix` ([`f1a4c8b`](https://github.com/Byron/gitoxide/commit/f1a4c8b42ed8c94e7fe3a61eb222cf6b0886f4ee))
- update progress of http.proxyAuthMethod ([`872dc1a`](https://github.com/Byron/gitoxide/commit/872dc1ab43ce626b4166dae3dc8bddf8e85c9409))
- add `--strict` option to enforce strict checking of configuration. ([`aeb4a1d`](https://github.com/Byron/gitoxide/commit/aeb4a1d5cb76316058c7d687e26f5c7db351c09c))
- don't lock stdout/stderr as it will deadlock on dbg-printing ([`62cae0e`](https://github.com/Byron/gitoxide/commit/62cae0e6bfe8113c0225152a896338017c8de474))
Expand All @@ -150,7 +150,7 @@ This release also fixes compatibility issues that formerly prevented to fetch or
- <csr-id-3ddbd2de369b521fa3f21935f10fe9c248840893/> Make `reqwest` TLS backend configuration easy.
We provide the choice of `native-tls` or `rust-tls`. If none is
provided, the user can configure on their on similar to how it's done
in `git-repository`.
in `gix`.

Please note that a choice now has to be made or HTTPS will not be
available, so use one of…
Expand Down Expand Up @@ -786,11 +786,11 @@ to the `clap-derive` crate.

## v0.9.0 (2021-10-15)

A first usable version of `git-repository` to make using `gitoxide` from your applications so much easier. It serves as a one-stop shop for application developers without sacrificing performance by default while making common use-cases more convenient.
A first usable version of `gix` to make using `gitoxide` from your applications so much easier. It serves as a one-stop shop for application developers without sacrificing performance by default while making common use-cases more convenient.

### Feature list

* `git-repository` as hub crate for application development with focus on usability without sacrificing any knob to tune performance.
* `gix` as hub crate for application development with focus on usability without sacrificing any knob to tune performance.
* opt-in `async` for `git-packetline`, `git-transport` and `git-protocol` for fully async git clients, along with the `light-async` feature toggle to build a `gix pack-receive` with an async client instead of a blocking one.
* Statistics for `gix pack-create` with the `-s/--statistics` flag to have data indicating the cost of the operation. Currently it's doing a lot of work that has to be avoided in order to be useable in production and the numbers underline that. Future iterations will cause key metrics to go down.
* Packs are now reproducible by default, which means that the same tip will always generate a pack with the same hash. This may be a desirable property for some kinds of packs, but not for others which is why it can be turned off for a considerable speed boost.
Expand Down
116 changes: 56 additions & 60 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 6 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ default = ["max"]
## Makes the crate execute as fast as possible by supporting parallel computation of otherwise long-running functions
## as well as fast, hardware accelerated hashing, along with a faster zlib backend.
## If disabled, the binary will be visibly smaller.
fast = ["git-repository/max-performance"]
fast = ["gix/max-performance"]

## Use `clap` 3.0 to build the prettiest, best documented and most user-friendly CLI at the expense of binary size.
## Provides a terminal user interface for detailed and exhaustive progress.
Expand All @@ -43,7 +43,7 @@ prodash-render-line-crossterm = ["prodash-render-line", "prodash/render-line-cro
#! These combine common choices of the above features to represent typical builds

## *fast* + *prodash-render-tui-crossterm* + *prodash-render-line-crossterm* + *http* + *gitoxide-core-tools* + *client-networking*
max = ["fast", "pretty-cli", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client", "prodash-render-line", "prodash-render-tui", "prodash/render-line-autoconfigure", "git-repository/regex" ]
max = ["fast", "pretty-cli", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client", "prodash-render-line", "prodash-render-tui", "prodash/render-line-autoconfigure", "gix/regex" ]

## *fast* + *prodash-render-line-crossterm* + *gitoxide-core-tools* + *client-networking*.
lean = ["fast", "pretty-cli", "http-client-curl", "gitoxide-core-tools", "gitoxide-core-blocking-client", "prodash-render-line" ]
Expand All @@ -57,7 +57,7 @@ lean-async = ["fast", "pretty-cli", "gitoxide-core-tools", "gitoxide-core-async-
small = ["pretty-cli", "git-features/rustsha1", "git-features/zlib-rust-backend", "prodash-render-line", "is-terminal" ]

## Makes the crate execute as fast as possible without pulling in C libraries, while keeping everything else minimal akin to the `small` build.
max-pure = ["pretty-cli", "git-features/rustsha1", "git-features/zlib-rust-backend", "prodash-render-line", "prodash-render-tui", "git-repository/max-performance-safe", "http-client-reqwest", "gitoxide-core-blocking-client", "gitoxide-core-tools", "prodash/render-line-autoconfigure" ]
max-pure = ["pretty-cli", "git-features/rustsha1", "git-features/zlib-rust-backend", "prodash-render-line", "prodash-render-tui", "gix/max-performance-safe", "http-client-reqwest", "gitoxide-core-blocking-client", "gitoxide-core-tools", "prodash/render-line-autoconfigure" ]

#! ### `gitoxide-core` Configuration

Expand All @@ -70,9 +70,9 @@ gitoxide-core-tools = ["gitoxide-core/organize", "gitoxide-core/estimate-hours"]
## Use blocking client networking.
gitoxide-core-blocking-client = ["gitoxide-core/blocking-client"]
## Support synchronous 'http' and 'https' transports (e.g. for clone, fetch and push) using **curl**.
http-client-curl = ["git-repository/blocking-http-transport-curl"]
http-client-curl = ["gix/blocking-http-transport-curl"]
## Support synchronous 'http' and 'https' transports (e.g. for clone, fetch and push) using **reqwest**.
http-client-reqwest = ["git-repository/blocking-http-transport-reqwest-rust-tls"]
http-client-reqwest = ["gix/blocking-http-transport-reqwest-rust-tls"]
## Use async client networking.
gitoxide-core-async-client = ["gitoxide-core/async-client", "futures-lite"]

Expand All @@ -86,7 +86,7 @@ anyhow = "1.0.42"

gitoxide-core = { version = "^0.24.0", path = "gitoxide-core" }
git-features = { version = "^0.26.2", path = "git-features" }
git-repository = { version = "^0.35.0", path = "git-repository", default-features = false }
gix = { version = "^0.35.0", path = "gix", default-features = false }

clap = { version = "4.1.1", features = ["derive", "cargo"] }
prodash = { version = "23.0", optional = true, default-features = false }
Expand Down Expand Up @@ -172,7 +172,6 @@ members = [
"git-pathspec",
"git-refspec",
"git-path",
"git-repository",
"gix",
"gitoxide-core",
"git-hashtable",
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ A bunch of notes collected to keep track of what's needed to eventually support

In _plumbing_ crates, prefer to default to keeping references if this is feasible to avoid typically expensive clones.

In _porcelain_ crates, like `git-repository`, we have `Platforms` which are typically cheap enough to create on demand as they configure one or more method calls. These
In _porcelain_ crates, like `gix`, we have `Platforms` which are typically cheap enough to create on demand as they configure one or more method calls. These
should keep a reference to the `Repository` instance that created them as the user is expected to clone the `Repository` if there is the need.
However, if these structures are more expensive, call them `Cache` or `<NotPlatform>` and prefer to clone the `Repository` into them or otherwise keep them free of lifetimes
to allow the user to keep this structure around for repeated calls. References for this paragraph are [this PR](https://github.com/Canop/bacon/pull/98) and
Expand Down
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ clippy: ## Run cargo clippy on all crates
cargo clippy --all --no-default-features --features lean-async --tests

check-msrv: ## run cargo msrv to validate the current msrv requirements, similar to what CI does
cd git-repository && cargo check --package git-repository --no-default-features --features async-network-client,max-performance
cd gix && cargo check --package gix --no-default-features --features async-network-client,max-performance

check: ## Build all code in suitable configurations
cargo check --all
Expand Down Expand Up @@ -124,7 +124,7 @@ check: ## Build all code in suitable configurations
&& cargo check --features blocking-client \
&& cargo check --features async-client
cd git-protocol && if cargo check --all-features 2>/dev/null; then false; else true; fi
cd git-repository && cargo check --no-default-features --features async-network-client \
cd gix && cargo check --no-default-features --features async-network-client \
&& cargo check --no-default-features --features async-network-client-async-std \
&& cargo check --no-default-features --features blocking-network-client \
&& cargo check --no-default-features --features blocking-http-transport-curl \
Expand Down Expand Up @@ -157,7 +157,7 @@ unit-tests: ## run all unit tests
cd git-protocol && cargo test --features blocking-client \
&& cargo test --features async-client \
&& cargo test
cd git-repository && cargo test \
cd gix && cargo test \
&& cargo test --features async-network-client \
&& cargo test --features blocking-network-client \
&& cargo test --features regex
Expand Down Expand Up @@ -288,12 +288,12 @@ bench-git-config:

check-msrv-on-ci: ## Check the minimal support rust version for currently installed Rust version
rustc --version
cargo check --package git-repository
cargo check --package git-repository --no-default-features --features async-network-client,max-performance
cargo check --package gix
cargo check --package gix --no-default-features --features async-network-client,max-performance

##@ Maintenance

baseline_asset_dir = git-repository/src/assets/baseline-init
baseline_asset_dir = gix/src/assets/baseline-init
baseline_asset_fixture = tests/fixtures/baseline-init

$(baseline_asset_fixture):
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
performance while providing a pleasant and unsurprising developer experience.

`gitoxide` provides the `gix` and `ein` binaries for use on the command-line to allow experimentation with key features
like `fetch` and `clone`, and to validate the usability and control of the API offered by the [`git-repository`] crate.
like `fetch` and `clone`, and to validate the usability and control of the API offered by the [`gix`] crate.

`gitoxide` aspires to be a production-grade server implementation and the `ein` binary aspires to become the default way to interact with git repositories.

[![asciicast](https://asciinema.org/a/542159.svg)](https://asciinema.org/a/542159)

[`git-repository`]: https://docs.rs/git-repository
[`gix`]: https://docs.rs/gix

## Development Status

The command-line tools as well as the status of each crate is described in
[the crate status document](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-mailmap).

For use in applications, look for the [`git-repository`](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-repository) crate,
For use in applications, look for the [`gix`](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix) crate,
which serves as entrypoint to the functionality provided by various lower-level plumbing crates like
[`git-config`](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-config).

Expand Down Expand Up @@ -74,7 +74,7 @@ is usable to some extent.
* [git-quote](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-quote)
* [git-discover](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-discover)
* [git-path](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-path)
* [git-repository](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-repository)
* [gix](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix)
* [git-attributes](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-attributes)
* [git-pathspec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-pathspec)
* [git-index](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-index)
Expand Down
2 changes: 1 addition & 1 deletion SHORTCOMINGS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
This file is for tracking features that are less well implemented or less powerful than their `git` counterparts for one reason or another.

#### `git-repository`
#### `gix`

### git-index

Expand Down
4 changes: 2 additions & 2 deletions STABILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ The following schematic helps to visualize what follows.
║ └───────────────────────────────────┘ ║
║ │ ║
║ ▼ ║
git-repository──────────────────────┐ ║
gix ──────────────────────────────┐ ║
║ │ application crate │─ ─ ╬ ─
║ └───────────────────────────────────┘ ║ │
║ │ ║
Expand Down Expand Up @@ -123,7 +123,7 @@ Minor version updates for new features can be released when needed assuming ther

## The _Minimal Supported Rust Version_ (->MSRV)

The MSRV is automatically assumed to be the latest stable version for all crates with the following exception: `git-repository` and all it's dependencies must
The MSRV is automatically assumed to be the latest stable version for all crates with the following exception: `gix` and all it's dependencies must
adhere to an MSRV, as validated by the `msrv.yml` GitHub workflow.

Increasing the MSRV is considered a breaking change and warrants a major version bump itself for stable crates and a minor version bump for IDP crates.
Expand Down
Loading

0 comments on commit 7bed2a9

Please sign in to comment.