gempilot 0.2.2 → 0.2.4
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/.rubocop.yml +15 -1
- data/CLAUDE.md +2 -9
- data/README.md +8 -4
- data/data/templates/gem/dotfiles/rubocop.yml.erb +1 -12
- data/docs/superpowers/plans/2026-07-20-release-task-hierarchy.md +583 -0
- data/docs/superpowers/specs/2026-07-20-release-task-hierarchy-design.md +229 -0
- data/issues.rec +74 -3
- data/lib/gempilot/cli/commands/console.rb +2 -3
- data/lib/gempilot/cli/commands/create.rb +6 -3
- data/lib/gempilot/cli/commands/new.rb +2 -3
- data/lib/gempilot/cli/commands/release.rb +2 -3
- data/lib/gempilot/cli/generator.rb +2 -1
- data/lib/gempilot/github_release.rb +0 -2
- data/lib/gempilot/origin.rb +52 -0
- data/lib/gempilot/project.rb +25 -5
- data/lib/gempilot/release_tasks.rb +73 -0
- data/lib/gempilot/version.rb +1 -1
- data/lib/gempilot/version_task.rb +3 -16
- data/vendor/vendored.gemv +0 -0
- metadata +8 -14
- data/docs/command_kit_comparison.md +0 -249
- data/docs/command_kit_reference.md +0 -517
- data/docs/plans/2026-02-18-gempilot-add-command.md +0 -718
- data/docs/superpowers/plans/2026-04-01-rubocop-new-config.md +0 -838
- data/docs/superpowers/plans/2026-04-06-dogfood-inflectable.md +0 -659
- data/docs/superpowers/plans/2026-04-06-inflection-tests-and-erb-rename.md +0 -166
- data/docs/superpowers/plans/2026-04-06-integrate-version-tools.md +0 -162
- data/docs/superpowers/plans/2026-04-06-new-readme.md +0 -185
- data/docs/superpowers/plans/2026-06-09-address-review-critiques.md +0 -679
- data/docs/version-management-redesign.md +0 -44
- data/notes.md +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ed510959d35011586d23fc0dcc0baff3a453a2acbd1a2d1c8fb4489cee63e6e0
|
|
4
|
+
data.tar.gz: 455ba876df7b3fb40df26932737cae4062a6e6e2210f1fd02b18a231566bd23d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4ce5185ea5c07adc72435dee47b2f749f4f6146f26a09c8d8c557490e4be1b69b2b048e4c9ab32b8548d043c9a0d393cc32a0d8dd23c94c98cabd3a8737334d9
|
|
7
|
+
data.tar.gz: 6094227a45e9bb173f0455dc155bd3ac7593698a7c41c7ac1482c5e7c44a59a90c547bb20206d3c7887b87a84977fc1f7ca615b2975fe53dc6a8ab85384a83e8
|
data/.rubocop.yml
CHANGED
|
@@ -18,7 +18,7 @@ plugins:
|
|
|
18
18
|
|
|
19
19
|
AllCops:
|
|
20
20
|
NewCops: enable
|
|
21
|
-
TargetRubyVersion:
|
|
21
|
+
TargetRubyVersion: 4.0
|
|
22
22
|
Exclude:
|
|
23
23
|
- bin/*
|
|
24
24
|
- vendor/**/*
|
|
@@ -279,3 +279,17 @@ RSpec/NamedSubject:
|
|
|
279
279
|
# have_file_content matcher accepts a filename string in expect()
|
|
280
280
|
RSpec/ExpectActual:
|
|
281
281
|
Enabled: false
|
|
282
|
+
|
|
283
|
+
Design/PositionalArguments:
|
|
284
|
+
Enabled: false
|
|
285
|
+
|
|
286
|
+
Design/KeywordArguments:
|
|
287
|
+
Enabled: false
|
|
288
|
+
|
|
289
|
+
Design/TotalArguments:
|
|
290
|
+
Enabled: false
|
|
291
|
+
|
|
292
|
+
Design/AgentNounClassName:
|
|
293
|
+
Exclude:
|
|
294
|
+
- 'lib/gempilot/generator.rb'
|
|
295
|
+
- 'test/gempilot/cli/generator_test.rb'
|
data/CLAUDE.md
CHANGED
|
@@ -35,12 +35,5 @@ A CLI tool for creating and managing Ruby gems, built on CommandKit.
|
|
|
35
35
|
- RuboCop with framework-specific plugins
|
|
36
36
|
- GitHub Actions CI workflow (`.github/workflows/ci.yml`)
|
|
37
37
|
- `git ls-files`-based gemspec with glob fallback for non-git repos
|
|
38
|
-
- Version lifecycle rake tasks installed via `Gempilot::VersionTask.new` (a `Rake::TaskLib`): `version:current/bump/commit/tag/untag/reset/revert
|
|
39
|
-
|
|
40
|
-
### Notes
|
|
41
|
-
- AutoLoad uses block form in `cli.rb` with explicit `summary:` per command (lazy loading means descriptions aren't available at help time without this)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
## ISSUES
|
|
45
|
-
|
|
46
|
-
1. RESOLVED — `exe/gempilot` previously had an unconditional `ENV["BUNDLE_GEMFILE"]` + `require "bundler/setup"`, breaking `gem install` usage. It now guards both behind `if File.exist?(gemfile)` (the Ronin pattern), so installed gems skip Bundler while in-repo runs still use it.
|
|
38
|
+
- Version lifecycle rake tasks installed via `Gempilot::VersionTask.new` (a `Rake::TaskLib`): `version:current/bump/commit/tag/untag/reset/revert` and composite `version:release`/`version:unrelease`
|
|
39
|
+
- Publishing rake tasks (mixed into `VersionTask` via `Gempilot::ReleaseTasks`): `release` (all remotes), `release:rubygems`, `release:github`, `release:list:github`, `unrelease`, `unrelease:github`. These override and reuse bundler's `bundler/gem_tasks` release chain; `release:source_control_push` is replaced with `Gempilot::Origin` to push commit+tag idempotently
|
data/README.md
CHANGED
|
@@ -86,7 +86,8 @@ gempilot bump major
|
|
|
86
86
|
|
|
87
87
|
### `gempilot release`
|
|
88
88
|
|
|
89
|
-
Delegates to `rake release
|
|
89
|
+
Delegates to `rake release`, which publishes the current version to all remotes
|
|
90
|
+
(RubyGems + GitHub).
|
|
90
91
|
|
|
91
92
|
### `gempilot console`
|
|
92
93
|
|
|
@@ -120,9 +121,12 @@ Generated gems include rake tasks for the full version lifecycle:
|
|
|
120
121
|
| `rake version:revert` | Revert the last version bump commit |
|
|
121
122
|
| `rake version:release` | Bump, commit, and tag (combined) |
|
|
122
123
|
| `rake version:unrelease` | Untag and reset (combined) |
|
|
123
|
-
| `rake
|
|
124
|
-
| `rake
|
|
125
|
-
| `rake
|
|
124
|
+
| `rake release` | Publish the current version to all remotes (RubyGems + GitHub) |
|
|
125
|
+
| `rake release:rubygems` | Build and push the gem to RubyGems |
|
|
126
|
+
| `rake release:github` | Push commit + tag, then create the GitHub release |
|
|
127
|
+
| `rake release:list:github` | List GitHub releases |
|
|
128
|
+
| `rake unrelease` | Delete the release from all remotes that support it |
|
|
129
|
+
| `rake unrelease:github` | Delete the GitHub release and remote tag |
|
|
126
130
|
|
|
127
131
|
## Development
|
|
128
132
|
|
|
@@ -25,12 +25,6 @@ AllCops:
|
|
|
25
25
|
Exclude:
|
|
26
26
|
- bin/*
|
|
27
27
|
- vendor/**/*
|
|
28
|
-
- lib/core_ext/**/*
|
|
29
|
-
- rakelib/project.rb
|
|
30
|
-
- rakelib/project_version.rb
|
|
31
|
-
- rakelib/version_tag.rb
|
|
32
|
-
- rakelib/github_release.rb
|
|
33
|
-
- rakelib/strict_shell.rb
|
|
34
28
|
<% if @hyphenated -%>
|
|
35
29
|
- lib/<%= @gem_name %>.rb
|
|
36
30
|
<% end -%>
|
|
@@ -124,17 +118,12 @@ Metrics/BlockLength:
|
|
|
124
118
|
<% end -%>
|
|
125
119
|
Exclude:
|
|
126
120
|
- "<%= @gem_name %>.gemspec"
|
|
127
|
-
- "rakelib/**/*"
|
|
128
121
|
|
|
129
|
-
# Gemspec
|
|
122
|
+
# Gemspec uses patterns that trigger Claude cops legitimately.
|
|
130
123
|
Claude/NoFancyUnicode:
|
|
131
124
|
Exclude:
|
|
132
125
|
- "<%= @gem_name %>.gemspec"
|
|
133
126
|
|
|
134
|
-
Claude/MysteryRegex:
|
|
135
|
-
Exclude:
|
|
136
|
-
- "rakelib/**/*"
|
|
137
|
-
|
|
138
127
|
# Zeitwerk loaders are mutable by design — only flag literal mutable values.
|
|
139
128
|
Style/MutableConstant:
|
|
140
129
|
EnforcedStyle: literals
|