Skip to content

Commit

Permalink
Merge branch 'gix-url-parse-rewrite'
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed Sep 26, 2023
2 parents 94fe675 + 4184a5e commit a12e4a8
Show file tree
Hide file tree
Showing 24 changed files with 1,132 additions and 566 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased

This release includes an overhaul of the url parsing implementation, allowing more urls to be parsed correctly and refining the error messages for
invalid ones. Improvements include the added support for ssh aliases (`github:byron/gitoxide` has previously been parsed as local path), adjustments
around the interpretation of colons in file names (previously we disallowed colons that were not followed up with a slash character) and some smaller
changes that bring the interpretation of file urls more in line with Git's implementation.

There are still many (edge) cases in Git's url parsing implementation which are not handled correctly by Gitoxide. If you notice any such deviation please
open a new issue to help us making Gitoxide even more correct.

## 0.30.0 (2023-09-24)

<csr-id-d3ac691446c9d029eb4f04d111887fa06720939d/>
Expand Down
28 changes: 7 additions & 21 deletions Cargo.lock

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

12 changes: 12 additions & 0 deletions gix-url/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased

This release contains a complete rewrite of the internal url parsing logic, the public interface stays mostly the same however. Gitoxide will now be
more correct, interpreting more urls the same way Git does. Improvements include the added support for ssh aliases (`github:byron/gitoxide` has previously
been parsed as local path), adjustments around the interpretation of colons in file names (previously we disallowed colons that were not followed up
with a slash character) and some smaller changes that bring the interpretation of file urls more in line with Git's implementation. Additionally, the
error types have been adjusted to print a more comprehensive message by default, making sure they stay helpful even when bubbled up through multiple abstraction
layers.

There are still many (edge) cases in Git's url parsing implementation which are not handled correctly by Gitoxide. If you notice any such deviation please
open a new issue to help us making Gitoxide even more correct.

## 0.24.0 (2023-09-24)

### New Features
Expand Down
6 changes: 1 addition & 5 deletions gix-url/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@ rust-version = "1.65"
[lib]
doctest = false

[[test]]
name = "baseline"
harness = false

[features]
## Data structures implement `serde::Serialize` and `serde::Deserialize`.
serde = ["dep:serde", "bstr/serde"]
Expand All @@ -33,8 +29,8 @@ home = "0.5.3"
document-features = { version = "0.2.0", optional = true }

[dev-dependencies]
assert_matches = "1.5.0"
gix-testtools = { path = "../tests/tools" }
libtest-mimic = "0.6.1"

[package.metadata.docs.rs]
all-features = true
Expand Down
3 changes: 3 additions & 0 deletions gix-url/fuzz/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
target
corpus
artifacts

0 comments on commit a12e4a8

Please sign in to comment.