gem_toys 0.7.0 → 0.10.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 +4 -4
- data/CHANGELOG.md +31 -1
- data/README.md +3 -3
- data/lib/gem_toys/template/common_code.rb +11 -3
- data/lib/gem_toys/template/release/changelog.rb +3 -3
- data/lib/gem_toys/template/release.rb +25 -5
- data/lib/gem_toys/template/versions.rb +3 -1
- data/lib/gem_toys/template.rb +1 -1
- data/lib/gem_toys/version.rb +1 -1
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be3b572d39236cf68b7d1c1a56e4a68792176a594047af91302799954898dab3
|
4
|
+
data.tar.gz: 2073632a59bb127935d67114d0f7753db0c12606a30f67db6fe704b70bba06a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c11e21b77d865010227986b4b96d5b3291cc447edff5f7df60e6572c2e2e96cb83b983c718d7c1b00b4ad328c3a921da9dba2fc23f7ad6a1d5b02e9da7ca6c16
|
7
|
+
data.tar.gz: 7f9a2d20007c1d2d4a097de4f378eceb19401254e16583cbd2b46fdab50777d5972b62efd9026cde51f3c171574cdd134f14adf6c5ee346259d515f6235dbc25
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,39 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
##
|
3
|
+
## Unreleased
|
4
|
+
|
5
|
+
## 0.10.0 (2021-10-15)
|
6
|
+
|
7
|
+
* Process cases with non-JSON String from RubyGems.org.
|
8
|
+
* Update development dependencies.
|
9
|
+
* Resolve new offenses from RuboCop.
|
10
|
+
* Change default for unreleased in Changelog.
|
11
|
+
|
12
|
+
## 0.9.0 (2021-08-26)
|
13
|
+
|
14
|
+
* Fix built gem version after `refresh` answer.
|
15
|
+
* Update development dependencies.
|
16
|
+
* Lock RuboCop version better.
|
17
|
+
* Resolve new RuboCop offenses.
|
18
|
+
|
19
|
+
## 0.8.0 (2021-04-16)
|
20
|
+
|
21
|
+
* Add `refresh` answer for release confirmation.
|
22
|
+
|
23
|
+
## 0.7.1 (2021-03-04)
|
24
|
+
|
25
|
+
* Fix error about non-renamed `version` in one of aborts.
|
26
|
+
* Improve Regexp for date of existing release.
|
27
|
+
Catch only content inside the last parentheses.
|
4
28
|
|
5
29
|
## 0.7.0 (2021-03-04)
|
6
30
|
|
31
|
+
* Add `:changelog_file_name` option.
|
32
|
+
* Add `:version_tag_prefix` option.
|
33
|
+
* Change date format for `versions` tool.
|
34
|
+
* Add documentation about `:version_file_path` option.
|
35
|
+
* Split `release` tool into modules for RuboCop satisfaction.
|
36
|
+
|
7
37
|
## 0.6.1 (2021-02-10)
|
8
38
|
|
9
39
|
* Gently abort when `unreleased_title` not found.
|
data/README.md
CHANGED
@@ -38,8 +38,8 @@ require 'gem_toys'
|
|
38
38
|
expand GemToys::Template,
|
39
39
|
## default is `CHANGELOG.md`
|
40
40
|
changelog_file_name: 'ChangeLog.md',
|
41
|
-
## default is `##
|
42
|
-
unreleased_title: '##
|
41
|
+
## default is `## Unreleased`
|
42
|
+
unreleased_title: '## main (unreleased)',
|
43
43
|
## default is `"lib/#{project_name_with_slashes_instead_dashes}/version.rb"`
|
44
44
|
version_file_path: 'lib/my-awesome_gem.rb',
|
45
45
|
## default is `v`, so tags are like `v4.1.0`
|
@@ -63,7 +63,7 @@ alias_tool :g, :gem
|
|
63
63
|
|
64
64
|
1. Update `lib/*gem_name*/version.rb` file.
|
65
65
|
Can be refined with `:version_file_path` option on `expand`.
|
66
|
-
2. Insert Markdown title with changes from `##
|
66
|
+
2. Insert Markdown title with changes from `## Unreleased` in a `CHANGELOG.md` file.
|
67
67
|
Can be refined with `:unreleased_title` option on `expand`.
|
68
68
|
3. [Builds](#build) a gem.
|
69
69
|
4. Ask you for manual check, if you want (print anything of OK).
|
@@ -51,13 +51,21 @@ module GemToys
|
|
51
51
|
require 'faraday'
|
52
52
|
require 'faraday_middleware'
|
53
53
|
|
54
|
-
Faraday.new 'https://rubygems.org/api/v1' do |
|
55
|
-
|
54
|
+
Faraday.new 'https://rubygems.org/api/v1' do |connection|
|
55
|
+
connection.response :json,
|
56
|
+
content_type: /\bjson$/,
|
57
|
+
parser_options: { symbolize_names: true }
|
56
58
|
end
|
57
59
|
end
|
58
60
|
|
59
61
|
memoize def rubygems_versions
|
60
|
-
rubygems_connection.get("versions/#{project_name}.json").body
|
62
|
+
response = rubygems_connection.get("versions/#{project_name}.json").body
|
63
|
+
|
64
|
+
return response if response.is_a?(Array)
|
65
|
+
|
66
|
+
return [] if response == 'This rubygem could not be found.'
|
67
|
+
|
68
|
+
raise "Unexpected response from RubyGems.org: #{response.inspect}"
|
61
69
|
end
|
62
70
|
|
63
71
|
def current_version_hash
|
@@ -15,9 +15,9 @@ module GemToys
|
|
15
15
|
existing_line = @changelog_lines.find { |line| line.start_with? "## #{@new_version} " }
|
16
16
|
|
17
17
|
if existing_line
|
18
|
-
return if (existing_date = existing_line.
|
18
|
+
return if (existing_date = existing_line.scan(/\(([^()]+)\)/).last.first) == @today
|
19
19
|
|
20
|
-
abort "There is already #{
|
20
|
+
abort "There is already #{new_version} version with date #{existing_date}"
|
21
21
|
end
|
22
22
|
|
23
23
|
File.write changelog_file_path, new_changelog_content
|
@@ -32,7 +32,7 @@ module GemToys
|
|
32
32
|
|
33
33
|
@changelog_lines.insert(
|
34
34
|
unreleased_title_index + 2,
|
35
|
-
'#' * unreleased_title.scan(/^#+/).first.size + " #{@new_version} (#{@today})\n\n"
|
35
|
+
('#' * unreleased_title.scan(/^#+/).first.size) + " #{@new_version} (#{@today})\n\n"
|
36
36
|
).join
|
37
37
|
end
|
38
38
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'highline'
|
4
|
+
|
3
5
|
require_relative 'release/changelog'
|
4
6
|
require_relative 'release/git'
|
5
7
|
|
@@ -44,11 +46,11 @@ module GemToys
|
|
44
46
|
## Update CHANGELOG
|
45
47
|
update_changelog_file
|
46
48
|
|
49
|
+
wait_for_manual_check
|
50
|
+
|
47
51
|
## Build new gem file
|
48
52
|
exec_tool 'gem build'
|
49
53
|
|
50
|
-
wait_for_manual_check
|
51
|
-
|
52
54
|
## Commit, tag, push
|
53
55
|
process_git
|
54
56
|
|
@@ -100,12 +102,30 @@ module GemToys
|
|
100
102
|
end
|
101
103
|
|
102
104
|
def wait_for_manual_check
|
105
|
+
print_files_diff
|
106
|
+
|
107
|
+
manual_check_menu
|
108
|
+
end
|
109
|
+
|
110
|
+
def print_files_diff
|
103
111
|
$stdout.puts
|
104
112
|
sh "git diff #{version_file_path} #{changelog_file_path}"
|
105
113
|
$stdout.puts
|
106
|
-
|
107
|
-
|
108
|
-
|
114
|
+
end
|
115
|
+
|
116
|
+
def manual_check_menu
|
117
|
+
HighLine.new.choose do |menu|
|
118
|
+
menu.layout = :one_line
|
119
|
+
|
120
|
+
menu.prompt = 'Are these changes correct? '
|
121
|
+
|
122
|
+
menu.choice(:yes)
|
123
|
+
menu.choice(:no) { abort }
|
124
|
+
menu.choice(:refresh) do
|
125
|
+
handle_new_version
|
126
|
+
wait_for_manual_check
|
127
|
+
end
|
128
|
+
end
|
109
129
|
end
|
110
130
|
end
|
111
131
|
end
|
@@ -19,7 +19,9 @@ module GemToys
|
|
19
19
|
|
20
20
|
versions = rubygems_versions
|
21
21
|
|
22
|
-
versions.
|
22
|
+
if versions.empty? || current_version != versions.first[:number]
|
23
|
+
versions.unshift current_version_hash
|
24
|
+
end
|
23
25
|
|
24
26
|
puts_versions versions
|
25
27
|
end
|
data/lib/gem_toys/template.rb
CHANGED
@@ -15,7 +15,7 @@ module GemToys
|
|
15
15
|
changelog_file_name: 'CHANGELOG.md',
|
16
16
|
version_file_path: nil,
|
17
17
|
version_tag_prefix: 'v',
|
18
|
-
unreleased_title: '##
|
18
|
+
unreleased_title: '## Unreleased'
|
19
19
|
)
|
20
20
|
@changelog_file_name = changelog_file_name
|
21
21
|
@version_file_path = version_file_path
|
data/lib/gem_toys/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_toys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Popov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: alt_memery
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: highline
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: pry-byebug
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,28 +100,28 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
103
|
+
version: 0.12.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
110
|
+
version: 0.12.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: codecov
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
117
|
+
version: 0.6.0
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
124
|
+
version: 0.6.0
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +156,14 @@ dependencies:
|
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: 1.21.0
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 1.21.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: rubocop-performance
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
237
|
- !ruby/object:Gem::Version
|
224
238
|
version: '0'
|
225
239
|
requirements: []
|
226
|
-
rubygems_version: 3.2.
|
240
|
+
rubygems_version: 3.2.22
|
227
241
|
signing_key:
|
228
242
|
specification_version: 4
|
229
243
|
summary: Toys template for gems
|