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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac9ecaecd0650db542fe2d5efbddea96b362130fb8c34aca2e4ee19ded74c261
4
- data.tar.gz: ca88749488ed11bbd9bd13444e658e1c3dbf02b6e453327691ddbc9f8df949a0
3
+ metadata.gz: 6b470fa5194ac99953b57fa35e69a7f14eadc6c1ad5bcdd6fde4c59278417a15
4
+ data.tar.gz: f17a9441ed37186bb46f26ee475f3c83f2adde03c6d67e707dd9ba50855d4cbc
5
5
  SHA512:
6
- metadata.gz: f46b58cc1faade68c215b482e1907107fa61b705bd4f70259d8b271c77c2d9743506cdec921c1f3c27006d3483bc0aa0827755e1e1c82f3c20ecb62c1496c71a
7
- data.tar.gz: fd8d45a2828536ef4da8e07917c309b12d9f0b3d4d7431c0ffadab6b0e83d3ad868cebb40f48435d72924f65d7bcf516aea433755ddfed0c084f8df6f31e3dbe
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
@@ -8,3 +8,5 @@ doc
8
8
  pkg
9
9
  rdoc
10
10
  Gemfile.lock
11
+ node_modules
12
+ package-lock.json
data/.husky/commit-msg ADDED
@@ -0,0 +1 @@
1
+ npx --no-install commitlint --edit "$1"
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "3.0.2"
3
+ }
data/.yardopts CHANGED
@@ -7,5 +7,4 @@
7
7
  README.md
8
8
  CHANGELOG.md
9
9
  CONTRIBUTING.md
10
- RELEASING.md
11
10
  MAINTAINERS.md
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
- * [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
- * [1 PR = 1 Commit](#1-pr--1-commit)
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)
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
- ### 1 PR = 1 Commit
156
+ ### Commit message guidelines
157
157
 
158
- * All commits for a PR must be squashed into a single commit.
159
- * To avoid an extra merge commit, the PR must be able to be merged as [a fast-forward
160
- merge](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging).
161
- * The easiest way to ensure a fast-forward merge is to rebase your local branch to
162
- the `ruby-git` master branch.
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
- * All changes must be accompanied by new or modified unit tests.
167
- * The entire test suite must pass when `bundle exec rake default` is run from the
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
@@ -3,5 +3,5 @@
3
3
  module Git
4
4
  # The current gem version
5
5
  # @return [String] the current gem version.
6
- VERSION='3.0.1'
6
+ VERSION='3.0.2'
7
7
  end
data/package.json ADDED
@@ -0,0 +1,10 @@
1
+ {
2
+ "devDependencies": {
3
+ "@commitlint/cli": "^19.8.0",
4
+ "@commitlint/config-conventional": "^19.8.0",
5
+ "husky": "^9.1.7"
6
+ },
7
+ "scripts": {
8
+ "prepare": "husky"
9
+ }
10
+ }
@@ -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.1
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.1/file/CHANGELOG.md
246
- documentation_uri: https://rubydoc.info/gems/git/3.0.1
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
- ```