hiiro 0.1.313 → 0.1.315
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 +10 -2
- data/exe/h +4 -4
- data/lib/hiiro/version.rb +1 -1
- data/sa +1 -0
- data/script/available +48 -0
- data/script/publish +194 -158
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7a1893f514eefa2df7e5fc6730f984468b57fd94e732a7b70e131476f613fc6f
|
|
4
|
+
data.tar.gz: ad813ddfe3c1b575967610f9df94a70351e6a7273b31ee02e5a98e253ff4a23d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 661dd8c86142d82fb38343c38b8a92f54a4a21e32ab6ed4c45b59543bfafbf3180510e8b25f6900a3360b8b1474e8b4e55783c1dbb586b28a1944e5842c05493
|
|
7
|
+
data.tar.gz: 522f493875610863168d00a7b5b2afa1797314f9222f022a98b7719903ad63757e8de806b57dc361f5ed03f883f1cbb0b0c2e6a616165fed85b88796f71553aa
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
```markdown
|
|
2
1
|
# Changelog
|
|
3
2
|
|
|
3
|
+
## [0.1.315] - 2026-04-01
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Remove redundant `exit 0` statement from publish script
|
|
7
|
+
|
|
8
|
+
## [0.1.314] - 2026-04-01
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Rename `Gem` class to `RubyGem` in publish script to avoid conflict with Ruby stdlib
|
|
12
|
+
|
|
4
13
|
## [0.1.313] - 2026-04-01
|
|
5
14
|
|
|
6
15
|
### Fixed
|
|
@@ -195,4 +204,3 @@
|
|
|
195
204
|
|
|
196
205
|
### Changed
|
|
197
206
|
- Filter logic changes for PR management
|
|
198
|
-
```
|
data/exe/h
CHANGED
|
@@ -225,7 +225,7 @@ Hiiro.run(*ARGV, cwd: Dir.pwd, tasks: true) do
|
|
|
225
225
|
end
|
|
226
226
|
|
|
227
227
|
unless found
|
|
228
|
-
system('
|
|
228
|
+
system('terminal-notifier', '-title', 'hiiro publish', '-message', 'Timed out waiting for RubyGems')
|
|
229
229
|
exit 1
|
|
230
230
|
end
|
|
231
231
|
|
|
@@ -239,11 +239,11 @@ Hiiro.run(*ARGV, cwd: Dir.pwd, tasks: true) do
|
|
|
239
239
|
output.match?(/hiiro \\([^)]*#{Regexp.escape(expected)}/)
|
|
240
240
|
end
|
|
241
241
|
if mismatched.empty?
|
|
242
|
-
system('
|
|
242
|
+
system('terminal-notifier', '-title', 'hiiro updated', '-message', "v\#{expected} installed across all rbenv versions")
|
|
243
243
|
elsif mismatched.size == versions.size
|
|
244
|
-
system('
|
|
244
|
+
system('terminal-notifier', '-title', 'hiiro update failed', '-message', "v\#{expected} not installed in any rbenv version")
|
|
245
245
|
else
|
|
246
|
-
system('
|
|
246
|
+
system('terminal-notifier', '-title', 'hiiro updated', '-message', "v\#{expected} installed — \#{mismatched.size} version\#{mismatched.size == 1 ? '' : 's'} skipped")
|
|
247
247
|
end
|
|
248
248
|
RUBY
|
|
249
249
|
|
data/lib/hiiro/version.rb
CHANGED
data/script/available
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require "net/http"
|
|
4
|
+
require "json"
|
|
5
|
+
require "pry"
|
|
6
|
+
|
|
7
|
+
# ─── RubyGems API ────────────────────────────────────────────────────────────
|
|
8
|
+
|
|
9
|
+
class RubyGems
|
|
10
|
+
def self.published_versions(gem_name)
|
|
11
|
+
uri = URI("https://rubygems.org/api/v1/versions/#{gem_name}.json")
|
|
12
|
+
json_version = JSON.parse(Net::HTTP.get(uri)).map { |v| v["number"] }
|
|
13
|
+
rescue => e
|
|
14
|
+
puts "Warning: could not fetch versions from RubyGems (#{e.message}), falling back to local"
|
|
15
|
+
require "hiiro"
|
|
16
|
+
[Hiiro::VERSION]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.wait_for(gem_name, version, max_attempts: 40)
|
|
20
|
+
attempts = 0
|
|
21
|
+
loop do
|
|
22
|
+
sleep(attempts == 0 ? 5 : 15)
|
|
23
|
+
attempts += 1
|
|
24
|
+
versions = published_versions(gem_name)
|
|
25
|
+
return true if versions.include?(version)
|
|
26
|
+
puts "Waiting for v#{version} on RubyGems (attempt #{attempts}/#{max_attempts})..."
|
|
27
|
+
return false if attempts >= max_attempts
|
|
28
|
+
end
|
|
29
|
+
rescue => e
|
|
30
|
+
puts "RubyGems poll error: #{e.message}"
|
|
31
|
+
false
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class HiiroSetup
|
|
36
|
+
def self.latest_version1 = RubyGems.published_versions('hiiro').first
|
|
37
|
+
def self.latest_version2 = `gem search -r hiiro`.lines.map(&:strip).select{|ln| ln.match?(/\d\.\d/) }.first[/\d+\.\d+[^)]+/]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
json_version = HiiroSetup.latest_version1
|
|
41
|
+
cli_version = HiiroSetup.latest_version2
|
|
42
|
+
|
|
43
|
+
puts
|
|
44
|
+
puts(json_version:,cli_version:)
|
|
45
|
+
puts
|
|
46
|
+
|
|
47
|
+
puts 'done'
|
|
48
|
+
|
data/script/publish
CHANGED
|
@@ -3,202 +3,238 @@
|
|
|
3
3
|
require "net/http"
|
|
4
4
|
require "json"
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
pre_release = ARGV.include?('-t') || `git branch --show-current`.strip != 'main'
|
|
8
|
-
|
|
9
|
-
# Check for uncommitted changes before we modify anything
|
|
10
|
-
has_pending_changes = !`git status --porcelain`.strip.empty?
|
|
11
|
-
|
|
12
|
-
# Ensure local branch is up to date with remote
|
|
13
|
-
system('git', 'fetch', 'origin')
|
|
14
|
-
behind = `git rev-list HEAD..origin/main --count`.strip.to_i
|
|
15
|
-
if behind > 0
|
|
16
|
-
puts "ERROR: Local branch is #{behind} commit(s) behind origin/main. Pull before publishing."
|
|
17
|
-
exit 1
|
|
18
|
-
end
|
|
6
|
+
# ─── RubyGems API ────────────────────────────────────────────────────────────
|
|
19
7
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
8
|
+
class RubyGems
|
|
9
|
+
def self.published_versions(gem_name)
|
|
10
|
+
uri = URI("https://rubygems.org/api/v1/versions/#{gem_name}.json")
|
|
11
|
+
JSON.parse(Net::HTTP.get(uri)).map { |v| v["number"] }
|
|
12
|
+
rescue => e
|
|
13
|
+
puts "Warning: could not fetch versions from RubyGems (#{e.message}), falling back to local"
|
|
14
|
+
require "hiiro"
|
|
15
|
+
[Hiiro::VERSION]
|
|
16
|
+
end
|
|
17
|
+
def self.cli_version = `gem search -r hiiro`.lines.map(&:strip).select{|ln| ln.match?(/\d\.\d/) }.first&.[](/(?:[(])\d[^)]+/)
|
|
18
|
+
|
|
19
|
+
def self.wait_for(gem_name, version, max_attempts: 40)
|
|
20
|
+
attempts = 0
|
|
21
|
+
loop do
|
|
22
|
+
sleep(attempts == 0 ? 5 : 15)
|
|
23
|
+
attempts += 1
|
|
24
|
+
versions = published_versions(gem_name)
|
|
25
|
+
return true if versions.include?(version) && cli_version && cli_version == version
|
|
26
|
+
puts "Waiting for v#{version} on RubyGems (attempt #{attempts}/#{max_attempts})..."
|
|
27
|
+
return false if attempts >= max_attempts
|
|
28
|
+
end
|
|
29
|
+
rescue => e
|
|
30
|
+
puts "RubyGems poll error: #{e.message}"
|
|
31
|
+
false
|
|
32
|
+
end
|
|
31
33
|
end
|
|
32
34
|
|
|
33
|
-
#
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
# ─── Version bumping ─────────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
class Version
|
|
38
|
+
attr_reader :major, :minor, :patch, :pre, :pre_num
|
|
39
|
+
|
|
40
|
+
def self.parse(str)
|
|
41
|
+
parts = str.split(".")
|
|
42
|
+
pre = parts.length >= 5 && parts[-2] == "pre"
|
|
43
|
+
new(parts[0].to_i, parts[1].to_i, parts[2].to_i, pre, pre ? parts[-1].to_i : 0)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def self.latest(versions)
|
|
47
|
+
versions.max_by { |v| parse(v).sort_key }
|
|
41
48
|
end
|
|
42
|
-
end
|
|
43
49
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
def self.bump(current_str, pre_release:)
|
|
51
|
+
v = parse(current_str)
|
|
52
|
+
if v.pre
|
|
53
|
+
pre_release ? "#{v.major}.#{v.minor}.#{v.patch}.pre.#{v.pre_num + 1}"
|
|
54
|
+
: "#{v.major}.#{v.minor}.#{v.patch}"
|
|
55
|
+
else
|
|
56
|
+
pre_release ? "#{v.major}.#{v.minor}.#{v.patch + 1}.pre.1"
|
|
57
|
+
: "#{v.major}.#{v.minor}.#{v.patch + 1}"
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def initialize(major, minor, patch, pre, pre_num)
|
|
62
|
+
@major, @minor, @patch, @pre, @pre_num = major, minor, patch, pre, pre_num
|
|
50
63
|
end
|
|
64
|
+
|
|
65
|
+
def sort_key = [major, minor, patch, pre ? 0 : 1, pre_num]
|
|
51
66
|
end
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
current = latest_version(versions)
|
|
55
|
-
puts "Latest published version: #{current}"
|
|
68
|
+
# ─── Git ─────────────────────────────────────────────────────────────────────
|
|
56
69
|
|
|
57
|
-
|
|
58
|
-
|
|
70
|
+
class Git
|
|
71
|
+
def self.current_branch = `git branch --show-current`.strip
|
|
72
|
+
def self.pending_changes? = !`git status --porcelain`.strip.empty?
|
|
73
|
+
def self.diff = `git diff HEAD`
|
|
74
|
+
def self.status = `git status --short`
|
|
59
75
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
# pre -> release: remove pre, keep same version number
|
|
68
|
-
new_version = [major, minor, patch].join(?.)
|
|
76
|
+
def self.ensure_up_to_date!
|
|
77
|
+
system("git", "fetch", "origin")
|
|
78
|
+
behind = `git rev-list HEAD..origin/main --count`.strip.to_i
|
|
79
|
+
if behind > 0
|
|
80
|
+
puts "ERROR: #{behind} commit(s) behind origin/main — pull before publishing."
|
|
81
|
+
exit 1
|
|
82
|
+
end
|
|
69
83
|
end
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
|
|
85
|
+
def self.commits_since_last_tag
|
|
86
|
+
last_tag = `git describe --tags --abbrev=0 2>/dev/null`.strip
|
|
87
|
+
last_tag.empty? ? `git log --oneline` : `git log #{last_tag}..HEAD --oneline`
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.stage_and_commit(files, message)
|
|
91
|
+
system("git", "reset", "HEAD")
|
|
92
|
+
files.each { |f| system("git", "add", "--", f) }
|
|
93
|
+
system("git", "commit", "-m", message)
|
|
94
|
+
puts " → #{message}"
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def self.commit_all(message)
|
|
98
|
+
system("git", "add", "--all")
|
|
99
|
+
system("git", "commit", "-m", message)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def self.tag(version)
|
|
103
|
+
system("git", "tag", "-a", "v#{version}", "-m", "v#{version}")
|
|
104
|
+
puts "Tagged v#{version}"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def self.push
|
|
108
|
+
if system("git", "push", "origin", "main", "--follow-tags")
|
|
109
|
+
puts "Pushed to origin/main"
|
|
110
|
+
else
|
|
111
|
+
branch = "publish-v#{version}"
|
|
112
|
+
system("git", "checkout", "-b", branch)
|
|
113
|
+
system("git", "push", "origin", branch, "--follow-tags") \
|
|
114
|
+
? puts("Push to main failed — pushed to origin/#{branch} instead")
|
|
115
|
+
: puts("ERROR: unable to push to origin")
|
|
116
|
+
system("git", "checkout", "main")
|
|
117
|
+
end
|
|
78
118
|
end
|
|
79
119
|
end
|
|
80
120
|
|
|
81
|
-
|
|
121
|
+
# ─── Claude AI calls ─────────────────────────────────────────────────────────
|
|
82
122
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
puts "Generating commit plan for pending changes..."
|
|
123
|
+
class Claude
|
|
124
|
+
MODEL = "claude-haiku-4-5-20251001"
|
|
86
125
|
|
|
87
|
-
|
|
88
|
-
status = `git status --short`
|
|
126
|
+
Result = Struct.new(:commits, :changelog)
|
|
89
127
|
|
|
90
|
-
|
|
91
|
-
|
|
128
|
+
# Single call: returns a Result with commit plan + updated changelog
|
|
129
|
+
def self.prepare_release(version:, diff:, status:, git_log:, existing_changelog:)
|
|
130
|
+
prompt = <<~PROMPT
|
|
131
|
+
You are preparing a release for the Ruby gem "hiiro" version #{version}.
|
|
132
|
+
Do two things and return them as a single JSON object — no explanation, no markdown fences.
|
|
92
133
|
|
|
93
|
-
|
|
94
|
-
|
|
134
|
+
## 1. Commit plan
|
|
135
|
+
Analyze the pending git changes below and group them into logical commits.
|
|
136
|
+
Use conventional commit format (feat:, fix:, chore:, refactor:, docs:, etc.).
|
|
137
|
+
Only include files that appear in the git status output.
|
|
95
138
|
|
|
96
|
-
|
|
97
|
-
|
|
139
|
+
git status:
|
|
140
|
+
#{status.strip}
|
|
98
141
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
{"message": "commit message", "files": ["path/to/file"]},
|
|
102
|
-
...
|
|
103
|
-
]
|
|
142
|
+
git diff:
|
|
143
|
+
#{diff.strip}
|
|
104
144
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
145
|
+
## 2. Changelog
|
|
146
|
+
Write a complete updated CHANGELOG.md. Add a new section for v#{version} at the top
|
|
147
|
+
with today's date. Group changes into Added, Changed, Fixed, Removed where appropriate.
|
|
148
|
+
Be concise.
|
|
108
149
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
io.close_write
|
|
112
|
-
io.read
|
|
113
|
-
}
|
|
150
|
+
Recent commits (for changelog context):
|
|
151
|
+
#{git_log.strip}
|
|
114
152
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
153
|
+
Existing CHANGELOG.md:
|
|
154
|
+
#{existing_changelog.empty? ? "(none)" : existing_changelog}
|
|
155
|
+
|
|
156
|
+
## Output format (JSON only, no extra text)
|
|
157
|
+
{
|
|
158
|
+
"commits": [
|
|
159
|
+
{"message": "commit message", "files": ["path/to/file"]},
|
|
160
|
+
...
|
|
161
|
+
],
|
|
162
|
+
"changelog": "full CHANGELOG.md content here"
|
|
163
|
+
}
|
|
164
|
+
PROMPT
|
|
165
|
+
|
|
166
|
+
raw = IO.popen(["claude", "-p", "--model", MODEL], "r+") { |io|
|
|
167
|
+
io.write(prompt)
|
|
168
|
+
io.close_write
|
|
169
|
+
io.read
|
|
170
|
+
}.strip.gsub(/\A```(?:json)?\n?/, "").gsub(/\n?```\z/, "")
|
|
171
|
+
|
|
172
|
+
parsed = JSON.parse(raw)
|
|
173
|
+
Result.new(parsed["commits"], parsed["changelog"])
|
|
130
174
|
end
|
|
131
175
|
end
|
|
132
176
|
|
|
133
|
-
|
|
134
|
-
puts "Generating CHANGELOG.md..."
|
|
135
|
-
last_tag = `git describe --tags --abbrev=0 2>/dev/null`.strip
|
|
136
|
-
commit_log = last_tag.empty? ? `git log --oneline` : `git log #{last_tag}..HEAD --oneline`
|
|
137
|
-
existing_changelog = File.exist?('CHANGELOG.md') ? File.read('CHANGELOG.md') : ''
|
|
177
|
+
# ─── Gem publishing ──────────────────────────────────────────────────────────
|
|
138
178
|
|
|
139
|
-
|
|
140
|
-
|
|
179
|
+
class RubyGem
|
|
180
|
+
def self.build(version)
|
|
181
|
+
system("gem", "build", "hiiro.gemspec") || abort("ERROR: gem build failed")
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def self.push(version)
|
|
185
|
+
system("gem", "push", "hiiro-#{version}.gem")
|
|
186
|
+
end
|
|
187
|
+
end
|
|
141
188
|
|
|
142
|
-
|
|
143
|
-
#{commit_log.strip}
|
|
189
|
+
# ─── Main ─────────────────────────────────────────────────────────────────────
|
|
144
190
|
|
|
145
|
-
|
|
146
|
-
|
|
191
|
+
pre_release = ARGV.include?("-t") || Git.current_branch != "main"
|
|
192
|
+
pending_before = Git.pending_changes?
|
|
147
193
|
|
|
148
|
-
|
|
149
|
-
with today's date. Group changes into Added, Changed, Fixed, Removed where appropriate.
|
|
150
|
-
Be concise. Output only the file content, no explanation.
|
|
151
|
-
PROMPT
|
|
194
|
+
Git.ensure_up_to_date!
|
|
152
195
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
io.read
|
|
157
|
-
}
|
|
196
|
+
current_version = Version.latest(RubyGems.published_versions("hiiro"))
|
|
197
|
+
new_version = Version.bump(current_version, pre_release: pre_release)
|
|
198
|
+
puts "Latest: #{current_version} → New: #{new_version}"
|
|
158
199
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
200
|
+
puts "\nAsking Claude to plan commits and generate changelog..."
|
|
201
|
+
release = Claude.prepare_release(
|
|
202
|
+
version: new_version,
|
|
203
|
+
diff: pending_before ? Git.diff : "",
|
|
204
|
+
status: pending_before ? Git.status : "",
|
|
205
|
+
git_log: Git.commits_since_last_tag,
|
|
206
|
+
existing_changelog: File.exist?("CHANGELOG.md") ? File.read("CHANGELOG.md") : ""
|
|
207
|
+
)
|
|
165
208
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
209
|
+
if pending_before
|
|
210
|
+
begin
|
|
211
|
+
system("git", "add", "--all")
|
|
212
|
+
release.commits.each { |c| Git.stage_and_commit(c["files"], c["message"]) }
|
|
213
|
+
rescue => e
|
|
214
|
+
puts "Warning: could not apply Claude commit plan (#{e.message}) — committing all as one"
|
|
215
|
+
Git.commit_all("chore: pre-publish changes")
|
|
216
|
+
end
|
|
171
217
|
end
|
|
172
218
|
|
|
173
|
-
|
|
174
|
-
|
|
219
|
+
File.write("CHANGELOG.md", release.changelog) if release.changelog && !release.changelog.strip.empty?
|
|
220
|
+
File.write("lib/hiiro/version.rb", "class Hiiro\n VERSION = #{new_version.inspect}\nend\n")
|
|
175
221
|
|
|
176
|
-
|
|
177
|
-
pushed = system('gem', 'push', "hiiro-#{new_version}.gem")
|
|
178
|
-
puts "\nERROR: unable to push\n" unless pushed
|
|
222
|
+
RubyGem.build(new_version)
|
|
179
223
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
224
|
+
unless RubyGem.push(new_version)
|
|
225
|
+
abort("ERROR: gem push failed — skipping git commit, tag, and push")
|
|
226
|
+
end
|
|
183
227
|
|
|
184
|
-
|
|
185
|
-
|
|
228
|
+
Git.commit_all("publishing v#{new_version}")
|
|
229
|
+
Git.tag(new_version)
|
|
230
|
+
Git.push
|
|
186
231
|
|
|
187
|
-
puts ""
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
232
|
+
puts "\nWaiting for v#{new_version} to appear on RubyGems..."
|
|
233
|
+
if RubyGems.wait_for("hiiro", new_version)
|
|
234
|
+
puts "v#{new_version} available — running h update -a"
|
|
235
|
+
update_args = ["update", "-a"]
|
|
236
|
+
update_args << "--pre" if pre_release
|
|
237
|
+
system("h", *update_args)
|
|
191
238
|
else
|
|
192
|
-
|
|
193
|
-
system 'git', 'checkout', '-b', branch_name
|
|
194
|
-
if system('git', 'push', 'origin', branch_name, '--follow-tags')
|
|
195
|
-
puts "Push to main failed. Pushed to origin/#{branch_name} instead"
|
|
196
|
-
else
|
|
197
|
-
puts "\nERROR: unable to push to origin\n"
|
|
198
|
-
end
|
|
199
|
-
system 'git', 'checkout', 'main'
|
|
239
|
+
puts "WARNING: timed out waiting for v#{new_version} on RubyGems — run `h update -a` manually"
|
|
200
240
|
end
|
|
201
|
-
|
|
202
|
-
puts ""
|
|
203
|
-
puts "Running: h delayed_update #{new_version}"
|
|
204
|
-
system('h', 'delayed_update', new_version)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hiiro
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.315
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joshua Toyota
|
|
@@ -342,6 +342,8 @@ files:
|
|
|
342
342
|
- plugins/pins.rb
|
|
343
343
|
- plugins/project.rb
|
|
344
344
|
- record-demo.sh
|
|
345
|
+
- sa
|
|
346
|
+
- script/available
|
|
345
347
|
- script/compare
|
|
346
348
|
- script/diff
|
|
347
349
|
- script/diffhome
|