git 4.1.0 → 4.1.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 +34 -6
- data/.github/pull_request_template.md +12 -3
- data/.github/workflows/continuous_integration.yml +1 -1
- data/.github/workflows/enforce_conventional_commits.yml +1 -0
- data/.github/workflows/release.yml +1 -1
- data/.release-please-manifest.json +1 -1
- data/.yardopts +4 -0
- data/AI_POLICY.md +24 -0
- data/CHANGELOG.md +21 -0
- data/CODE_OF_CONDUCT.md +25 -0
- data/CONTRIBUTING.md +35 -2
- data/GOVERNANCE.md +106 -0
- data/MAINTAINERS.md +17 -4
- data/README.md +388 -333
- data/lib/git/log.rb +6 -1
- data/lib/git/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 547a803a734580e23f5e1f6910f54c2437bcb165331d1d2d9048a2fb2ff1180f
|
|
4
|
+
data.tar.gz: 9532b6e51177204f789aab40b2d551d8886abf524f50f9366a60045f00e2cc7f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 31f1da3bc8b566f4990efd1651ed59202eabd424722693e0fae1b41ec194d4bbd2f7c613ed7552035b6ca42b6d501459b0d9d323bd188957ed5291675ff506de
|
|
7
|
+
data.tar.gz: eb4a424bdfbc1fcda445e880b8497ff714fe2c575591a5c48ee8c37f36e721f38474dd409c0af85fddbd98570a8ac7e5e5ba8c4e6c994fce46108e9f349f8137
|
|
@@ -2540,21 +2540,49 @@ automated releases based on conventional commits.
|
|
|
2540
2540
|
|
|
2541
2541
|
**Branch Strategy:**
|
|
2542
2542
|
|
|
2543
|
+
This project maintains two active branches:
|
|
2544
|
+
|
|
2545
|
+
- **`main`**: Active development for the next major version (v5.0.0+). May contain
|
|
2546
|
+
breaking changes.
|
|
2547
|
+
- **`4.x`**: Maintenance branch for the v4.x release series. Bug fixes and
|
|
2548
|
+
backward-compatible improvements only.
|
|
2549
|
+
|
|
2550
|
+
**Important:** Never commit directly to `main` or `4.x`. All changes must be
|
|
2551
|
+
submitted via pull requests from feature branches. This ensures proper code review,
|
|
2552
|
+
CI validation, and maintains a clean commit history.
|
|
2553
|
+
|
|
2554
|
+
**For new features and breaking changes (target `main`):**
|
|
2555
|
+
|
|
2543
2556
|
1. Ensure local main is up-to-date: `git fetch origin main`
|
|
2544
2557
|
2. Create a new branch from origin/main: `git checkout -b feature/your-feature
|
|
2545
2558
|
origin/main`
|
|
2546
2559
|
3. Make your changes following TDD
|
|
2547
2560
|
4. Ensure all tests pass and code quality checks pass
|
|
2548
|
-
5. Push the branch and create a PR
|
|
2561
|
+
5. Push the branch and create a PR targeting `main`
|
|
2562
|
+
|
|
2563
|
+
**For bug fixes (target `main`, maintainers backport to `4.x` if applicable):**
|
|
2564
|
+
|
|
2565
|
+
1. Ensure local main is up-to-date: `git fetch origin main`
|
|
2566
|
+
2. Create a new branch from origin/main: `git checkout -b fix/your-fix origin/main`
|
|
2567
|
+
3. Make your changes following TDD
|
|
2568
|
+
4. Push the branch and create a PR targeting `main`
|
|
2569
|
+
|
|
2570
|
+
**For security fixes or 4.x-only changes (target `4.x`):**
|
|
2571
|
+
|
|
2572
|
+
1. Ensure local 4.x is up-to-date: `git fetch origin 4.x`
|
|
2573
|
+
2. Create a new branch from origin/4.x: `git checkout -b fix/your-fix origin/4.x`
|
|
2574
|
+
3. Make your changes following TDD
|
|
2575
|
+
4. Push the branch and create a PR targeting `4.x`
|
|
2549
2576
|
|
|
2550
2577
|
**When Submitting Existing Changes:**
|
|
2551
2578
|
|
|
2552
|
-
- Ensure changes are on a feature branch (not `main`), following the naming
|
|
2579
|
+
- Ensure changes are on a feature branch (not `main` or `4.x`), following the naming
|
|
2553
2580
|
convention `<type>/<short-description>`
|
|
2554
|
-
- If changes are on the wrong branch, offer to create a new branch from
|
|
2555
|
-
`origin/main` and relocate the user's
|
|
2556
|
-
changes) onto that new branch, choosing an
|
|
2557
|
-
example, cherry-pick, rebase, or recommitting) based
|
|
2581
|
+
- If changes are on the wrong branch, offer to create a new branch from the
|
|
2582
|
+
appropriate base branch (`origin/main` or `origin/4.x`) and relocate the user's
|
|
2583
|
+
existing work (commits or uncommitted changes) onto that new branch, choosing an
|
|
2584
|
+
appropriate Git approach (for example, cherry-pick, rebase, or recommitting) based
|
|
2585
|
+
on the situation
|
|
2558
2586
|
|
|
2559
2587
|
**PR Creation Automation:**
|
|
2560
2588
|
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
Review our [guidelines for contributing](https://github.com/ruby-git/ruby-git/blob/main/CONTRIBUTING.md) to this repository. A good start is to:
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
- Write tests for your changes
|
|
4
|
+
- Run `rake` before pushing
|
|
5
|
+
- Include / update docs in the README.md and in YARD documentation
|
|
6
6
|
|
|
7
7
|
# Description
|
|
8
8
|
|
|
9
|
+
\<your description here\>
|
|
10
|
+
|
|
11
|
+
## Checklist
|
|
12
|
+
|
|
13
|
+
- [ ] I reviewed and applied the project's [AI Policy](../AI_POLICY.md). I understand
|
|
14
|
+
and verify any AI-assisted changes included in this PR and ensured they meet
|
|
15
|
+
quality, security, and licensing standards.
|
|
16
|
+
- [ ] Tests added/updated as needed and `rake` passes locally.
|
|
17
|
+
- [ ] Documentation updated where applicable (README and/or YARD).
|
data/.yardopts
CHANGED
data/AI_POLICY.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title AI Policy
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# AI Policy
|
|
7
|
+
|
|
8
|
+
AI assisted contributions are welcome in this project.
|
|
9
|
+
|
|
10
|
+
Reviewing and maintaining code requires human insight. While AI tools can be helpful
|
|
11
|
+
assistants, they are no substitute for human judgment and creativity.
|
|
12
|
+
|
|
13
|
+
We value the unique perspectives and critical thinking that our contributors bring.
|
|
14
|
+
If you use AI tools to assist your work:
|
|
15
|
+
|
|
16
|
+
1. **You are responsible**: You must review and understand every line of code or text
|
|
17
|
+
you submit.
|
|
18
|
+
2. **Focus on quality**: Ensure that AI-generated content meets our standards for
|
|
19
|
+
correctness, readability, and security, and respects all licensing requirements.
|
|
20
|
+
3. **Be transparent**: We encourage you to disclose if significant portions of your
|
|
21
|
+
contribution were AI-generated.
|
|
22
|
+
|
|
23
|
+
Ultimately, the quality of this project depends on *your* expertise. Use tools
|
|
24
|
+
wisely, but lead with your own intelligence.
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@
|
|
|
5
5
|
|
|
6
6
|
# Change Log
|
|
7
7
|
|
|
8
|
+
## [4.1.2](https://github.com/ruby-git/ruby-git/compare/v4.1.1...v4.1.2) (2026-01-10)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Other Changes
|
|
12
|
+
|
|
13
|
+
* Add Continuity section to Governance ([a2f644c](https://github.com/ruby-git/ruby-git/commit/a2f644c0caa7b60137e0a1ef79eabaf880d18ac6))
|
|
14
|
+
* Add Roberto Decurnex to Maintainers Emeritus ([5104537](https://github.com/ruby-git/ruby-git/commit/5104537e15c5d14357c353b08706973c2669ad31))
|
|
15
|
+
* Enable releases from 4.x maintenance branch ([5377de6](https://github.com/ruby-git/ruby-git/commit/5377de602e6ecd947d3feadb3df49d6a63556f53))
|
|
16
|
+
* Move inactive maintainers to Emeritus per governance policy ([f09e4d1](https://github.com/ruby-git/ruby-git/commit/f09e4d1e68cd5db6535ba737720eb495ea8422ec))
|
|
17
|
+
|
|
18
|
+
## [4.1.1](https://github.com/ruby-git/ruby-git/compare/v4.1.0...v4.1.1) (2026-01-09)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Other Changes
|
|
22
|
+
|
|
23
|
+
* Add AI Policy and update documentation ([8616cdf](https://github.com/ruby-git/ruby-git/commit/8616cdf7c6cfd1a3f2ccb931f59367b0fdfa36d1))
|
|
24
|
+
* Add code of conduct links ([0769c8e](https://github.com/ruby-git/ruby-git/commit/0769c8ede791a2578291fa301d74144bc7fb2bfb))
|
|
25
|
+
* Add governance policy and update project policies ([8d8263c](https://github.com/ruby-git/ruby-git/commit/8d8263c8395ff4e127b7dc6eb25b0371c272593a))
|
|
26
|
+
* Add Quick Start section and reorganize README for new users ([1811a75](https://github.com/ruby-git/ruby-git/commit/1811a75e4b0b8b8233988d38a411ba585f35c044))
|
|
27
|
+
* Clarify JRuby on Windows support policy ([c37b3d6](https://github.com/ruby-git/ruby-git/commit/c37b3d6c256cdc925578c7ff198f6b351dcb5844))
|
|
28
|
+
|
|
8
29
|
## [4.1.0](https://github.com/ruby-git/ruby-git/compare/v4.0.7...v4.1.0) (2026-01-02)
|
|
9
30
|
|
|
10
31
|
|
data/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title Code of Conduct
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# Code of Conduct
|
|
7
|
+
|
|
8
|
+
ℹ️ We have adopted the [Ruby code of conduct](https://www.ruby-lang.org/en/conduct/).
|
|
9
|
+
|
|
10
|
+
This document provides community guidelines for a safe, respectful, productive, and
|
|
11
|
+
collaborative place for any person who is willing to contribute to the Ruby
|
|
12
|
+
community. It applies to all “collaborative space”, which is defined as community
|
|
13
|
+
communications channels (such as mailing lists, submitted patches, commit comments,
|
|
14
|
+
etc.).
|
|
15
|
+
|
|
16
|
+
- Participants will be tolerant of opposing views.
|
|
17
|
+
- Participants must ensure that their language and actions are free of personal
|
|
18
|
+
attacks and disparaging personal remarks.
|
|
19
|
+
- When interpreting the words and actions of others, participants should always
|
|
20
|
+
assume good intentions.
|
|
21
|
+
- Behavior which can be reasonably considered harassment will not be tolerated.
|
|
22
|
+
|
|
23
|
+
Report violations to the maintainers by [opening an
|
|
24
|
+
issue](https://github.com/ruby-git/ruby-git/issues/new) or contacting a
|
|
25
|
+
[maintainer](MAINTAINERS.md) privately.
|
data/CONTRIBUTING.md
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
- [Commit your changes to a fork of `ruby-git`](#commit-your-changes-to-a-fork-of-ruby-git)
|
|
13
13
|
- [Create a pull request](#create-a-pull-request)
|
|
14
14
|
- [Get your pull request reviewed](#get-your-pull-request-reviewed)
|
|
15
|
+
- [Branch strategy](#branch-strategy)
|
|
16
|
+
- [AI-assisted contributions](#ai-assisted-contributions)
|
|
15
17
|
- [Design philosophy](#design-philosophy)
|
|
16
18
|
- [Direct mapping to git commands](#direct-mapping-to-git-commands)
|
|
17
19
|
- [Parameter naming](#parameter-naming)
|
|
@@ -41,6 +43,11 @@ judgment when contributing.
|
|
|
41
43
|
If you have suggestions for improving these guidelines, please propose changes via a
|
|
42
44
|
pull request.
|
|
43
45
|
|
|
46
|
+
Please also review and adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) when
|
|
47
|
+
participating in the project.
|
|
48
|
+
Governance and maintainer expectations are described in
|
|
49
|
+
[GOVERNANCE.md](GOVERNANCE.md).
|
|
50
|
+
|
|
44
51
|
## How to contribute
|
|
45
52
|
|
|
46
53
|
You can contribute in the following ways:
|
|
@@ -91,13 +98,39 @@ Once your pull request is ready for review, request a review from at least one
|
|
|
91
98
|
[maintainer](MAINTAINERS.md) and any other contributors you deem necessary.
|
|
92
99
|
|
|
93
100
|
During the review process, you may need to make additional commits, which should be
|
|
94
|
-
squashed. Additionally, you
|
|
95
|
-
branch
|
|
101
|
+
squashed. Additionally, you will need to rebase your branch to the latest version of
|
|
102
|
+
the target branch (e.g., `main` or `4.x`) before merging.
|
|
96
103
|
|
|
97
104
|
At least one approval from a project maintainer is required before your pull request
|
|
98
105
|
can be merged. The maintainer is responsible for ensuring that the pull request meets
|
|
99
106
|
[the project's coding standards](#coding-standards).
|
|
100
107
|
|
|
108
|
+
## Branch strategy
|
|
109
|
+
|
|
110
|
+
This project maintains two active branches:
|
|
111
|
+
|
|
112
|
+
- **`main`**: Active development for the next major version (v5.0.0+). This branch
|
|
113
|
+
may contain breaking changes.
|
|
114
|
+
- **`4.x`**: Maintenance branch for the v4.x release series. This branch receives
|
|
115
|
+
bug fixes and backward-compatible improvements only.
|
|
116
|
+
|
|
117
|
+
**Important:** Never commit directly to `main` or `4.x`. All changes must be
|
|
118
|
+
submitted via pull requests from feature branches. This ensures proper code review,
|
|
119
|
+
CI validation, and maintains a clean commit history.
|
|
120
|
+
|
|
121
|
+
When submitting a pull request:
|
|
122
|
+
|
|
123
|
+
- **New features and breaking changes**: Target the `main` branch
|
|
124
|
+
- **Bug fixes**: Target `main`, and maintainers will backport to `4.x` if applicable
|
|
125
|
+
- **Security fixes**: Target both branches or `4.x` if the issue only affects v4.x
|
|
126
|
+
|
|
127
|
+
## AI-assisted contributions
|
|
128
|
+
|
|
129
|
+
AI-assisted contributions are welcome. Please review and apply our [AI Policy](AI_POLICY.md)
|
|
130
|
+
before submitting changes. You are responsible for understanding and verifying any
|
|
131
|
+
AI-assisted work included in PRs and ensuring it meets our standards for quality,
|
|
132
|
+
security, and licensing.
|
|
133
|
+
|
|
101
134
|
## Design philosophy
|
|
102
135
|
|
|
103
136
|
*Note: As of v2.x of the `git` gem, this design philosophy is aspirational. Future
|
data/GOVERNANCE.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
# @markup markdown
|
|
3
|
+
# @title Governance
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# Governance
|
|
7
|
+
|
|
8
|
+
This document explains how we steward the project with a light, principles-first
|
|
9
|
+
approach: enable trusted people, minimize dormant access, and keep decisions
|
|
10
|
+
transparent.
|
|
11
|
+
|
|
12
|
+
## Roles
|
|
13
|
+
|
|
14
|
+
A **Maintainer** is a trusted leader with write access who stewards the project's
|
|
15
|
+
health and direction. Responsibilities center on triage, review, merge, and
|
|
16
|
+
helping the community stay unblocked.
|
|
17
|
+
|
|
18
|
+
A **Project Lead** is a maintainer with additional administrative scope (repo
|
|
19
|
+
Admin, org Owner). They handle settings, secrets, access, and tie-breaks when
|
|
20
|
+
needed.
|
|
21
|
+
|
|
22
|
+
## Becoming a Maintainer
|
|
23
|
+
|
|
24
|
+
Maintainers invite contributors who consistently ship, review, and model our
|
|
25
|
+
values to become maintainers. Anyone can nominate themselves or others in an
|
|
26
|
+
issue or via a private note. Current maintainers discuss nominations (see
|
|
27
|
+
[Decision Making](#decision-making)) with a focus on contribution quality,
|
|
28
|
+
alignment with project goals, and communication style.
|
|
29
|
+
|
|
30
|
+
## Access Principles
|
|
31
|
+
|
|
32
|
+
- Stewardship: Maintainer access exists to keep the project healthy and responsive.
|
|
33
|
+
- Least privilege: Elevated access is temporary and kept only while it’s needed.
|
|
34
|
+
- Continuity: Dormant access is paused to protect the project and unblock
|
|
35
|
+
contributors.
|
|
36
|
+
- Respect: Status changes are transparent, reversible, and acknowledge past
|
|
37
|
+
contributions.
|
|
38
|
+
|
|
39
|
+
## How We Apply Them
|
|
40
|
+
|
|
41
|
+
- Staying active: Maintainers keep elevated access while participating (shipping,
|
|
42
|
+
reviewing, triaging, or governance).
|
|
43
|
+
- When access is paused: If there’s no project activity for about a year, we’ll
|
|
44
|
+
check in. If we don’t hear back after a short window, we move the maintainer to
|
|
45
|
+
Emeritus and pause Owner/Admin/Write/package access (including CODEOWNERS
|
|
46
|
+
entries).
|
|
47
|
+
- Coming back: Emeritus maintainers can be re-added quickly after a brief period of
|
|
48
|
+
renewed participation to refresh context.
|
|
49
|
+
- Recognition: Emeritus maintainers remain listed to honor prior contributions.
|
|
50
|
+
|
|
51
|
+
Access changes are communicated openly (e.g., PRs or issues) and reflected in the
|
|
52
|
+
Maintainers list.
|
|
53
|
+
|
|
54
|
+
## Decision Making
|
|
55
|
+
|
|
56
|
+
Decisions are usually made by consensus among the active maintainers. If consensus
|
|
57
|
+
cannot be reached, the decision is made by a majority vote. If a vote results in a
|
|
58
|
+
tie, the Project Lead has the final say.
|
|
59
|
+
|
|
60
|
+
## Continuity
|
|
61
|
+
|
|
62
|
+
The project must be able to ship releases and respond to security issues even if
|
|
63
|
+
individual maintainers become unavailable.
|
|
64
|
+
|
|
65
|
+
### RubyGems Ownership
|
|
66
|
+
|
|
67
|
+
RubyGems ownership (the ability to push new gem versions) is granted to a subset
|
|
68
|
+
of active maintainers—typically the Project Lead and at least one other
|
|
69
|
+
maintainer—to balance security with continuity. Not all maintainers require
|
|
70
|
+
RubyGems access.
|
|
71
|
+
|
|
72
|
+
RubyGems owners follow the same activity principles as other elevated access: if
|
|
73
|
+
an owner becomes inactive, their ownership is paused alongside other permissions.
|
|
74
|
+
|
|
75
|
+
### Minimum Thresholds
|
|
76
|
+
|
|
77
|
+
To avoid single points of failure:
|
|
78
|
+
|
|
79
|
+
- At least two active maintainers should have RubyGems ownership for the `git` gem.
|
|
80
|
+
- At least two active maintainers should have GitHub org Owner or repo Admin
|
|
81
|
+
access.
|
|
82
|
+
|
|
83
|
+
If thresholds drop below these levels, remaining maintainers should prioritize
|
|
84
|
+
onboarding or re-activating someone to restore redundancy.
|
|
85
|
+
|
|
86
|
+
### Access Audits
|
|
87
|
+
|
|
88
|
+
Periodically (at least annually), maintainers review access across all systems:
|
|
89
|
+
|
|
90
|
+
- GitHub organization membership and roles
|
|
91
|
+
- GitHub repository admin/write permissions
|
|
92
|
+
- RubyGems gem ownership
|
|
93
|
+
- GitHub Actions release automation: PATs/OIDC tokens (e.g., `AUTO_RELEASE_TOKEN` scope),
|
|
94
|
+
environment protection rules/approvers for RubyGems deployments, and any OIDC
|
|
95
|
+
trust configuration
|
|
96
|
+
|
|
97
|
+
The Project Lead (or a delegated maintainer) schedules and drives this review so
|
|
98
|
+
continuity checks do not slip.
|
|
99
|
+
|
|
100
|
+
Audits ensure access reflects current activity and that continuity thresholds are
|
|
101
|
+
met.
|
|
102
|
+
|
|
103
|
+
## Code of Conduct
|
|
104
|
+
|
|
105
|
+
All maintainers and contributors must adhere to the project's [Code of
|
|
106
|
+
Conduct](./CODE_OF_CONDUCT.md).
|
data/MAINTAINERS.md
CHANGED
|
@@ -5,8 +5,21 @@
|
|
|
5
5
|
|
|
6
6
|
# Maintainers
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
See [GOVERNANCE.md](GOVERNANCE.md) for a definition of the Maintainer role.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
## Active Maintainers
|
|
11
|
+
|
|
12
|
+
- [James Couball](https://github.com/jcouball) (Project Lead)
|
|
13
|
+
- [Frank Throckmorton](https://github.com/frankthrock)
|
|
14
|
+
|
|
15
|
+
## Maintainers Emeritus (Alumni)
|
|
16
|
+
|
|
17
|
+
**Maintainers Emeritus** are former maintainers who are no longer active. We honor
|
|
18
|
+
their past contributions.
|
|
19
|
+
|
|
20
|
+
- [Per Lundberg](https://github.com/perlun)
|
|
21
|
+
- [Vern Burton](https://github.com/tarcinil)
|
|
22
|
+
- [Daniel Perez](https://github.com/dpmex4527)
|
|
23
|
+
- [Richard Vodden](https://github.com/rvodden)
|
|
24
|
+
- [Roberto Decurnex](https://github.com/robertodecurnex)
|
|
25
|
+
- [Scott Chacon](https://github.com/schacon) (original creator)
|