kettle-jem 7.0.0 → 7.1.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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +1505 -0
- data/LICENSE.md +13 -0
- data/README.md +794 -0
- data/exe/kettle-jem +20 -0
- data/lib/kettle/jem/cli.rb +334 -0
- data/lib/kettle/jem/license_txt_migrator.rb +33 -0
- data/lib/kettle/jem/rakelib/install.rake +10 -0
- data/lib/kettle/jem/rakelib/prepare.rake +10 -0
- data/lib/kettle/jem/rakelib/selftest.rake +10 -0
- data/lib/kettle/jem/rakelib/template.rake +10 -0
- data/lib/kettle/jem/tasks/install_task.rb +2178 -0
- data/lib/kettle/jem/tasks/prepare_task.rb +274 -0
- data/lib/kettle/jem/tasks/self_test_task.rb +256 -0
- data/lib/kettle/jem/tasks/template_task.rb +124 -0
- data/lib/kettle/jem/tasks.rb +6 -0
- data/lib/kettle/jem/templates/.aiignore.example +19 -0
- data/lib/kettle/jem/templates/.config/mise/env.sh +26 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/devcontainer-feature.json.example +9 -0
- data/lib/kettle/jem/templates/.devcontainer/apt-install/install.sh.example +19 -0
- data/lib/kettle/jem/templates/.devcontainer/devcontainer.json.example +27 -0
- data/lib/kettle/jem/templates/.devcontainer/scripts/setup-tree-sitter.sh.example +210 -0
- data/lib/kettle/jem/templates/.env.local.example +67 -0
- data/lib/kettle/jem/templates/.envrc.example +4 -0
- data/lib/kettle/jem/templates/.envrc.no-osc.example +4 -0
- data/lib/kettle/jem/templates/.gemrc.example +1 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-msg.example +60 -0
- data/lib/kettle/jem/templates/.git-hooks/commit-subjects-goalie.txt.example +8 -0
- data/lib/kettle/jem/templates/.git-hooks/footer-template.erb.txt.example +16 -0
- data/lib/kettle/jem/templates/.git-hooks/prepare-commit-msg.example +9 -0
- data/lib/kettle/jem/templates/.github/.codecov.yml.example +14 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.example +10 -0
- data/lib/kettle/jem/templates/.github/FUNDING.yml.no-osc.example +10 -0
- data/lib/kettle/jem/templates/.github/copilot_instructions.md.example +1 -0
- data/lib/kettle/jem/templates/.github/dependabot.yml.example +13 -0
- data/lib/kettle/jem/templates/.github/workflows/auto-assign.yml.example +21 -0
- data/lib/kettle/jem/templates/.github/workflows/coverage.yml.example +102 -0
- data/lib/kettle/jem/templates/.github/workflows/current.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/dep-heads.yml.example +249 -0
- data/lib/kettle/jem/templates/.github/workflows/dependency-review.yml.example +22 -0
- data/lib/kettle/jem/templates/.github/workflows/discord-notifier.yml.example +39 -0
- data/lib/kettle/jem/templates/.github/workflows/framework-ci.yml.example +81 -0
- data/lib/kettle/jem/templates/.github/workflows/heads.yml.example +212 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-10.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.1.yml.example +90 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.2.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.3.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby-9.4.yml.example +95 -0
- data/lib/kettle/jem/templates/.github/workflows/jruby.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/license-eye.yml.example +43 -0
- data/lib/kettle/jem/templates/.github/workflows/locked_deps.yml.example +89 -0
- data/lib/kettle/jem/templates/.github/workflows/opencollective.yml.example +44 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.4.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.5.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.6.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-2.7.yml.example +84 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.0.yml.example +85 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.1.yml.example +83 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.2.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.3.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/ruby-3.4.yml.example +80 -0
- data/lib/kettle/jem/templates/.github/workflows/style.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/templating.yml.example +86 -0
- data/lib/kettle/jem/templates/.github/workflows/truffle.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-22.3.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.0.yml.example +92 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-23.1.yml.example +78 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-24.2.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-25.0.yml.example +96 -0
- data/lib/kettle/jem/templates/.github/workflows/truffleruby-33.0.yml.example +91 -0
- data/lib/kettle/jem/templates/.github/workflows/unlocked_deps.yml.example +93 -0
- data/lib/kettle/jem/templates/.gitignore.example +53 -0
- data/lib/kettle/jem/templates/.gitlab-ci.yml.example +134 -0
- data/lib/kettle/jem/templates/.idea/.gitignore.example +44 -0
- data/lib/kettle/jem/templates/.licenserc.yaml.example +8 -0
- data/lib/kettle/jem/templates/.opencollective.yml.example +3 -0
- data/lib/kettle/jem/templates/.qlty/qlty.toml.example +79 -0
- data/lib/kettle/jem/templates/.rspec.example +10 -0
- data/lib/kettle/jem/templates/.rubocop.example +1 -0
- data/lib/kettle/jem/templates/.rubocop.yml.example +47 -0
- data/lib/kettle/jem/templates/.rubocop_rspec.yml.example +55 -0
- data/lib/kettle/jem/templates/.simplecov.example +18 -0
- data/lib/kettle/jem/templates/.structuredmerge/git-drivers.toml.example +86 -0
- data/lib/kettle/jem/templates/.structuredmerge/kettle-jem.yml.example +519 -0
- data/lib/kettle/jem/templates/.yard-lint.yml.example +54 -0
- data/lib/kettle/jem/templates/.yardignore.example +13 -0
- data/lib/kettle/jem/templates/.yardopts.example +14 -0
- data/lib/kettle/jem/templates/AGENTS.md.example +283 -0
- data/lib/kettle/jem/templates/AGPL-3.0-only.md.example +235 -0
- data/lib/kettle/jem/templates/Appraisal.root.gemfile.example +26 -0
- data/lib/kettle/jem/templates/Appraisals.example +150 -0
- data/lib/kettle/jem/templates/Big-Time-Public-License.md.example +99 -0
- data/lib/kettle/jem/templates/CHANGELOG.md.example +33 -0
- data/lib/kettle/jem/templates/CHANGELOG.transfer.md +109 -0
- data/lib/kettle/jem/templates/CITATION.cff.example +20 -0
- data/lib/kettle/jem/templates/CODE_OF_CONDUCT.md.example +134 -0
- data/lib/kettle/jem/templates/CONTRIBUTING.md.example +292 -0
- data/lib/kettle/jem/templates/FUNDING.md.example +74 -0
- data/lib/kettle/jem/templates/FUNDING.md.no-osc.example +63 -0
- data/lib/kettle/jem/templates/Gemfile.example +52 -0
- data/lib/kettle/jem/templates/IRP.md.example +34 -0
- data/lib/kettle/jem/templates/LICENSE.md.example +3 -0
- data/lib/kettle/jem/templates/MIT.md.example +21 -0
- data/lib/kettle/jem/templates/PolyForm-Noncommercial-1.0.0.md.example +131 -0
- data/lib/kettle/jem/templates/PolyForm-Small-Business-1.0.0.md.example +121 -0
- data/lib/kettle/jem/templates/README.md.example +544 -0
- data/lib/kettle/jem/templates/REEK +0 -0
- data/lib/kettle/jem/templates/RUBOCOP.md.example +78 -0
- data/lib/kettle/jem/templates/Rakefile.example +163 -0
- data/lib/kettle/jem/templates/SECURITY.md.example +21 -0
- data/lib/kettle/jem/templates/bin/setup.example +36 -0
- data/lib/kettle/jem/templates/certs/pboling.pem.example +27 -0
- data/lib/kettle/jem/templates/gem.gemspec.example +161 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/r4/v0.5.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/benchmark/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/r4/v0.5.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/cgi/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/changelog.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/coverage_local.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/debug.gemfile.example +22 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +24 -0
- data/lib/kettle/jem/templates/gemfiles/modular/documentation_local.gemfile.example +20 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2/v3.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.3/default.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r2.6/v2.2.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r3.1/v4.0.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/r4/v5.0.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/erb/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_22_3.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_0.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/json/truffleruby_23_1.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r2.4/v0.1.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r3/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/r4/v0.3.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/mutex_m/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/optional.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.4/recording.gemfile.example +18 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r2.5/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r3/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/r4/recording.gemfile.example +16 -0
- data/lib/kettle/jem/templates/gemfiles/modular/recording/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/rspec.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/runtime_heads.gemfile.example +14 -0
- data/lib/kettle/jem/templates/gemfiles/modular/shunted.gemfile.example +21 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r2.4/v0.0.2.gemfile.example +4 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r3/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/r4/v3.0.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/stringio/vHEAD.gemfile.example +2 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style.gemfile.example +33 -0
- data/lib/kettle/jem/templates/gemfiles/modular/style_local.gemfile.example +26 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +34 -0
- data/lib/kettle/jem/templates/gemfiles/modular/templating_local.gemfile.example +73 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/r4/v1.9.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/webrick/vHEAD.gemfile.example +1 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.4/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r2.6/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3/libs.gemfile.example +3 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r3.1/libs.gemfile.example +5 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/r4/libs.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs/vHEAD.gemfile.example +6 -0
- data/lib/kettle/jem/templates/gemfiles/modular/x_std_libs.gemfile.example +12 -0
- data/lib/kettle/jem/templates/lib/gem/version.rb.example +1 -0
- data/lib/kettle/jem/templates/lib/gem/version_gem.rb.example +1 -0
- data/lib/kettle/jem/templates/mise.toml.example +25 -0
- data/lib/kettle/jem/templates/mise.toml.no-osc.example +25 -0
- data/lib/kettle/jem/templates/parsers.toml.example +19 -0
- data/lib/kettle/jem/templates/readme/partials/basic_usage.md.example +28 -0
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +112 -0
- data/lib/kettle/jem/templates/readme/partials/synopsis.md.example +3 -0
- data/lib/kettle/jem/templates/shim/.github/workflows/current.yml.example +40 -0
- data/lib/kettle/jem/templates/shim/.rspec.example +5 -0
- data/lib/kettle/jem/templates/shim/.structuredmerge/kettle-jem.yml.example +28 -0
- data/lib/kettle/jem/templates/shim/CHANGELOG.md.example +9 -0
- data/lib/kettle/jem/templates/shim/Gemfile.example +14 -0
- data/lib/kettle/jem/templates/shim/README.md.example +25 -0
- data/lib/kettle/jem/templates/shim/Rakefile.example +8 -0
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +45 -0
- data/lib/kettle/jem/templates/shim/lib/compat_require.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/entrypoint.rb.example +3 -0
- data/lib/kettle/jem/templates/shim/lib/version.rb.example +1 -0
- data/lib/kettle/jem/templates/shim/spec/shim_spec.rb.example +15 -0
- data/lib/kettle/jem/templates/shim/spec/spec_helper.rb.example +23 -0
- data/lib/kettle/jem/templates/sig/gem.rbs.example +1 -0
- data/lib/kettle/jem/templates/spec/README.md.example +28 -0
- data/lib/kettle/jem/templates/spec/spec_helper.rb.example +39 -0
- data/lib/kettle/jem/version.rb +5 -3
- data/lib/kettle/jem/version_gem.rb +8 -0
- data/lib/kettle/jem.rb +18540 -1517
- data/lib/kettle-jem.rb +2 -1
- data/sig/kettle/jem.rbs +8 -0
- data.tar.gz.sig +0 -0
- metadata +870 -32
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# {KJ|FREEZE_TOKEN}:freeze
|
|
4
|
+
# To retain chunks of comments & code during kettle-jem templating:
|
|
5
|
+
# Wrap custom sections with freeze markers (e.g., as above and below this comment chunk).
|
|
6
|
+
# kettle-jem will then preserve content between those markers across template runs.
|
|
7
|
+
# {KJ|FREEZE_TOKEN}:unfreeze
|
|
8
|
+
|
|
9
|
+
# {KJ|GEM_NAME} Rakefile v{KJ|KETTLE_JEM_VERSION} - {KJ|TEMPLATE_RUN_DATE}
|
|
10
|
+
# Ruby 2.3 (Safe Navigation) or higher required
|
|
11
|
+
#
|
|
12
|
+
# See LICENSE.md for license information.
|
|
13
|
+
#
|
|
14
|
+
# Copyright (c) {KJ|TEMPLATE_RUN_YEAR} {KJ|AUTHOR:NAME} ({KJ|AUTHOR:DOMAIN})
|
|
15
|
+
#
|
|
16
|
+
# Expected to work in any project that uses Bundler.
|
|
17
|
+
#
|
|
18
|
+
# Sets up tasks for appraisal2, floss_funding, kettle-jem, kettle-dev, rspec, minitest, rubocop_gradual, reek, yard, and stone_checksums.
|
|
19
|
+
#
|
|
20
|
+
# rake appraisal:install # Install Appraisal gemfiles (initial setup...
|
|
21
|
+
# rake appraisal:reset # Delete Appraisal lockfiles (gemfiles/*.gemfile.lock)
|
|
22
|
+
# rake appraisal:generate # Generate Appraisal gemfiles without resolving...
|
|
23
|
+
# rake appraisal:update # Generate and update Appraisal gemfiles
|
|
24
|
+
# rake bench # Run all benchmarks (alias for bench:run)
|
|
25
|
+
# rake bench:list # List available benchmark scripts
|
|
26
|
+
# rake bench:run # Run all benchmark scripts (skips on CI)
|
|
27
|
+
# rake build:generate_checksums # Generate both SHA256 & SHA512 checksums i...
|
|
28
|
+
# rake bundle:audit:check # Checks the Gemfile.lock for insecure depe...
|
|
29
|
+
# rake bundle:audit:update # Updates the bundler-audit vulnerability d...
|
|
30
|
+
# rake ci:act[opt] # Run 'act' with a selected workflow
|
|
31
|
+
# rake coverage # Run specs w/ coverage and open results in...
|
|
32
|
+
# rake default # Default tasks aggregator
|
|
33
|
+
# rake install # Build and install {KJ|GEM_NAME}-1.0.0.gem in...
|
|
34
|
+
# rake install:local # Build and install {KJ|GEM_NAME}-1.0.0.gem in...
|
|
35
|
+
# rake kettle:jem:install # Internal target used by `kettle-jem install`
|
|
36
|
+
# rake kettle:jem:selftest # Self-test: template {KJ|GEM_NAME} against itse...
|
|
37
|
+
# rake kettle:jem:template # Internal target used by scoped `kettle-jem template --only`
|
|
38
|
+
# rake reek # Check for code smells
|
|
39
|
+
# rake reek:update # Run reek and store the output into the RE...
|
|
40
|
+
# rake release[remote] # Create tag v1.0.0 and build and push kett...
|
|
41
|
+
# rake rubocop_gradual # Run RuboCop Gradual
|
|
42
|
+
# rake rubocop_gradual:autocorrect # Run RuboCop Gradual with autocorrect (onl...
|
|
43
|
+
# rake rubocop_gradual:autocorrect_all # Run RuboCop Gradual with autocorrect (saf...
|
|
44
|
+
# rake rubocop_gradual:check # Run RuboCop Gradual to check the lock file
|
|
45
|
+
# rake rubocop_gradual:force_update # Run RuboCop Gradual to force update the l...
|
|
46
|
+
# rake rubocop_gradual_debug # Run RuboCop Gradual
|
|
47
|
+
# rake rubocop_gradual_debug:autocorrect # Run RuboCop Gradual with autocorrect (onl...
|
|
48
|
+
# rake rubocop_gradual_debug:autocorrect_all # Run RuboCop Gradual with autocorrect (saf...
|
|
49
|
+
# rake rubocop_gradual_debug:check # Run RuboCop Gradual to check the lock file
|
|
50
|
+
# rake rubocop_gradual_debug:force_update # Run RuboCop Gradual to force update the l...
|
|
51
|
+
# rake spec # Run RSpec code examples
|
|
52
|
+
# rake test # Run tests
|
|
53
|
+
# rake yard # Generate YARD Documentation
|
|
54
|
+
# rake yard:lint # Lint YARD Documentation
|
|
55
|
+
#
|
|
56
|
+
|
|
57
|
+
# simplecov:disable
|
|
58
|
+
require "bundler/gem_tasks" if !Dir[File.join(__dir__, "*.gemspec")].empty?
|
|
59
|
+
# simplecov:enable
|
|
60
|
+
|
|
61
|
+
# Define a base default task early so other files can enhance it.
|
|
62
|
+
desc "Default tasks aggregator"
|
|
63
|
+
task :default do
|
|
64
|
+
puts "Default task complete."
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# simplecov:disable
|
|
68
|
+
### MONOREPO FAMILY TASKS
|
|
69
|
+
if Dir.exist?(File.join(__dir__, "gems"))
|
|
70
|
+
def family_gem_dirs
|
|
71
|
+
{KJ|RAKE:FAMILY_GEM_DIRS_ENUMERATION}
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def run_kettle_family(*args)
|
|
75
|
+
sh("bundle", "exec", "kettle-family", *args)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
namespace :family do
|
|
79
|
+
desc "List released Ruby subgems"
|
|
80
|
+
task :list do
|
|
81
|
+
family_gem_dirs.each { |path| puts File.basename(path) }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
desc "Run release readiness checks for the Ruby gem family"
|
|
85
|
+
task :readiness do
|
|
86
|
+
run_kettle_family("check")
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
desc "Run tests for the Ruby gem family"
|
|
90
|
+
task :test do
|
|
91
|
+
run_kettle_family("test", "--execute")
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
desc "Run lint for the Ruby gem family"
|
|
95
|
+
task :lint do
|
|
96
|
+
run_kettle_family("lint", "--execute")
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
desc "Generate YARD docs for the Ruby gem family"
|
|
100
|
+
task :docs do
|
|
101
|
+
run_kettle_family("docs", "--execute")
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
desc "Report release state for the Ruby gem family"
|
|
105
|
+
task :release_state do
|
|
106
|
+
run_kettle_family("release-state")
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
desc "Run the Ruby gem family release planner"
|
|
110
|
+
task :release do
|
|
111
|
+
run_kettle_family("release")
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
desc "Execute the Ruby gem family release"
|
|
115
|
+
task :release_execute do
|
|
116
|
+
run_kettle_family("release", "--execute")
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
# simplecov:enable
|
|
121
|
+
|
|
122
|
+
# External gems that define tasks - add here!
|
|
123
|
+
begin
|
|
124
|
+
require "kettle/dev"
|
|
125
|
+
Kettle::Dev.install_tasks unless Kettle::Dev::RUNNING_AS == "rake"
|
|
126
|
+
rescue LoadError
|
|
127
|
+
warn("NOTE: kettle-dev isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
### TEMPLATING TASKS
|
|
131
|
+
# These tasks are installed for the `kettle-jem` executable. Run full templating
|
|
132
|
+
# through `kettle-jem install`; use `kettle-jem template --only PATH` only for
|
|
133
|
+
# scoped file updates. The executable prepares the environment and then
|
|
134
|
+
# delegates here when rake orchestration is needed.
|
|
135
|
+
kettle_jem_selftest_unavailable_note = nil
|
|
136
|
+
begin
|
|
137
|
+
require "kettle/jem"
|
|
138
|
+
if Kettle::Jem.respond_to?(:install_tasks)
|
|
139
|
+
Kettle::Jem.install_tasks
|
|
140
|
+
else
|
|
141
|
+
kettle_jem_selftest_unavailable_note = "NOTE: kettle-jem #{Kettle::Jem::Version::VERSION} does not provide rake tasks in this environment"
|
|
142
|
+
end
|
|
143
|
+
rescue LoadError
|
|
144
|
+
kettle_jem_selftest_unavailable_note = "NOTE: kettle-jem isn't installed, or is disabled for #{RUBY_VERSION} in the current environment"
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
if kettle_jem_selftest_unavailable_note
|
|
148
|
+
desc("(stub) kettle:jem:selftest is unavailable")
|
|
149
|
+
task("kettle:jem:selftest") do
|
|
150
|
+
warn(kettle_jem_selftest_unavailable_note)
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
### RELEASE TASKS
|
|
155
|
+
# Setup stone_checksums
|
|
156
|
+
begin
|
|
157
|
+
require "stone_checksums"
|
|
158
|
+
rescue LoadError
|
|
159
|
+
desc("(stub) build:generate_checksums is unavailable")
|
|
160
|
+
task("build:generate_checksums") do
|
|
161
|
+
warn("NOTE: stone_checksums isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
162
|
+
end
|
|
163
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
| Version | Supported |
|
|
6
|
+
|----------|-----------|
|
|
7
|
+
| {KJ|SECURITY:SUPPORTED_VERSION} | ✅ |
|
|
8
|
+
|
|
9
|
+
## Security contact information
|
|
10
|
+
|
|
11
|
+
To report a security vulnerability, please use the
|
|
12
|
+
[Tidelift security contact](https://tidelift.com/security).
|
|
13
|
+
Tidelift will coordinate the fix and disclosure.
|
|
14
|
+
|
|
15
|
+
## Additional Support
|
|
16
|
+
|
|
17
|
+
If you are interested in support for versions older than the latest release,
|
|
18
|
+
please consider sponsoring the project / maintainer @ https://liberapay.com/{KJ|FUNDING:LIBERAPAY}/donate,
|
|
19
|
+
or find other sponsorship links in the [README].
|
|
20
|
+
|
|
21
|
+
[README]: README.md
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
IFS=$'\n\t'
|
|
4
|
+
|
|
5
|
+
quiet=false
|
|
6
|
+
bundle_args=(install)
|
|
7
|
+
|
|
8
|
+
for arg in "$@"; do
|
|
9
|
+
case "$arg" in
|
|
10
|
+
--quiet)
|
|
11
|
+
quiet=true
|
|
12
|
+
bundle_args+=(--quiet)
|
|
13
|
+
;;
|
|
14
|
+
-h|--help)
|
|
15
|
+
cat <<'USAGE'
|
|
16
|
+
Usage: bin/setup [--quiet]
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
--quiet Pass --quiet to bundle install and suppress shell tracing.
|
|
20
|
+
USAGE
|
|
21
|
+
exit 0
|
|
22
|
+
;;
|
|
23
|
+
*)
|
|
24
|
+
printf 'bin/setup: unknown option: %s\n' "$arg" >&2
|
|
25
|
+
exit 2
|
|
26
|
+
;;
|
|
27
|
+
esac
|
|
28
|
+
done
|
|
29
|
+
|
|
30
|
+
if [ "$quiet" != "true" ]; then
|
|
31
|
+
set -vx
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
bundle "${bundle_args[@]}"
|
|
35
|
+
|
|
36
|
+
# Do any other automated setup that you need to do here
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
|
|
3
|
+
ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
|
4
|
+
A2NvbTAeFw0yNTA1MDQxNTMzMDlaFw00NTA0MjkxNTMzMDlaMEMxFTATBgNVBAMM
|
|
5
|
+
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
|
6
|
+
LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAruUoo0WA
|
|
7
|
+
uoNuq6puKWYeRYiZekz/nsDeK5x/0IEirzcCEvaHr3Bmz7rjo1I6On3gGKmiZs61
|
|
8
|
+
LRmQ3oxy77ydmkGTXBjruJB+pQEn7UfLSgQ0xa1/X3kdBZt6RmabFlBxnHkoaGY5
|
|
9
|
+
mZuZ5+Z7walmv6sFD9ajhzj+oIgwWfnEHkXYTR8I6VLN7MRRKGMPoZ/yvOmxb2DN
|
|
10
|
+
coEEHWKO9CvgYpW7asIihl/9GMpKiRkcYPm9dGQzZc6uTwom1COfW0+ZOFrDVBuV
|
|
11
|
+
FMQRPswZcY4Wlq0uEBLPU7hxnCL9nKK6Y9IhdDcz1mY6HZ91WImNslOSI0S8hRpj
|
|
12
|
+
yGOWxQIhBT3fqCBlRIqFQBudrnD9jSNpSGsFvbEijd5ns7Z9ZMehXkXDycpGAUj1
|
|
13
|
+
to/5cuTWWw1JqUWrKJYoifnVhtE1o1DZ+LkPtWxHtz5kjDG/zR3MG0Ula0UOavlD
|
|
14
|
+
qbnbcXPBnwXtTFeZ3C+yrWpE4pGnl3yGkZj9SMTlo9qnTMiPmuWKQDatAgMBAAGj
|
|
15
|
+
fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQE8uWvNbPVNRXZ
|
|
16
|
+
HlgPbc2PCzC4bjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
|
|
17
|
+
A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
|
|
18
|
+
ggGBAJbnUwfJQFPkBgH9cL7hoBfRtmWiCvdqdjeTmi04u8zVNCUox0A4gT982DE9
|
|
19
|
+
wmuN12LpdajxZONqbXuzZvc+nb0StFwmFYZG6iDwaf4BPywm2e/Vmq0YG45vZXGR
|
|
20
|
+
L8yMDSK1cQXjmA+ZBKOHKWavxP6Vp7lWvjAhz8RFwqF9GuNIdhv9NpnCAWcMZtpm
|
|
21
|
+
GUPyIWw/Cw/2wZp74QzZj6Npx+LdXoLTF1HMSJXZ7/pkxLCsB8m4EFVdb/IrW/0k
|
|
22
|
+
kNSfjtAfBHO8nLGuqQZVH9IBD1i9K6aSs7pT6TW8itXUIlkIUI2tg5YzW6OFfPzq
|
|
23
|
+
QekSkX3lZfY+HTSp/o+YvKkqWLUV7PQ7xh1ZYDtocpaHwgxe/j3bBqHE+CUPH2vA
|
|
24
|
+
0V/FwdTRWcwsjVoOJTrYcff8pBZ8r2MvtAc54xfnnhGFzeRHfcltobgFxkAXdE6p
|
|
25
|
+
DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
|
|
26
|
+
L9nRqA==
|
|
27
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# {KJ|FREEZE_TOKEN}:freeze
|
|
4
|
+
# To retain chunks of comments & code during kettle-jem templating:
|
|
5
|
+
# Wrap custom sections with freeze markers (e.g., as above and below this comment chunk).
|
|
6
|
+
# kettle-jem will then preserve content between those markers across template runs.
|
|
7
|
+
# {KJ|FREEZE_TOKEN}:unfreeze
|
|
8
|
+
|
|
9
|
+
gem_version =
|
|
10
|
+
if Gem.ruby_version >= Gem::Version.new("3.1")
|
|
11
|
+
# Loading Version into an anonymous module allows version.rb to get code coverage from SimpleCov!
|
|
12
|
+
# See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-2630782358
|
|
13
|
+
# See: https://github.com/panorama-ed/memo_wise/pull/397
|
|
14
|
+
Module.new.tap { |mod| Kernel.load("#{__dir__}/lib/{KJ|GEM_NAME_PATH}/version.rb", mod) }::{KJ|NAMESPACE}::Version::VERSION
|
|
15
|
+
else
|
|
16
|
+
require_relative "lib/{KJ|GEM_NAME_PATH}/version"
|
|
17
|
+
{KJ|NAMESPACE}::Version::VERSION
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
Gem::Specification.new do |spec|
|
|
21
|
+
spec.name = "{KJ|GEM_NAME}"
|
|
22
|
+
spec.version = gem_version
|
|
23
|
+
spec.authors = {KJ|AUTHOR:NAMES}
|
|
24
|
+
spec.email = ["{KJ|AUTHOR:EMAIL}"]
|
|
25
|
+
|
|
26
|
+
spec.summary = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_SUMMARY}"
|
|
27
|
+
spec.description = "{KJ|PROJECT_EMOJI} {KJ|GEMSPEC_PACKAGE_DESCRIPTION}"
|
|
28
|
+
spec.homepage = "{KJ|README:GH_REPOSITORY_URL}"
|
|
29
|
+
spec.licenses = ["MIT"]
|
|
30
|
+
spec.required_ruby_version = ">= 2.3.0"
|
|
31
|
+
|
|
32
|
+
# Linux distros often package gems and securely certify them independent
|
|
33
|
+
# of the official RubyGem certification process. Allowed via ENV["SKIP_GEM_SIGNING"]
|
|
34
|
+
# Ref: https://gitlab.com/ruby-oauth/version_gem/-/issues/3
|
|
35
|
+
# Hence, only enable signing if `SKIP_GEM_SIGNING` is not set in ENV.
|
|
36
|
+
# See CONTRIBUTING.md
|
|
37
|
+
unless ENV.include?("SKIP_GEM_SIGNING")
|
|
38
|
+
user_cert = "certs/#{ENV.fetch("GEM_CERT_USER", ENV["USER"])}.pem"
|
|
39
|
+
cert_file_path = File.join(__dir__, user_cert)
|
|
40
|
+
cert_chain = cert_file_path.split(",")
|
|
41
|
+
cert_chain.select! { |fp| File.exist?(fp) }
|
|
42
|
+
if cert_file_path && cert_chain.any?
|
|
43
|
+
spec.cert_chain = cert_chain
|
|
44
|
+
if $PROGRAM_NAME.end_with?("gem") && ARGV[0] == "build"
|
|
45
|
+
spec.signing_key = File.join(Gem.user_home, ".ssh", "gem-private_key.pem")
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
spec.metadata["homepage_uri"] = "{KJ|HOMEPAGE_URI}"
|
|
51
|
+
spec.metadata["source_code_uri"] = "#{spec.homepage}/tree/v#{spec.version}"
|
|
52
|
+
spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/v#{spec.version}/CHANGELOG.md"
|
|
53
|
+
spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
|
|
54
|
+
spec.metadata["documentation_uri"] = "https://www.rubydoc.info/gems/#{spec.name}/#{spec.version}"
|
|
55
|
+
spec.metadata["funding_uri"] = "https://github.com/sponsors/{KJ|GH:USER}"
|
|
56
|
+
spec.metadata["wiki_uri"] = "#{spec.homepage}/wiki"
|
|
57
|
+
spec.metadata["news_uri"] = "https://www.railsbling.com/tags/#{spec.name}"
|
|
58
|
+
spec.metadata["discord_uri"] = "https://discord.gg/3qme4XHNKN"
|
|
59
|
+
spec.metadata["mailing_list_uri"] = "{KJ|RUBYFORUM:URL}"
|
|
60
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
61
|
+
|
|
62
|
+
gemspec_root = __dir__
|
|
63
|
+
relative_package_path = lambda do |path|
|
|
64
|
+
{KJ|GEMSPEC:RELATIVE_PACKAGE_PATH_BODY}
|
|
65
|
+
end
|
|
66
|
+
enumerate_package_glob = lambda do |glob|
|
|
67
|
+
{KJ|GEMSPEC:ENUMERATE_PACKAGE_GLOB_BODY}
|
|
68
|
+
end
|
|
69
|
+
enumerate_package_files = lambda do |root|
|
|
70
|
+
enumerate_package_glob.call(File.join(gemspec_root, root, "**", "*"))
|
|
71
|
+
end
|
|
72
|
+
package_metadata_files = %w[
|
|
73
|
+
CHANGELOG.md
|
|
74
|
+
LICENSE.md
|
|
75
|
+
README.md
|
|
76
|
+
sig/{KJ|GEM_NAME_PATH}.rbs
|
|
77
|
+
].select { |path| File.exist?(File.join(gemspec_root, path)) }
|
|
78
|
+
|
|
79
|
+
# Specify which files are part of the released package.
|
|
80
|
+
spec.files = [
|
|
81
|
+
# Root package metadata
|
|
82
|
+
*package_metadata_files,
|
|
83
|
+
# Code / tasks / data (NOTE: exe/ is specified via spec.bindir and spec.executables below)
|
|
84
|
+
*enumerate_package_files.call("lib"),
|
|
85
|
+
# Executables and executable support scripts
|
|
86
|
+
*enumerate_package_files.call("exe"){KJ|GEMSPEC:PACKAGE_FILE_INCLUDES}{KJ|RUBY_STYLE:TRAILING_ARRAY_COMMA}
|
|
87
|
+
]
|
|
88
|
+
spec.rdoc_options += [
|
|
89
|
+
"--title",
|
|
90
|
+
"#{spec.name} - #{spec.summary}",
|
|
91
|
+
"--main",
|
|
92
|
+
"README.md",
|
|
93
|
+
"--exclude",
|
|
94
|
+
"^sig/",
|
|
95
|
+
"--line-numbers",
|
|
96
|
+
"--inline-source",
|
|
97
|
+
"--quiet"{KJ|RUBY_STYLE:TRAILING_ARRAY_COMMA}
|
|
98
|
+
]
|
|
99
|
+
spec.bindir = "exe"
|
|
100
|
+
# Listed files are the relative paths from bindir above.
|
|
101
|
+
spec.executables = []
|
|
102
|
+
spec.require_paths = ["lib"]
|
|
103
|
+
|
|
104
|
+
# Utilities
|
|
105
|
+
spec.add_dependency("version_gem", "~> 1.1", ">= 1.1.15") # ruby >= 2.2.0
|
|
106
|
+
|
|
107
|
+
# NOTE: It is preferable to list development dependencies in the gemspec due to increased
|
|
108
|
+
# visibility and discoverability.
|
|
109
|
+
# However, development dependencies in gemspec will install on
|
|
110
|
+
# all versions of Ruby that will run in CI.
|
|
111
|
+
# This gem, and its gemspec runtime dependencies, will install on Ruby down to {KJ|MIN_RUBY}.
|
|
112
|
+
# This gem, and its gemspec development dependencies, will install on Ruby down to {KJ|MIN_TEST_RUBY}.
|
|
113
|
+
# Thus, dev dependencies in gemspec must have
|
|
114
|
+
#
|
|
115
|
+
# required_ruby_version ">= {KJ|MIN_TEST_RUBY}" (or lower)
|
|
116
|
+
#
|
|
117
|
+
# Development dependencies that require strictly newer Ruby versions should be in a "gemfile",
|
|
118
|
+
# and preferably a modular one (see gemfiles/modular/*.gemfile).
|
|
119
|
+
|
|
120
|
+
# Dev, Test, & Release Tasks
|
|
121
|
+
spec.add_development_dependency("kettle-dev", "~> 3.0", ">= 3.0.0") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
122
|
+
|
|
123
|
+
# Security
|
|
124
|
+
spec.add_development_dependency("bundler-audit", "~> 0.9.3") # ruby >= 2.0.0
|
|
125
|
+
|
|
126
|
+
# Tasks
|
|
127
|
+
spec.add_development_dependency("rake", "~> 13.0") # ruby >= 2.2.0
|
|
128
|
+
|
|
129
|
+
# Debugging
|
|
130
|
+
spec.add_development_dependency("require_bench", "~> 1.0", ">= 1.0.4") # ruby >= 2.2.0
|
|
131
|
+
|
|
132
|
+
# Testing
|
|
133
|
+
# Loads version files in anonymous namespaces for coverage without constant redefinition warnings.
|
|
134
|
+
spec.add_development_dependency("anonymous_loader", "~> 0.1", ">= 0.1.3") # ruby >= 2.2.0
|
|
135
|
+
spec.add_development_dependency("appraisal2", "~> 3.2", ">= 3.2.2") # ruby >= 1.8.7, for testing against multiple versions of dependencies
|
|
136
|
+
spec.add_development_dependency("kettle-test", "~> 2.0", ">= 2.0.19") # ruby >= {KJ|MIN_TEST_RUBY}
|
|
137
|
+
spec.add_development_dependency("turbo_tests2", "~> 3.2", ">= 3.2.5") # ruby >= 2.4.0, default kettle-test runner
|
|
138
|
+
|
|
139
|
+
# Releasing
|
|
140
|
+
spec.add_development_dependency("ruby-progressbar", "~> 1.13") # ruby >= 0
|
|
141
|
+
spec.add_development_dependency("stone_checksums", "~> 1.0", ">= 1.0.8") # ruby >= 2.2.0
|
|
142
|
+
|
|
143
|
+
# Git integration (optional)
|
|
144
|
+
# The 'git' gem is optional; {KJ|GEM_NAME} falls back to shelling out to `git` if it is not present.
|
|
145
|
+
# The current release of the git gem depends on activesupport, which makes it too heavy to depend on directly
|
|
146
|
+
# spec.add_dependency("git", ">= 1.19.1") # ruby >= 2.3
|
|
147
|
+
|
|
148
|
+
# Development tasks
|
|
149
|
+
# The cake is a lie. erb v2.2, the oldest release, was never compatible with Ruby 2.3.
|
|
150
|
+
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
|
151
|
+
# /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError)
|
|
152
|
+
# spec.add_development_dependency("erb", ">= 2.2") # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
|
|
153
|
+
spec.add_development_dependency("gitmoji-regex", "~> 2.0", ">= 2.0.11") # ruby >= 2.4
|
|
154
|
+
|
|
155
|
+
# HTTP recording for deterministic specs
|
|
156
|
+
# In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
|
|
157
|
+
# This is done in the "head" appraisal.
|
|
158
|
+
# See: https://github.com/vcr/vcr/issues/1057
|
|
159
|
+
# spec.add_development_dependency("vcr", ">= 4") # 6.0 claims to support ruby >= 2.3, but fails on ruby 2.4
|
|
160
|
+
# spec.add_development_dependency("webmock", ">= 3") # Last version to support ruby >= 2.3
|
|
161
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gem "cgi", "~> 0.5"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gem "cgi", ">= 0.5"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# We run code coverage on the latest version of Ruby only.
|
|
4
|
+
|
|
5
|
+
# Set KETTLE_DEV_DEV=true for local development with path-based dependencies.
|
|
6
|
+
# When false (default / CI), remote released gems are used.
|
|
7
|
+
if ENV.fetch("KETTLE_DEV_DEV", "false").casecmp("false").zero?
|
|
8
|
+
# Coverage (remote/released)
|
|
9
|
+
platform :mri do
|
|
10
|
+
gem "kettle-soup-cover", "~> 3.0", ">= 3.0.9", require: false
|
|
11
|
+
end
|
|
12
|
+
else
|
|
13
|
+
eval_gemfile "coverage_local.gemfile"
|
|
14
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Local path overrides for development.
|
|
4
|
+
# Loaded by the associated non-local gemfile when KETTLE_DEV_DEV != "false".
|
|
5
|
+
|
|
6
|
+
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
7
|
+
|
|
8
|
+
local_gems = %w[{KJ|KETTLE_DEV_LOCAL_GEMS}]
|
|
9
|
+
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
10
|
+
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
11
|
+
|
|
12
|
+
# export KETTLE_DEV_DEV=/path/to/my
|
|
13
|
+
platform :mri do
|
|
14
|
+
eval_nomono_gems(
|
|
15
|
+
gems: local_gems_to_eval,
|
|
16
|
+
prefix: "KETTLE_DEV",
|
|
17
|
+
path_env: "KETTLE_DEV_DEV",
|
|
18
|
+
vendored_gems_env: "VENDORED_GEMS",
|
|
19
|
+
vendor_gem_dir_env: "VENDOR_GEM_DIR",
|
|
20
|
+
debug_env: "KETTLE_DEV_DEBUG",
|
|
21
|
+
root: ["src", "my", "kettle-dev"]
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false") != 0
|
|
25
|
+
eval_nomono_gems(
|
|
26
|
+
gems: %w[turbo_tests2],
|
|
27
|
+
prefix: "GALTZO_FLOSS",
|
|
28
|
+
path_env: "GALTZO_FLOSS_DEV",
|
|
29
|
+
vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS",
|
|
30
|
+
vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR",
|
|
31
|
+
debug_env: "GALTZO_FLOSS_DEBUG"
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# To retain during kettle-jem templating:
|
|
4
|
+
# kettle-jem:freeze
|
|
5
|
+
# # ... your code
|
|
6
|
+
# kettle-jem:unfreeze
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
# Ex-Standard Library gems
|
|
10
|
+
# irb is included in main Gemfile (and unlocked_deps Appraisal), so it can't be included here.
|
|
11
|
+
# gem "irb", "~> 1.15", ">= 1.15.2" # removed from stdlib in 3.5
|
|
12
|
+
|
|
13
|
+
platform :mri do
|
|
14
|
+
# Debugging - Ensure ENV["DEBUG"] == "true" to use debuggers within spec suite
|
|
15
|
+
# Use binding.break, binding.b, or debugger in code
|
|
16
|
+
gem "debug", ">= 1.1" # ruby >= 2.7
|
|
17
|
+
|
|
18
|
+
# Dev Console - Binding.pry - Irb replacement
|
|
19
|
+
# gem "pry", "~> 0.14" # ruby >= 2.0
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
gem "gem_bench", "~> 2.0", ">= 2.0.5"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# To retain during kettle-jem templating:
|
|
4
|
+
# kettle-jem:freeze
|
|
5
|
+
# # ... your code
|
|
6
|
+
# kettle-jem:unfreeze
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
# Documentation
|
|
10
|
+
gem "kramdown", "~> 2.5", ">= 2.5.2", require: false # Ruby >= 2.5
|
|
11
|
+
gem "kramdown-parser-gfm", "~> 1.1", require: false # Ruby >= 2.3
|
|
12
|
+
gem "yaml-converter", "~> 0.2", ">= 0.2.5", require: false # Ruby >= 3.2
|
|
13
|
+
gem "yard", "~> 0.9", ">= 0.9.45", require: false
|
|
14
|
+
gem "yard-junk", "~> 0.1", ">= 0.1.0", require: false # Ruby >= 3.1
|
|
15
|
+
gem "yard-lint", "~> 1.10", ">= 1.10.3", require: false # Ruby >= 3.3
|
|
16
|
+
gem "yard-relative_markdown_links", "~> 0.6", require: false
|
|
17
|
+
|
|
18
|
+
if ENV.fetch("GALTZO_FLOSS_DEV", "false").casecmp("false").zero?
|
|
19
|
+
gem "yard-fence", "~> 0.9", ">= 0.9.8", require: false # Ruby >= 3.2
|
|
20
|
+
gem "yard-timekeeper", "~> 0.2", ">= 0.2.6", require: false
|
|
21
|
+
gem "yard-yaml", "~> 0.2", ">= 0.2.5", require: false
|
|
22
|
+
else
|
|
23
|
+
eval_gemfile "documentation_local.gemfile"
|
|
24
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Local path overrides for development.
|
|
4
|
+
# Loaded by the associated non-local gemfile when GALTZO_FLOSS_DEV != "false".
|
|
5
|
+
|
|
6
|
+
{KJ|LOCAL_GEMFILE_NOMONO_BOOTSTRAP}
|
|
7
|
+
|
|
8
|
+
local_gems = %w[yard-fence yard-timekeeper yard-yaml]
|
|
9
|
+
declared_gems = instance_variable_get(:@dependencies).to_a.map(&:name)
|
|
10
|
+
local_gems_to_eval = local_gems - %w[{KJ|PACKAGE_NAME}] - declared_gems
|
|
11
|
+
|
|
12
|
+
# export GALTZO_FLOSS_DEV=/path/to/galtzo-floss
|
|
13
|
+
eval_nomono_gems(
|
|
14
|
+
gems: local_gems_to_eval,
|
|
15
|
+
prefix: "GALTZO_FLOSS",
|
|
16
|
+
path_env: "GALTZO_FLOSS_DEV",
|
|
17
|
+
vendored_gems_env: "GALTZO_FLOSS_VENDORED_GEMS",
|
|
18
|
+
vendor_gem_dir_env: "GALTZO_FLOSS_VENDOR_GEM_DIR",
|
|
19
|
+
debug_env: "GALTZO_FLOSS_DEBUG"
|
|
20
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gem "erb", "~> 3.0" # ruby >= 2.7.0
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# The cake is a lie.
|
|
2
|
+
# erb v2.2, the oldest release, was never compatible with Ruby 2.3.
|
|
3
|
+
# In addition, erb does not follow SemVer, and old rubies get dropped in a patch.
|
|
4
|
+
# This means we have no choice but to use the erb that shipped with Ruby 2.3
|
|
5
|
+
# /opt/hostedtoolcache/Ruby/2.3.8/x64/lib/ruby/gems/2.3.0/gems/erb-2.2.2/lib/erb.rb:670:in `prepare_trim_mode': undefined method `match?' for "-":String (NoMethodError)
|
|
6
|
+
# gem "erb", ">= 2.2" # ruby >= 2.3.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gem "erb", "~> 6.0", ">= 6.0.7" # ruby >= 3.2.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gem "erb", "~> 6.0", ">= 6.0.7" # ruby >= 3.2.0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# To retain during kettle-jem templating:
|
|
4
|
+
# {KJ|FREEZE_TOKEN}:freeze
|
|
5
|
+
# # ... your code
|
|
6
|
+
# {KJ|FREEZE_TOKEN}:unfreeze
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
# Optional dependencies are not depended on directly, but may be used if present.
|
|
10
|
+
|
|
11
|
+
# Required for curated binstubs generated by kettle-jem install
|
|
12
|
+
gem "rbs", ">= 3.0", require: false # ruby >= 3.1
|
|
13
|
+
|
|
14
|
+
# Required for kettle-pre-release
|
|
15
|
+
# URL parsing with Unicode support (falls back to URI if not available)
|
|
16
|
+
gem "addressable", ">= 2.8", "< 3" # ruby >= 2.2
|