git 1.19.1 → 2.0.0.pre2
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/workflows/continuous_integration.yml +22 -18
- data/CHANGELOG.md +19 -0
- data/README.md +147 -34
- data/RELEASING.md +49 -34
- data/git.gemspec +6 -8
- data/lib/git/command_line.rb +368 -0
- data/lib/git/command_line_error.rb +59 -0
- data/lib/git/config.rb +5 -1
- data/lib/git/error.rb +7 -0
- data/lib/git/failed_error.rb +4 -43
- data/lib/git/git_execute_error.rb +8 -1
- data/lib/git/lib.rb +112 -137
- data/lib/git/signaled_error.rb +3 -39
- data/lib/git/timeout_error.rb +60 -0
- data/lib/git/version.rb +1 -1
- data/lib/git.rb +4 -0
- metadata +23 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23b5fa33a9a0cb112334c8b243abd6b388984d5f63aa2ee57f83e67d66e68f4b
|
4
|
+
data.tar.gz: 292e0d1c9aa4ce4671206abcdb1a547ab606090ecd7b8f2d182def4721347c03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2332e16fc52d5ff5fd67cea38a1e4196bb98c06256746e81d13b0572ac78957743559eb27b8de752ba8c960e72f912cb5077fce625b6233ed6e63e1c2ef67890
|
7
|
+
data.tar.gz: bf769b8943941cec7efa01bae6152302023045d01a69c6aaddf9c04f8815eb18828a2e81b8133d0c7ab873235f08acfecce528d3e7f8659fb032baa73e44c6a1
|
@@ -2,39 +2,43 @@ name: CI
|
|
2
2
|
|
3
3
|
on:
|
4
4
|
push:
|
5
|
-
branches: [master]
|
5
|
+
branches: [master,v1]
|
6
6
|
pull_request:
|
7
|
-
branches: [master]
|
7
|
+
branches: [master,v1]
|
8
8
|
workflow_dispatch:
|
9
9
|
|
10
10
|
jobs:
|
11
|
-
|
12
|
-
|
11
|
+
build:
|
12
|
+
name: Ruby ${{ matrix.ruby }} on ${{ matrix.operating-system }}
|
13
|
+
runs-on: ${{ matrix.operating-system }}
|
14
|
+
continue-on-error: ${{ matrix.experimental == 'Yes' }}
|
15
|
+
env: { JAVA_OPTS: -Djdk.io.File.enableADS=true }
|
16
|
+
|
13
17
|
strategy:
|
14
18
|
fail-fast: false
|
15
19
|
matrix:
|
16
|
-
|
20
|
+
# Only the latest versions of JRuby and TruffleRuby are tested
|
21
|
+
ruby: ["3.0", "3.1", "3.2", "3.3", "truffleruby-24.0.0", "jruby-9.4.5.0"]
|
17
22
|
operating-system: [ubuntu-latest]
|
23
|
+
experimental: [No]
|
18
24
|
include:
|
19
|
-
-
|
25
|
+
- # Building against head version of Ruby is considered experimental
|
26
|
+
ruby: head
|
20
27
|
operating-system: ubuntu-latest
|
21
|
-
|
22
|
-
operating-system: ubuntu-latest
|
23
|
-
- ruby: 2.7
|
24
|
-
operating-system: windows-latest
|
25
|
-
- ruby: jruby-head
|
26
|
-
operating-system: windows-latest
|
28
|
+
experimental: Yes
|
27
29
|
|
28
|
-
|
29
|
-
|
30
|
-
|
30
|
+
- # Only test with minimal Ruby version on Windows
|
31
|
+
ruby: 3.0
|
32
|
+
operating-system: windows-latest
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
- # Since JRuby on Windows is known to not work, consider this experimental
|
35
|
+
ruby: jruby-9.4.5.0
|
36
|
+
operating-system: windows-latest
|
37
|
+
experimental: Yes
|
34
38
|
|
35
39
|
steps:
|
36
40
|
- name: Checkout Code
|
37
|
-
uses: actions/checkout@
|
41
|
+
uses: actions/checkout@v4
|
38
42
|
|
39
43
|
- name: Setup Ruby
|
40
44
|
uses: ruby/setup-ruby@v1
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,25 @@
|
|
5
5
|
|
6
6
|
# Change Log
|
7
7
|
|
8
|
+
## v2.0.0.pre2 (2024-02-24)
|
9
|
+
|
10
|
+
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v2.0.0.pre1..v2.0.0.pre2)
|
11
|
+
|
12
|
+
Changes since v2.0.0.pre1:
|
13
|
+
|
14
|
+
* 023017b Add a timeout for git commands (#692)
|
15
|
+
* 8286ceb Refactor the Error heriarchy (#693)
|
16
|
+
|
17
|
+
## v2.0.0.pre1 (2024-01-15)
|
18
|
+
|
19
|
+
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.19.1..v2.0.0.pre1)
|
20
|
+
|
21
|
+
Changes since v1.19.1:
|
22
|
+
|
23
|
+
* 7585c39 Change how the git CLI subprocess is executed (#684)
|
24
|
+
* f93e042 Update instructions for releasing a new version of the git gem (#686)
|
25
|
+
* f48930d Update minimum required version of Ruby and Git (#685)
|
26
|
+
|
8
27
|
## v1.19.1 (2024-01-13)
|
9
28
|
|
10
29
|
[Full Changelog](https://github.com/ruby-git/ruby-git/compare/v1.19.0..v1.19.1)
|
data/README.md
CHANGED
@@ -11,12 +11,32 @@
|
|
11
11
|
[](https://github.com/ruby-git/ruby-git/actions?query=workflow%3ACI)
|
12
12
|
[](https://codeclimate.com/github/ruby-git/ruby-git)
|
13
13
|
|
14
|
+
* [Summary](#summary)
|
15
|
+
* [v2.0.0 pre-release](#v200-pre-release)
|
16
|
+
* [Install](#install)
|
17
|
+
* [Major Objects](#major-objects)
|
18
|
+
* [Errors Raised By This Gem](#errors-raised-by-this-gem)
|
19
|
+
* [Specifying And Handling Timeouts](#specifying-and-handling-timeouts)
|
20
|
+
* [Examples](#examples)
|
21
|
+
* [Ruby version support policy](#ruby-version-support-policy)
|
22
|
+
* [License](#license)
|
23
|
+
|
24
|
+
## Summary
|
25
|
+
|
14
26
|
The [git gem](https://rubygems.org/gems/git) provides an API that can be used to
|
15
27
|
create, read, and manipulate Git repositories by wrapping system calls to the `git`
|
16
28
|
command line. The API can be used for working with Git in complex interactions
|
17
29
|
including branching and merging, object inspection and manipulation, history, patch
|
18
30
|
generation and more.
|
19
31
|
|
32
|
+
Get started by obtaining a repository object by:
|
33
|
+
|
34
|
+
* opening an existing working copy with [Git.open](https://rubydoc.info/gems/git/Git#open-class_method)
|
35
|
+
* initializing a new repository with [Git.init](https://rubydoc.info/gems/git/Git#init-class_method)
|
36
|
+
* cloning a repository with [Git.clone](https://rubydoc.info/gems/git/Git#clone-class_method)
|
37
|
+
|
38
|
+
Methods that can be called on a repository object are documented in [Git::Base](https://rubydoc.info/gems/git/Git/Base)
|
39
|
+
|
20
40
|
## v2.0.0 pre-release
|
21
41
|
|
22
42
|
git 2.0.0 is available as a pre-release version for testing! Please give it a try.
|
@@ -32,7 +52,7 @@ The changes coming in this major release include:
|
|
32
52
|
* Update the required Git command line version to at least 2.28
|
33
53
|
* Update how CLI commands are called to use the [process_executer](https://github.com/main-branch/process_executer)
|
34
54
|
gem which is built on top of [Kernel.spawn](https://ruby-doc.org/3.3.0/Kernel.html#method-i-spawn).
|
35
|
-
See [PR #
|
55
|
+
See [PR #684](https://github.com/ruby-git/ruby-git/pull/684) for more details
|
36
56
|
on the motivation for this implementation.
|
37
57
|
|
38
58
|
The tentative plan is to release `2.0.0` near the end of March 2024 depending on
|
@@ -41,36 +61,19 @@ the feedback received during the pre-release period.
|
|
41
61
|
The `master` branch will be used for `2.x` development. If needed, fixes for `1.x`
|
42
62
|
version will be done on the `v1` branch.
|
43
63
|
|
44
|
-
## Homepage
|
45
|
-
|
46
|
-
The project source code is at:
|
47
|
-
|
48
|
-
http://github.com/ruby-git/ruby-git
|
49
|
-
|
50
|
-
## Documentation
|
51
|
-
|
52
|
-
Detailed documentation can be found at:
|
53
|
-
|
54
|
-
https://rubydoc.info/gems/git/Git.html
|
55
|
-
|
56
|
-
Get started by obtaining a repository object by:
|
57
|
-
|
58
|
-
* opening an existing working copy with [Git.open](https://rubydoc.info/gems/git/Git#open-class_method)
|
59
|
-
* initializing a new repository with [Git.init](https://rubydoc.info/gems/git/Git#init-class_method)
|
60
|
-
* cloning a repository with [Git.clone](https://rubydoc.info/gems/git/Git#clone-class_method)
|
61
|
-
|
62
|
-
Methods that can be called on a repository object are documented in [Git::Base](https://rubydoc.info/gems/git/Git/Base)
|
63
|
-
|
64
64
|
## Install
|
65
65
|
|
66
|
-
|
66
|
+
Install the gem and add to the application's Gemfile by executing:
|
67
67
|
|
68
|
-
```
|
69
|
-
|
68
|
+
```shell
|
69
|
+
bundle add git
|
70
70
|
```
|
71
71
|
|
72
|
-
|
72
|
+
If bundler is not being used to manage dependencies, install the gem by executing:
|
73
73
|
|
74
|
+
```shell
|
75
|
+
gem install git
|
76
|
+
```
|
74
77
|
|
75
78
|
## Major Objects
|
76
79
|
|
@@ -99,17 +102,119 @@ Pass the `--all` option to `git log` as follows:
|
|
99
102
|
|
100
103
|
**Git::Worktrees** - Enumerable object that holds `Git::Worktree objects`.
|
101
104
|
|
102
|
-
##
|
105
|
+
## Errors Raised By This Gem
|
103
106
|
|
104
|
-
|
107
|
+
This gem raises custom errors that derive from `Git::Error`. These errors are
|
108
|
+
arranged in the following class heirarchy:
|
109
|
+
|
110
|
+
Error heirarchy:
|
111
|
+
|
112
|
+
```text
|
113
|
+
Error
|
114
|
+
└── CommandLineError
|
115
|
+
├── FailedError
|
116
|
+
└── SignaledError
|
117
|
+
└── TimeoutError
|
118
|
+
```
|
105
119
|
|
106
|
-
|
120
|
+
Other standard errors may also be raised like `ArgumentError`. Each method should
|
121
|
+
document the errors it may raise.
|
122
|
+
|
123
|
+
Description of each Error class:
|
124
|
+
|
125
|
+
* `Error`: This catch-all error serves as the base class for other custom errors in this
|
126
|
+
gem. Errors of this class are raised when no more approriate specific error to
|
127
|
+
raise.
|
128
|
+
* `CommandLineError`: This error is raised when there's a problem executing the git
|
129
|
+
command line. This gem will raise a more specific error depending on how the
|
130
|
+
command line failed.
|
131
|
+
* `FailedError`: This error is raised when the git command line exits with a non-zero
|
132
|
+
status code that is not expected by the git gem.
|
133
|
+
* `SignaledError`: This error is raised when the git command line is terminated as a
|
134
|
+
result of receiving a signal. This could happen if the process is forcibly
|
135
|
+
terminated or if there is a serious system error.
|
136
|
+
* `TimeoutError`: This is a specific type of `SignaledError` that is raised when the
|
137
|
+
git command line operation times out and is killed via the SIGKILL signal. This
|
138
|
+
happens if the operation takes longer than the timeout duration configured in
|
139
|
+
`Git.config.timeout` or via the `:timeout` parameter given in git methods that
|
140
|
+
support this parameter.
|
141
|
+
|
142
|
+
`Git::GitExecuteError` remains as an alias for `Git::Error`. It is considered
|
143
|
+
deprecated as of git-2.0.0.
|
144
|
+
|
145
|
+
Here is an example of catching errors when using the git gem:
|
107
146
|
|
108
147
|
```ruby
|
109
|
-
|
148
|
+
begin
|
149
|
+
timeout_duration = 0.001 # seconds
|
150
|
+
repo = Git.clone('https://github.com/ruby-git/ruby-git', 'ruby-git-temp', timeout: timeout_duration)
|
151
|
+
rescue Git::TimeoutError => e # Catch the more specific error first!
|
152
|
+
puts "Git clone took too long and timed out #{e}"
|
153
|
+
rescue Git::Error => e
|
154
|
+
puts "Received the following error: #{e}"
|
110
155
|
```
|
111
156
|
|
157
|
+
## Specifying And Handling Timeouts
|
158
|
+
|
159
|
+
The timeout feature was added in git gem version `2.0.0`.
|
160
|
+
|
161
|
+
A timeout for git operations can be set either globally or for specific method calls
|
162
|
+
that accept a `:timeout` parameter.
|
163
|
+
|
164
|
+
The timeout value must be a real, non-negative `Numeric` value that specifies a
|
165
|
+
number of seconds a `git` command will be given to complete before being sent a KILL
|
166
|
+
signal. This library may hang if the `git` command does not terminate after receiving
|
167
|
+
the KILL signal.
|
168
|
+
|
169
|
+
When a command times out, a `Git::TimeoutError` is raised.
|
170
|
+
|
171
|
+
If the timeout value is `0` or `nil`, no timeout will be enforced.
|
172
|
+
|
173
|
+
If a method accepts a `:timeout` parameter and a receives a non-nil value, it will
|
174
|
+
override the global timeout value. In this context, a value of `nil` (which is
|
175
|
+
usually the default) will use the global timeout value and a value of `0` will turn
|
176
|
+
off timeout enforcement for that method call no matter what the global value is.
|
177
|
+
|
178
|
+
To set a global timeout, use the `Git.config` object:
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
Git.config.timeout = nil # a value of nil or 0 means no timeout is enforced
|
182
|
+
Git.config.timeout = 1.5 # can be any real, non-negative Numeric interpreted as number of seconds
|
183
|
+
```
|
184
|
+
|
185
|
+
The global timeout can be overridden for a specific method if the method accepts a
|
186
|
+
`:timeout` parameter:
|
187
|
+
|
188
|
+
```ruby
|
189
|
+
repo_url = 'https://github.com/ruby-git/ruby-git.git'
|
190
|
+
Git.clone(repo_url) # Use the global timeout value
|
191
|
+
Git.clone(repo_url, timeout: nil) # Also uses the global timeout value
|
192
|
+
Git.clone(repo_url, timeout: 0) # Do not enforce a timeout
|
193
|
+
Git.clone(repo_url, timeout: 10.5) # Timeout after 10.5 seconds raising Git::SignaledError
|
194
|
+
```
|
195
|
+
|
196
|
+
If the command takes too long, a `Git::SignaledError` will be raised:
|
197
|
+
|
198
|
+
```ruby
|
199
|
+
begin
|
200
|
+
Git.clone(repo_url, timeout: 10)
|
201
|
+
rescue Git::TimeoutError => e
|
202
|
+
result = e.result
|
203
|
+
result.class #=> Git::CommandLineResult
|
204
|
+
result.status #=> #<Process::Status: pid 62173 SIGKILL (signal 9)>
|
205
|
+
result.status.timeout? #=> true
|
206
|
+
result.git_cmd # The git command ran as an array of strings
|
207
|
+
result.stdout # The command's output to stdout until it was terminated
|
208
|
+
result.stderr # The command's output to stderr until it was terminated
|
209
|
+
end
|
210
|
+
```
|
211
|
+
|
212
|
+
## Examples
|
213
|
+
|
214
|
+
Here are a bunch of examples of how to use the Ruby/Git package.
|
215
|
+
|
112
216
|
Require the 'git' gem.
|
217
|
+
|
113
218
|
```ruby
|
114
219
|
require 'git'
|
115
220
|
```
|
@@ -276,11 +381,11 @@ g.add(:all=>true) # git add --all -- "."
|
|
276
381
|
g.add('file_path') # git add -- "file_path"
|
277
382
|
g.add(['file_path_1', 'file_path_2']) # git add -- "file_path_1" "file_path_2"
|
278
383
|
|
279
|
-
g.remove()
|
280
|
-
g.remove('file.txt')
|
281
|
-
g.remove(['file.txt', 'file2.txt'])
|
282
|
-
g.remove('file.txt', :recursive => true)
|
283
|
-
g.remove('file.txt', :cached => true)
|
384
|
+
g.remove() # git rm -f -- "."
|
385
|
+
g.remove('file.txt') # git rm -f -- "file.txt"
|
386
|
+
g.remove(['file.txt', 'file2.txt']) # git rm -f -- "file.txt" "file2.txt"
|
387
|
+
g.remove('file.txt', :recursive => true) # git rm -f -r -- "file.txt"
|
388
|
+
g.remove('file.txt', :cached => true) # git rm -f --cached -- "file.txt"
|
284
389
|
|
285
390
|
g.commit('message')
|
286
391
|
g.commit_all('message')
|
@@ -422,6 +527,14 @@ g.with_temp_working(dir) do
|
|
422
527
|
end
|
423
528
|
```
|
424
529
|
|
530
|
+
## Ruby version support policy
|
531
|
+
|
532
|
+
This gem will be expected to function correctly on:
|
533
|
+
|
534
|
+
* All non-EOL versions of the MRI Ruby on Mac, Linux, and Windows
|
535
|
+
* The latest version of JRuby on Linux and Windows
|
536
|
+
* The latest version of Truffle Ruby on Linus
|
537
|
+
|
425
538
|
## License
|
426
539
|
|
427
540
|
licensed under MIT License Copyright (c) 2008 Scott Chacon. See LICENSE for further details.
|
data/RELEASING.md
CHANGED
@@ -7,64 +7,79 @@
|
|
7
7
|
|
8
8
|
Releasing a new version of the `git` gem requires these steps:
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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`
|
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)
|
21
16
|
|
22
17
|
## Install Prerequisites
|
23
18
|
|
24
19
|
The following tools need to be installed in order to create the release:
|
25
20
|
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
29
24
|
|
30
|
-
On a Mac, these tools can be installed using [brew](https://brew.sh):
|
25
|
+
On a Mac, these tools can be installed using [gem](https://guides.rubygems.org/rubygems-basics/) and [brew](https://brew.sh):
|
31
26
|
|
32
27
|
```shell
|
28
|
+
$ gem install create_github_release
|
29
|
+
...
|
33
30
|
$ brew install git
|
34
31
|
...
|
35
32
|
$ brew install gh
|
36
33
|
...
|
37
|
-
$ brew install --cask docker
|
38
|
-
...
|
39
34
|
$
|
40
35
|
```
|
41
36
|
|
42
|
-
##
|
37
|
+
## Determine the SemVer release type
|
43
38
|
|
44
|
-
|
39
|
+
Determine the SemVer version increment that should be applied for the new release:
|
45
40
|
|
46
|
-
|
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.
|
47
45
|
|
48
|
-
|
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`
|
46
|
+
## Create the release
|
52
47
|
|
53
|
-
|
48
|
+
Create the release using the `create-github-release` command. If the release type
|
49
|
+
is `major`, the command is:
|
54
50
|
|
55
|
-
|
51
|
+
```shell
|
52
|
+
create-github-release major
|
53
|
+
```
|
56
54
|
|
57
|
-
|
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
58
|
|
59
|
-
|
59
|
+
## Review the CHANGELOG and release PR
|
60
60
|
|
61
|
-
-
|
62
|
-
|
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.
|
63
64
|
|
64
|
-
##
|
65
|
+
## Manually merge the release PR
|
65
66
|
|
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:
|
67
70
|
|
68
|
-
|
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
|
69
80
|
|
70
|
-
|
81
|
+
Finally, publish the git gem to RubyGems.org using the following command:
|
82
|
+
|
83
|
+
```shell
|
84
|
+
rake release:rubygem_push
|
85
|
+
```
|
data/git.gemspec
CHANGED
@@ -24,22 +24,20 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.metadata['documentation_uri'] = "https://rubydoc.info/gems/#{s.name}/#{s.version}"
|
25
25
|
|
26
26
|
s.require_paths = ['lib']
|
27
|
-
s.required_ruby_version = '>=
|
28
|
-
s.
|
29
|
-
s.requirements = ['git 1.6.0.0, or greater']
|
27
|
+
s.required_ruby_version = '>= 3.0.0'
|
28
|
+
s.requirements = ['git 2.28.0 or greater']
|
30
29
|
|
31
30
|
s.add_runtime_dependency 'addressable', '~> 2.8'
|
31
|
+
s.add_runtime_dependency 'process_executer', '~> 1.1'
|
32
32
|
s.add_runtime_dependency 'rchardet', '~> 1.8'
|
33
33
|
|
34
|
-
s.add_development_dependency 'bump', '~> 0.10'
|
35
|
-
s.add_development_dependency 'create_github_release', '~> 0.2'
|
36
34
|
s.add_development_dependency 'minitar', '~> 0.9'
|
37
35
|
s.add_development_dependency 'mocha', '~> 2.1'
|
38
|
-
s.add_development_dependency 'rake', '~> 13.
|
39
|
-
s.add_development_dependency 'test-unit', '~> 3.
|
36
|
+
s.add_development_dependency 'rake', '~> 13.1'
|
37
|
+
s.add_development_dependency 'test-unit', '~> 3.6'
|
40
38
|
|
41
39
|
unless RUBY_PLATFORM == 'java'
|
42
|
-
s.add_development_dependency 'redcarpet', '~> 3.
|
40
|
+
s.add_development_dependency 'redcarpet', '~> 3.6'
|
43
41
|
s.add_development_dependency 'yard', '~> 0.9', '>= 0.9.28'
|
44
42
|
s.add_development_dependency 'yardstick', '~> 0.9'
|
45
43
|
end
|