git 3.0.1 → 3.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/.commitlintrc.yml +38 -0
- data/.github/workflows/enforce_conventional_commits.yml +28 -0
- data/.github/workflows/release.yml +52 -0
- data/.gitignore +2 -0
- data/.husky/commit-msg +1 -0
- data/.release-please-manifest.json +3 -0
- data/.yardopts +0 -1
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +42 -30
- data/Rakefile +7 -0
- data/lib/git/version.rb +1 -1
- data/package.json +10 -0
- data/release-please-config.json +36 -0
- metadata +10 -4
- data/RELEASING.md +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b470fa5194ac99953b57fa35e69a7f14eadc6c1ad5bcdd6fde4c59278417a15
|
4
|
+
data.tar.gz: f17a9441ed37186bb46f26ee475f3c83f2adde03c6d67e707dd9ba50855d4cbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6094ef6f1f13e63e00631919cef8bd8c648de4722fa6c4f8f50f95684cd448e46b815c35b1699aff91ce75577c8d40502c0bee21b235b9e32ab0be498e2f34a4
|
7
|
+
data.tar.gz: 1a729e9792ce1b1745f4412b0a164a8b229eccd62952022933725363e2fc23c27baea2076077ef3cfa34672e64725503b964b4e40090f062b1e6b4cb649387b5
|
data/.commitlintrc.yml
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
extends: '@commitlint/config-conventional'
|
3
|
+
|
4
|
+
rules:
|
5
|
+
# See: https://commitlint.js.org/reference/rules.html
|
6
|
+
#
|
7
|
+
# Rules are made up by a name and a configuration array. The configuration
|
8
|
+
# array contains:
|
9
|
+
#
|
10
|
+
# * Severity [0..2]: 0 disable rule, 1 warning if violated, or 2 error if
|
11
|
+
# violated
|
12
|
+
# * Applicability [always|never]: never inverts the rule
|
13
|
+
# * Value: value to use for this rule (if applicable)
|
14
|
+
#
|
15
|
+
# Run `npx commitlint --print-config` to see the current setting for all
|
16
|
+
# rules.
|
17
|
+
#
|
18
|
+
header-max-length: [2, always, 100] # Header can not exceed 100 chars
|
19
|
+
|
20
|
+
type-case: [2, always, lower-case] # Type must be lower case
|
21
|
+
type-empty: [2, never] # Type must not be empty
|
22
|
+
|
23
|
+
# Supported conventional commit types
|
24
|
+
type-enum: [2, always, [build, ci, chore, docs, feat, fix, perf, refactor, revert, style, test]]
|
25
|
+
|
26
|
+
scope-case: [2, always, lower-case] # Scope must be lower case
|
27
|
+
|
28
|
+
# Error if subject is one of these cases (encourages lower-case)
|
29
|
+
subject-case: [2, never, [sentence-case, start-case, pascal-case, upper-case]]
|
30
|
+
subject-empty: [2, never] # Subject must not be empty
|
31
|
+
subject-full-stop: [2, never, "."] # Subject must not end with a period
|
32
|
+
|
33
|
+
body-leading-blank: [2, always] # Body must have a blank line before it
|
34
|
+
body-max-line-length: [2, always, 100] # Body lines can not exceed 100 chars
|
35
|
+
|
36
|
+
footer-leading-blank: [2, always] # Footer must have a blank line before it
|
37
|
+
footer-max-line-length: [2, always, 100] # Footer lines can not exceed 100 chars
|
38
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
name: Conventional Commits
|
3
|
+
|
4
|
+
permissions:
|
5
|
+
contents: read
|
6
|
+
|
7
|
+
on:
|
8
|
+
pull_request:
|
9
|
+
branches:
|
10
|
+
- master
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
commit-lint:
|
14
|
+
name: Verify Conventional Commits
|
15
|
+
|
16
|
+
# Skip this job if this is a release PR
|
17
|
+
if: (github.event_name == 'pull_request' && !startsWith(github.event.pull_request.head.ref, 'release-please--'))
|
18
|
+
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- name: Checkout
|
23
|
+
uses: actions/checkout@v4
|
24
|
+
with: { fetch-depth: 0 }
|
25
|
+
|
26
|
+
- name: Check Commit Messages
|
27
|
+
uses: wagoid/commitlint-github-action@v6
|
28
|
+
with: { configFile: .commitlintrc.yml }
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
name: Release Gem
|
3
|
+
|
4
|
+
description: |
|
5
|
+
This workflow creates a new release on GitHub and publishes the gem to
|
6
|
+
RubyGems.org.
|
7
|
+
|
8
|
+
The workflow uses the `googleapis/release-please-action` to handle the
|
9
|
+
release creation process and the `rubygems/release-gem` action to publish
|
10
|
+
the gem to rubygems.org
|
11
|
+
|
12
|
+
on:
|
13
|
+
push:
|
14
|
+
branches: ["master"]
|
15
|
+
|
16
|
+
workflow_dispatch:
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
release:
|
20
|
+
runs-on: ubuntu-latest
|
21
|
+
|
22
|
+
environment:
|
23
|
+
name: RubyGems
|
24
|
+
url: https://rubygems.org/gems/git
|
25
|
+
|
26
|
+
permissions:
|
27
|
+
contents: write
|
28
|
+
pull-requests: write
|
29
|
+
id-token: write
|
30
|
+
|
31
|
+
steps:
|
32
|
+
- name: Checkout project
|
33
|
+
uses: actions/checkout@v4
|
34
|
+
|
35
|
+
- name: Create release
|
36
|
+
uses: googleapis/release-please-action@v4
|
37
|
+
id: release
|
38
|
+
with:
|
39
|
+
token: ${{ secrets.AUTO_RELEASE_TOKEN }}
|
40
|
+
config-file: release-please-config.json
|
41
|
+
manifest-file: .release-please-manifest.json
|
42
|
+
|
43
|
+
- name: Setup ruby
|
44
|
+
uses: ruby/setup-ruby@v1
|
45
|
+
if: ${{ steps.release.outputs.release_created }}
|
46
|
+
with:
|
47
|
+
bundler-cache: true
|
48
|
+
ruby-version: ruby
|
49
|
+
|
50
|
+
- name: Push to RubyGems.org
|
51
|
+
uses: rubygems/release-gem@v1
|
52
|
+
if: ${{ steps.release.outputs.release_created }}
|
data/.gitignore
CHANGED
data/.husky/commit-msg
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
npx --no-install commitlint --edit "$1"
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,20 @@
|
|
5
5
|
|
6
6
|
# Change Log
|
7
7
|
|
8
|
+
## [3.0.2](https://github.com/ruby-git/ruby-git/compare/v3.0.1...v3.0.2) (2025-05-15)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* Trigger the release workflow on a change to 'master' insetad of 'main' ([c8611f1](https://github.com/ruby-git/ruby-git/commit/c8611f1e68e73825fd16bd475752a40b0088d4ae))
|
14
|
+
|
15
|
+
|
16
|
+
### Other Changes
|
17
|
+
|
18
|
+
* Automate continuous delivery workflow ([06480e6](https://github.com/ruby-git/ruby-git/commit/06480e65e2441348230ef10e05cc1c563d0e7ea8))
|
19
|
+
* Enforce conventional commit messages with a GitHub action ([1da4c44](https://github.com/ruby-git/ruby-git/commit/1da4c44620a3264d4e837befd3f40416c5d8f1d8))
|
20
|
+
* Enforce conventional commit messages with husky and commitlint ([7ebe0f8](https://github.com/ruby-git/ruby-git/commit/7ebe0f8626ecb2f0da023b903b82f7332d8afaf6))
|
21
|
+
|
8
22
|
## v3.0.1 (2025-05-14)
|
9
23
|
|
10
24
|
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v3.0.0..v3.0.1)
|
data/CONTRIBUTING.md
CHANGED
@@ -5,28 +5,28 @@
|
|
5
5
|
|
6
6
|
# Contributing to the git gem
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
8
|
+
- [Summary](#summary)
|
9
|
+
- [How to contribute](#how-to-contribute)
|
10
|
+
- [How to report an issue or request a feature](#how-to-report-an-issue-or-request-a-feature)
|
11
|
+
- [How to submit a code or documentation change](#how-to-submit-a-code-or-documentation-change)
|
12
|
+
- [Commit your changes to a fork of `ruby-git`](#commit-your-changes-to-a-fork-of-ruby-git)
|
13
|
+
- [Create a pull request](#create-a-pull-request)
|
14
|
+
- [Get your pull request reviewed](#get-your-pull-request-reviewed)
|
15
|
+
- [Design philosophy](#design-philosophy)
|
16
|
+
- [Direct mapping to git commands](#direct-mapping-to-git-commands)
|
17
|
+
- [Parameter naming](#parameter-naming)
|
18
|
+
- [Output processing](#output-processing)
|
19
|
+
- [Coding standards](#coding-standards)
|
20
|
+
- [Commit message guidelines](#commit-message-guidelines)
|
21
|
+
- [Unit tests](#unit-tests)
|
22
|
+
- [Continuous integration](#continuous-integration)
|
23
|
+
- [Documentation](#documentation)
|
24
|
+
- [Building a specific version of the Git command-line](#building-a-specific-version-of-the-git-command-line)
|
25
|
+
- [Install pre-requisites](#install-pre-requisites)
|
26
|
+
- [Obtain Git source code](#obtain-git-source-code)
|
27
|
+
- [Build git](#build-git)
|
28
|
+
- [Use the new Git version](#use-the-new-git-version)
|
29
|
+
- [Licensing](#licensing)
|
30
30
|
|
31
31
|
## Summary
|
32
32
|
|
@@ -153,18 +153,30 @@ behavior.
|
|
153
153
|
To ensure high-quality contributions, all pull requests must meet the following
|
154
154
|
requirements:
|
155
155
|
|
156
|
-
###
|
156
|
+
### Commit message guidelines
|
157
157
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
All commit messages must follow the [Conventional Commits
|
159
|
+
standard](https://www.conventionalcommits.org/en/v1.0.0/). This helps us maintain a
|
160
|
+
clear and structured commit history, automate versioning, and generate changelogs
|
161
|
+
effectively.
|
162
|
+
|
163
|
+
To ensure compliance, this project includes:
|
164
|
+
|
165
|
+
- A git commit-msg hook that validates your commit messages before they are accepted.
|
166
|
+
|
167
|
+
To activate the hook, you must have node installed and run `bin/setup` or
|
168
|
+
`npm install`.
|
169
|
+
|
170
|
+
- A GitHub Actions workflow that will enforce the Conventional Commit standard as
|
171
|
+
part of the continuous integration pipeline.
|
172
|
+
|
173
|
+
Any commit message that does not conform to the Conventional Commits standard will
|
174
|
+
cause the workflow to fail and not allow the PR to be merged.
|
163
175
|
|
164
176
|
### Unit tests
|
165
177
|
|
166
|
-
|
167
|
-
|
178
|
+
- All changes must be accompanied by new or modified unit tests.
|
179
|
+
- The entire test suite must pass when `bundle exec rake default` is run from the
|
168
180
|
project's local working copy.
|
169
181
|
|
170
182
|
While working on specific features, you can run individual test files or a group of
|
data/Rakefile
CHANGED
@@ -58,3 +58,10 @@ task :'test:gem' => :install do
|
|
58
58
|
|
59
59
|
puts 'Gem Test Succeeded'
|
60
60
|
end
|
61
|
+
|
62
|
+
# Make it so that calling `rake release` just calls `rake release:rubygem_push` to
|
63
|
+
# avoid creating and pushing a new tag.
|
64
|
+
|
65
|
+
Rake::Task['release'].clear
|
66
|
+
desc 'Customized release task to avoid creating a new tag'
|
67
|
+
task release: 'release:rubygem_push'
|
data/lib/git/version.rb
CHANGED
data/package.json
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"bootstrap-sha": "31374263eafea4e23352494ef4f6bea3ce62c1b5",
|
3
|
+
"packages": {
|
4
|
+
".": {
|
5
|
+
"release-type": "ruby",
|
6
|
+
"package-name": "git",
|
7
|
+
"changelog-path": "CHANGELOG.md",
|
8
|
+
"version-file": "lib/git/version.rb",
|
9
|
+
"bump-minor-pre-major": true,
|
10
|
+
"bump-patch-for-minor-pre-major": true,
|
11
|
+
"draft": false,
|
12
|
+
"prerelease": false,
|
13
|
+
"include-component-in-tag": false,
|
14
|
+
"pull-request-title-pattern": "chore: release v${version}",
|
15
|
+
"changelog-sections": [
|
16
|
+
{ "type": "feat", "section": "Features", "hidden": false },
|
17
|
+
{ "type": "fix", "section": "Bug Fixes", "hidden": false },
|
18
|
+
{ "type": "build", "section": "Other Changes", "hidden": false },
|
19
|
+
{ "type": "chore", "section": "Other Changes", "hidden": false },
|
20
|
+
{ "type": "ci", "section": "Other Changes", "hidden": false },
|
21
|
+
{ "type": "docs", "section": "Other Changes", "hidden": false },
|
22
|
+
{ "type": "perf", "section": "Other Changes", "hidden": false },
|
23
|
+
{ "type": "refactor", "section": "Other Changes", "hidden": false },
|
24
|
+
{ "type": "revert", "section": "Other Changes", "hidden": false },
|
25
|
+
{ "type": "style", "section": "Other Changes", "hidden": false },
|
26
|
+
{ "type": "test", "section": "Other Changes", "hidden": false }
|
27
|
+
]
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"plugins": [
|
31
|
+
{
|
32
|
+
"type": "sentence-case"
|
33
|
+
}
|
34
|
+
],
|
35
|
+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
|
36
|
+
}
|
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: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon and others
|
@@ -194,11 +194,16 @@ executables: []
|
|
194
194
|
extensions: []
|
195
195
|
extra_rdoc_files: []
|
196
196
|
files:
|
197
|
+
- ".commitlintrc.yml"
|
197
198
|
- ".github/issue_template.md"
|
198
199
|
- ".github/pull_request_template.md"
|
199
200
|
- ".github/workflows/continuous_integration.yml"
|
201
|
+
- ".github/workflows/enforce_conventional_commits.yml"
|
200
202
|
- ".github/workflows/experimental_continuous_integration.yml"
|
203
|
+
- ".github/workflows/release.yml"
|
201
204
|
- ".gitignore"
|
205
|
+
- ".husky/commit-msg"
|
206
|
+
- ".release-please-manifest.json"
|
202
207
|
- ".yardopts"
|
203
208
|
- CHANGELOG.md
|
204
209
|
- CONTRIBUTING.md
|
@@ -206,7 +211,6 @@ files:
|
|
206
211
|
- LICENSE
|
207
212
|
- MAINTAINERS.md
|
208
213
|
- README.md
|
209
|
-
- RELEASING.md
|
210
214
|
- Rakefile
|
211
215
|
- git.gemspec
|
212
216
|
- lib/git.rb
|
@@ -236,14 +240,16 @@ files:
|
|
236
240
|
- lib/git/working_directory.rb
|
237
241
|
- lib/git/worktree.rb
|
238
242
|
- lib/git/worktrees.rb
|
243
|
+
- package.json
|
244
|
+
- release-please-config.json
|
239
245
|
homepage: http://github.com/ruby-git/ruby-git
|
240
246
|
licenses:
|
241
247
|
- MIT
|
242
248
|
metadata:
|
243
249
|
homepage_uri: http://github.com/ruby-git/ruby-git
|
244
250
|
source_code_uri: http://github.com/ruby-git/ruby-git
|
245
|
-
changelog_uri: https://rubydoc.info/gems/git/3.0.
|
246
|
-
documentation_uri: https://rubydoc.info/gems/git/3.0.
|
251
|
+
changelog_uri: https://rubydoc.info/gems/git/3.0.2/file/CHANGELOG.md
|
252
|
+
documentation_uri: https://rubydoc.info/gems/git/3.0.2
|
247
253
|
rdoc_options: []
|
248
254
|
require_paths:
|
249
255
|
- lib
|
data/RELEASING.md
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
<!--
|
2
|
-
# @markup markdown
|
3
|
-
# @title Releasing
|
4
|
-
-->
|
5
|
-
|
6
|
-
# How to release a new git.gem
|
7
|
-
|
8
|
-
Releasing a new version of the `git` gem requires these steps:
|
9
|
-
|
10
|
-
* [Install Prerequisites](#install-prerequisites)
|
11
|
-
* [Determine the SemVer release type](#determine-the-semver-release-type)
|
12
|
-
* [Create the release](#create-the-release)
|
13
|
-
* [Review the CHANGELOG and release PR](#review-the-changelog-and-release-pr)
|
14
|
-
* [Manually merge the release PR](#manually-merge-the-release-pr)
|
15
|
-
* [Publish the git gem to RubyGems.org](#publish-the-git-gem-to-rubygemsorg)
|
16
|
-
|
17
|
-
## Install Prerequisites
|
18
|
-
|
19
|
-
The following tools need to be installed in order to create the release:
|
20
|
-
|
21
|
-
* [create_githhub_release](https://github.com/main-branch/create_github_release) is used to create the release
|
22
|
-
* [git](https://git-scm.com) is used by `create-github-release` to interact with the local and remote repositories
|
23
|
-
* [gh](https://cli.github.com) is used by `create-github-release` to create the release and PR in GitHub
|
24
|
-
|
25
|
-
On a Mac, these tools can be installed using [gem](https://guides.rubygems.org/rubygems-basics/) and [brew](https://brew.sh):
|
26
|
-
|
27
|
-
```shell
|
28
|
-
$ gem install create_github_release
|
29
|
-
...
|
30
|
-
$ brew install git
|
31
|
-
...
|
32
|
-
$ brew install gh
|
33
|
-
...
|
34
|
-
$
|
35
|
-
```
|
36
|
-
|
37
|
-
## Determine the SemVer release type
|
38
|
-
|
39
|
-
Determine the SemVer version increment that should be applied for the new release:
|
40
|
-
|
41
|
-
* `major`: when the release includes incompatible API or functional changes.
|
42
|
-
* `minor`: when the release adds functionality in a backward-compatible manner
|
43
|
-
* `patch`: when the release includes small user-facing changes that are
|
44
|
-
backward-compatible and do not introduce new functionality.
|
45
|
-
|
46
|
-
## Create the release
|
47
|
-
|
48
|
-
Create the release using the `create-github-release` command. If the release type
|
49
|
-
is `major`, the command is:
|
50
|
-
|
51
|
-
```shell
|
52
|
-
create-github-release major
|
53
|
-
```
|
54
|
-
|
55
|
-
Follow the directions given by the `create-github-release` command to finish the
|
56
|
-
release. Where the instructions given by the command differ than the instructions
|
57
|
-
below, follow the instructions given by the command.
|
58
|
-
|
59
|
-
## Review the CHANGELOG and release PR
|
60
|
-
|
61
|
-
The `create-github-release` command will output a link to the CHANGELOG and the PR
|
62
|
-
it created for the release. Review the CHANGELOG and have someone review and approve
|
63
|
-
the release PR.
|
64
|
-
|
65
|
-
## Manually merge the release PR
|
66
|
-
|
67
|
-
It is important to manually merge the PR so a separate merge commit can be avoided.
|
68
|
-
Use the commands output by the `create-github-release` which will looks like this
|
69
|
-
if you are creating a 2.0.0 release:
|
70
|
-
|
71
|
-
```shell
|
72
|
-
git checkout master
|
73
|
-
git merge --ff-only release-v2.0.0
|
74
|
-
git push
|
75
|
-
```
|
76
|
-
|
77
|
-
This will automatically close the release PR.
|
78
|
-
|
79
|
-
## Publish the git gem to RubyGems.org
|
80
|
-
|
81
|
-
Finally, publish the git gem to RubyGems.org using the following command:
|
82
|
-
|
83
|
-
```shell
|
84
|
-
rake release:rubygem_push
|
85
|
-
```
|