gempilot 0.2.2 → 0.2.3
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 +16 -1
- data/CLAUDE.md +0 -8
- data/issues.rec +29 -2
- 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/project.rb +25 -5
- data/lib/gempilot/version.rb +1 -1
- data/vendor/vendored.gemv +0 -0
- metadata +4 -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
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Version Management Redesign
|
|
2
|
-
|
|
3
|
-
Review notes for `new_version_utils.patch`. To be addressed in a follow-up PR.
|
|
4
|
-
|
|
5
|
-
## Patch summary
|
|
6
|
-
|
|
7
|
-
Replaces inline rake task logic (including the `ActiveVersion` delegator) with
|
|
8
|
-
proper domain objects: `Project`, `Project::Version`, `VersionTag`,
|
|
9
|
-
`GithubRelease`, and `StrictShell`. Fixes the stale `require_relative` bug by
|
|
10
|
-
using `load` + `refresh_version!` to re-read from disk after mutations.
|
|
11
|
-
|
|
12
|
-
## What works well
|
|
13
|
-
|
|
14
|
-
- Clean domain decomposition with single-responsibility classes
|
|
15
|
-
- `Version` as a `Data.define` value object with `tag` and `next_version`
|
|
16
|
-
- Symmetric `version:release` / `version:unrelease` task pairs
|
|
17
|
-
- Array-form `sh` calls throughout (no shell interpolation risk)
|
|
18
|
-
- `VersionTag` depends on a version object, not the full project
|
|
19
|
-
|
|
20
|
-
## Open items
|
|
21
|
-
|
|
22
|
-
1. **`release_full_spec.rb` is stale** -- matches `task full: ["version:bump",
|
|
23
|
-
"version:commit", :release]` but the new rake file has
|
|
24
|
-
`task release: ["version:bump", "version:commit", "version:tag"]`.
|
|
25
|
-
|
|
26
|
-
2. **rakelib couples to lib** -- `Project` requires
|
|
27
|
-
`lib/core_ext/string/refinements/inflectable`. Generated gems using this
|
|
28
|
-
rakelib pattern would need that refinement at that exact path.
|
|
29
|
-
|
|
30
|
-
3. **`Project#klass` loads the gem module** -- `Object.const_get(name.camelize)`
|
|
31
|
-
combined with `load` in `fetch_version` means the gem must be loadable from
|
|
32
|
-
the rake context. Gems with load-time side effects could behave unexpectedly.
|
|
33
|
-
|
|
34
|
-
4. **`Project` has two responsibilities** -- structure discovery (name, lib path,
|
|
35
|
-
module) and version lifecycle (increment, write, refresh). Cohesive enough for
|
|
36
|
-
now, but the seam is visible if either grows.
|
|
37
|
-
|
|
38
|
-
5. **`warning` gem dependency** -- `Project` requires the `warning` gem. Needs to
|
|
39
|
-
be a development dependency in the gemspec (and in generated gem templates).
|
|
40
|
-
|
|
41
|
-
6. **Template expansion** -- If this rakelib replaces `version.rake.erb`, the
|
|
42
|
-
template needs to generate all five support files (`project.rb`,
|
|
43
|
-
`project_version.rb`, `version_tag.rb`, `github_release.rb`,
|
|
44
|
-
`strict_shell.rb`), significantly expanding the scaffold.
|
data/notes.md
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Setup todos
|
|
2
|
-
* Remove .bak.spec file
|
|
3
|
-
* Add files to gitignore
|
|
4
|
-
* /.idea
|
|
5
|
-
* Gemfile.lock
|
|
6
|
-
* Set rubocop.yml ruby value
|
|
7
|
-
* Use omakase rubocop settings
|
|
8
|
-
* Run rubocop on all files
|
|
9
|
-
* Add ENV['MT_NO_PLUGINS'] = '1' to Rakefile (and test helper?)
|
|
10
|
-
* Add better test reporter to test helper
|
|
11
|
-
* Add rake task for releasing
|
|
12
|
-
* Set gem version to start version value
|
|
13
|
-
* Set up git, perform initial commit
|
|
14
|
-
* Set up zeitwerk
|
|
15
|
-
* Set up bundle path and possibly use packaging
|
|
16
|
-
* Remove dead test
|
|
17
|
-
* Run rake to ensure everything works
|
|
18
|
-
* Release?
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
test helper plugin ignore:
|
|
24
|
-
|
|
25
|
-
```ruby
|
|
26
|
-
unless ENV["RM_INFO"]
|
|
27
|
-
ENV["MT_NO_PLUGINS"] = "1"
|
|
28
|
-
Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(color: true)]
|
|
29
|
-
end
|
|
30
|
-
```
|
|
31
|
-
|