git 1.13.0 → 1.13.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df0d52946aa19627fbff62a47b86f694763e957e1f6d87b9a5e14e6cae46ff1d
4
- data.tar.gz: f2b9e31a9cfb944da55c25b22b54aacd54d788e77ef2808d7cfba0a466cedb8a
3
+ metadata.gz: 8d000b5ac2ceebebeb6c84eae6aa1c6f4b3d58dd444f15c70390baadf7bb3c8e
4
+ data.tar.gz: f45ef489fb3aa2d3cff1a45cb127bb27fe380693af5e322220322fd8aa6dfd33
5
5
  SHA512:
6
- metadata.gz: 0a812bbdc6aabf7c63d30f96659edfe4a65a141dce613046d3f7e537f5105a80e48f6ae03cb30c4d806243cfd130b49bbc852f43df493191e26dfec2f03551f2
7
- data.tar.gz: b0a634418e93055e3f3c2c5256176515aa990950f4927e2b0ee82055a87543f0695cf13ae4a1f5bd99ab1cec9f8e264153b8aa2ec3f4392c88c5890c17ce7c13
6
+ metadata.gz: 6128142518501bce8bd4e5f40e178ac063359916daf544005bdc6187160619b74c6236a7f56b29438f3b5ebb547a5759b59b3140ee260ebd179bc8a4124d1a15
7
+ data.tar.gz: 56e9d4940992d8feab68502815563d6d16967c1d659748271bdd27e0e1a382f81ce4be4dd7682645b562f8b616be791f79437fdaaa072778aca724c91e40b4d1
@@ -13,7 +13,7 @@ jobs:
13
13
  strategy:
14
14
  fail-fast: false
15
15
  matrix:
16
- ruby: [2.3, 2.7, 3.0]
16
+ ruby: [2.7, 3.0, 3.1, 3.2]
17
17
  operating-system: [ubuntu-latest]
18
18
  include:
19
19
  - ruby: head
@@ -34,7 +34,7 @@ jobs:
34
34
 
35
35
  steps:
36
36
  - name: Checkout Code
37
- uses: actions/checkout@v2
37
+ uses: actions/checkout@v3
38
38
 
39
39
  - name: Setup Ruby
40
40
  uses: ruby/setup-ruby@v1
data/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@
5
5
 
6
6
  # Change Log
7
7
 
