kettle-dev 1.1.58 → 1.1.60
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/.devcontainer/apt-install/devcontainer-feature.json +9 -0
- data/.devcontainer/apt-install/install.sh +11 -0
- data/.devcontainer/devcontainer.json +4 -2
- data/.envrc +1 -0
- data/.envrc.example +1 -0
- data/.envrc.no-osc.example +1 -0
- data/.github/workflows/ancient.yml +1 -1
- data/.github/workflows/ancient.yml.example +1 -1
- data/.github/workflows/codeql-analysis.yml +1 -1
- data/.github/workflows/coverage.yml +1 -1
- data/.github/workflows/coverage.yml.example +1 -1
- data/.github/workflows/current.yml +1 -1
- data/.github/workflows/current.yml.example +1 -1
- data/.github/workflows/dep-heads.yml +1 -1
- data/.github/workflows/dependency-review.yml +1 -1
- data/.github/workflows/heads.yml +1 -1
- data/.github/workflows/heads.yml.example +1 -1
- data/.github/workflows/jruby.yml +1 -1
- data/.github/workflows/jruby.yml.example +1 -1
- data/.github/workflows/legacy.yml +1 -1
- data/.github/workflows/license-eye.yml +1 -1
- data/.github/workflows/locked_deps.yml +1 -1
- data/.github/workflows/opencollective.yml +1 -1
- data/.github/workflows/style.yml +1 -1
- data/.github/workflows/supported.yml +1 -1
- data/.github/workflows/truffle.yml +1 -1
- data/.github/workflows/unlocked_deps.yml +1 -1
- data/.github/workflows/unsupported.yml +1 -1
- data/CHANGELOG.md +38 -1
- data/README.md +16 -12
- data/README.md.example +16 -12
- data/README.md.no-osc.example +16 -12
- data/Rakefile.example +1 -1
- data/lib/kettle/dev/rakelib/spec_test.rake +70 -20
- data/lib/kettle/dev/tasks/template_task.rb +1 -1
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +6 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a2c485db803ad10d4d7eb1331a8ed30ce0744c0a045ee768697bfa5098f44707
|
|
4
|
+
data.tar.gz: c60544c59a2bd2b0af6d80aaa070055ca74d3a88e8e2b53cd2c94050da03e89e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7f36fd6f1cd77538e0ebcff3ae9c96136594a242f95d15aaa4690f84dcdd376efa3be923b26bb6bad6176c5addaa88c18fdd1d38329c9065535c9666897048c
|
|
7
|
+
data.tar.gz: d881e65d43eeccd20f540c135821402b046b8601e130d16204e6c7a501d092270af97ebce0a7757345d3c4cf340b22b78e6858b80ff0f6863fe3dcbba93f7e4c
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
apt-get update -y
|
|
3
|
+
|
|
4
|
+
# Basic, commonly needed, dependencies of Ruby & JRuby projects
|
|
5
|
+
apt-get install -y direnv default-jdk git zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
|
|
6
|
+
|
|
7
|
+
# Support for PostgreSQL
|
|
8
|
+
# apt-get install -y postgresql libpq-dev
|
|
9
|
+
|
|
10
|
+
# Adds the direnv setup script to ~/.bashrc file (at the end)
|
|
11
|
+
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
"image": "mcr.microsoft.com/devcontainers/ruby:1-3-bookworm",
|
|
7
7
|
|
|
8
8
|
// Features to add to the dev container. More info: https://containers.dev/features.
|
|
9
|
-
|
|
9
|
+
"features": {
|
|
10
|
+
"./apt-install": {}
|
|
11
|
+
},
|
|
10
12
|
|
|
11
13
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
12
14
|
// "forwardPorts": [],
|
|
13
15
|
|
|
14
16
|
// Use 'postCreateCommand' to run commands after the container is created.
|
|
15
|
-
|
|
17
|
+
"postCreateCommand": "bundle update --bundler",
|
|
16
18
|
|
|
17
19
|
// Configure tool-specific properties.
|
|
18
20
|
"customizations" : {
|
data/.envrc
CHANGED
|
@@ -28,6 +28,7 @@ export K_SOUP_COV_MULTI_FORMATTERS=true
|
|
|
28
28
|
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser
|
|
29
29
|
export MAX_ROWS=1 # Setting for simplecov-console gem for tty output, limits to the worst N rows of bad coverage
|
|
30
30
|
export KETTLE_TEST_SILENT=true
|
|
31
|
+
export KETTLE_DEV_DEBUG=false
|
|
31
32
|
|
|
32
33
|
# Internal Debugging Controls
|
|
33
34
|
export DEBUG=false # do not allow byebug statements (override in .env.local)
|
data/.envrc.example
CHANGED
|
@@ -28,6 +28,7 @@ export K_SOUP_COV_MULTI_FORMATTERS=true
|
|
|
28
28
|
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser
|
|
29
29
|
export MAX_ROWS=1 # Setting for simplecov-console gem for tty output, limits to the worst N rows of bad coverage
|
|
30
30
|
export KETTLE_TEST_SILENT=true
|
|
31
|
+
export KETTLE_DEV_DEBUG=false
|
|
31
32
|
|
|
32
33
|
# Internal Debugging Controls
|
|
33
34
|
export DEBUG=false # do not allow byebug statements (override in .env.local)
|
data/.envrc.no-osc.example
CHANGED
|
@@ -28,6 +28,7 @@ export K_SOUP_COV_MULTI_FORMATTERS=true
|
|
|
28
28
|
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser
|
|
29
29
|
export MAX_ROWS=1 # Setting for simplecov-console gem for tty output, limits to the worst N rows of bad coverage
|
|
30
30
|
export KETTLE_TEST_SILENT=true
|
|
31
|
+
export KETTLE_DEV_DEBUG=false
|
|
31
32
|
|
|
32
33
|
# Internal Debugging Controls
|
|
33
34
|
export DEBUG=false # do not allow byebug statements (override in .env.local)
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
steps:
|
|
66
66
|
- name: Checkout
|
|
67
67
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
68
|
-
uses: actions/checkout@
|
|
68
|
+
uses: actions/checkout@v6
|
|
69
69
|
|
|
70
70
|
- name: Setup Ruby & RubyGems
|
|
71
71
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
steps:
|
|
65
65
|
- name: Checkout
|
|
66
66
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
67
|
-
uses: actions/checkout@
|
|
67
|
+
uses: actions/checkout@v6
|
|
68
68
|
|
|
69
69
|
- name: Setup Ruby & RubyGems
|
|
70
70
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
steps:
|
|
67
67
|
- name: Checkout
|
|
68
68
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
69
|
-
uses: actions/checkout@
|
|
69
|
+
uses: actions/checkout@v6
|
|
70
70
|
|
|
71
71
|
- name: Setup Ruby & RubyGems
|
|
72
72
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
data/.github/workflows/heads.yml
CHANGED
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
steps:
|
|
67
67
|
- name: Checkout
|
|
68
68
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
69
|
-
uses: actions/checkout@
|
|
69
|
+
uses: actions/checkout@v6
|
|
70
70
|
|
|
71
71
|
- name: Setup Ruby & RubyGems
|
|
72
72
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
steps:
|
|
66
66
|
- name: Checkout
|
|
67
67
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
68
|
-
uses: actions/checkout@
|
|
68
|
+
uses: actions/checkout@v6
|
|
69
69
|
|
|
70
70
|
- name: Setup Ruby & RubyGems
|
|
71
71
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
data/.github/workflows/jruby.yml
CHANGED
data/.github/workflows/style.yml
CHANGED
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
steps:
|
|
49
49
|
- name: Checkout
|
|
50
50
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
|
51
|
-
uses: actions/checkout@
|
|
51
|
+
uses: actions/checkout@v6
|
|
52
52
|
|
|
53
53
|
- name: Setup Ruby & RubyGems
|
|
54
54
|
if: ${{ (env.ACT && !(startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) || (!env.ACT && (startsWith(matrix.ruby, 'jruby')) || startsWith(matrix.ruby, 'truffleruby')) }}
|
data/CHANGELOG.md
CHANGED
|
@@ -30,6 +30,39 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
30
30
|
|
|
31
31
|
### Security
|
|
32
32
|
|
|
33
|
+
## [1.1.60] - 2025-11-23
|
|
34
|
+
|
|
35
|
+
- TAG: [v1.1.60][1.1.60t]
|
|
36
|
+
- COVERAGE: 94.38% -- 4066/4308 lines in 26 files
|
|
37
|
+
- BRANCH COVERAGE: 78.86% -- 1675/2124 branches in 26 files
|
|
38
|
+
- 79.89% documented
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- Add KETTLE_DEV_DEBUG to direnv defaults
|
|
43
|
+
- Documentation of the explicit policy violations of RubyGems.org leadership toward open source projects they funded
|
|
44
|
+
- https://www.reddit.com/r/ruby/comments/1ove9vp/rubycentral_hates_this_one_fact/
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- Prevent double test runs by ensuring only one of test/coverage/spec are in default task
|
|
49
|
+
- Add debugging when more than one registered
|
|
50
|
+
|
|
51
|
+
## [1.1.59] - 2025-11-13
|
|
52
|
+
|
|
53
|
+
- TAG: [v1.1.59][1.1.59t]
|
|
54
|
+
- COVERAGE: 94.38% -- 4066/4308 lines in 26 files
|
|
55
|
+
- BRANCH COVERAGE: 78.77% -- 1673/2124 branches in 26 files
|
|
56
|
+
- 79.89% documented
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- Improved default devcontainer with common dependencies of most Ruby projects
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- token replacement of {TARGET|GEM|NAME}
|
|
65
|
+
|
|
33
66
|
## [1.1.58] - 2025-11-13
|
|
34
67
|
|
|
35
68
|
- TAG: [v1.1.58][1.1.58t]
|
|
@@ -1425,7 +1458,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
1425
1458
|
- Selecting will run the selected workflow via `act`
|
|
1426
1459
|
- This may move to its own gem in the future.
|
|
1427
1460
|
|
|
1428
|
-
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.
|
|
1461
|
+
[Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.60...HEAD
|
|
1462
|
+
[1.1.60]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.59...v1.1.60
|
|
1463
|
+
[1.1.60t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.60
|
|
1464
|
+
[1.1.59]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.58...v1.1.59
|
|
1465
|
+
[1.1.59t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.59
|
|
1429
1466
|
[1.1.58]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.57...v1.1.58
|
|
1430
1467
|
[1.1.58t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.58
|
|
1431
1468
|
[1.1.57]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.56...v1.1.57
|
data/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025.
|
|
4
|
-
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest.
|
|
5
|
-
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| Simply put - there was active policy for adding or removing maintainers/owners of [rubygems][rubygems-maint-policy] and [bundler][bundler-maint-policy], and those [policies were not followed][policy-fail]. |
|
|
7
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
8
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
9
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
10
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
11
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
12
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
13
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
14
|
|
|
14
15
|
[rubygems-org]: https://github.com/rubygems/
|
|
15
16
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
@@ -26,6 +27,9 @@
|
|
|
26
27
|
[gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
|
|
27
28
|
[gem-server]: https://github.com/galtzo-floss/gem-server
|
|
28
29
|
[reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
|
|
30
|
+
[bundler-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/bundler/playbooks/TEAM_CHANGES.md
|
|
31
|
+
[rubygems-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/rubygems/POLICIES.md?plain=1#L187-L196
|
|
32
|
+
[policy-fail]: https://www.reddit.com/r/ruby/comments/1ove9vp/rubycentral_hates_this_one_fact/
|
|
29
33
|
|
|
30
34
|
[![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-dev Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-dev-i]][🖼️kettle-dev]
|
|
31
35
|
|
data/README.md.example
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025.
|
|
4
|
-
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest.
|
|
5
|
-
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| Simply put - there was active policy for adding or removing maintainers/owners of [rubygems][rubygems-maint-policy] and [bundler][bundler-maint-policy], and those [policies were not followed][policy-fail]. |
|
|
7
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
8
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
9
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
10
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
11
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
12
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
13
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
14
|
|
|
14
15
|
[rubygems-org]: https://github.com/rubygems/
|
|
15
16
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
@@ -26,6 +27,9 @@
|
|
|
26
27
|
[gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
|
|
27
28
|
[gem-server]: https://github.com/galtzo-floss/gem-server
|
|
28
29
|
[reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
|
|
30
|
+
[bundler-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/bundler/playbooks/TEAM_CHANGES.md
|
|
31
|
+
[rubygems-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/rubygems/POLICIES.md?plain=1#L187-L196
|
|
32
|
+
[policy-fail]: https://www.reddit.com/r/ruby/comments/1ove9vp/rubycentral_hates_this_one_fact/
|
|
29
33
|
|
|
30
34
|
[![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-dev Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-dev-i]][🖼️kettle-dev]
|
|
31
35
|
|
data/README.md.no-osc.example
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
| 📍 NOTE
|
|
2
|
-
|
|
3
|
-
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025.
|
|
4
|
-
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest.
|
|
5
|
-
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].
|
|
6
|
-
|
|
|
7
|
-
|
|
|
8
|
-
|
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
1
|
+
| 📍 NOTE |
|
|
2
|
+
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
3
|
+
| RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
|
|
4
|
+
| Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
|
|
5
|
+
| It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
|
|
6
|
+
| Simply put - there was active policy for adding or removing maintainers/owners of [rubygems][rubygems-maint-policy] and [bundler][bundler-maint-policy], and those [policies were not followed][policy-fail]. |
|
|
7
|
+
| I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
|
|
8
|
+
| If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
|
|
9
|
+
| Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
|
|
10
|
+
| Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
|
|
11
|
+
| The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
|
|
12
|
+
| See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
|
|
13
|
+
| What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
|
|
13
14
|
|
|
14
15
|
[rubygems-org]: https://github.com/rubygems/
|
|
15
16
|
[draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
|
|
@@ -26,6 +27,9 @@
|
|
|
26
27
|
[gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
|
|
27
28
|
[gem-server]: https://github.com/galtzo-floss/gem-server
|
|
28
29
|
[reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
|
|
30
|
+
[bundler-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/bundler/playbooks/TEAM_CHANGES.md
|
|
31
|
+
[rubygems-maint-policy]: https://github.com/ruby/rubygems/blob/b1ab33a3d52310a84d16b193991af07f5a6a07c0/doc/rubygems/POLICIES.md?plain=1#L187-L196
|
|
32
|
+
[policy-fail]: https://www.reddit.com/r/ruby/comments/1ove9vp/rubycentral_hates_this_one_fact/
|
|
29
33
|
|
|
30
34
|
[![Galtzo FLOSS Logo by Aboling0, CC BY-SA 4.0][🖼️galtzo-i]][🖼️galtzo-discord] [![ruby-lang Logo, Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5][🖼️ruby-lang-i]][🖼️ruby-lang] [![kettle-dev Logo by Aboling0, CC BY-SA 4.0][🖼️kettle-dev-i]][🖼️kettle-dev]
|
|
31
35
|
|
data/Rakefile.example
CHANGED
|
@@ -12,7 +12,9 @@ begin
|
|
|
12
12
|
t.test_files = FileList["test/**/*test*.rb"]
|
|
13
13
|
t.verbose = true
|
|
14
14
|
end
|
|
15
|
-
|
|
15
|
+
# The test task is invoked by the coverage task, so of the two, (i.e., when outside CI),
|
|
16
|
+
# only coverage should be registered as default.
|
|
17
|
+
Kettle::Dev.register_default("test") unless Kettle::Dev.default_registered?("coverage")
|
|
16
18
|
rescue LoadError
|
|
17
19
|
warn("[kettle-dev][spec_test.rake] failed to load rake/testtask") if Kettle::Dev::DEBUGGING
|
|
18
20
|
desc("test task stub")
|
|
@@ -21,34 +23,82 @@ rescue LoadError
|
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
begin
|
|
26
|
-
|
|
26
|
+
setup_spec_task = ->(default:) {
|
|
27
|
+
begin
|
|
28
|
+
require "rspec/core/rake_task"
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
31
|
+
if default
|
|
32
|
+
# This takes the place of the `coverage` task if/when it isn't already registered.
|
|
33
|
+
# This is because spec and coverage run the same tests
|
|
34
|
+
# (via the coverage task invoking the test task which invokes the spec task),
|
|
35
|
+
# so we can't have both in the default task.
|
|
36
|
+
Kettle::Dev.register_default("spec") unless Kettle::Dev.default_registered?("coverage")
|
|
37
|
+
end
|
|
38
|
+
rescue LoadError
|
|
39
|
+
warn("[kettle-dev][spec_test.rake] failed to load rspec/core/rake_task") if Kettle::Dev::DEBUGGING
|
|
40
|
+
desc("spec task stub")
|
|
41
|
+
task(:spec) do
|
|
42
|
+
warn("NOTE: rspec isn't installed, or is disabled for #{RUBY_VERSION} in the current environment")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Setup RSpec
|
|
48
|
+
if defined?(Kettle::Dev::IS_CI)
|
|
49
|
+
if Kettle::Dev::IS_CI
|
|
50
|
+
# then we should not have a coverage task, but do want a spec test.
|
|
51
|
+
setup_spec_task.call(default: true)
|
|
52
|
+
else
|
|
53
|
+
# then we should have a coverage task.
|
|
54
|
+
# The coverage task will invoke the "test" task, which will invoke the spec task.
|
|
55
|
+
setup_spec_task.call(default: false)
|
|
36
56
|
end
|
|
57
|
+
else
|
|
58
|
+
# then we do not have a coverage task setup by this gem, and are not in a coverage context.
|
|
59
|
+
# So setup a spec test.
|
|
60
|
+
setup_spec_task.call(default: true)
|
|
37
61
|
end
|
|
38
62
|
|
|
39
63
|
spec_registered = Kettle::Dev.default_registered?("spec")
|
|
40
64
|
coverage_registered = Kettle::Dev.default_registered?("coverage")
|
|
41
65
|
test_registered = Kettle::Dev.default_registered?("test")
|
|
66
|
+
spec_and_coverage = spec_registered && coverage_registered
|
|
42
67
|
spec_or_coverage = spec_registered || coverage_registered
|
|
43
68
|
|
|
44
|
-
if
|
|
45
|
-
task test: :spec
|
|
46
|
-
elsif test_registered && !spec_or_coverage
|
|
69
|
+
if test_registered && !spec_or_coverage
|
|
47
70
|
task spec: :test
|
|
48
|
-
elsif test_registered &&
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
71
|
+
# elsif test_registered && spec_registered
|
|
72
|
+
# # When we have both tasks registered as default, making spec run as part of test would be redundant.
|
|
73
|
+
# # task test: :spec
|
|
74
|
+
# elsif test_registered && coverage_registered
|
|
75
|
+
# # When we have both tasks registered as default, making coverage run as part of test would be circular.
|
|
76
|
+
# # task test: :coverage
|
|
77
|
+
elsif !test_registered
|
|
78
|
+
if spec_registered && !coverage_registered
|
|
79
|
+
puts "Spec task is registered as default task. Creating test task with spec as pre-requisite" if Kettle::Dev::DEBUGGING
|
|
80
|
+
# If spec is registered as default, it should be invoked by the test task when test is not default,
|
|
81
|
+
# because some CI workflows will be configured to run bin/rake test.
|
|
82
|
+
desc "A test task with spec as prerequisite"
|
|
83
|
+
task test: :spec
|
|
84
|
+
elsif coverage_registered && !spec_registered
|
|
85
|
+
puts "Coverage task is registered as default task, and will call test task, with spec as pre-requisite." if Kettle::Dev::DEBUGGING
|
|
86
|
+
# If coverage is registered as default, it will invoke test.
|
|
87
|
+
# We need to make spec a prerequisite of test so that it runs as part of the test task,
|
|
88
|
+
# which will be invoked by the coverage task.
|
|
89
|
+
desc "A test task with spec as prerequisite"
|
|
90
|
+
task test: :spec
|
|
91
|
+
end
|
|
53
92
|
end
|
|
54
93
|
# rubocop:enable Rake/DuplicateTask
|
|
94
|
+
|
|
95
|
+
if spec_and_coverage
|
|
96
|
+
# They should not both be registered as default tasks, as they run the same tests.
|
|
97
|
+
warn("[kettle-dev][spec_test.rake] both spec and coverage are registered as default tasks!") if Kettle::Dev::DEBUGGING
|
|
98
|
+
elsif test_registered && spec_registered
|
|
99
|
+
# They should not both be registered as default tasks, as they will be setup to run the same tests.
|
|
100
|
+
warn("[kettle-dev][spec_test.rake] both test and spec are registered as default tasks!") if Kettle::Dev::DEBUGGING
|
|
101
|
+
elsif test_registered && coverage_registered
|
|
102
|
+
# They should not both be registered as default tasks, coverage invokes the test task.
|
|
103
|
+
warn("[kettle-dev][spec_test.rake] both test and coverage are registered as default tasks!") if Kettle::Dev::DEBUGGING
|
|
104
|
+
end
|
|
@@ -632,7 +632,7 @@ module Kettle
|
|
|
632
632
|
|
|
633
633
|
c
|
|
634
634
|
end
|
|
635
|
-
elsif ["CHANGELOG.md", "CITATION.cff", "CONTRIBUTING.md", ".opencollective.yml", "FUNDING.md", ".junie/guidelines.md"].include?(rel)
|
|
635
|
+
elsif ["CHANGELOG.md", "CITATION.cff", "CONTRIBUTING.md", ".opencollective.yml", "FUNDING.md", ".junie/guidelines.md", ".envrc"].include?(rel)
|
|
636
636
|
helpers.copy_file_with_prompt(src, dest, allow_create: true, allow_replace: true) do |content|
|
|
637
637
|
c = helpers.apply_common_replacements(
|
|
638
638
|
content,
|
data/lib/kettle/dev/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kettle-dev
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.60
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -218,6 +218,8 @@ files:
|
|
|
218
218
|
- "./Rakefile.example"
|
|
219
219
|
- "./kettle-dev.gemspec.example"
|
|
220
220
|
- ".aiignore.example"
|
|
221
|
+
- ".devcontainer/apt-install/devcontainer-feature.json"
|
|
222
|
+
- ".devcontainer/apt-install/install.sh"
|
|
221
223
|
- ".devcontainer/devcontainer.json"
|
|
222
224
|
- ".env.local.example"
|
|
223
225
|
- ".envrc"
|
|
@@ -401,10 +403,10 @@ licenses:
|
|
|
401
403
|
- MIT
|
|
402
404
|
metadata:
|
|
403
405
|
homepage_uri: https://kettle-dev.galtzo.com/
|
|
404
|
-
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.
|
|
405
|
-
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.
|
|
406
|
+
source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.60
|
|
407
|
+
changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.60/CHANGELOG.md
|
|
406
408
|
bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
|
|
407
|
-
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.
|
|
409
|
+
documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.60
|
|
408
410
|
funding_uri: https://github.com/sponsors/pboling
|
|
409
411
|
wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
|
|
410
412
|
news_uri: https://www.railsbling.com/tags/kettle-dev
|
metadata.gz.sig
CHANGED
|
Binary file
|