git 4.1.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e74c843d872d01532fd6938f338d16cfa84a25a4c47287347edbea39e580488
4
- data.tar.gz: d7db0f868a554c60fc39d5716096dbc7967d974afad249b7625266f00cb4c305
3
+ metadata.gz: 547a803a734580e23f5e1f6910f54c2437bcb165331d1d2d9048a2fb2ff1180f
4
+ data.tar.gz: 9532b6e51177204f789aab40b2d551d8886abf524f50f9366a60045f00e2cc7f
5
5
  SHA512:
6
- metadata.gz: 41504a21ea74ab571a0db205b3654a69fd6e6a5af7917e9612c4dab8cbfc321c5babc44bdf62287e890146282fe64343c97fc5af49d0f9520b340db5f4f8f4a6
7
- data.tar.gz: bccb9b41fd526b5b6c92870e05fcf967d9a235898988efd41aa4f2e3ed7a2e10a4d9e3fda1e8ee7a25d4870cea132d2ae7b50dbb72252e8bb9e292a98ccebf7e
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 existing work (commits or uncommitted
2556
- changes) onto that new branch, choosing an appropriate Git approach (for
2557
- example, cherry-pick, rebase, or recommitting) based on the situation
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
 
@@ -2,7 +2,7 @@ name: CI
2
2
 
3
3
  on:
4
4
  pull_request:
5
- branches: [main]
5
+ branches: [main, 4.x]
6
6
  workflow_dispatch:
7
7
 
8
8
  jobs:
@@ -8,6 +8,7 @@ on:
8
8
  pull_request:
9
9
  branches:
10
10
  - main
11
+ - 4.x
11
12
 
12
13
  jobs:
13
14
  commit-lint:
@@ -11,7 +11,7 @@ description: |
11
11
 
12
12
  on:
13
13
  push:
14
- branches: ["main"]
14
+ branches: ["main", "4.x"]
15
15
 
16
16
  workflow_dispatch:
17
17
 
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "4.1.1"
2
+ ".": "4.1.2"
3
3
  }
data/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@
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
+
8
18
  ## [4.1.1](https://github.com/ruby-git/ruby-git/compare/v4.1.0...v4.1.1) (2026-01-09)
9
19
 
10
20
 
data/CONTRIBUTING.md CHANGED
@@ -12,6 +12,7 @@
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)
15
16
  - [AI-assisted contributions](#ai-assisted-contributions)
16
17
  - [Design philosophy](#design-philosophy)
17
18
  - [Direct mapping to git commands](#direct-mapping-to-git-commands)
@@ -97,13 +98,32 @@ Once your pull request is ready for review, request a review from at least one
97
98
  [maintainer](MAINTAINERS.md) and any other contributors you deem necessary.
98
99
 
99
100
  During the review process, you may need to make additional commits, which should be
100
- squashed. Additionally, you may need to rebase your branch to the latest `master`
101
- branch if other changes have been merged.
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.
102
103
 
103
104
  At least one approval from a project maintainer is required before your pull request
104
105
  can be merged. The maintainer is responsible for ensuring that the pull request meets
105
106
  [the project's coding standards](#coding-standards).
106
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
+
107
127
  ## AI-assisted contributions
108
128
 
109
129
  AI-assisted contributions are welcome. Please review and apply our [AI Policy](AI_POLICY.md)
data/GOVERNANCE.md CHANGED
@@ -57,6 +57,49 @@ Decisions are usually made by consensus among the active maintainers. If consens
57
57
  cannot be reached, the decision is made by a majority vote. If a vote results in a
58
58
  tie, the Project Lead has the final say.
59
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
+
60
103
  ## Code of Conduct
61
104
 
62
105
  All maintainers and contributors must adhere to the project's [Code of
data/MAINTAINERS.md CHANGED
@@ -11,14 +11,15 @@ See [GOVERNANCE.md](GOVERNANCE.md) for a definition of the Maintainer role.
11
11
 
12
12
  - [James Couball](https://github.com/jcouball) (Project Lead)
13
13
  - [Frank Throckmorton](https://github.com/frankthrock)
14
- - [Per Lundberg](https://github.com/perlun)
15
14
 
16
15
  ## Maintainers Emeritus (Alumni)
17
16
 
18
17
  **Maintainers Emeritus** are former maintainers who are no longer active. We honor
19
18
  their past contributions.
20
19
 
20
+ - [Per Lundberg](https://github.com/perlun)
21
21
  - [Vern Burton](https://github.com/tarcinil)
22
22
  - [Daniel Perez](https://github.com/dpmex4527)
23
23
  - [Richard Vodden](https://github.com/rvodden)
24
- - [Scott Chacon](https://github.com/schacon)
24
+ - [Roberto Decurnex](https://github.com/robertodecurnex)
25
+ - [Scott Chacon](https://github.com/schacon) (original creator)
data/lib/git/version.rb CHANGED
@@ -3,5 +3,5 @@
3
3
  module Git
4
4
  # The current gem version
5
5
  # @return [String] the current gem version.
6
- VERSION = '4.1.1'
6
+ VERSION = '4.1.2'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 4.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon and others
@@ -308,8 +308,8 @@ licenses:
308
308
  metadata:
309
309
  homepage_uri: http://github.com/ruby-git/ruby-git
310
310
  source_code_uri: http://github.com/ruby-git/ruby-git
311
- changelog_uri: https://rubydoc.info/gems/git/4.1.1/file/CHANGELOG.md
312
- documentation_uri: https://rubydoc.info/gems/git/4.1.1
311
+ changelog_uri: https://rubydoc.info/gems/git/4.1.2/file/CHANGELOG.md
312
+ documentation_uri: https://rubydoc.info/gems/git/4.1.2
313
313
  rubygems_mfa_required: 'true'
314
314
  rdoc_options: []
315
315
  require_paths: