git 5.0.0 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/copilot-instructions.md +19 -73
- data/.gitignore +3 -0
- data/.husky/pre-commit +1 -1
- data/.release-please-manifest.json +1 -1
- data/CHANGELOG.md +52 -508
- data/CONTRIBUTING.md +148 -155
- data/README.md +8 -3
- data/lib/git/factories.rb +813 -0
- data/lib/git/path_resolver.rb +206 -0
- data/lib/git/repository.rb +0 -1
- data/lib/git/version.rb +1 -1
- data/lib/git.rb +2 -1
- metadata +5 -5
- data/lib/git/repository/factories.rb +0 -814
- data/lib/git/repository/path_resolver.rb +0 -207
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 94d97e48dd1d4b34affe837d38258f7b0f7edf02338d0e0def333ac80e147244
|
|
4
|
+
data.tar.gz: 5367c11505c46d9745d492a97671346531fddfdc3649b445bae9eb2636f87202
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4e404e6b31961cf3c71e391ce4898436f07de8dd2ffc37947281f103513241c531e21aa799ae32296ec6ef47d2b1dad465205fd3b0936ee104b6774870805391
|
|
7
|
+
data.tar.gz: 778bbd70beb547b4574e8d361acc2873320b42bd4b5f190012309a3b90da72d55468a8c5b4adf87a3ed773ab08945e7ac81b3d282c86bb8bda64821282a3c101
|
|
@@ -2,95 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
## Project Overview
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
working with branches/commits/tags/remotes, inspecting history and objects, and
|
|
8
|
-
performing all standard Git operations.
|
|
5
|
+
A Ruby gem providing an interface to Git repositories by wrapping system calls to the
|
|
6
|
+
`git` CLI.
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
Read the "Project Context" skill (`.github/skills/project-context/SKILL.md`) for
|
|
9
|
+
design philosophy, technical details, and compatibility requirements.
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
and
|
|
15
|
-
|
|
11
|
+
This project enforces Conventional Commits. See `.commitlintrc.yml` for allowed types
|
|
12
|
+
and scopes. Never use `#` in the commit message body. Doing so will cause
|
|
13
|
+
commitlint to incorrectly parse the commit message body as a footer. If you need to
|
|
14
|
+
refer to an issue in the body, use `issue 999` instead of `issue #999`. It is still
|
|
15
|
+
fine to use `#` in footer values such as `Closes: #999` or `Refs: #999`.
|
|
16
16
|
|
|
17
17
|
## Terminology & Writing Style
|
|
18
18
|
|
|
19
|
-
- Use American English
|
|
20
|
-
- **Version strings
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
precision matters ("removed in v5.0.0", "the foundation delivered in v5.0.0").
|
|
25
|
-
- `vN.0` — avoid; ambiguous between "minor version 0" and "shorthand for vN.0.0".
|
|
26
|
-
- **RuboCop** — correct capitalization when referring to the tool by name in prose,
|
|
27
|
-
documentation, or comments.
|
|
28
|
-
- **`rubocop`** — correct form when referring to the command-line executable or gem
|
|
29
|
-
name (e.g., `gem 'rubocop'`, `bundle exec rubocop`).
|
|
30
|
-
- **Rubocop** — incorrect; never use this form.
|
|
31
|
-
|
|
32
|
-
## Skill Loading
|
|
33
|
-
|
|
34
|
-
When a skill applies to a request, read the entire `SKILL.md` file before taking
|
|
35
|
-
any other action. Read from line 1 through EOF with no gaps. Simple code review
|
|
36
|
-
or explanation does not require a skill.
|
|
19
|
+
- Use American English.
|
|
20
|
+
- **Version strings:** Use `vN.x` for major series compatibility (e.g., `v4.x`) and
|
|
21
|
+
`vN.0.0` for specific releases (e.g., `v5.0.0`). Never use the ambiguous `vN.0`.
|
|
22
|
+
- **RuboCop:** Use `RuboCop` for prose and `rubocop` for CLI or gem names. Never use
|
|
23
|
+
`Rubocop`.
|
|
37
24
|
|
|
38
25
|
## Project Commands
|
|
39
26
|
|
|
40
27
|
| Purpose | Command |
|
|
41
28
|
| --- | --- |
|
|
42
|
-
| First-time setup | `bin/setup` |
|
|
43
|
-
| Run all tests and linters (CI-equivalent) | `bundle exec rake
|
|
44
|
-
| Run all tests
|
|
45
|
-
| Run
|
|
46
|
-
| Run RSpec
|
|
47
|
-
| Run RSpec integration tests | `bundle exec rake spec:integration:parallel` |
|
|
29
|
+
| First-time project or new worktree setup | `bin/setup` |
|
|
30
|
+
| Run all tests and linters (CI-equivalent) | `bundle exec rake` |
|
|
31
|
+
| Run all RSpec tests | `bundle exec rake spec` |
|
|
32
|
+
| Run RSpec unit tests | `bundle exec rake spec:unit` |
|
|
33
|
+
| Run RSpec integration tests | `bundle exec rake spec:integration` |
|
|
48
34
|
| Run a specific RSpec spec | `bundle exec rspec <path>` |
|
|
49
35
|
| Run linters | `bundle exec rake rubocop yard build` |
|
|
50
36
|
|
|
51
|
-
**Test suite:** `spec/` (RSpec) is the sole test suite — all new tests go here.
|
|
52
|
-
|
|
53
|
-
## Commit Conventions
|
|
54
|
-
|
|
55
|
-
This project uses [Conventional Commits](https://www.conventionalcommits.org/).
|
|
56
|
-
Automated releases via [release-please](https://github.com/googleapis/release-please).
|
|
57
|
-
|
|
58
|
-
**Format:** `type[optional scope][!]: description`
|
|
59
|
-
|
|
60
|
-
**Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`,
|
|
61
|
-
`revert`, `ci`, `build`
|
|
62
|
-
|
|
63
|
-
**Breaking changes:** Add `!` before `:` and a `BREAKING CHANGE: <description>`
|
|
64
|
-
footer.
|
|
65
|
-
|
|
66
|
-
**Version bumps:** breaking change → major; `feat` → minor; others → patch.
|
|
67
|
-
|
|
68
|
-
**Pre-commit hook:** Run `bin/setup` to install a validator.
|
|
69
|
-
|
|
70
37
|
## Branch & PR Strategy
|
|
71
38
|
|
|
72
39
|
| Target | When |
|
|
73
40
|
| --- | --- |
|
|
74
41
|
| `main` | New features, breaking changes, all active development |
|
|
75
42
|
| `4.x` | Security fixes and backward-compatible bug fixes for the v4.x series |
|
|
76
|
-
|
|
77
|
-
> **Never commit directly to `main` or `4.x`** — this rule must never be violated.
|
|
78
|
-
> Always check `git branch --show-current` before committing. If on a release branch,
|
|
79
|
-
> run `git switch -c <type>/<short-description>` first.
|
|
80
|
-
|
|
81
|
-
All changes go through a PR from a topic branch.
|
|
82
|
-
|
|
83
|
-
**Creating a PR:** Use `gh pr create`. Read `.github/pull_request_template.md` for
|
|
84
|
-
the body structure. Complete the [PR Readiness Review](skills/pr-readiness-review/SKILL.md)
|
|
85
|
-
skill first.
|
|
86
|
-
|
|
87
|
-
## Key Documents
|
|
88
|
-
|
|
89
|
-
| Document | Purpose |
|
|
90
|
-
| --- | --- |
|
|
91
|
-
| `CONTRIBUTING.md` | Design philosophy, contribution guidelines |
|
|
92
|
-
| `CHANGELOG.md` | Version history (auto-updated by release-please) |
|
|
93
|
-
| `MAINTAINERS.md` | Maintainer list and responsibilities |
|
|
94
|
-
| `AI_POLICY.md` | AI usage policy for this project |
|
|
95
|
-
| `redesign/` | Architecture redesign plans and implementation guide |
|
|
96
|
-
| `.github/skills/` | All Copilot skills |
|
data/.gitignore
CHANGED
data/.husky/pre-commit
CHANGED
|
@@ -7,7 +7,7 @@ protected_branches="main 4.x"
|
|
|
7
7
|
for protected in $protected_branches; do
|
|
8
8
|
if [ "$branch" = "$protected" ]; then
|
|
9
9
|
echo "ERROR: Direct commits to '$branch' are not allowed."
|
|
10
|
-
echo " Create a topic branch first: git switch -c <
|
|
10
|
+
echo " Create a topic branch first: git switch -c <type>/<short-description>"
|
|
11
11
|
exit 1
|
|
12
12
|
fi
|
|
13
13
|
done
|