kettle-jem 7.1.3 → 7.1.5
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 +78 -1
- data/README.md +19 -7
- data/lib/kettle/jem/cli.rb +18 -7
- data/lib/kettle/jem/maintenance_changelog.rb +158 -0
- data/lib/kettle/jem/tasks/template_task.rb +1 -0
- data/lib/kettle/jem/templates/.gitignore.example +1 -1
- data/lib/kettle/jem/templates/CONTRIBUTING.md.example +9 -0
- data/lib/kettle/jem/templates/README.md.example +5 -1
- data/lib/kettle/jem/templates/gem.gemspec.example +4 -4
- data/lib/kettle/jem/templates/gemfiles/modular/documentation.gemfile.example +1 -1
- data/lib/kettle/jem/templates/gemfiles/modular/templating.gemfile.example +9 -8
- data/lib/kettle/jem/templates/readme/partials/configuration.md.example +13 -0
- data/lib/kettle/jem/templates/shim/gem.gemspec.example +2 -2
- data/lib/kettle/jem/version.rb +1 -1
- data/lib/kettle/jem.rb +190 -65
- data.tar.gz.sig +0 -0
- metadata +67 -46
- metadata.gz.sig +0 -0
data/lib/kettle/jem.rb
CHANGED
|
@@ -20,9 +20,11 @@ require "ast/crispr/markdown/markly"
|
|
|
20
20
|
require "kettle/ndjson"
|
|
21
21
|
require "rbs"
|
|
22
22
|
require "kettle/dev"
|
|
23
|
+
require "kettle/changelog"
|
|
23
24
|
require "kettle/rb/compat_matrix"
|
|
24
25
|
require_relative "jem/version"
|
|
25
26
|
require_relative "jem/license_txt_migrator"
|
|
27
|
+
require_relative "jem/maintenance_changelog"
|
|
26
28
|
|
|
27
29
|
begin
|
|
28
30
|
require "kettle/drift"
|
|
@@ -1405,6 +1407,63 @@ module Kettle
|
|
|
1405
1407
|
"🖇osc-sponsors-img",
|
|
1406
1408
|
"🖇osc-sponsors-bottom-img"
|
|
1407
1409
|
].freeze
|
|
1410
|
+
FUNDING_YML_PLATFORMS = %w[
|
|
1411
|
+
buy_me_a_coffee
|
|
1412
|
+
community_bridge
|
|
1413
|
+
github
|
|
1414
|
+
issuehunt
|
|
1415
|
+
ko_fi
|
|
1416
|
+
liberapay
|
|
1417
|
+
open_collective
|
|
1418
|
+
patreon
|
|
1419
|
+
polar
|
|
1420
|
+
thanks_dev
|
|
1421
|
+
tidelift
|
|
1422
|
+
].freeze
|
|
1423
|
+
FUNDING_README_PLATFORMS = (FUNDING_YML_PLATFORMS + ["paypal"]).freeze
|
|
1424
|
+
FUNDING_DEFAULT_DISABLED_PLATFORMS = %w[issuehunt patreon polar].freeze
|
|
1425
|
+
README_FUNDING_BADGE_POLICIES = {
|
|
1426
|
+
"github" => {
|
|
1427
|
+
badges: [
|
|
1428
|
+
"[![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor]",
|
|
1429
|
+
"[![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor]"
|
|
1430
|
+
],
|
|
1431
|
+
labels: ["🖇sponsor", "🖇sponsor-img", "🖇sponsor-bottom-img"]
|
|
1432
|
+
},
|
|
1433
|
+
"liberapay" => {
|
|
1434
|
+
badges: [
|
|
1435
|
+
"[![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay]",
|
|
1436
|
+
"[![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay]"
|
|
1437
|
+
],
|
|
1438
|
+
labels: ["⛳liberapay", "⛳liberapay-img", "⛳liberapay-bottom-img"]
|
|
1439
|
+
},
|
|
1440
|
+
"paypal" => {
|
|
1441
|
+
badges: [
|
|
1442
|
+
"[![Donate on PayPal][🖇paypal-img]][🖇paypal]",
|
|
1443
|
+
"[![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]"
|
|
1444
|
+
],
|
|
1445
|
+
labels: ["🖇paypal", "🖇paypal-img", "🖇paypal-bottom-img"]
|
|
1446
|
+
},
|
|
1447
|
+
"buy_me_a_coffee" => {
|
|
1448
|
+
badges: [
|
|
1449
|
+
"[![Buy me a coffee][🖇buyme-small-img]][🖇buyme]"
|
|
1450
|
+
],
|
|
1451
|
+
labels: ["🖇buyme", "🖇buyme-small-img", "🖇buyme-img"]
|
|
1452
|
+
},
|
|
1453
|
+
"ko_fi" => {
|
|
1454
|
+
badges: [
|
|
1455
|
+
"[![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]",
|
|
1456
|
+
"[![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]"
|
|
1457
|
+
],
|
|
1458
|
+
labels: ["🖇kofi", "🖇kofi-img"]
|
|
1459
|
+
},
|
|
1460
|
+
"tidelift" => {
|
|
1461
|
+
badges: [
|
|
1462
|
+
"[![Get help from me on Tidelift][🏙️entsup-tidelift-img]][🏙️entsup-tidelift]"
|
|
1463
|
+
],
|
|
1464
|
+
labels: ["🏙️entsup-tidelift", "🏙️entsup-tidelift-img"]
|
|
1465
|
+
}
|
|
1466
|
+
}.freeze
|
|
1408
1467
|
README_INTEGRATIONS = %w[codecov coveralls qlty codeql skywalking-eyes].freeze
|
|
1409
1468
|
README_STAR_HISTORY_MIN_STARS = 150
|
|
1410
1469
|
README_DISCOVERED_INTEGRATIONS = (README_INTEGRATIONS - [SKYWALKING_EYES_INTEGRATION]).freeze
|
|
@@ -3159,6 +3218,7 @@ module Kettle
|
|
|
3159
3218
|
facts[:ruby_style] = ruby_style_facts(project_root)
|
|
3160
3219
|
opencollective_policy = opencollective_policy(kettle_config, env)
|
|
3161
3220
|
opencollective_disabled = opencollective_policy.fetch(:disabled)
|
|
3221
|
+
funding_platforms = funding_platform_policies(kettle_config, env)
|
|
3162
3222
|
detected_open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: opencollective_disabled)
|
|
3163
3223
|
detected_open_collective_org ||= fallback_opencollective_org unless opencollective_disabled
|
|
3164
3224
|
funding = compact_hash(
|
|
@@ -3166,9 +3226,11 @@ module Kettle
|
|
|
3166
3226
|
project_root,
|
|
3167
3227
|
package_name,
|
|
3168
3228
|
opencollective_disabled: opencollective_disabled,
|
|
3169
|
-
open_collective_org: detected_open_collective_org && detected_open_collective_org.fetch(:org)
|
|
3229
|
+
open_collective_org: detected_open_collective_org && detected_open_collective_org.fetch(:org),
|
|
3230
|
+
enabled_platforms: funding_platforms
|
|
3170
3231
|
),
|
|
3171
|
-
platform_tokens: funding_platform_token_facts(kettle_config, env)
|
|
3232
|
+
platform_tokens: funding_platform_token_facts(kettle_config, env),
|
|
3233
|
+
platforms: funding_platforms
|
|
3172
3234
|
)
|
|
3173
3235
|
funding[:open_collective_disabled] = true if opencollective_disabled
|
|
3174
3236
|
funding[:open_collective_disabled_source] = opencollective_policy[:source] if opencollective_disabled
|
|
@@ -3408,6 +3470,7 @@ module Kettle
|
|
|
3408
3470
|
facts[:social] = social unless social.empty?
|
|
3409
3471
|
opencollective_policy = opencollective_policy(kettle_config, env)
|
|
3410
3472
|
opencollective_disabled = opencollective_policy.fetch(:disabled)
|
|
3473
|
+
funding_platforms = funding_platform_policies(kettle_config, env)
|
|
3411
3474
|
open_collective_org = opencollective_org(project_root, kettle_config, env, opencollective_disabled: opencollective_disabled)
|
|
3412
3475
|
open_collective_org ||= fallback_opencollective_org unless opencollective_disabled
|
|
3413
3476
|
funding = compact_hash(
|
|
@@ -3416,8 +3479,10 @@ module Kettle
|
|
|
3416
3479
|
name,
|
|
3417
3480
|
funding_uri: metadata_value(gemspec_metadata, :funding_uri),
|
|
3418
3481
|
opencollective_disabled: opencollective_disabled,
|
|
3419
|
-
open_collective_org: open_collective_org && open_collective_org.fetch(:org)
|
|
3420
|
-
|
|
3482
|
+
open_collective_org: open_collective_org && open_collective_org.fetch(:org),
|
|
3483
|
+
enabled_platforms: funding_platforms
|
|
3484
|
+
),
|
|
3485
|
+
platforms: funding_platforms
|
|
3421
3486
|
)
|
|
3422
3487
|
funding_tokens = funding_platform_token_facts(kettle_config, env)
|
|
3423
3488
|
funding[:platform_tokens] = funding_tokens unless funding_tokens.empty?
|
|
@@ -5318,15 +5383,15 @@ module Kettle
|
|
|
5318
5383
|
[
|
|
5319
5384
|
{name: "appraisal2", source: %(gem "appraisal2", "~> 3.2", ">= 3.2.2"\n)},
|
|
5320
5385
|
{name: "bundler-audit", source: %(gem "bundler-audit", "~> 0.9.3"\n)},
|
|
5321
|
-
{name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.
|
|
5386
|
+
{name: "kettle-dev", source: %(gem "kettle-dev", "~> 3.0", ">= 3.0.10"\n)},
|
|
5322
5387
|
{name: "kettle-drift", source: %(gem "kettle-drift", "~> 1.0", ">= 1.0.12"\n)},
|
|
5323
|
-
{name: "kettle-family", source: %(gem "kettle-family", "~> 1.2", ">= 1.2.
|
|
5324
|
-
{name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.1", ">= 7.1.
|
|
5325
|
-
{name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.
|
|
5388
|
+
{name: "kettle-family", source: %(gem "kettle-family", "~> 1.2", ">= 1.2.58"\n)},
|
|
5389
|
+
{name: "kettle-jem", source: %(gem "kettle-jem", "~> 7.1", ">= 7.1.4"\n)},
|
|
5390
|
+
{name: "kettle-test", source: %(gem "kettle-test", "~> 2.0", ">= 2.0.20"\n)},
|
|
5326
5391
|
{name: "rake", source: %(gem "rake", "~> 13.0"\n)},
|
|
5327
5392
|
{name: "rspec", source: %(gem "rspec", "~> 3.0"\n)},
|
|
5328
5393
|
{name: "stone_checksums", source: %(gem "stone_checksums", "~> 1.0", ">= 1.0.8"\n)},
|
|
5329
|
-
{name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 3.2", ">= 3.2.
|
|
5394
|
+
{name: "turbo_tests2", source: %(gem "turbo_tests2", "~> 3.2", ">= 3.2.6"\n)}
|
|
5330
5395
|
].freeze
|
|
5331
5396
|
end
|
|
5332
5397
|
|
|
@@ -6390,37 +6455,11 @@ module Kettle
|
|
|
6390
6455
|
end
|
|
6391
6456
|
|
|
6392
6457
|
def apply_changelog_transfer_entries(content, entries, excluded_keys: [])
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
normalized = remove_excluded_changelog_transfer_entries(normalized, excluded_keys)
|
|
6399
|
-
existing_keys = changelog_transfer_keys(normalized)
|
|
6400
|
-
missing = transfer_entries.reject { |entry| existing_keys.include?(entry.fetch(:key)) }
|
|
6401
|
-
return ensure_trailing_newline(normalized) if missing.empty?
|
|
6402
|
-
|
|
6403
|
-
lines = markdown_source_lines(normalized)
|
|
6404
|
-
unreleased = changelog_unreleased_line_index(lines)
|
|
6405
|
-
return ensure_trailing_newline(normalized) unless unreleased
|
|
6406
|
-
|
|
6407
|
-
destination_end = changelog_unreleased_end_index(lines, unreleased)
|
|
6408
|
-
destination_body = lines[(unreleased + 1)...destination_end] || []
|
|
6409
|
-
items = changelog_unreleased_items(destination_body)
|
|
6410
|
-
missing.group_by { |entry| entry.fetch(:section, "### Changed") }.each do |section, section_entries|
|
|
6411
|
-
section = CHANGELOG_STANDARD_HEADINGS.include?(section) ? section : "### Changed"
|
|
6412
|
-
items[section] ||= []
|
|
6413
|
-
items[section].pop while items[section].any? && items[section].last.to_s.strip.empty?
|
|
6414
|
-
items[section] << "" if items[section].any?
|
|
6415
|
-
section_entries.each do |entry|
|
|
6416
|
-
items[section].concat(Array(entry.fetch(:lines)).map(&:rstrip))
|
|
6417
|
-
end
|
|
6418
|
-
end
|
|
6419
|
-
|
|
6420
|
-
merged_lines = lines[0...unreleased] +
|
|
6421
|
-
build_changelog_unreleased_section(lines.fetch(unreleased), items) +
|
|
6422
|
-
lines[destination_end..].to_a
|
|
6423
|
-
ensure_trailing_newline(merged_lines.join("\n").gsub(/\n{3,}/, "\n\n"))
|
|
6458
|
+
Kettle::Changelog::TransferMerger.apply(
|
|
6459
|
+
content: normalize_changelog(content, {}),
|
|
6460
|
+
entries: entries,
|
|
6461
|
+
excluded_keys: excluded_keys
|
|
6462
|
+
)
|
|
6424
6463
|
end
|
|
6425
6464
|
|
|
6426
6465
|
def remove_excluded_changelog_transfer_entries(content, excluded_keys)
|
|
@@ -7042,6 +7081,8 @@ module Kettle
|
|
|
7042
7081
|
merged = preserve_mise_project_settings(recipe, merged, original, project_root: project_root, facts: facts) if template_file_type(recipe) == :toml
|
|
7043
7082
|
return finalize_template_source_content(recipe, sync_kettle_config_env_overrides(merged, env)) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
|
|
7044
7083
|
|
|
7084
|
+
merged = postprocess_funding_markdown_content(merged, facts) if recipe.fetch(:target_path) == "FUNDING.md"
|
|
7085
|
+
|
|
7045
7086
|
if github_workflow_template_recipe?(recipe)
|
|
7046
7087
|
merged = preserve_github_workflow_project_settings(recipe, merged, original, project_root: project_root)
|
|
7047
7088
|
merged = finalize_github_workflow_template(merged, facts)
|
|
@@ -7054,6 +7095,7 @@ module Kettle
|
|
|
7054
7095
|
accepted = finalize_accepted_template_source(recipe, resolved, original, facts: facts, project_root: project_root)
|
|
7055
7096
|
accepted = preserve_github_workflow_project_settings(recipe, accepted, original, project_root: project_root) if github_workflow_template_recipe?(recipe)
|
|
7056
7097
|
accepted = sync_kettle_config_env_overrides(accepted, env) if recipe.fetch(:target_path) == KETTLE_CONFIG_PATH
|
|
7098
|
+
accepted = postprocess_funding_markdown_content(accepted, facts) if recipe.fetch(:target_path) == "FUNDING.md"
|
|
7057
7099
|
if github_workflow_template_recipe?(recipe)
|
|
7058
7100
|
accepted = finalize_github_workflow_template(accepted, facts)
|
|
7059
7101
|
accepted = preserve_newer_github_workflow_action_pins(accepted, original)
|
|
@@ -7071,6 +7113,7 @@ module Kettle
|
|
|
7071
7113
|
end
|
|
7072
7114
|
|
|
7073
7115
|
resolved = finalize_github_workflow_template(resolved, facts) if github_workflow_template_recipe?(recipe)
|
|
7116
|
+
resolved = postprocess_funding_markdown_content(resolved, facts) if recipe.fetch(:target_path) == "FUNDING.md"
|
|
7074
7117
|
if recipe.fetch(:target_path) == "README.md"
|
|
7075
7118
|
return postprocess_readme_content(
|
|
7076
7119
|
resolved,
|
|
@@ -7390,6 +7433,11 @@ module Kettle
|
|
|
7390
7433
|
open_collective_enabled = !facts.dig(:funding, :open_collective_disabled)
|
|
7391
7434
|
processed = apply_markdown_conditional_block(content, "OPEN_COLLECTIVE", keep: open_collective_enabled)
|
|
7392
7435
|
processed = apply_markdown_conditional_block(processed, "NO_OPEN_COLLECTIVE", keep: !open_collective_enabled)
|
|
7436
|
+
processed = apply_markdown_conditional_block(
|
|
7437
|
+
processed,
|
|
7438
|
+
"FUNDING_TIDELIFT",
|
|
7439
|
+
keep: funding_platform_enabled?(facts.dig(:funding, :platforms), "tidelift")
|
|
7440
|
+
)
|
|
7393
7441
|
star_history_enabled = facts.dig(:repository, :star_history, :enabled) == true
|
|
7394
7442
|
return processed if star_history_enabled
|
|
7395
7443
|
|
|
@@ -7402,6 +7450,28 @@ module Kettle
|
|
|
7402
7450
|
)
|
|
7403
7451
|
end
|
|
7404
7452
|
|
|
7453
|
+
def postprocess_funding_markdown_content(content, facts)
|
|
7454
|
+
open_collective_enabled = !facts.dig(:funding, :open_collective_disabled)
|
|
7455
|
+
processed = apply_markdown_conditional_block(content, "OPEN_COLLECTIVE", keep: open_collective_enabled)
|
|
7456
|
+
processed = apply_markdown_conditional_block(processed, "NO_OPEN_COLLECTIVE", keep: !open_collective_enabled)
|
|
7457
|
+
funding_platforms = facts.dig(:funding, :platforms)
|
|
7458
|
+
if facts.dig(:funding, :open_collective_disabled)
|
|
7459
|
+
processed = remove_readme_badge_and_refs(
|
|
7460
|
+
processed,
|
|
7461
|
+
README_OPEN_COLLECTIVE_FUNDING_BADGES,
|
|
7462
|
+
README_OPEN_COLLECTIVE_LINK_LABELS
|
|
7463
|
+
)
|
|
7464
|
+
end
|
|
7465
|
+
README_FUNDING_BADGE_POLICIES.each do |platform, policy|
|
|
7466
|
+
next if funding_platform_enabled?(funding_platforms, platform)
|
|
7467
|
+
|
|
7468
|
+
processed = policy.fetch(:badges).reduce(processed) do |badge_content, badge|
|
|
7469
|
+
remove_readme_badge_and_refs(badge_content, badge, policy.fetch(:labels))
|
|
7470
|
+
end
|
|
7471
|
+
end
|
|
7472
|
+
processed
|
|
7473
|
+
end
|
|
7474
|
+
|
|
7405
7475
|
def apply_readme_badge_policy(content, facts)
|
|
7406
7476
|
processed = with_readme_timing("badge_policy.codetriage") do
|
|
7407
7477
|
remove_readme_badge_and_refs(content, README_CODETRIAGE_BADGE, README_CODETRIAGE_LINK_LABELS)
|
|
@@ -7429,6 +7499,16 @@ module Kettle
|
|
|
7429
7499
|
)
|
|
7430
7500
|
end
|
|
7431
7501
|
end
|
|
7502
|
+
funding_platforms = facts.dig(:funding, :platforms)
|
|
7503
|
+
README_FUNDING_BADGE_POLICIES.each do |platform, policy|
|
|
7504
|
+
next if funding_platform_enabled?(funding_platforms, platform)
|
|
7505
|
+
|
|
7506
|
+
processed = with_readme_timing("badge_policy.#{platform}") do
|
|
7507
|
+
policy.fetch(:badges).reduce(processed) do |badge_content, badge|
|
|
7508
|
+
remove_readme_badge_and_refs(badge_content, badge, policy.fetch(:labels))
|
|
7509
|
+
end
|
|
7510
|
+
end
|
|
7511
|
+
end
|
|
7432
7512
|
Array(facts.dig(:readme_style, :disabled_integrations)).each do |integration|
|
|
7433
7513
|
patterns = README_INTEGRATION_BADGE_PATTERNS.fetch(integration.to_s, [])
|
|
7434
7514
|
labels = README_INTEGRATION_LINK_LABELS.fetch(integration.to_s, [])
|
|
@@ -13125,24 +13205,38 @@ module Kettle
|
|
|
13125
13205
|
engines.map { |engine| engine.to_s.strip.downcase }.reject(&:empty?).uniq
|
|
13126
13206
|
end
|
|
13127
13207
|
|
|
13128
|
-
def funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil)
|
|
13208
|
+
def funding_urls(project_root, package_name, funding_uri: nil, opencollective_disabled: false, open_collective_org: nil, enabled_platforms: nil)
|
|
13129
13209
|
urls = [funding_uri]
|
|
13130
13210
|
path = File.join(project_root, ".github", "FUNDING.yml")
|
|
13131
|
-
|
|
13132
|
-
|
|
13133
|
-
|
|
13211
|
+
if File.exist?(path)
|
|
13212
|
+
urls.concat(
|
|
13213
|
+
github_funding_urls(
|
|
13214
|
+
path,
|
|
13215
|
+
opencollective_disabled: opencollective_disabled,
|
|
13216
|
+
enabled_platforms: enabled_platforms
|
|
13217
|
+
)
|
|
13218
|
+
)
|
|
13219
|
+
end
|
|
13220
|
+
if !opencollective_disabled && funding_platform_enabled?(enabled_platforms, "open_collective")
|
|
13221
|
+
urls << github_funding_platform_urls("open_collective", [open_collective_org]).first
|
|
13222
|
+
end
|
|
13223
|
+
if funding_platform_enabled?(enabled_platforms, "tidelift")
|
|
13224
|
+
urls << github_funding_platform_urls("tidelift", ["rubygems/#{package_name}"]).first
|
|
13225
|
+
end
|
|
13134
13226
|
|
|
13135
13227
|
urls.compact.uniq.sort
|
|
13136
13228
|
end
|
|
13137
13229
|
|
|
13138
|
-
def github_funding_urls(path, opencollective_disabled: false)
|
|
13230
|
+
def github_funding_urls(path, opencollective_disabled: false, enabled_platforms: nil)
|
|
13139
13231
|
funding = YAML.safe_load_file(path, permitted_classes: [], aliases: false) || {}
|
|
13140
13232
|
return [] unless funding.is_a?(Hash)
|
|
13141
13233
|
|
|
13142
13234
|
funding.flat_map do |platform, value|
|
|
13143
|
-
|
|
13235
|
+
normalized_platform = platform.to_s
|
|
13236
|
+
next [] if opencollective_disabled && normalized_platform == "open_collective"
|
|
13237
|
+
next [] unless funding_platform_enabled?(enabled_platforms, normalized_platform)
|
|
13144
13238
|
|
|
13145
|
-
github_funding_platform_urls(
|
|
13239
|
+
github_funding_platform_urls(normalized_platform, Array(value).compact)
|
|
13146
13240
|
end
|
|
13147
13241
|
end
|
|
13148
13242
|
|
|
@@ -13767,6 +13861,27 @@ module Kettle
|
|
|
13767
13861
|
opencollective_policy(config, env).fetch(:disabled)
|
|
13768
13862
|
end
|
|
13769
13863
|
|
|
13864
|
+
def funding_platform_policies(config, env)
|
|
13865
|
+
funding = config["funding"]
|
|
13866
|
+
configured = funding.is_a?(Hash) ? funding : {}
|
|
13867
|
+
FUNDING_README_PLATFORMS.to_h do |platform|
|
|
13868
|
+
value = if platform == "open_collective"
|
|
13869
|
+
!opencollective_policy(config, env).fetch(:disabled)
|
|
13870
|
+
elsif configured.key?(platform)
|
|
13871
|
+
!falsey_config?(configured.fetch(platform))
|
|
13872
|
+
else
|
|
13873
|
+
!FUNDING_DEFAULT_DISABLED_PLATFORMS.include?(platform)
|
|
13874
|
+
end
|
|
13875
|
+
[platform, value]
|
|
13876
|
+
end
|
|
13877
|
+
end
|
|
13878
|
+
|
|
13879
|
+
def funding_platform_enabled?(enabled_platforms, platform)
|
|
13880
|
+
return true unless enabled_platforms.is_a?(Hash)
|
|
13881
|
+
|
|
13882
|
+
enabled_platforms.fetch(platform.to_s, true) == true
|
|
13883
|
+
end
|
|
13884
|
+
|
|
13770
13885
|
def opencollective_policy(config, env)
|
|
13771
13886
|
funding = config["funding"]
|
|
13772
13887
|
if funding.is_a?(Hash) && funding.key?("open_collective")
|
|
@@ -13946,19 +14061,23 @@ module Kettle
|
|
|
13946
14061
|
return "" if package_name == "kettle-changelog"
|
|
13947
14062
|
|
|
13948
14063
|
<<~RUBY.chomp
|
|
14064
|
+
# Release lockfile/build commands set this dependency-specific switch so
|
|
14065
|
+
# the development tool cannot pull unpublished family gems into resolution.
|
|
14066
|
+
kettle_changelog_skip = ENV.fetch("KETTLE_DEV_SKIP_CHANGELOG_DEPENDENCY", "false").downcase
|
|
14067
|
+
kettle_changelog_skip = %w[true 1 yes on].include?(kettle_changelog_skip)
|
|
13949
14068
|
kettle_changelog_local = ENV.fetch("KETTLE_DEV_DEV", "false").downcase
|
|
13950
14069
|
kettle_changelog_local = !%w[false 0 no off].include?(kettle_changelog_local)
|
|
13951
|
-
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
gem "kettle-changelog", "~> 1.0", ">= 1.0.
|
|
14070
|
+
unless kettle_changelog_skip
|
|
14071
|
+
if kettle_changelog_local
|
|
14072
|
+
require "nomono/bundler"
|
|
14073
|
+
eval_nomono_gems(
|
|
14074
|
+
gems: ["kettle-changelog"],
|
|
14075
|
+
prefix: "KETTLE_DEV",
|
|
14076
|
+
path_env: "KETTLE_DEV_DEV",
|
|
14077
|
+
root: ["src", "my", "kettle-dev"]
|
|
14078
|
+
)
|
|
14079
|
+
elsif Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("4.0.0")
|
|
14080
|
+
gem "kettle-changelog", "~> 1.0", ">= 1.0.2"
|
|
13962
14081
|
end
|
|
13963
14082
|
end
|
|
13964
14083
|
RUBY
|
|
@@ -14909,7 +15028,7 @@ module Kettle
|
|
|
14909
15028
|
end
|
|
14910
15029
|
|
|
14911
15030
|
def kettle_dev_local_gems(config)
|
|
14912
|
-
gems = %w[kettle-dev kettle-family kettle-test kettle-soup-cover]
|
|
15031
|
+
gems = %w[kettle-dev kettle-family kettle-test kettle-soup-cover kettle-changelog]
|
|
14913
15032
|
plugin_names = PluginLoader.normalize_plugin_names(plugin_names_from_config(config))
|
|
14914
15033
|
gems.concat(plugin_names.select { |plugin_name| plugin_name.start_with?("kettle-") })
|
|
14915
15034
|
gems.uniq.join(" ")
|
|
@@ -14918,7 +15037,7 @@ module Kettle
|
|
|
14918
15037
|
def main_gemfile_kettle_family_gem(package_name)
|
|
14919
15038
|
return "" if package_name.to_s == "kettle-family"
|
|
14920
15039
|
|
|
14921
|
-
%(gem "kettle-family", "~> 1.2", ">= 1.2.
|
|
15040
|
+
%(gem "kettle-family", "~> 1.2", ">= 1.2.58"\n)
|
|
14922
15041
|
end
|
|
14923
15042
|
|
|
14924
15043
|
def main_gemfile_nomono_bootstrap(package_name)
|
|
@@ -18545,9 +18664,15 @@ module Kettle
|
|
|
18545
18664
|
|
|
18546
18665
|
def synchronize_github_funding_yml(content, facts)
|
|
18547
18666
|
output = content.to_s
|
|
18548
|
-
|
|
18667
|
+
enabled_platforms = facts.fetch(:funding, {}).fetch(:platforms, {})
|
|
18668
|
+
enabled_platforms = enabled_platforms.merge("open_collective" => false) if facts.fetch(:funding, {})[:open_collective_disabled]
|
|
18669
|
+
FUNDING_YML_PLATFORMS.each do |platform|
|
|
18670
|
+
next if funding_platform_enabled?(enabled_platforms, platform)
|
|
18671
|
+
|
|
18672
|
+
output = remove_top_level_yaml_key_lines(output, platform)
|
|
18673
|
+
end
|
|
18549
18674
|
tidelift_value = "rubygems/#{facts.fetch(:package).fetch(:name)}"
|
|
18550
|
-
|
|
18675
|
+
if funding_platform_enabled?(enabled_platforms, "tidelift") && !yaml_top_level_key_lines(output).key?("tidelift")
|
|
18551
18676
|
lines = output.lines
|
|
18552
18677
|
lines << "\n" unless lines.empty? || lines.last.to_s.strip.empty?
|
|
18553
18678
|
lines << "tidelift: #{tidelift_value}\n"
|
|
@@ -19429,9 +19554,9 @@ module Kettle
|
|
|
19429
19554
|
"actions/upload-artifact" => "actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1",
|
|
19430
19555
|
"amancevice/setup-code-climate" => "amancevice/setup-code-climate@0daf2985a225e8ac15975b4d233010e94d65b76a # v2",
|
|
19431
19556
|
"actions/dependency-review-action" => "actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0",
|
|
19432
|
-
"github/codeql-action/init" => "github/codeql-action/init@
|
|
19433
|
-
"github/codeql-action/autobuild" => "github/codeql-action/autobuild@
|
|
19434
|
-
"github/codeql-action/analyze" => "github/codeql-action/analyze@
|
|
19557
|
+
"github/codeql-action/init" => "github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4.37.8",
|
|
19558
|
+
"github/codeql-action/autobuild" => "github/codeql-action/autobuild@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4.37.8",
|
|
19559
|
+
"github/codeql-action/analyze" => "github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4.37.8",
|
|
19435
19560
|
"pozil/auto-assign-issue" => "pozil/auto-assign-issue@af6beea6bdf1e8eb373f061c5bc168681fc6d011 # v4.0.1",
|
|
19436
19561
|
"apache/skywalking-eyes/dependency" => "apache/skywalking-eyes/dependency@61275cc80d0798a405cb070f7d3a8aaf7cf2c2c1 # v0.8.0",
|
|
19437
19562
|
"sarisia/actions-status-discord" => "sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0"
|
data.tar.gz.sig
CHANGED
|
Binary file
|