kettle-dev 1.2.4 → 2.0.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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +159 -3
- data/CITATION.cff +2 -2
- data/CONTRIBUTING.md +11 -17
- data/README.md +390 -319
- data/exe/kettle-dev-setup +12 -63
- data/exe/kettle-gh-release +82 -0
- data/lib/kettle/dev/gem_spec_reader.rb +2 -2
- data/lib/kettle/dev/open_collective_config.rb +12 -0
- data/lib/kettle/dev/rakelib/yard.rake +15 -0
- data/lib/kettle/dev/tasks/ci_task.rb +4 -4
- data/lib/kettle/dev/version.rb +1 -1
- data/lib/kettle/dev.rb +4 -12
- data/sig/kettle/dev/source_merger.rbs +40 -56
- data.tar.gz.sig +0 -0
- metadata +15 -144
- metadata.gz.sig +0 -0
- data/.aiignore.example +0 -19
- data/.devcontainer/apt-install/devcontainer-feature.json +0 -9
- data/.devcontainer/apt-install/install.sh +0 -11
- data/.devcontainer/devcontainer.json +0 -28
- data/.env.local.example +0 -31
- data/.envrc +0 -47
- data/.envrc.example +0 -51
- data/.envrc.no-osc.example +0 -51
- data/.git-hooks/commit-msg +0 -54
- data/.git-hooks/commit-subjects-goalie.txt +0 -8
- data/.git-hooks/footer-template.erb.txt +0 -16
- data/.git-hooks/prepare-commit-msg +0 -8
- data/.github/.codecov.yml.example +0 -14
- data/.github/FUNDING.yml +0 -13
- data/.github/FUNDING.yml.no-osc.example +0 -13
- data/.github/dependabot.yml +0 -13
- data/.github/workflows/ancient.yml +0 -83
- data/.github/workflows/ancient.yml.example +0 -81
- data/.github/workflows/auto-assign.yml +0 -21
- data/.github/workflows/codeql-analysis.yml +0 -70
- data/.github/workflows/coverage.yml +0 -127
- data/.github/workflows/coverage.yml.example +0 -127
- data/.github/workflows/current.yml +0 -116
- data/.github/workflows/current.yml.example +0 -115
- data/.github/workflows/dep-heads.yml +0 -117
- data/.github/workflows/dependency-review.yml +0 -20
- data/.github/workflows/discord-notifier.yml.example +0 -39
- data/.github/workflows/heads.yml +0 -117
- data/.github/workflows/heads.yml.example +0 -116
- data/.github/workflows/jruby.yml +0 -82
- data/.github/workflows/jruby.yml.example +0 -72
- data/.github/workflows/legacy.yml +0 -76
- data/.github/workflows/license-eye.yml +0 -40
- data/.github/workflows/locked_deps.yml +0 -85
- data/.github/workflows/opencollective.yml +0 -40
- data/.github/workflows/style.yml +0 -67
- data/.github/workflows/supported.yml +0 -75
- data/.github/workflows/truffle.yml +0 -99
- data/.github/workflows/unlocked_deps.yml +0 -84
- data/.github/workflows/unsupported.yml +0 -76
- data/.gitignore +0 -50
- data/.gitlab-ci.yml.example +0 -134
- data/.idea/.gitignore +0 -45
- data/.junie/guidelines-rbs.md +0 -49
- data/.junie/guidelines.md +0 -141
- data/.junie/guidelines.md.example +0 -140
- data/.licenserc.yaml +0 -7
- data/.opencollective.yml +0 -3
- data/.opencollective.yml.example +0 -3
- data/.qlty/qlty.toml +0 -79
- data/.rspec +0 -9
- data/.rubocop.yml +0 -13
- data/.rubocop_rspec.yml +0 -33
- data/.simplecov +0 -16
- data/.simplecov.example +0 -11
- data/.tool-versions +0 -1
- data/.yardignore +0 -13
- data/.yardopts +0 -14
- data/Appraisal.root.gemfile +0 -10
- data/Appraisals +0 -151
- data/Appraisals.example +0 -102
- data/CHANGELOG.md.example +0 -47
- data/CONTRIBUTING.md.example +0 -227
- data/FUNDING.md.no-osc.example +0 -63
- data/Gemfile +0 -40
- data/Gemfile.example +0 -34
- data/README.md.example +0 -570
- data/README.md.no-osc.example +0 -536
- data/Rakefile.example +0 -68
- data/gemfiles/modular/coverage.gemfile +0 -6
- data/gemfiles/modular/debug.gemfile +0 -13
- data/gemfiles/modular/documentation.gemfile +0 -14
- data/gemfiles/modular/erb/r2/v3.0.gemfile +0 -1
- data/gemfiles/modular/erb/r2.3/default.gemfile +0 -6
- data/gemfiles/modular/erb/r2.6/v2.2.gemfile +0 -3
- data/gemfiles/modular/erb/r3/v5.0.gemfile +0 -1
- data/gemfiles/modular/erb/r3.1/v4.0.gemfile +0 -2
- data/gemfiles/modular/erb/vHEAD.gemfile +0 -2
- data/gemfiles/modular/injected.gemfile +0 -60
- data/gemfiles/modular/mutex_m/r2/v0.3.gemfile +0 -2
- data/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile +0 -3
- data/gemfiles/modular/mutex_m/r3/v0.3.gemfile +0 -2
- data/gemfiles/modular/mutex_m/vHEAD.gemfile +0 -2
- data/gemfiles/modular/optional.gemfile +0 -8
- data/gemfiles/modular/optional.gemfile.example +0 -5
- data/gemfiles/modular/runtime_heads.gemfile +0 -10
- data/gemfiles/modular/runtime_heads.gemfile.example +0 -8
- data/gemfiles/modular/stringio/r2/v3.0.gemfile +0 -5
- data/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile +0 -4
- data/gemfiles/modular/stringio/r3/v3.0.gemfile +0 -5
- data/gemfiles/modular/stringio/vHEAD.gemfile +0 -2
- data/gemfiles/modular/style.gemfile +0 -25
- data/gemfiles/modular/style.gemfile.example +0 -25
- data/gemfiles/modular/templating.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r2/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r2.3/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r2.4/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r2.6/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r3/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/r3.1/libs.gemfile +0 -3
- data/gemfiles/modular/x_std_libs/vHEAD.gemfile +0 -3
- data/gemfiles/modular/x_std_libs.gemfile +0 -2
- data/kettle-dev.gemspec.example +0 -154
- data/lib/kettle/dev/modular_gemfiles.rb +0 -119
- data/lib/kettle/dev/prism_appraisals.rb +0 -351
- data/lib/kettle/dev/prism_gemfile.rb +0 -177
- data/lib/kettle/dev/prism_gemspec.rb +0 -284
- data/lib/kettle/dev/prism_utils.rb +0 -201
- data/lib/kettle/dev/rakelib/install.rake +0 -10
- data/lib/kettle/dev/rakelib/template.rake +0 -10
- data/lib/kettle/dev/setup_cli.rb +0 -403
- data/lib/kettle/dev/source_merger.rb +0 -655
- data/lib/kettle/dev/tasks/install_task.rb +0 -553
- data/lib/kettle/dev/tasks/template_task.rb +0 -975
- data/lib/kettle/dev/template_helpers.rb +0 -685
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1c27526850f356cd31b634aa7a0ea70c4f96664c2979629ecfdabcf128f6b437
|
|
4
|
+
data.tar.gz: dca1af6fba35002062780e10688a42181eeb577804d48f3a367399fcf8da3262
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 16221f6055e6d28aa959d11a8b57c047218565538b55b6066a0656b5b8c45273c78f7ee1521369c247b9c8b296a485da22e4fa99c92ed276a67e39997281a14e
|
|
7
|
+
data.tar.gz: 71f4a045813776fba247aa28b728aaef9b4bfcc9013a806fdd9f5b49d99551aae505b34e8278c591e3a9c1d65bfb9581718460c10cf9a2354f17839fe0e6e191
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,158 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [2.0.0] - 2026-02-25
|
|
34
|
+
|
|
35
|
+
- TAG: [v2.0.0][2.0.0t]
|
|
36
|
+
- COVERAGE: 96.06% -- 2683/2793 lines in 20 files
|
|
37
|
+
- BRANCH COVERAGE: 79.16% -- 1113/1406 branches in 20 files
|
|
38
|
+
- 80.25% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- New `kettle-gh-release` executable for standalone GitHub release creation
|
|
43
|
+
- Extracted from `kettle-release` step 18
|
|
44
|
+
- Useful when RubyGems release succeeded but GitHub release failed
|
|
45
|
+
- Supports explicit version via `version=<VERSION>` argument
|
|
46
|
+
- Auto-detects version from `lib/**/version.rb` if not specified
|
|
47
|
+
- Requires `GITHUB_TOKEN` with `repo:public_repo` (classic) or `contents:write` scope
|
|
48
|
+
- Added `.kettle-dev.yml` configuration file for per-file merge options
|
|
49
|
+
- Hybrid format: `defaults` for shared merge options, `patterns` for glob fallbacks, `files` for per-file config
|
|
50
|
+
- Nested directory structure under `files` allows individual file configuration
|
|
51
|
+
- Supports all `Prism::Merge::SmartMerger` options: `preference`, `add_template_only_nodes`, `freeze_token`, `max_recursion_depth`
|
|
52
|
+
- Added `TemplateHelpers.kettle_config`, `.config_for`, `.find_file_config` methods
|
|
53
|
+
- Added spec coverage in `template_helpers_config_spec.rb`
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- Updated documentation on hostile takeover of RubyGems
|
|
58
|
+
- https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo
|
|
59
|
+
- **BREAKING**: Replaced `template_manifest.yml` with `.kettle-dev.yml`
|
|
60
|
+
- New hybrid format supports both glob patterns and per-file configuration
|
|
61
|
+
- `TemplateHelpers.load_manifest` now reads from `.kettle-dev.yml` patterns section
|
|
62
|
+
- `TemplateHelpers.strategy_for` checks explicit file configs before falling back to patterns
|
|
63
|
+
- **BREAKING**: Simplified `SourceMerger` to fully rely on prism-merge for AST merging
|
|
64
|
+
- Reduced from ~610 lines to ~175 lines (71% reduction)
|
|
65
|
+
- Removed custom newline normalization - prism-merge preserves original formatting
|
|
66
|
+
- Removed custom comment deduplication logic - prism-merge handles this natively
|
|
67
|
+
- All strategies (`:skip`, `:replace`, `:append`, `:merge`) now use prism-merge consistently
|
|
68
|
+
- Freeze blocks (`kettle-dev:freeze` / `kettle-dev:unfreeze`) handled by prism-merge's `freeze_token` option
|
|
69
|
+
|
|
70
|
+
### Removed
|
|
71
|
+
|
|
72
|
+
- Removed all `.example` template files from the kettle-dev root and subdirectories
|
|
73
|
+
(27 files). Template files now live exclusively in kettle-jem's `template/` directory.
|
|
74
|
+
Only `.env.local.example` is retained as a dev resource for all destination gems.
|
|
75
|
+
- Removed unused methods from `SourceMerger`:
|
|
76
|
+
- `normalize_source` - replaced by prism-merge
|
|
77
|
+
- `normalize_newlines` - prism-merge preserves original formatting
|
|
78
|
+
- `shebang?`, `magic_comment?`, `ruby_magic_comment_key?` - no longer needed
|
|
79
|
+
- Comment extraction/deduplication: `extract_magic_comments`, `extract_file_leading_comments`,
|
|
80
|
+
`create_comment_tuples`, `deduplicate_comment_sequences`, `deduplicate_sequences_pass1`,
|
|
81
|
+
`deduplicate_singles_pass2`, `extract_nodes_with_comments`, `count_blank_lines_before`,
|
|
82
|
+
`build_source_from_nodes`
|
|
83
|
+
- Unused comment restoration: `restore_custom_leading_comments`, `deduplicate_leading_comment_block`,
|
|
84
|
+
`extract_comment_lines`, `normalize_comment`, `leading_comment_block`
|
|
85
|
+
- Removed unused constants: `RUBY_MAGIC_COMMENT_KEYS`, `MAGIC_COMMENT_REGEXES`
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
|
|
89
|
+
- Fixed `PrismAppraisals` various comment chunk spacing
|
|
90
|
+
- extract_block_header:
|
|
91
|
+
- skips the blank spacer immediately above an `appraise` block
|
|
92
|
+
- treats any following blank line as the stop boundary once comment lines have been collected
|
|
93
|
+
- prevents preamble comments from being pulled into the first block’s header
|
|
94
|
+
- restores expected ordering:
|
|
95
|
+
- magic comments and their blank line stay at the top
|
|
96
|
+
- block headers remain adjacent to their blocks
|
|
97
|
+
- preserves blank lines between comment chunks
|
|
98
|
+
- Fixed `SourceMerger` freeze block location preservation
|
|
99
|
+
- Freeze blocks now stay in their original location in the file structure
|
|
100
|
+
- Skip normalization for files with existing freeze blocks to prevent movement
|
|
101
|
+
- Only include contiguous comments immediately before freeze markers (no arbitrary 3-line lookback)
|
|
102
|
+
- Don't add freeze reminder to files that already have freeze/unfreeze blocks
|
|
103
|
+
- Prevents unrelated comments from being incorrectly captured in freeze block ranges
|
|
104
|
+
- Added comprehensive test coverage for multiple freeze blocks at different nesting levels
|
|
105
|
+
- Fixed `TemplateTask` to not override template summary/description with empty strings from destination gemspec
|
|
106
|
+
- Only carries over summary/description when they contain actual content (non-empty)
|
|
107
|
+
- Allows token replacements to work correctly (e.g., `kettle-dev summary` → `my-gem summary`)
|
|
108
|
+
- Prevents empty destination fields from erasing meaningful template values
|
|
109
|
+
- Fixed `SourceMerger` magic comment ordering and freeze block protection
|
|
110
|
+
- Magic comments now preserve original order
|
|
111
|
+
- No blank lines inserted between consecutive magic comments
|
|
112
|
+
- Freeze reminder block properly separated from magic comments (not merged)
|
|
113
|
+
- Leverages Prism's built-in `parse_result.magic_comments` API for accurate detection
|
|
114
|
+
- Detects `kettle-dev:freeze/unfreeze` pairs using Prism, then reclassifies as file-level comments to keep blocks intact
|
|
115
|
+
- Removed obsolete `is_magic_comment?` method in favor of Prism's native detection
|
|
116
|
+
- Fixed `PrismGemspec` and `PrismGemfile` to use pure Prism AST traversal instead of regex fallbacks
|
|
117
|
+
- Removed regex-based `extract_gemspec_emoji` that parsed `spec.summary =` and `spec.description =` with regex
|
|
118
|
+
- Now traverses Prism AST to find Gem::Specification block, extracts summary/description nodes, and gets literal values
|
|
119
|
+
- Removed regex-based source line detection in `PrismGemfile.merge_gem_calls`
|
|
120
|
+
- Now uses `PrismUtils.statement_key` to find source statements via AST instead of `ln =~ /^\s*source\s+/`
|
|
121
|
+
- Aligns with project goal: move away from regex parsing toward proper AST manipulation with Prism
|
|
122
|
+
- All functionality preserved, tested, and working correctly
|
|
123
|
+
- Fixed `PrismGemspec.replace_gemspec_fields` block parameter extraction to use Prism AST
|
|
124
|
+
- **CRITICAL**: Was using regex fallback that incorrectly captured entire block body as parameter name
|
|
125
|
+
- Removed buggy regex fallback in favor of pure Prism AST traversal
|
|
126
|
+
- Now properly extracts block parameter from Prism::BlockParametersNode → Prism::ParametersNode → Prism::RequiredParameterNode
|
|
127
|
+
- Fixed `PrismGemspec.replace_gemspec_fields` insert offset calculation for emoji-containing gemspecs
|
|
128
|
+
- **CRITICAL**: Was using character length (`String#length`) instead of byte length (`String#bytesize`) to calculate insert offset
|
|
129
|
+
- When gemspecs contain multi-byte UTF-8 characters (emojis like 🍲), character length != byte length
|
|
130
|
+
- This caused fields to be inserted at wrong byte positions, resulting in truncated strings and massive corruption
|
|
131
|
+
- Changed `body_src.rstrip.length` to `body_src.rstrip.bytesize` for correct byte-offset calculations
|
|
132
|
+
- Prevents gemspec templating from producing corrupted output with truncated dependency lines
|
|
133
|
+
- Added comprehensive debug logging to trace byte offset calculations and edit operations
|
|
134
|
+
- Fixed `SourceMerger` variable assignment duplication during merge operations
|
|
135
|
+
- `node_signature` now identifies variable/constant assignments by name only, not full source
|
|
136
|
+
- Previously used full source text as signature, causing duplicates when assignment bodies differed
|
|
137
|
+
- Added specific handlers for: LocalVariableWriteNode, InstanceVariableWriteNode, ClassVariableWriteNode, ConstantWriteNode, GlobalVariableWriteNode
|
|
138
|
+
- Also added handlers for ClassNode and ModuleNode to match by name
|
|
139
|
+
- Example: `gem_version = ...` assignments with different bodies now correctly merge instead of duplicating
|
|
140
|
+
- Prevents `bin/kettle-dev-setup` from creating duplicate variable assignments in gemspecs and other files
|
|
141
|
+
- Added comprehensive specs for variable assignment deduplication and idempotency
|
|
142
|
+
- Fixed `SourceMerger` conditional block duplication during merge operations
|
|
143
|
+
- `node_signature` now identifies conditional nodes (if/unless/case) by their predicate only
|
|
144
|
+
- Previously used full source text, causing duplicate blocks when template updates conditional bodies
|
|
145
|
+
- Example: if ENV["FOO"] blocks with different bodies now correctly merge instead of duplicating
|
|
146
|
+
- Prevents `bin/kettle-dev-setup` from creating duplicate if/else blocks in gemfiles
|
|
147
|
+
- Added comprehensive specs for conditional merging behavior and idempotency
|
|
148
|
+
- Fixed `PrismGemspec.replace_gemspec_fields` to use byte-aware string operations
|
|
149
|
+
- **CRITICAL**: Was using character-based `String#[]=` with Prism's byte offsets
|
|
150
|
+
- This caused catastrophic corruption when emojis or multi-byte UTF-8 characters were present
|
|
151
|
+
- Symptoms: gemspec blocks duplicated/fragmented, statements escaped outside blocks
|
|
152
|
+
- Now uses `byteslice` and byte-aware concatenation for all edit operations
|
|
153
|
+
- Prevents gemspec templating from producing mangled output with duplicated Gem::Specification blocks
|
|
154
|
+
- Fixed `PrismGemspec.replace_gemspec_fields` to correctly handle multi-byte UTF-8 characters (e.g., emojis)
|
|
155
|
+
- Prism uses byte offsets, not character offsets, when parsing Ruby code
|
|
156
|
+
- Changed string slicing from `String#[]` to `String#byteslice` for all offset-based operations
|
|
157
|
+
- Added validation to use `String#bytesize` instead of `String#length` for offset bounds checking
|
|
158
|
+
- Prevents `TypeError: no implicit conversion of nil into String` when gemspecs contain emojis
|
|
159
|
+
- Ensures gemspec field carryover works correctly with emoji in summary/description fields
|
|
160
|
+
- Enhanced error reporting to show backtraces when debug mode is enabled
|
|
161
|
+
|
|
162
|
+
## [1.2.5] - 2025-11-28
|
|
163
|
+
|
|
164
|
+
- TAG: [v1.2.5][1.2.5t]
|
|
165
|
+
- COVERAGE: 93.53% -- 4726/5053 lines in 31 files
|
|
166
|
+
- BRANCH COVERAGE: 76.62% -- 1924/2511 branches in 31 files
|
|
167
|
+
- 69.89% documented
|
|
168
|
+
|
|
169
|
+
### Added
|
|
170
|
+
|
|
171
|
+
- Comprehensive newline normalization in templated Ruby files:
|
|
172
|
+
- Magic comments (frozen_string_literal, encoding, etc.) always followed by single blank line
|
|
173
|
+
- No more than one consecutive blank line anywhere in file
|
|
174
|
+
- Single newline at end of file (no trailing blank lines)
|
|
175
|
+
- Freeze reminder block now includes blank line before and empty comment line after for better visual separation
|
|
176
|
+
|
|
177
|
+
### Changed
|
|
178
|
+
|
|
179
|
+
- Updated `FREEZE_REMINDER` constant to include blank line before and empty comment line after
|
|
180
|
+
|
|
181
|
+
### Fixed
|
|
182
|
+
|
|
183
|
+
- Fixed `reminder_present?` to correctly detect freeze reminder when it has leading blank line
|
|
184
|
+
|
|
33
185
|
## [1.2.4] - 2025-11-28
|
|
34
186
|
|
|
35
187
|
- TAG: [v1.2.4][1.2.4t]
|
|
@@ -45,7 +197,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
45
197
|
- Ensures truly idempotent behavior when running templating multiple times on the same file
|
|
46
198
|
- Example: `frozen_string_literal` comments no longer multiply from 1→4→5→6 on repeated runs
|
|
47
199
|
|
|
48
|
-
## [1.2.3] - 2025-11-
|
|
200
|
+
## [1.2.3] - 2025-11-28vari
|
|
49
201
|
|
|
50
202
|
- TAG: [v1.2.3][1.2.3t]
|
|
51
203
|
- COVERAGE: 93.43% -- 4681/5010 lines in 31 files
|
|
@@ -1138,7 +1290,7 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
1138
1290
|
- <!-- RELEASE-NOTES-FOOTER-END -->
|
|
1139
1291
|
- truffle workflow: Repeat attempts for bundle install and appraisal bundle before failure
|
|
1140
1292
|
- global token replacement during kettle:dev:install
|
|
1141
|
-
-
|
|
1293
|
+
- kettle-dev => kettle-dev
|
|
1142
1294
|
- {RUBOCOP|LTS|CONSTRAINT} => dynamic
|
|
1143
1295
|
- {RUBOCOP|RUBY|GEM} => dynamic
|
|
1144
1296
|
- default to rubocop-ruby1_8 if no minimum ruby specified
|
|
@@ -1522,7 +1674,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
1522
1674
|
- Selecting will run the selected workflow via `act`
|
|
1523
1675
|
- This may move to its own gem in the future.
|
|
1524
1676
|
|
|
1525
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/
|
|
1677
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v2.0.0...HEAD
|
|
1678
|
+
[2.0.0]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.5...v2.0.0
|
|
1679
|
+
[2.0.0t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v2.0.0
|
|
1680
|
+
[1.2.5]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.4...v1.2.5
|
|
1681
|
+
[1.2.5t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.2.5
|
|
1526
1682
|
[1.2.4]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.3...v1.2.4
|
|
1527
1683
|
[1.2.4t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.2.4
|
|
1528
1684
|
[1.2.3]: https://github.com/kettle-rb/kettle-dev/compare/v1.2.2...v1.2.3
|
data/CITATION.cff
CHANGED
|
@@ -7,8 +7,8 @@ type: software
|
|
|
7
7
|
authors:
|
|
8
8
|
- given-names: Peter Hurn
|
|
9
9
|
family-names: Boling
|
|
10
|
-
email:
|
|
11
|
-
affiliation:
|
|
10
|
+
email: floss@galtzo.com
|
|
11
|
+
affiliation: galtzo.com
|
|
12
12
|
orcid: 'https://orcid.org/0009-0008-8519-441X'
|
|
13
13
|
identifiers:
|
|
14
14
|
- type: url
|
data/CONTRIBUTING.md
CHANGED
|
@@ -24,9 +24,10 @@ Follow these instructions:
|
|
|
24
24
|
|
|
25
25
|
## Executables vs Rake tasks
|
|
26
26
|
|
|
27
|
-
Executables shipped by kettle-dev
|
|
28
|
-
|
|
27
|
+
Executables shipped by dependencies, such as kettle-dev, and stone_checksums, are available
|
|
28
|
+
after running `bin/setup`. These include:
|
|
29
29
|
|
|
30
|
+
- gem_checksums
|
|
30
31
|
- kettle-changelog
|
|
31
32
|
- kettle-commit-msg
|
|
32
33
|
- kettle-dev-setup
|
|
@@ -35,20 +36,10 @@ They will work when kettle-dev is installed globally (i.e., `gem install kettle-
|
|
|
35
36
|
- kettle-readme-backers
|
|
36
37
|
- kettle-release
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
See the full list of rake tasks in head of Rakefile
|
|
39
|
+
There are many Rake tasks available as well. You can see them by running:
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
group :development do
|
|
44
|
-
gem "kettle-dev", require: false
|
|
45
|
-
end
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**Rakefile**
|
|
49
|
-
```ruby
|
|
50
|
-
# Rakefile
|
|
51
|
-
require "kettle/dev"
|
|
41
|
+
```shell
|
|
42
|
+
bin/rake -T
|
|
52
43
|
```
|
|
53
44
|
|
|
54
45
|
## Environment Variables for Local Development
|
|
@@ -77,7 +68,9 @@ GitHub API and CI helpers
|
|
|
77
68
|
Releasing and signing
|
|
78
69
|
- SKIP_GEM_SIGNING: If set, skip gem signing during build/release
|
|
79
70
|
- GEM_CERT_USER: Username for selecting your public cert in `certs/<USER>.pem` (defaults to $USER)
|
|
80
|
-
- SOURCE_DATE_EPOCH: Reproducible build timestamp.
|
|
71
|
+
- SOURCE_DATE_EPOCH: Reproducible build timestamp.
|
|
72
|
+
- `kettle-release` will set this automatically for the session.
|
|
73
|
+
- Not needed on bundler >= 2.7.0, as reproducible builds have become the default.
|
|
81
74
|
|
|
82
75
|
Git hooks and commit message helpers (exe/kettle-commit-msg)
|
|
83
76
|
- GIT_HOOK_BRANCH_VALIDATE: Branch name validation mode (e.g., `jira`) or `false` to disable
|
|
@@ -148,7 +141,7 @@ For more detailed information about using RuboCop in this project, please see th
|
|
|
148
141
|
Never add `# rubocop:disable ...` / `# rubocop:enable ...` comments to code or specs (except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). Instead:
|
|
149
142
|
|
|
150
143
|
- Prefer configuration-based exclusions when a rule should not apply to certain paths or files (e.g., via `.rubocop.yml`).
|
|
151
|
-
- When a violation is temporary and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
|
|
144
|
+
- When a violation is temporary, and you plan to fix it later, record it in `.rubocop_gradual.lock` using the gradual workflow:
|
|
152
145
|
- `bundle exec rake rubocop_gradual:autocorrect` (preferred)
|
|
153
146
|
- `bundle exec rake rubocop_gradual:force_update` (only when you cannot fix the violations immediately)
|
|
154
147
|
|
|
@@ -183,6 +176,7 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
|
|
|
183
176
|
1. Update version.rb to contain the correct version-to-be-released.
|
|
184
177
|
2. Run `bundle exec kettle-changelog`.
|
|
185
178
|
3. Run `bundle exec kettle-release`.
|
|
179
|
+
4. Stay awake and monitor the release process for any errors, and answer any prompts.
|
|
186
180
|
|
|
187
181
|
#### Manual process
|
|
188
182
|
|