Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
482d96b
🐛 Fixing some issues with gemspec templating
pboling Nov 29, 2025
d10bb40
🐛 Fixed `PrismGemspec.replace_gemspec_fields` to correctly handle mul…
pboling Nov 29, 2025
4fb7969
🐛 Fixed `SourceMerger` conditional block duplication during merge ope…
pboling Nov 29, 2025
00e5b98
🎨 Template bootstrap by kettle-dev-setup v1.2.5
pboling Nov 29, 2025
3907b0b
🎨 Dogfood update v1.2.5-pre
pboling Nov 29, 2025
def02ec
🎨 Dogfood update v1.2.5-pre
pboling Nov 29, 2025
9a1b89b
🐛 Fixed `PrismGemspec.replace_gemspec_fields` to use byte-aware strin…
pboling Nov 29, 2025
0089755
🐛 Fixed `SourceMerger` variable assignment duplication during merge o…
pboling Nov 30, 2025
c9a6cee
✨ Example .git-hooks/prepare-commit-msg so local can use bin/
pboling Nov 30, 2025
984c63e
✨ Fixed `PrismGemspec.replace_gemspec_fields` insert offset calculati…
pboling Nov 30, 2025
8af6284
🐛 Fixed `PrismGemspec.replace_gemspec_fields` block parameter extract…
pboling Nov 30, 2025
ce73f54
🎨 Dogfood update v1.2.5-pre
pboling Nov 30, 2025
fc23760
🐛 Fixed `PrismGemspec` and `PrismGemfile` to use pure Prism AST trave…
pboling Nov 30, 2025
e20dbe3
🐛 Fixed `SourceMerger` magic comment ordering and freeze block protec…
pboling Nov 30, 2025
317e919
🐛 Fixed `TemplateTask` to not override template summary/description w…
pboling Nov 30, 2025
55a2b1e
🐛 Fixed `SourceMerger` freeze block location preservation
pboling Nov 30, 2025
2479860
👷 Gemspec fixture
pboling Nov 30, 2025
fec0e6c
🎨 Add kettle-dev:freeze chunks to templated Ruby files
pboling Dec 1, 2025
66297e9
🎨 Template bootstrap by kettle-dev-setup v1.2.5
pboling Dec 1, 2025
77cbb58
🐛 Restrict Markdown Heading processing to Markdown files
pboling Dec 1, 2025
800fc88
🔧 Add OPENCOLLECTIVE_HANDLE and FUNDING_ORG to .envrc
pboling Dec 1, 2025
3539f26
🐛 Fix handling of empty lines and empty comments in Appraisals
pboling Dec 1, 2025
25b58c1
🐛 - Fixed `PrismAppraisals` various comment chunk spacing
pboling Dec 1, 2025
6c2666c
✨ Prepare for prism-merge
pboling Dec 3, 2025
7e591a7
♻️ Refactor to use prism-merge
pboling Dec 3, 2025
a073f86
⬆️ prism-merge v1.1.6
pboling Dec 5, 2025
6cc08d8
🎨 Dog-fooding the template
pboling Dec 5, 2025
7fe2723
🔥 prism-merge > custom templating code
pboling Dec 5, 2025
f034a97
🎨 Template bootstrap by kettle-dev-setup v1.2.5
pboling Dec 5, 2025
6ab9a4a
✨ kettle-dev.yml config for merge control
pboling Dec 5, 2025
519a573
🚨 Linting
pboling Dec 5, 2025
b55ede2
👷 Skip prism-merge tests on Ruby < 2.7
pboling Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ export FLOSS_CFG_FUND_LOGFILE=tmp/log/debug.log
# Concurrently developing the rubocop-lts suite?
export RUBOCOP_LTS_LOCAL=false

# If kettle-dev does not have an open source collective set these to false.
export OPENCOLLECTIVE_HANDLE=kettle-rb
export FUNDING_ORG=kettle-rb

# .env would override anything in this file, if `dotenv` is uncommented below.
# .env is a DOCKER standard, and if we use it, it would be in deployed, or DOCKER, environments,
# and that is why we generally want to leave it commented out.
Expand Down
6 changes: 6 additions & 0 deletions .git-hooks/commit-msg
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
#!/usr/bin/env ruby
# vim: set syntax=ruby

# kettle-dev:freeze
# To retain chunks of comments & code during kettle-dev templating:
# Wrap custom sections with freeze markers (e.g., as above and below this comment chunk).
# kettle-dev will then preserve content between those markers across template runs.
# kettle-dev:unfreeze

# Do not rely on Bundler; allow running outside a Bundler context
begin
require "rubygems"
Expand Down
2 changes: 1 addition & 1 deletion .git-hooks/prepare-commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ set -eu

