Skip to content

Commit 6b9632e

Browse files
committed
Merge branch 'main' into http-config
2 parents c4f68bf + 378837a commit 6b9632e

File tree

47 files changed

+548
-215
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+548
-215
lines changed

Diff for: Cargo.lock

+23-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ cache-efficiency-debug = ["git-features/cache-efficiency-debug"]
8585
anyhow = "1.0.42"
8686

8787
gitoxide-core = { version = "^0.21.0", path = "gitoxide-core" }
88-
git-features = { version = "^0.24.0", path = "git-features" }
88+
git-features = { version = "^0.24.1", path = "git-features" }
8989
git-repository = { version = "^0.29.0", path = "git-repository", default-features = false }
9090

9191
clap = { version = "3.2.5", features = ["derive", "cargo"] }
@@ -174,6 +174,7 @@ members = [
174174
"git-path",
175175
"git-repository",
176176
"gitoxide-core",
177+
"git-hashtable",
177178
"git-tui",
178179
"git-tix",
179180

Diff for: DEVELOPMENT.md

+59
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,65 @@
1717
* provide an error chain and make it easy to understand what went wrong.
1818
* We `thiserror` generally.
1919
* Adhere to the [stability guide](https://github.com/Byron/gitoxide/blob/main/STABILITY.md)
20+
21+
## Commit Messages
22+
23+
We use a style I'd call 'purposeful [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)', and instead of classifying
24+
every commit using _conventional commit_ messaging, we do so only if the message should show up in the changelog.
25+
26+
The _subject_ usually informs about the *what* and the body provides details and explains the *why*.
27+
28+
Commit messages _must_ show up in the changelog in case of breaking changes. Examples for that are:
29+
30+
- change!: rename `Foo` to `Bar`. (#123)
31+
32+
And this is why we do it in the body.
33+
- remove!: `Repository::obsolete()`.
34+
35+
Nobody used this method.
36+
37+
Features or other changes that are visible and people should know about look like this:
38+
39+
- feat: add `Repository::foo()` to do great things. (#234)
40+
41+
And here is how it's used and some more details.
42+
- fix: don't panic when calling `foo()` in a bare repository. (#456)
43+
44+
Everything else, particularly refactors or chores, don't use _conventional commits_ as these don't affect users of the API.
45+
Examples could be:
46+
47+
- make test module structure similar to the modules they are testing for consistency
48+
- `make fmt`
49+
- thanks clippy
50+
51+
Please refrain from using `chore:` or `refactor:` prefixes as for the most part, users of the API don't care about those. When a `refactor`
52+
changes the API in some way, prefer to use `feat`, `change`, `rename` or `remove` instead, and most of the time the ones that are not `feat`
53+
are breaking so would be seen with their _exclamation mark_ suffix, like `change!`.
54+
55+
### Reasoning
56+
57+
Commit messages are used for guiding `cargo smart-release` to do most of the release work for us. This includes changelog generation
58+
as well as picking the right version bump for each crate.
59+
60+
## Commit splitting on breaking changes.
61+
62+
Knowing that `cargo smart-release` is driven by commit messages and affects their versions with per-crate granularity, it becomes important
63+
to split edits into multiple commits to clearly indicate which crate is actually broken.
64+
65+
Typical patterns include making a breaking change in one crate and then fix all others to work with it. For changelogs to look proper
66+
and version bumps to be correct, the first commit would contain only the breaking changes themselves,
67+
like "rename: `foo()` to `bar()`", and the second commit would contain all changes to adapt to that and look like "adapt to changes in `<crate name>`".
68+
69+
## Commit History
70+
71+
We generally follow a 'track everything' approach and there is a lot of freedom leading to more commits rather than less. There
72+
is no obligation to squash commits or to otherwise tune the history.
73+
74+
We use feature branches and PRs most of the time to be able to take advantage of CI and GitHub review tools, and merge with merge commits
75+
to make individual efforts stand out. There is no need for linearizing history or tuning it in any other way. However, each commit
76+
_must_ follow the guidelines laid out in the `Commit Messages` paragraph.
77+
78+
There is value in organizing commits by topic and [_Stacked Git_](https://stacked-git.github.io) is hereby endorsed to do that.
2079

2180
## Configuration and overrides
2281

Diff for: README.md

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ is usable to some extend.
156156
* [git-worktree](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-worktree)
157157
* [git-bitmap](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-bitmap)
158158
* [git-date](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-date)
159+
* [git-hashtable](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-hashtable)
159160
* **idea** _(just a name placeholder)_
160161
* [git-note](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-note)
161162
* [git-fetchhead](https://github.com/Byron/gitoxide/blob/main/crate-status.md#git-fetchhead)

Diff for: crate-status.md

+6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
* [x] decode the chunk file table of contents and provide convenient API
1212
* [x] write the table of contents
1313

14+
### git-hashtable
15+
16+
* [x] hashmap
17+
* [x] hashset
18+
19+
1420
### git-object
1521
* *decode (zero-copy)* borrowed objects
1622
* [x] commit

Diff for: etc/check-package-size.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ echo "in root: gitoxide CLI"
3232
(enter git-config && indent cargo diet -n --package-size-limit 120KB)
3333
(enter git-config-value && indent cargo diet -n --package-size-limit 20KB)
3434
(enter git-command && indent cargo diet -n --package-size-limit 5KB)
35-
(enter git-hash && indent cargo diet -n --package-size-limit 20KB)
35+
(enter git-hash && indent cargo diet -n --package-size-limit 30KB)
3636
(enter git-chunk && indent cargo diet -n --package-size-limit 10KB)
3737
(enter git-rebase && indent cargo diet -n --package-size-limit 5KB)
3838
(enter git-sequencer && indent cargo diet -n --package-size-limit 5KB)
@@ -43,6 +43,7 @@ echo "in root: gitoxide CLI"
4343
(enter git-url && indent cargo diet -n --package-size-limit 20KB)
4444
(enter git-validate && indent cargo diet -n --package-size-limit 5KB)
4545
(enter git-date && indent cargo diet -n --package-size-limit 15KB)
46+
(enter git-hashtable && indent cargo diet -n --package-size-limit 5KB)
4647
(enter git-filter && indent cargo diet -n --package-size-limit 5KB)
4748
(enter git-lfs && indent cargo diet -n --package-size-limit 5KB)
4849
(enter git-note && indent cargo diet -n --package-size-limit 5KB)

Diff for: experiments/diffing/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ publish = false
1010
[dependencies]
1111
anyhow = "1"
1212
git-repository = { version = "^0.29.0", path = "../../git-repository" }
13-
git-features-for-config = { package = "git-features", version = "^0.24.0", path = "../../git-features", features = ["cache-efficiency-debug"] }
13+
git-features-for-config = { package = "git-features", version = "^0.24.1", path = "../../git-features", features = ["cache-efficiency-debug"] }
1414
git2 = "0.14"
1515
rayon = "1.5.0"

Diff for: git-actor/CHANGELOG.md

+28-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## 0.14.1 (2022-11-27)
9+
10+
### New Features
11+
12+
- <csr-id-fd287530e06ada04b811d9c8526eb698bc4c90fe/> `From` implementation from `&Signature` to `SignatureRef<'_>`.
13+
14+
### Commit Statistics
15+
16+
<csr-read-only-do-not-edit/>
17+
18+
- 2 commits contributed to the release over the course of 5 calendar days.
19+
- 5 days passed between releases.
20+
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
21+
- 0 issues like '(#ID)' were seen in commit messages
22+
23+
### Commit Details
24+
25+
<csr-read-only-do-not-edit/>
26+
27+
<details><summary>view details</summary>
28+
29+
* **Uncategorized**
30+
- `From` implementation from `&Signature` to `SignatureRef<'_>`. ([`fd28753`](https://github.com/Byron/gitoxide/commit/fd287530e06ada04b811d9c8526eb698bc4c90fe))
31+
- Merge branch 'main' into http-config ([`bcd9654`](https://github.com/Byron/gitoxide/commit/bcd9654e56169799eb706646da6ee1f4ef2021a9))
32+
</details>
33+
834
## 0.14.0 (2022-11-21)
935

1036
### New Features (BREAKING)
@@ -24,7 +50,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2450

2551
<csr-read-only-do-not-edit/>
2652

27-
- 3 commits contributed to the release over the course of 2 calendar days.
53+
- 4 commits contributed to the release over the course of 2 calendar days.
2854
- 42 days passed between releases.
2955
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
3056
- 0 issues like '(#ID)' were seen in commit messages
@@ -36,6 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3662
<details><summary>view details</summary>
3763

3864
* **Uncategorized**
65+
- Release git-hash v0.10.0, git-features v0.24.0, git-date v0.3.0, git-actor v0.14.0, git-glob v0.5.0, git-path v0.6.0, git-quote v0.4.0, git-attributes v0.6.0, git-config-value v0.9.0, git-tempfile v3.0.0, git-lock v3.0.0, git-validate v0.7.0, git-object v0.23.0, git-ref v0.20.0, git-sec v0.5.0, git-config v0.12.0, git-command v0.2.0, git-prompt v0.2.0, git-url v0.11.0, git-credentials v0.7.0, git-diff v0.23.0, git-discover v0.9.0, git-bitmap v0.2.0, git-traverse v0.19.0, git-index v0.9.0, git-mailmap v0.6.0, git-chunk v0.4.0, git-pack v0.27.0, git-odb v0.37.0, git-packetline v0.14.0, git-transport v0.23.0, git-protocol v0.24.0, git-revision v0.7.0, git-refspec v0.4.0, git-worktree v0.9.0, git-repository v0.29.0, git-commitgraph v0.11.0, gitoxide-core v0.21.0, gitoxide v0.19.0, safety bump 28 crates ([`b2c301e`](https://github.com/Byron/gitoxide/commit/b2c301ef131ffe1871314e19f387cf10a8d2ac16))
3966
- prepare changelogs prior to release ([`e4648f8`](https://github.com/Byron/gitoxide/commit/e4648f827c97e9d13636d1bbdc83dd63436e6e5c))
4067
- Merge branch 'version2021' ([`0e4462d`](https://github.com/Byron/gitoxide/commit/0e4462df7a5166fe85c23a779462cdca8ee013e8))
4168
- upgrade edition to 2021 in most crates. ([`3d8fa8f`](https://github.com/Byron/gitoxide/commit/3d8fa8fef9800b1576beab8a5bc39b821157a5ed))

Diff for: git-actor/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "git-actor"
3-
version = "0.14.0"
3+
version = "0.14.1"
44
description = "A way to identify git actors"
55
authors = ["Sebastian Thiel <[email protected]>"]
66
repository = "https://github.com/Byron/gitoxide"
@@ -16,7 +16,7 @@ doctest = false
1616
serde1 = ["serde", "bstr/serde", "git-date/serde1"]
1717

1818
[dependencies]
19-
git-features = { version = "^0.24.0", path = "../git-features", optional = true }
19+
git-features = { version = "^0.24.1", path = "../git-features", optional = true }
2020
git-date = { version = "^0.3.0", path = "../git-date" }
2121

2222
quick-error = "2.0.0"

Diff for: git-attributes/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ doctest = false
1616
serde1 = ["serde", "bstr/serde", "git-glob/serde1", "compact_str/serde"]
1717

1818
[dependencies]
19-
git-features = { version = "^0.24.0", path = "../git-features" }
19+
git-features = { version = "^0.24.1", path = "../git-features" }
2020
git-path = { version = "^0.6.0", path = "../git-path" }
2121
git-quote = { version = "^0.4.0", path = "../git-quote" }
2222
git-glob = { version = "^0.5.0", path = "../git-glob" }

Diff for: git-commitgraph/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ doctest = false
1717
serde1 = ["serde", "git-hash/serde1", "bstr/serde"]
1818

1919
[dependencies]
20-
git-features = { version = "^0.24.0", path = "../git-features", features = ["rustsha1"] }
20+
git-features = { version = "^0.24.1", path = "../git-features", features = ["rustsha1"] }
2121
git-hash = { version = "^0.10.0", path = "../git-hash" }
2222
git-chunk = { version = "^0.4.0", path = "../git-chunk" }
2323

Diff for: git-config/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ include = ["src/**/*", "LICENSE-*", "README.md", "CHANGELOG.md"]
1515
serde1 = ["serde", "bstr/serde", "git-sec/serde1", "git-ref/serde1", "git-glob/serde1", "git-config-value/serde1"]
1616

1717
[dependencies]
18-
git-features = { version = "^0.24.0", path = "../git-features"}
18+
git-features = { version = "^0.24.1", path = "../git-features"}
1919
git-config-value = { version = "^0.9.0", path = "../git-config-value" }
2020
git-path = { version = "^0.6.0", path = "../git-path" }
2121
git-sec = { version = "^0.5.0", path = "../git-sec" }

0 commit comments

Comments
 (0)