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.
@@ -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
-