# We are not using direnv exec here because mise and direnv can result in conflicting PATH settings:
# See: https://mise.jdx.dev/direnv.html
exec "kettle-commit-msg" "$@"
exec "bin/kettle-commit-msg" "$@"
8 changes: 8 additions & 0 deletions .git-hooks/prepare-commit-msg.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh

# Fail on error and unset variables
set -eu

# We are not using direnv exec here because mise and direnv can result in conflicting PATH settings:
# See: https://mise.jdx.dev/direnv.html
exec "kettle-commit-msg" "$@"
10 changes: 0 additions & 10 deletions .github/workflows/jruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,6 @@ jobs:
strategy:
matrix:
include:
# # NoMethodError: undefined method `resolve_feature_path' for #<Array:0x566f4659>
# # <main> at /home/runner/.rubies/jruby-9.3.15.0/lib/ruby/gems/shared/gems/erb-4.0.4-java/lib/erb/util.rb:9
# # jruby-9.3 (targets Ruby 2.6 compatibility)
# - ruby: "jruby-9.3"
# appraisal: "ruby-2-6"
# exec_cmd: "rake test"
# gemfile: "Appraisal.root"
# rubygems: default
# bundler: default

# jruby-9.4 (targets Ruby 3.1 compatibility)
- ruby: "jruby-9.4"
appraisal: "ruby-3-1"
Expand Down
2 changes: 2 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ variables:
K_SOUP_COV_DEBUG: true
K_SOUP_COV_DO: true
K_SOUP_COV_HARD: true
# kettle-dev:freeze
# Lower than local, which is at 100/100, because rubocop-lts isn't installed in the coverage workflow
# kettle-dev:unfreeze
K_SOUP_COV_MIN_BRANCH: 74
K_SOUP_COV_MIN_LINE: 90
K_SOUP_COV_VERBOSE: true
Expand Down
9 changes: 5 additions & 4 deletions .junie/guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ This document captures project-specific knowledge to streamline setup, testing,
- See .env.local.example for an example of what to put in .env.local.
- See CONTRIBUTING.md for details on how to set up your local environment.
- Ruby and Bundler
- Runtime supports Ruby >= 1.9.2.
- Development tooling targets Ruby >= 2.3 (minimum supported by setup-ruby GHA).
- Runtime supports Ruby >= 2.3.0
- Development tooling targets Ruby >= 2.3.0 (minimum supported by setup-ruby GHA).
- Use a recent Ruby (>= 3.4 recommended) for fastest setup and to exercise modern coverage behavior.
- Install dependencies via Bundler in project root:
- bundle install
Expand Down Expand Up @@ -48,12 +48,11 @@ This document captures project-specific knowledge to streamline setup, testing,
- silent_stream: STDOUT is silenced by default for examples to keep logs clean.
- To explicitly test console output, tag the example or group with :check_output.
- DEBUG toggle: Set DEBUG=true to require 'debug' and avoid silencing output during your run.
- ENV seeding: The suite sets ENV["FLOSS_FUNDING_FLOSS_FUNDING"] = "Free-as-in-beer" so that the library’s own namespace is considered activated (avoids noisy warnings).
- Coverage: kettle-soup-cover integrates SimpleCov; .simplecov is invoked from spec_helper when enabled by Kettle::Soup::Cover::DO_COV, which is controlled by K_SOUP_COV_DO being set to true / false.
- RSpec.describe usage:
- Use `describe "#<method_name>"` to contain a block of specs that test instance method behavior.
- Use `describe "::<method_name>"` to contain a block of specs that test class method behavior.
- Do not use `describe ".<method_name>"` because the dot is ambiguous w.r.t instance vs. class methods.
- Do not use `describe ".<method_name>"` because the dot is ambiguous w.r.t instance vs. class methods.
- When adding new code or modifying existing code always add tests to cover the updated behavior, including branches, and different types of expected and unexpected inputs.
- Additional test utilities:
- rspec-stubbed_env: Use stub_env to control ENV safely within examples.
Expand Down Expand Up @@ -94,7 +93,9 @@ This document captures project-specific knowledge to streamline setup, testing,
include_context 'with stubbed env'
- in a before hook, or in an example:
stub_env("FLOSS_FUNDING_MY_NS" => "Free-as-in-beer")

# example code continues

- If your spec needs to assert on console output, tag it with :check_output. By default, STDOUT is silenced.
- Use Timecop for deterministic time-sensitive behavior as needed (require config/timecop is already done by spec_helper).

Expand Down
Loading
Loading