gem_release_helper 1.0.0
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 +7 -0
- data/.travis.yml +14 -0
- data/CHANGELOG.md +29 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +57 -0
- data/LICENSE.txt +22 -0
- data/README.md +84 -0
- data/Rakefile +8 -0
- data/Rakefile.test +7 -0
- data/gem_release_helper.gemspec +27 -0
- data/lib/gem_release_helper.rb +4 -0
- data/lib/gem_release_helper/tasks.rb +22 -0
- data/lib/gem_release_helper/tasks/common.rb +71 -0
- data/lib/gem_release_helper/tasks/generator.rb +7 -0
- data/lib/gem_release_helper/tasks/generator/changelog.rb +120 -0
- data/lib/gem_release_helper/tasks/generator/gemfile.rb +96 -0
- data/lib/gem_release_helper/version.rb +3 -0
- data/test/gem_release_helper/tasks/generator/test_changelog.rb +152 -0
- data/test/gem_release_helper/tasks/generator/test_gemfiles.rb +156 -0
- data/test/run-test.rb +21 -0
- metadata +152 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: ff13664fd883a8f84e71ec0735526b42b793bcf4
|
|
4
|
+
data.tar.gz: eb4114d0735073d28de2438235da86066904e7a6
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 71d66bda16d7bd8be453add1f839d43c1ca558b8cfdd4ec6aa503f10963f75e23a4d5cb328aecd97292149e9844f7c4108d530cc7055cd02e65a11855d394d83
|
|
7
|
+
data.tar.gz: 96f1b74f48d782753241667cf6ccadbbd4c935e76a7d6b0644d905b1ff3d1ab632440f38d8473aced2570360a2e4064a9453d84b49c0605151074412a206627f
|
data/.travis.yml
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
rvm:
|
|
3
|
+
- jruby-19mode
|
|
4
|
+
- jruby-9.0.0.0 # NOTE: rvm 1.26.10 recognize as jruby-9.0.0pre1
|
|
5
|
+
env: 'JRUBY_OPTS="-Xcli.debug=true --debug"' # for test coverage
|
|
6
|
+
addons:
|
|
7
|
+
code_climate:
|
|
8
|
+
repo_token:
|
|
9
|
+
secure: "Ael9qV6oxuruF2I4l5GVm85EXmsTFJB2AxcwT3Ni2fALj+/xUdR5n9FwPxLwTqSFhLmr/ccefOIyqMDCo9LNcDc8ib7ypYHsTbNu8vZHlM5mbDA4/N5fpvahpAd532XCxOg4B90oOIbVlyalPGmO4mhCDTr17GnvPXgOfdf2zzq7xRL3gUjP7MGGLCCXhvuu6/D6+YhKCHUGymeaxFUxUeTI0h8Uempl7fhqcOyJlgMB+m7iK4Owy6sX6DWHzcYBbnWXUw0Czy47JrZHbN3YseURDpe6WTXL9eC42wo2LhMnqQH9fkMNpKRN80XE0P636ckI4nwmsPjAkV4/Q8X4oXE1Q8Muuei9ZHFV8k26GY0aaJ+zEo5ajfBXZPBQcFrhYzUuWpSym0JBCr0lEywr1DVLl1Qf/2+9782JCs8Bjvq3qTMY4AB45OqpLBScRbx0WoK03yuHLNtHLc9IftCQolxb0Wi08Q48NJmg4nsBcSaaJKlry/yr/vZ5kdKZJG8hWQfMUUjE1WP4l3gr1l2tP46s62t3B4cLcZ8wCEjzHNFKc30AfomfmABGV8M9LdRaYaNkLBaHhQVzlGJB32WDZWU5xClYDy2K6PjuXWp1BY4JcMWRkS9vAyezwRxvkXzX68DUerpUpk6+XensYcjgdOY60EYcY7FIiSm91hzB6l0="
|
|
10
|
+
notifications:
|
|
11
|
+
slack:
|
|
12
|
+
secure: DWXP4y5GvW5EyuZbcpXH3pnbb4lycfQ3SnxFUErjNnZacKRXLf1r93D5nT9GFvDERU7T3LIm8qwei6h3O5YNQDU1TKOhpWrGgkVYh0/VsyJhVeKSAErurmuMrBaloZ3pfszaTIK+v/WFj8E+25w1QLJaNoQ5aMCsq0r+ipuW/nDwX9HFAuLshjSy0ALmHmdha67iTZidfMLW8JbaAf1BnbmqHjFI2QuzSU01Yl2hOdY8k4JBpVtR5ntQJEaBVd+O07oNiY+GdETAD2n7jViJInjTz2Oy5c6j1ijcIknnzzlufFA7+fBmzXYQlcVOJE//DpfdAjYxlm6qKIoTKlI8JRbfX2e94qGsaLAi4OrDIdChlp+oF1Id3VDPnf3ckz1s5b+tbBtjbu5FO2+i6GvimQPysj3af2RvUZ9UkzQEgOxy+sT9STNm8Aa/2zg+TgKHvZ2E89YmMO57k/pac/Bn1BiAkActKu/gZdun6l4PC7/0qUbEI/ndnNMbpKx5gOgmpiIWkTAMo6oDbigygUwduonsoKx0oT9rm8q1AQA6PrxORj7+5cd6kmEaPvSvZS4oiSVwJvgs4RLp65grG6TxmHDzBizbJlEveDvZ9sgG9wgH7/ihtqKVG1KxXycierEJUoYvN0IUDKYQWMzzNKl5rSw58lHDEu606U15gUk5mXY=
|
|
13
|
+
jdk:
|
|
14
|
+
- oraclejdk8
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
## 1.0.0 - 2016-07-13
|
|
2
|
+
|
|
3
|
+
Forked and renamed as "gem_release_helper".
|
|
4
|
+
|
|
5
|
+
## 0.0.6 - 2015-09-09
|
|
6
|
+
|
|
7
|
+
* [fix] [gemfile] Fix 0.x-latest gemfile [#6](https://github.com/everyleaf/everyleaf-embulk_helper/pull/6)
|
|
8
|
+
|
|
9
|
+
## 0.0.5 - 2015-09-08
|
|
10
|
+
|
|
11
|
+
* [improve] [travis] Modify template to test Embulk 0.7.x matrix [#5](https://github.com/everyleaf/everyleaf-embulk_helper/pull/5)
|
|
12
|
+
|
|
13
|
+
## 0.0.4 - 2015-08-19
|
|
14
|
+
* [improve] Ignore errors on -latest versions [#4](https://github.com/everyleaf/everyleaf-embulk_helper/pull/4)
|
|
15
|
+
|
|
16
|
+
## 0.0.3 - 2015-08-18
|
|
17
|
+
|
|
18
|
+
* [improve] travis: Initial travis.yml template has allow_failures Embulk 0.6.22 [#3](https://github.com/everyleaf/everyleaf-embulk_helper/pull/3)
|
|
19
|
+
* [improve] gemfiles: Genarates embulk-0.x-latest gemfile [#3](https://github.com/everyleaf/everyleaf-embulk_helper/pull/3)
|
|
20
|
+
|
|
21
|
+
## 0.0.2 - 2015-08-11
|
|
22
|
+
|
|
23
|
+
* [fix] Fix gemspec path within generated gemfile template [#2](https://github.com/everyleaf/everyleaf-embulk_helper/pull/2)
|
|
24
|
+
* [improve] generage:changelog can accept `CURRENT_VER` and `NEXT_VER` environment variable instead of auto detection
|
|
25
|
+
|
|
26
|
+
## 0.0.1 - 2015-08-11
|
|
27
|
+
|
|
28
|
+
The first release!!
|
|
29
|
+
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
gem_release_helper (1.0.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
codeclimate-test-reporter (0.4.7)
|
|
10
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
|
11
|
+
coderay (1.1.0)
|
|
12
|
+
docile (1.1.5)
|
|
13
|
+
ffi (1.9.10-java)
|
|
14
|
+
json (1.8.3)
|
|
15
|
+
json (1.8.3-java)
|
|
16
|
+
method_source (0.8.2)
|
|
17
|
+
power_assert (0.2.3)
|
|
18
|
+
pry (0.10.1)
|
|
19
|
+
coderay (~> 1.1.0)
|
|
20
|
+
method_source (~> 0.8.1)
|
|
21
|
+
slop (~> 3.4)
|
|
22
|
+
pry (0.10.1-java)
|
|
23
|
+
coderay (~> 1.1.0)
|
|
24
|
+
method_source (~> 0.8.1)
|
|
25
|
+
slop (~> 3.4)
|
|
26
|
+
spoon (~> 0.0)
|
|
27
|
+
rake (10.4.2)
|
|
28
|
+
rr (1.1.2)
|
|
29
|
+
simplecov (0.10.0)
|
|
30
|
+
docile (~> 1.1.0)
|
|
31
|
+
json (~> 1.8)
|
|
32
|
+
simplecov-html (~> 0.10.0)
|
|
33
|
+
simplecov-html (0.10.0)
|
|
34
|
+
slop (3.6.0)
|
|
35
|
+
spoon (0.0.4)
|
|
36
|
+
ffi
|
|
37
|
+
test-unit (3.1.2)
|
|
38
|
+
power_assert
|
|
39
|
+
test-unit-rr (1.0.3)
|
|
40
|
+
rr (>= 1.1.1)
|
|
41
|
+
test-unit (>= 2.5.2)
|
|
42
|
+
|
|
43
|
+
PLATFORMS
|
|
44
|
+
java
|
|
45
|
+
ruby
|
|
46
|
+
|
|
47
|
+
DEPENDENCIES
|
|
48
|
+
bundler (~> 1.7)
|
|
49
|
+
codeclimate-test-reporter
|
|
50
|
+
gem_release_helper!
|
|
51
|
+
pry
|
|
52
|
+
rake (~> 10.0)
|
|
53
|
+
test-unit
|
|
54
|
+
test-unit-rr
|
|
55
|
+
|
|
56
|
+
BUNDLED WITH
|
|
57
|
+
1.12.5
|
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2015 uu59
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
[](https://travis-ci.org/uu59/gem_release_helper)
|
|
2
|
+
[](http://badge.fury.io/rb/gem_release_helper)
|
|
3
|
+
[](https://codeclimate.com/github/uu59/gem_release_helper)
|
|
4
|
+
[](https://codeclimate.com/github/uu59/gem_release_helper/coverage)
|
|
5
|
+
|
|
6
|
+
# GemReleaseHelper
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
Add this line to your application's Gemfile:
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
gem 'gem_release_helper'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
And then execute:
|
|
19
|
+
|
|
20
|
+
$ bundle
|
|
21
|
+
|
|
22
|
+
Or install it yourself as:
|
|
23
|
+
|
|
24
|
+
$ gem install gem_release_helper
|
|
25
|
+
|
|
26
|
+
Load rake tasks at your Rakefile:
|
|
27
|
+
|
|
28
|
+
require "bundler/gem_tasks"
|
|
29
|
+
require "gem_release_helper/tasks"
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
$ bundle exec rake -T
|
|
34
|
+
rake build # Build embulk-input-your-plugin-0.1.0.gem into the pkg directory
|
|
35
|
+
rake generate:bump_version # Bump version
|
|
36
|
+
rake generate:changelog # Generate CHANGELOG.md from previous release
|
|
37
|
+
rake generate:prepare_release # Generate chengelog then bump version
|
|
38
|
+
rake install # Build and install embulk-input-your-plugin-0.1.0.gem into system gems
|
|
39
|
+
rake release # Create tag v0.1.0 and build and push embulk-input-your-plugin-0.1.0.gem to Rubygems
|
|
40
|
+
|
|
41
|
+
### generate:gemfiles
|
|
42
|
+
|
|
43
|
+
$ mkdir gemfiles
|
|
44
|
+
$ cat > gemfiles/template.erb
|
|
45
|
+
source 'https://rubygems.org/'
|
|
46
|
+
gemspec :path => '../'
|
|
47
|
+
|
|
48
|
+
gem "embulk", "<%= version %>"
|
|
49
|
+
|
|
50
|
+
$ tree gemfiles
|
|
51
|
+
gemfiles
|
|
52
|
+
└── template.erb
|
|
53
|
+
|
|
54
|
+
0 directories, 1 file
|
|
55
|
+
$ bundle exec rake generate:gemfiles MIN_VERSION=0.6.10
|
|
56
|
+
I, [2015-08-11T11:03:37.202083 #10238] INFO -- : Generate Embulk gemfiles from '0.6.10' to latest
|
|
57
|
+
I, [2015-08-11T11:03:38.966539 #10238] INFO -- : Updated Gemfiles '0.6.10' to '0.6.21'
|
|
58
|
+
$ tree gemfiles
|
|
59
|
+
gemfiles
|
|
60
|
+
├── embulk-0.6.10
|
|
61
|
+
├── embulk-0.6.11
|
|
62
|
+
├── embulk-0.6.12
|
|
63
|
+
├── embulk-0.6.13
|
|
64
|
+
├── embulk-0.6.14
|
|
65
|
+
├── embulk-0.6.15
|
|
66
|
+
├── embulk-0.6.16
|
|
67
|
+
├── embulk-0.6.17
|
|
68
|
+
├── embulk-0.6.18
|
|
69
|
+
├── embulk-0.6.19
|
|
70
|
+
├── embulk-0.6.20
|
|
71
|
+
├── embulk-0.6.21
|
|
72
|
+
├── embulk-latest
|
|
73
|
+
└── template.erb
|
|
74
|
+
$ cat gemfiles/embulk-latest
|
|
75
|
+
source 'https://rubygems.org/'
|
|
76
|
+
gemspec :path => '../'
|
|
77
|
+
|
|
78
|
+
gem "embulk", "> 0.6.10"
|
|
79
|
+
|
|
80
|
+
$ cat gemfiles/embulk-0.6.18
|
|
81
|
+
source 'https://rubygems.org/'
|
|
82
|
+
gemspec :path => '../'
|
|
83
|
+
|
|
84
|
+
gem "embulk", "0.6.18"
|
data/Rakefile
ADDED
data/Rakefile.test
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'gem_release_helper/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "gem_release_helper"
|
|
8
|
+
spec.version = GemReleaseHelper::VERSION
|
|
9
|
+
spec.authors = ["yoshihara", "uu59"]
|
|
10
|
+
spec.email = ["h.yoshihara@everyleaf.com", "k@uu59.org"]
|
|
11
|
+
spec.summary = %q{Add some handy helpers for developing Embulk plugins}
|
|
12
|
+
spec.description = %q{Add some handy helpers for developing Embulk plugins}
|
|
13
|
+
spec.homepage = "https://github.com/uu59/gem_release_helper"
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
23
|
+
spec.add_development_dependency "test-unit"
|
|
24
|
+
spec.add_development_dependency "test-unit-rr"
|
|
25
|
+
spec.add_development_dependency "pry"
|
|
26
|
+
spec.add_development_dependency 'codeclimate-test-reporter'
|
|
27
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require "gem_release_helper/tasks/common"
|
|
2
|
+
|
|
3
|
+
module GemReleaseHelper
|
|
4
|
+
module Tasks
|
|
5
|
+
def self.tasks
|
|
6
|
+
@tasks ||= []
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.register(task_class)
|
|
10
|
+
tasks << task_class
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.install(options = {})
|
|
14
|
+
tasks.each do |task_class|
|
|
15
|
+
task_class.new(options).install_tasks
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
dir = File.expand_path("../tasks", __FILE__)
|
|
22
|
+
Dir["#{dir}/**/*.rb"].each{|f| require f}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require "pathname"
|
|
2
|
+
require "open-uri"
|
|
3
|
+
require "logger"
|
|
4
|
+
require "rake"
|
|
5
|
+
require "erb"
|
|
6
|
+
require "json"
|
|
7
|
+
require "rubygems"
|
|
8
|
+
|
|
9
|
+
module GemReleaseHelper
|
|
10
|
+
module Tasks
|
|
11
|
+
module Common
|
|
12
|
+
class OptionError < StandardError; end
|
|
13
|
+
|
|
14
|
+
include Rake::DSL
|
|
15
|
+
|
|
16
|
+
attr_reader :options
|
|
17
|
+
|
|
18
|
+
def initialize(options = {})
|
|
19
|
+
raise "options should be a Hash, given #{options.class}: #{options} " unless options.is_a?(Hash)
|
|
20
|
+
@options = options
|
|
21
|
+
validate_options
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.included(klass)
|
|
25
|
+
Tasks.register(klass)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def install_tasks
|
|
29
|
+
raise NotImplementedError
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def validate_options
|
|
33
|
+
raise OptionError, "gemspec file path is required" unless options[:gemspec]
|
|
34
|
+
raise OptionError, "gemspec file '#{options[:gemspec]}' is not found" unless File.exists?(options[:gemspec])
|
|
35
|
+
|
|
36
|
+
required_options.map(&:to_sym).each do |opt|
|
|
37
|
+
raise OptionError, "#{opt} is required" unless options[opt]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def logger
|
|
42
|
+
::Logger.new(STDERR)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def gemspec_path
|
|
46
|
+
Pathname.new(File.expand_path(options[:gemspec]))
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def root_dir
|
|
50
|
+
gemspec_path.dirname
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def gemfiles_dir
|
|
54
|
+
root_dir.join("gemfiles")
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def required_options
|
|
58
|
+
[] # Implement this in subclass if needed
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def embulk_tags
|
|
62
|
+
@embulk_tags ||= JSON.parse(open("https://api.github.com/repos/embulk/embulk/tags").read)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def embulk_versions
|
|
66
|
+
embulk_tags.map{|tag| Gem::Version.new(tag["name"][/v(.*)/, 1])}.sort
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
require "gem_release_helper/tasks/common"
|
|
2
|
+
|
|
3
|
+
module GemReleaseHelper
|
|
4
|
+
module Tasks
|
|
5
|
+
module Generator
|
|
6
|
+
class Changelog
|
|
7
|
+
include Tasks::Common
|
|
8
|
+
|
|
9
|
+
DEFAULT_CHANGELOG_TEMPLATE = "changelog.erb".freeze
|
|
10
|
+
|
|
11
|
+
def install_tasks
|
|
12
|
+
namespace :generate do
|
|
13
|
+
desc "Generate chengelog then bump version"
|
|
14
|
+
task :prepare_release => [:changelog, :bump_version]
|
|
15
|
+
|
|
16
|
+
desc "Generate CHANGELOG.md from previous release"
|
|
17
|
+
task :changelog do
|
|
18
|
+
changelog
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
desc "Bump version. UP=major to do major version up, UP=minor, UP=patch(default) so on."
|
|
22
|
+
task :bump_version do
|
|
23
|
+
bump_version
|
|
24
|
+
update_gemfile_lock
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def changelog
|
|
30
|
+
content = new_changelog
|
|
31
|
+
File.open(changelog_path, "w") do |f|
|
|
32
|
+
f.write content
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def bump_version
|
|
37
|
+
logger.info "Version bump '#{current_version}' to '#{next_version}'"
|
|
38
|
+
old_content = gemspec_path.read
|
|
39
|
+
new_content = old_content.gsub(/(spec\.version += *)".*?"/, %Q!\\1"#{next_version}"!)
|
|
40
|
+
File.open(gemspec_path, "w") do |f|
|
|
41
|
+
f.write new_content
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def required_options
|
|
48
|
+
%w(github_name)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def current_version
|
|
52
|
+
ENV["CURRENT_VER"] || Gem::Version.new(gemspec_path.read[/spec\.version += *"([0-9]+\.[0-9]+\.[0-9]+)"/, 1])
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def next_version
|
|
56
|
+
return ENV["NEXT_VER"] if ENV["NEXT_VER"]
|
|
57
|
+
major, minor, patch = current_version.segments
|
|
58
|
+
ver = case version_target
|
|
59
|
+
when "patch"
|
|
60
|
+
[major, minor, patch + 1].join(".")
|
|
61
|
+
when "minor"
|
|
62
|
+
[major, minor + 1, 0].join(".")
|
|
63
|
+
when "major"
|
|
64
|
+
[major + 1, 0, 0].join(".")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
Gem::Version.new(ver)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def version_target
|
|
71
|
+
ENV["UP"] || options[:version_target] || "patch"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def update_gemfile_lock
|
|
75
|
+
system("bundle install")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def github_name
|
|
79
|
+
options[:github_name]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def pull_request_numbers
|
|
83
|
+
sync_git_repo
|
|
84
|
+
`git log v#{current_version}..origin/master --oneline`.scan(/#[0-9]+/).map do |num_with_hash|
|
|
85
|
+
num_with_hash[/[0-9]+/]
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def pull_request_info(number)
|
|
90
|
+
body = open("https://api.github.com/repos/#{github_name}/issues/#{number}").read
|
|
91
|
+
JSON.parse(body)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def changes
|
|
95
|
+
pull_request_numbers.map do |number|
|
|
96
|
+
payload = pull_request_info(number)
|
|
97
|
+
"* [] #{payload["title"]} [##{number}](https://github.com/#{github_name}/pull/#{number})"
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def new_changelog
|
|
102
|
+
<<-HEADER
|
|
103
|
+
## #{next_version} - #{Time.now.strftime("%Y-%m-%d")}
|
|
104
|
+
#{changes.join("\n")}
|
|
105
|
+
|
|
106
|
+
#{changelog_path.read.chomp}
|
|
107
|
+
HEADER
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def sync_git_repo
|
|
111
|
+
system('git fetch --all')
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def changelog_path
|
|
115
|
+
root_dir.join("CHANGELOG.md")
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
require "gem_release_helper/tasks/common"
|
|
2
|
+
|
|
3
|
+
module GemReleaseHelper
|
|
4
|
+
module Tasks
|
|
5
|
+
module Generator
|
|
6
|
+
class Gemfiles
|
|
7
|
+
include Tasks::Common
|
|
8
|
+
|
|
9
|
+
DEFAULT_EMBULK_GEMFILE_TEMPLATE = "gemfiles/template.erb".freeze
|
|
10
|
+
|
|
11
|
+
def install_tasks
|
|
12
|
+
namespace :generate do
|
|
13
|
+
desc "Generate gemfiles to test this plugin with released Embulk versions (since MIN_VERSION)"
|
|
14
|
+
task :gemfiles do
|
|
15
|
+
gemfiles
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def gemfiles
|
|
21
|
+
logger.info "Generate Embulk gemfiles from '#{min_version}' to latest"
|
|
22
|
+
init
|
|
23
|
+
create_gemfiles
|
|
24
|
+
logger.info "Updated Gemfiles '#{min_version}' to '#{embulk_versions.max}'"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def init
|
|
30
|
+
FileUtils.mkdir_p File.dirname(gemfile_template_path)
|
|
31
|
+
unless File.exists?(gemfile_template_path)
|
|
32
|
+
logger.info "Generate gemfiles template file (#{gemfile_template_path})"
|
|
33
|
+
File.open(gemfile_template_path, "w") do |f|
|
|
34
|
+
f.write initial_template
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def initial_template
|
|
40
|
+
<<-ERB
|
|
41
|
+
source 'https://rubygems.org/'
|
|
42
|
+
gemspec :path => '#{gemspec_path.dirname.relative_path_from(gemfiles_dir)}/'
|
|
43
|
+
|
|
44
|
+
gem "embulk", "<%= version %>"
|
|
45
|
+
ERB
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def create_gemfiles
|
|
49
|
+
FileUtils.mkdir_p(gemfiles_dir)
|
|
50
|
+
|
|
51
|
+
Dir[gemfiles_dir.join("embulk-*")].each{|f| File.unlink(f)}
|
|
52
|
+
|
|
53
|
+
target_versions.each do |version|
|
|
54
|
+
create_gemfile(version)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# e.g. embulk-0.6-latest
|
|
58
|
+
target_versions_without_patch.each do |version|
|
|
59
|
+
create_gemfile("~> #{version}", "#{version}-latest")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# embulk-latest
|
|
63
|
+
create_gemfile("> #{min_version}", "latest")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def create_gemfile(version, name = nil)
|
|
67
|
+
erb = ERB.new(gemfile_template_path.read)
|
|
68
|
+
File.open(gemfiles_dir.join("embulk-#{name || version}"), "w") do |f|
|
|
69
|
+
f.write erb.result(binding())
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def min_version
|
|
74
|
+
Gem::Version.new(ENV["MIN_VERSION"] || options[:min_version] || "0.0.1")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def gemfile_template_path
|
|
78
|
+
root_dir.join(options[:gemfile_template] || DEFAULT_EMBULK_GEMFILE_TEMPLATE)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def target_versions
|
|
82
|
+
embulk_versions.find_all do |version|
|
|
83
|
+
version >= min_version
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def target_versions_without_patch
|
|
88
|
+
target_versions.map do |version|
|
|
89
|
+
major, minor, _ = version.segments
|
|
90
|
+
Gem::Version.new([major, minor, 0].join(".")) # NOTE: "~> 0.1.0" -> 0.1.x (< 0.2) / "~> 0.1" -> 0.x (< 1.0)
|
|
91
|
+
end.uniq
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
module GemReleaseHelper
|
|
2
|
+
module Tasks
|
|
3
|
+
module Generator
|
|
4
|
+
class TestChangelog < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
FileUtils.touch(gemspec_path)
|
|
7
|
+
|
|
8
|
+
@task = Changelog.new(options)
|
|
9
|
+
mute_logger(@task)
|
|
10
|
+
|
|
11
|
+
File.open(gemspec_path, "w") do |f|
|
|
12
|
+
f.write <<-SPEC
|
|
13
|
+
spec.version = "0.1.2"
|
|
14
|
+
SPEC
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_task_installed
|
|
19
|
+
GemReleaseHelper::Tasks.install(options)
|
|
20
|
+
tasks = Rake::Task.tasks.find_all do |task|
|
|
21
|
+
%w(generate:prepare_release generate:changelog generate:bump_version).include?(task.name)
|
|
22
|
+
end
|
|
23
|
+
assert_equal(3, tasks.length)
|
|
24
|
+
ensure
|
|
25
|
+
Rake::Task.clear
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class TestChangelog < self
|
|
29
|
+
def setup
|
|
30
|
+
super
|
|
31
|
+
stub(@task).sync_git_repo {}
|
|
32
|
+
File.open(changelog_path, "w") do |f|
|
|
33
|
+
f.write old_content
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_changelog_content
|
|
38
|
+
stub(@task).changes { [
|
|
39
|
+
"foo",
|
|
40
|
+
"bar",
|
|
41
|
+
]}
|
|
42
|
+
@task.changelog
|
|
43
|
+
|
|
44
|
+
new_content = changelog_path.read
|
|
45
|
+
assert new_content.include?(old_content)
|
|
46
|
+
assert new_content.include?("foo")
|
|
47
|
+
assert new_content.include?("bar")
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_task_installed
|
|
51
|
+
any_instance_of(Changelog) do |klass|
|
|
52
|
+
mock(klass).changelog
|
|
53
|
+
end
|
|
54
|
+
Tasks.install(options)
|
|
55
|
+
task = Rake::Task.tasks.find {|task| task.name == "generate:changelog"}
|
|
56
|
+
task.execute
|
|
57
|
+
ensure
|
|
58
|
+
Rake::Task.clear
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
private
|
|
62
|
+
|
|
63
|
+
def changelog_path
|
|
64
|
+
@task.root_dir.join("CHANGELOG.md")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def old_content
|
|
68
|
+
<<-TXT
|
|
69
|
+
## 0.0.1 - 1999-12-25
|
|
70
|
+
Merry Xmas!
|
|
71
|
+
TXT
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
class TestBumpVersion < self
|
|
76
|
+
def test_bump_version_task
|
|
77
|
+
any_instance_of(Changelog) do |klass|
|
|
78
|
+
mock(klass).bump_version
|
|
79
|
+
mock(klass).update_gemfile_lock
|
|
80
|
+
end
|
|
81
|
+
Tasks.install(options)
|
|
82
|
+
task = Rake::Task.tasks.find {|task| task.name == "generate:bump_version"}
|
|
83
|
+
task.execute
|
|
84
|
+
ensure
|
|
85
|
+
Rake::Task.clear
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_without_option
|
|
89
|
+
@task = Changelog.new(options)
|
|
90
|
+
mute_logger(@task)
|
|
91
|
+
|
|
92
|
+
@task.bump_version
|
|
93
|
+
|
|
94
|
+
assert_equal(<<-SPEC, gemspec_path.read)
|
|
95
|
+
spec.version = "0.1.3"
|
|
96
|
+
SPEC
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_with_patch
|
|
100
|
+
@task = Changelog.new(options.merge(version_target: "patch"))
|
|
101
|
+
mute_logger(@task)
|
|
102
|
+
|
|
103
|
+
@task.bump_version
|
|
104
|
+
|
|
105
|
+
assert_equal(<<-SPEC, gemspec_path.read)
|
|
106
|
+
spec.version = "0.1.3"
|
|
107
|
+
SPEC
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def test_with_minor
|
|
111
|
+
@task = Changelog.new(options.merge(version_target: "minor"))
|
|
112
|
+
mute_logger(@task)
|
|
113
|
+
|
|
114
|
+
@task.bump_version
|
|
115
|
+
|
|
116
|
+
assert_equal(<<-SPEC, gemspec_path.read)
|
|
117
|
+
spec.version = "0.2.0"
|
|
118
|
+
SPEC
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_with_major
|
|
122
|
+
@task = Changelog.new(options.merge(version_target: "major"))
|
|
123
|
+
mute_logger(@task)
|
|
124
|
+
|
|
125
|
+
@task.bump_version
|
|
126
|
+
|
|
127
|
+
assert_equal(<<-SPEC, gemspec_path.read)
|
|
128
|
+
spec.version = "1.0.0"
|
|
129
|
+
SPEC
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
private
|
|
134
|
+
|
|
135
|
+
def gemspec_path
|
|
136
|
+
Pathname.new("/tmp/changelog.gemspec")
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def options
|
|
140
|
+
{
|
|
141
|
+
gemspec: gemspec_path.to_s,
|
|
142
|
+
github_name: "uu59/gem_release_helper",
|
|
143
|
+
}
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def mute_logger(task)
|
|
147
|
+
stub(task).logger { ::Logger.new(File::NULL) }
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
module GemReleaseHelper
|
|
2
|
+
module Tasks
|
|
3
|
+
module Generator
|
|
4
|
+
class TestGemfiles < Test::Unit::TestCase
|
|
5
|
+
def setup
|
|
6
|
+
FileUtils.touch(gemspec)
|
|
7
|
+
|
|
8
|
+
@task = Gemfiles.new(options)
|
|
9
|
+
mute_logger(@task)
|
|
10
|
+
template = Pathname.new("/tmp/gem.erb")
|
|
11
|
+
stub(@task).gemfile_template_path { template }
|
|
12
|
+
File.open(template, "w") do |f|
|
|
13
|
+
f.write <<-ERB
|
|
14
|
+
gem "embulk", "<%= version %>"
|
|
15
|
+
ERB
|
|
16
|
+
end
|
|
17
|
+
stub(@task).embulk_versions { embulk_versions }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class TestMinVersion < self
|
|
21
|
+
def test_without_specified
|
|
22
|
+
@task.gemfiles
|
|
23
|
+
files = Dir["#{@task.root_dir}/gemfiles/embulk-*"]
|
|
24
|
+
|
|
25
|
+
# all versions + minor versions + latest version
|
|
26
|
+
assert_equal(embulk_versions.length + minor_versions.length + 1, files.length)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_0_1_1_with_env
|
|
30
|
+
ENV["MIN_VERSION"] = "0.1.1"
|
|
31
|
+
@task.gemfiles
|
|
32
|
+
files = Dir["#{@task.root_dir}/gemfiles/embulk-*"]
|
|
33
|
+
|
|
34
|
+
# 0.1.1 + 0.1.2 + 0.1-latest + 0.2.0 + 0.2-latest + latest version
|
|
35
|
+
assert_equal(6, files.length)
|
|
36
|
+
ensure
|
|
37
|
+
ENV.delete("MIN_VERSION")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_0_1_1_with_options
|
|
41
|
+
stub(@task).options { options.merge(min_version: "0.1.1") }
|
|
42
|
+
|
|
43
|
+
@task.gemfiles
|
|
44
|
+
files = Dir["#{@task.root_dir}/gemfiles/embulk-*"]
|
|
45
|
+
|
|
46
|
+
# 0.1.1 + 0.1.2 + 0.1-latest + 0.2.0 + 0.2-latest + latest version
|
|
47
|
+
assert_equal(6, files.length)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def minor_versions
|
|
51
|
+
@task.send(:target_versions_without_patch)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
class TestContent < self
|
|
56
|
+
def test_content_latest
|
|
57
|
+
@task.gemfiles
|
|
58
|
+
content = @task.root_dir.join("gemfiles/embulk-latest").read
|
|
59
|
+
assert_equal(<<-TXT, content)
|
|
60
|
+
gem "embulk", "> 0.0.1"
|
|
61
|
+
TXT
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_content_0_1_2
|
|
65
|
+
@task.gemfiles
|
|
66
|
+
content = @task.root_dir.join("gemfiles/embulk-0.1.2").read
|
|
67
|
+
assert_equal(<<-TXT, content)
|
|
68
|
+
gem "embulk", "0.1.2"
|
|
69
|
+
TXT
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
class TestInitialContent < self
|
|
74
|
+
def setup
|
|
75
|
+
FileUtils.mkdir_p root
|
|
76
|
+
FileUtils.touch gemspec_path
|
|
77
|
+
|
|
78
|
+
task = Gemfiles.new(options.merge({
|
|
79
|
+
github_name: "dummy/dummy",
|
|
80
|
+
gemspec: gemspec_path,
|
|
81
|
+
gemfile_template_path: gemfile_template_path,
|
|
82
|
+
}))
|
|
83
|
+
mute_logger(task)
|
|
84
|
+
task.send(:init)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def teardown
|
|
88
|
+
FileUtils.rm_rf root
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_relative_path
|
|
92
|
+
content = File.read(gemfile_template_path)
|
|
93
|
+
assert content.include?("path => '../'") # the gemspec path from each gemfiles/* as relative
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_embulk_version_contain
|
|
97
|
+
content = File.read(gemfile_template_path)
|
|
98
|
+
assert content.include?(%Q|gem "embulk", "<%= version %>"|)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
def gemfile_template_path
|
|
104
|
+
root.join("gemfiles/template.erb")
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def root
|
|
108
|
+
Pathname.new("/tmp/foo")
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def gemspec_path
|
|
112
|
+
root.join("bar.spec")
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_task_installed
|
|
117
|
+
GemReleaseHelper::Tasks.install(options)
|
|
118
|
+
gemfiles_task = Rake::Task.tasks.find do |task|
|
|
119
|
+
task.name == "generate:gemfiles"
|
|
120
|
+
end
|
|
121
|
+
assert gemfiles_task
|
|
122
|
+
ensure
|
|
123
|
+
Rake::Task.clear
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def test_gemfiles_create
|
|
127
|
+
@task.gemfiles
|
|
128
|
+
files = Dir["#{@task.root_dir}/gemfiles/embulk-*"]
|
|
129
|
+
|
|
130
|
+
assert_false(files.empty?)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
private
|
|
134
|
+
|
|
135
|
+
def gemspec
|
|
136
|
+
"/tmp/foo.gemspec"
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def embulk_versions
|
|
140
|
+
%W(0.1.0 0.1.1 0.1.2 0.2.0).map{|v| Gem::Version.new(v)}
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
def options
|
|
144
|
+
{
|
|
145
|
+
gemspec: gemspec,
|
|
146
|
+
github_name: "uu59/gem_release_helper",
|
|
147
|
+
}
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def mute_logger(task)
|
|
151
|
+
stub(task).logger { ::Logger.new(File::NULL) }
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
data/test/run-test.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
|
4
|
+
lib_dir = File.join(base_dir, "lib")
|
|
5
|
+
test_dir = File.join(base_dir, "test")
|
|
6
|
+
|
|
7
|
+
require "test-unit"
|
|
8
|
+
require "test/unit/rr"
|
|
9
|
+
require "codeclimate-test-reporter"
|
|
10
|
+
require "pry"
|
|
11
|
+
|
|
12
|
+
$LOAD_PATH.unshift(lib_dir)
|
|
13
|
+
$LOAD_PATH.unshift(test_dir)
|
|
14
|
+
|
|
15
|
+
ENV["TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"] ||= "5000"
|
|
16
|
+
|
|
17
|
+
CodeClimate::TestReporter.start
|
|
18
|
+
|
|
19
|
+
require "gem_release_helper/tasks"
|
|
20
|
+
|
|
21
|
+
exit Test::Unit::AutoRunner.run(true, test_dir)
|
metadata
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: gem_release_helper
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- yoshihara
|
|
8
|
+
- uu59
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2016-07-13 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: bundler
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - "~>"
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '1.7'
|
|
21
|
+
type: :development
|
|
22
|
+
prerelease: false
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - "~>"
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: '1.7'
|
|
28
|
+
- !ruby/object:Gem::Dependency
|
|
29
|
+
name: rake
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
- - "~>"
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '10.0'
|
|
35
|
+
type: :development
|
|
36
|
+
prerelease: false
|
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - "~>"
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '10.0'
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: test-unit
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - ">="
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '0'
|
|
49
|
+
type: :development
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: test-unit-rr
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - ">="
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '0'
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - ">="
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
70
|
+
- !ruby/object:Gem::Dependency
|
|
71
|
+
name: pry
|
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - ">="
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '0'
|
|
77
|
+
type: :development
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: '0'
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: codeclimate-test-reporter
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - ">="
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '0'
|
|
91
|
+
type: :development
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - ">="
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '0'
|
|
98
|
+
description: Add some handy helpers for developing Embulk plugins
|
|
99
|
+
email:
|
|
100
|
+
- h.yoshihara@everyleaf.com
|
|
101
|
+
- k@uu59.org
|
|
102
|
+
executables: []
|
|
103
|
+
extensions: []
|
|
104
|
+
extra_rdoc_files: []
|
|
105
|
+
files:
|
|
106
|
+
- ".travis.yml"
|
|
107
|
+
- CHANGELOG.md
|
|
108
|
+
- Gemfile
|
|
109
|
+
- Gemfile.lock
|
|
110
|
+
- LICENSE.txt
|
|
111
|
+
- README.md
|
|
112
|
+
- Rakefile
|
|
113
|
+
- Rakefile.test
|
|
114
|
+
- gem_release_helper.gemspec
|
|
115
|
+
- lib/gem_release_helper.rb
|
|
116
|
+
- lib/gem_release_helper/tasks.rb
|
|
117
|
+
- lib/gem_release_helper/tasks/common.rb
|
|
118
|
+
- lib/gem_release_helper/tasks/generator.rb
|
|
119
|
+
- lib/gem_release_helper/tasks/generator/changelog.rb
|
|
120
|
+
- lib/gem_release_helper/tasks/generator/gemfile.rb
|
|
121
|
+
- lib/gem_release_helper/version.rb
|
|
122
|
+
- test/gem_release_helper/tasks/generator/test_changelog.rb
|
|
123
|
+
- test/gem_release_helper/tasks/generator/test_gemfiles.rb
|
|
124
|
+
- test/run-test.rb
|
|
125
|
+
homepage: https://github.com/uu59/gem_release_helper
|
|
126
|
+
licenses:
|
|
127
|
+
- MIT
|
|
128
|
+
metadata: {}
|
|
129
|
+
post_install_message:
|
|
130
|
+
rdoc_options: []
|
|
131
|
+
require_paths:
|
|
132
|
+
- lib
|
|
133
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: '0'
|
|
138
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
|
+
requirements:
|
|
140
|
+
- - ">="
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: '0'
|
|
143
|
+
requirements: []
|
|
144
|
+
rubyforge_project:
|
|
145
|
+
rubygems_version: 2.5.1
|
|
146
|
+
signing_key:
|
|
147
|
+
specification_version: 4
|
|
148
|
+
summary: Add some handy helpers for developing Embulk plugins
|
|
149
|
+
test_files:
|
|
150
|
+
- test/gem_release_helper/tasks/generator/test_changelog.rb
|
|
151
|
+
- test/gem_release_helper/tasks/generator/test_gemfiles.rb
|
|
152
|
+
- test/run-test.rb
|