8
+ ## v1.13.1 (2023-01-12)
9
+
10
+ [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.13.0...v1.13.1)
11
+
12
+ * 667b830 Update the GitHub Action step "actions/checkout" from v2 to v3 (#608)
13
+ * 23a0ac4 Fix version parsing (#605)
14
+ * 429f0bb Update release instructions (#606)
15
+ * 68d76b8 Drop ruby 2.3 build and add 3.1 and 3.2 builds (#607)
16
+
8
17
  ## v1.13.0 (2022-12-10)
9
18
 
10
19
  [Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.12.0...v1.13.0)
data/RELEASING.md CHANGED
@@ -8,61 +8,63 @@
8
8
  Releasing a new version of the `git` gem requires these steps:
9
9
 
10
10
  - [How to release a new git.gem](#how-to-release-a-new-gitgem)
11
- - [Prepare the release](#prepare-the-release)
12
- - [Create a GitHub release](#create-a-github-release)
13
- - [Build and release the gem](#build-and-release-the-gem)
14
-
15
- These instructions use an example where the current release version is `1.5.0`
16
- and the new release version to be created is `1.6.0.pre1`.
17
-
18
- ## Prepare the release
19
-
20
- From a fork of ruby-git, create a PR containing changes to (1) bump the
21
- version number, (2) update the CHANGELOG.md, and (3) tag the release.
22
-
23
- - Bump the version number in lib/git/version.rb following [Semantic Versioning](https://semver.org)
24
- guidelines
25
- - Add a link in CHANGELOG.md to the release tag which will be created later
26
- in this guide
27
- - Create a new tag using [git-extras](https://github.com/tj/git-extras/blob/master/Commands.md#git-release)
28
- `git release` command
29
- - For example: `git release v1.6.0.pre1`
30
- - These should be the only changes in the PR
31
- - An example of these changes for `v1.6.0.pre1` can be found in [PR #435](https://github.com/ruby-git/ruby-git/pull/435)
32
- - Get the PR reviewed, approved and merged to master.
33
-
34
- ## Create a GitHub release
35
-
36
- On [the ruby-git releases page](https://github.com/ruby-git/ruby-git/releases),
37
- select `Draft a new release`
38
-
39
- - Select the tag corresponding to the version being released `v1.6.0.pre1`
40
- - The Target should be `master`
41
- - For the release description, use the output of [changelog-rs](https://github.com/perlun/changelog-rs)
42
- - A Docker image is provided in [Dockerfile.changelog-rs](https://github.com/ruby-git/ruby-git/blob/master/Dockerfile.changelog-rs)
43
- so you don't have to install changelog-rs or the Rust tool chain. To build the
44
- Docker image, run this command from this project's root directory:
45
- - `docker build --file Dockerfile.changelog-rs --tag changelog-rs .`
46
- - To run the changelog-rs command using this image, run the following command
47
- from this project's root directory (replace the tag names appropriate for the
48
- current release):
49
- - `docker run --rm --volume "$PWD:/worktree" changelog-rs v1.5.0 v1.6.0.pre1`
50
- - Copy the output, omitting the tag header `## v1.6.0.pre1` and paste into
51
- the release description
52
- - The release description can be edited later if needed
53
- - Select the appropriate value for `This is a pre-release`
54
- - Since `v1.6.0.pre1` is a pre-release, check `This is a pre-release`
55
-
56
- ## Build and release the gem
57
-
58
- Clone [ruby-git/ruby-git](https://github.com/ruby-git/ruby-git) directly (not a
59
- fork) and ensure your local working copy is on the master branch
60
-
61
- - Verify that you are not on a fork with the command `git remote -v`
62
- - Verify that the version number is correct by running `rake -T` and inspecting
63
- the output for the `release[remote]` task
64
-
65
- Build the git gem and push it to rubygems.org with the command `rake release`
66
-
67
- - Ensure that your `gem sources list` includes `https://rubygems.org` (in my
68
- case, I usually have my work’s internal gem repository listed)
11
+ - [Install Prerequisites](#install-prerequisites)
12
+ - [Prepare the Release](#prepare-the-release)
13
+ - [Review and Merge the Release](#review-and-merge-the-release)
14
+ - [Build and Release the Gem](#build-and-release-the-gem)
15
+
16
+ These instructions use an example where:
17
+
18
+ - The default branch is `master`
19
+ - The current release version is `1.5.0`
20
+ - You want to create a new *minor* release, `1.6.0`
21
+
22
+ ## Install Prerequisites
23
+
24
+ The following tools need to be installed in order to create the release:
25
+
26
+ - [git](https://git-scm.com) is used to interact with the local and remote repositories
27
+ - [gh](https://cli.github.com) is used to create the release and PR in GitHub
28
+ - [Docker](https://www.docker.com) is used to run the script to create the release notes
29
+
30
+ On a Mac, these tools can be installed using [brew](https://brew.sh):
31
+
32
+ ```shell
33
+ $ brew install git
34
+ ...
35
+ $ brew install gh
36
+ ...
37
+ $ brew install --cask docker
38
+ ...
39
+ $
40
+ ```
41
+
42
+ ## Prepare the Release
43
+
44
+ Bump the version, create release notes, tag the release and create a GitHub release and PR which can be used to review the release.
45
+
46
+ Steps:
47
+
48
+ - Check out the code with `git clone https://github.com/ruby-git/ruby-git ruby-git-v1.6.0 && cd ruby-git-v1.6.0`
49
+ - Install development dependencies using bundle `bundle install`
50
+ - Based upon the nature of the changes, decide on the type of release: `major`, `minor`, or `patch` (in this example we will use `minor`)
51
+ - Run the release script `bundle exec create-github-release minor`
52
+
53
+ ## Review and Merge the Release
54
+
55
+ Have the release PR approved and merge the changes into the `master` branch.
56
+
57
+ **IMPORTANT** DO NOT merge to the `master` branch using the GitHub UI. Instead use the instructions below.
58
+
59
+ Steps:
60
+
61
+ - Get the release PR reviewed and approved in GitHub
62
+ - Merge the changes with the command `git checkout master && git merge --ff-only v1.6.0 && git push`
63
+
64
+ ## Build and Release the Gem
65
+
66
+ Build the gem and publish it to [rubygems.org](https://rubygems.org/gems/git)
67
+
68
+ Steps:
69
+
70
+ - Build and release the gem using rake `bundle exec rake release`
data/git.gemspec CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  s.add_runtime_dependency 'rchardet', '~> 1.8'
31
31
 
32
32
  s.add_development_dependency 'bump', '~> 0.10'
33
+ s.add_development_dependency 'create_github_release', '~> 0.2'
33
34
  s.add_development_dependency 'minitar', '~> 0.9'
34
35
  s.add_development_dependency 'rake', '~> 13.0'
35
36
  s.add_development_dependency 'test-unit', '~> 3.3'
data/lib/git/lib.rb CHANGED
@@ -63,8 +63,6 @@ module Git
63
63
  @git_work_dir = base[:working_directory]
64
64
  end
65
65
  @logger = logger
66
-
67
- Git::Lib.warn_if_old_command(self)
68
66
  end
69
67
 
70
68
  # creates or reinitializes the repository
@@ -1029,8 +1027,9 @@ module Git
1029
1027
  # returns the current version of git, as an Array of Fixnums.
1030
1028
  def current_command_version
1031
1029
  output = command('version')
1032
- version = output[/\d+\.\d+(\.\d+)+/]
1033
- version.split('.').collect {|i| i.to_i}
1030
+ version = output[/\d+(\.\d+)+/]
1031
+ version_parts = version.split('.').collect { |i| i.to_i }
1032
+ version_parts.fill(0, version_parts.length...3)
1034
1033
  end
1035
1034
 
1036
1035
  def required_command_version
@@ -1043,10 +1042,11 @@ module Git
1043
1042
 
1044
1043
  def self.warn_if_old_command(lib)
1045
1044
  return true if @version_checked
1045
+ @version_checked = true
1046
1046
  unless lib.meets_required_version?
1047
1047
  $stderr.puts "[WARNING] The git gem requires git #{lib.required_command_version.join('.')} or later, but only found #{lib.current_command_version.join('.')}. You should probably upgrade."
1048
1048
  end
1049
- @version_checked = true
1049
+ true
1050
1050
  end
1051
1051
 
1052
1052
  private
@@ -1104,6 +1104,8 @@ module Git
1104
1104
  end
1105
1105
 
1106
1106
  def command(cmd, *opts, &block)
1107
+ Git::Lib.warn_if_old_command(self)
1108
+
1107
1109
  command_opts = { chomp: true, redirect: '' }
1108
1110
  if opts.last.is_a?(Hash)
1109
1111
  command_opts.merge!(opts.pop)
data/lib/git/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Git
2
2
  # The current gem version
3
3
  # @return [String] the current gem version.
4
- VERSION='1.13.0'
4
+ VERSION='1.13.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.0
4
+ version: 1.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chacon and others
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-14 00:00:00.000000000 Z
11
+ date: 2023-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: create_github_release
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.2'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: minitar
57
71
  requirement: !ruby/object:Gem::Requirement