kettle-dev 1.1.33 → 1.1.35
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 +43 -1
- data/README.md +14 -7
- data/README.md.example +14 -7
- data/README.md.no-osc.example +13 -6
- data/Rakefile.example +1 -1
- data/exe/kettle-release +7 -2
- data/kettle-dev.gemspec.example +1 -15
- data/lib/kettle/dev/git_adapter.rb +30 -0
- data/lib/kettle/dev/rakelib/appraisal.rake +10 -10
- data/lib/kettle/dev/rakelib/bench.rake +1 -1
- data/lib/kettle/dev/rakelib/reek.rake +1 -1
- data/lib/kettle/dev/release_cli.rb +15 -9
- data/lib/kettle/dev/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +7 -21
- 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: 51bc097ab38c42c6442bc2dac30e0be5db8f4724babe58df0a3bc9380ca273d3
         | 
| 4 | 
            +
              data.tar.gz: f5fd0efc0784b8d8f47acc35bd0f73e4e250415bee2ecad5def2f0e80b7dd64b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2b3be6f9f5d4fd90ef967550126eb8617e3b786892afb8cfc86cba56984278227246706e04203ea89b87f6828383556a933b47ae9995d28bd55313e1eb51380d
         | 
| 7 | 
            +
              data.tar.gz: 36f1c0a85c4b124020ece25999e85463365344c4ee60a856a5dcf3ce2e125014162ad7b725db8ebdaedab153ca210afb15d949e6de329079cae1b8c81a6d9585
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -30,6 +30,44 @@ Please file a bug if you notice a violation of semantic versioning. | |
| 30 30 |  | 
| 31 31 | 
             
            ### Security
         | 
| 32 32 |  | 
| 33 | 
            +
            ## [1.1.35] - 2025-10-20
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            - TAG: [v1.1.35][1.1.35t]
         | 
| 36 | 
            +
            - COVERAGE: 96.04% -- 3949/4112 lines in 26 files
         | 
| 37 | 
            +
            - BRANCH COVERAGE: 80.85% -- 1634/2021 branches in 26 files
         | 
| 38 | 
            +
            - 79.68% documented
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            ### Added
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            - more documentation of the RC.O situation
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            ### Changed
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            - upgraded kettle-test to v1.0.5
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            ### Removed
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            - direct dependency on rspec-pending_for (now provided, and configured, by kettle-test)
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            ## [1.1.34] - 2025-10-20
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            - TAG: [v1.1.34][1.1.34t]
         | 
| 55 | 
            +
            - COVERAGE: 96.10% -- 3938/4098 lines in 26 files
         | 
| 56 | 
            +
            - BRANCH COVERAGE: 80.92% -- 1624/2007 branches in 26 files
         | 
| 57 | 
            +
            - 79.68% documented
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            ### Changed
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            - kettle-release: Make step 17 only push the checksum commit; bin/gem_checksums creates the commit internally.
         | 
| 62 | 
            +
            - kettle-release: Ensure a final push of tags occurs after checksums and optional GitHub release; supports an 'all' remote aggregator when configured.
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            ### Fixed
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            - fixed rake task compatibility with BUNDLE_PATH (i.e. vendored bundle)
         | 
| 67 | 
            +
              - appraisal tasks
         | 
| 68 | 
            +
              - bench tasks
         | 
| 69 | 
            +
              - reek tasks
         | 
| 70 | 
            +
             | 
| 33 71 | 
             
            ## [1.1.33] - 2025-10-13
         | 
| 34 72 |  | 
| 35 73 | 
             
            - TAG: [v1.1.33][1.1.33t]
         | 
| @@ -1081,7 +1119,11 @@ Please file a bug if you notice a violation of semantic versioning. | |
| 1081 1119 | 
             
              - Selecting will run the selected workflow via `act`
         | 
| 1082 1120 | 
             
              - This may move to its own gem in the future.
         | 
| 1083 1121 |  | 
| 1084 | 
            -
            [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1. | 
| 1122 | 
            +
            [Unreleased]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.35...HEAD
         | 
| 1123 | 
            +
            [1.1.35]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.34...v1.1.35
         | 
| 1124 | 
            +
            [1.1.35t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.35
         | 
| 1125 | 
            +
            [1.1.34]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.33...v1.1.34
         | 
| 1126 | 
            +
            [1.1.34t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.34
         | 
| 1085 1127 | 
             
            [1.1.33]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.32...v1.1.33
         | 
| 1086 1128 | 
             
            [1.1.33t]: https://github.com/kettle-rb/kettle-dev/releases/tag/v1.1.33
         | 
| 1087 1129 | 
             
            [1.1.32]: https://github.com/kettle-rb/kettle-dev/compare/v1.1.31...v1.1.32
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,16 +1,23 @@ | |
| 1 | 
            -
            | 📍 NOTE | 
| 2 | 
            -
             | 
| 3 | 
            -
            | RubyGems.org  | 
| 4 | 
            -
            | I'm in the process of adding warnings to  | 
| 5 | 
            -
            |  | 
| 6 | 
            -
            |  | 
| 1 | 
            +
            | 📍 NOTE                                                                                                                                                                                                   |
         | 
| 2 | 
            +
            |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
         | 
| 3 | 
            +
            | RubyGems.org [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].         |
         | 
| 4 | 
            +
            | I'm in the process of adding warnings to gems because I [don't condone the theft][draper-theft] of the bundler and rubygems-update projects.                                                              |
         | 
| 5 | 
            +
            | If repos or publishing rights for my gems were similarly stolen, I'd hope others would stand up for me.                                                                                                   |
         | 
| 6 | 
            +
            | Once publishing to [gem.coop][gem-coop] is available I will stop publishing to RubyGems.org, unless they make amends.                                                                                     |
         | 
| 7 | 
            +
            | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. This ["Technology for Humans" podcast episode][reinteractive-podcast] is the best summary I'm aware of. |
         | 
| 8 | 
            +
            | My (WIP) proposal for [bundler/gem scopes][gem-scopes]. My (WIP) proposal for a federated [gem server][gem-server].                                                                                       |
         | 
| 7 9 |  | 
| 8 10 | 
             
            [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
         | 
| 9 11 | 
             
            [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
         | 
| 12 | 
            +
            [ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
         | 
| 10 13 | 
             
            [draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
         | 
| 11 14 | 
             
            [draper-theft]: https://joel.drapper.me/p/ruby-central/
         | 
| 12 15 | 
             
            [gem-coop]: https://gem.coop
         | 
| 16 | 
            +
            [gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
         | 
| 13 17 | 
             
            [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
         | 
| 18 | 
            +
            [gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
         | 
| 19 | 
            +
            [gem-server]: https://github.com/galtzo-floss/gem-server
         | 
| 20 | 
            +
            [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
         | 
| 14 21 |  | 
| 15 22 | 
             
            [![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]
         | 
| 16 23 |  | 
| @@ -939,7 +946,7 @@ Thanks for RTFM. ☺️ | |
| 939 946 | 
             
            [📌gitmoji]:https://gitmoji.dev
         | 
| 940 947 | 
             
            [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
         | 
| 941 948 | 
             
            [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
         | 
| 942 | 
            -
            [🧮kloc-img]: https://img.shields.io/badge/KLOC- | 
| 949 | 
            +
            [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.112-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
         | 
| 943 950 | 
             
            [🔐security]: SECURITY.md
         | 
| 944 951 | 
             
            [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
         | 
| 945 952 | 
             
            [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
         | 
    
        data/README.md.example
    CHANGED
    
    | @@ -1,16 +1,23 @@ | |
| 1 | 
            -
            | 📍 NOTE | 
| 2 | 
            -
             | 
| 3 | 
            -
            | RubyGems.org  | 
| 4 | 
            -
            | I'm in the process of adding warnings to  | 
| 5 | 
            -
            |  | 
| 6 | 
            -
            |  | 
| 1 | 
            +
            | 📍 NOTE                                                                                                                                                                                                   |
         | 
| 2 | 
            +
            |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
         | 
| 3 | 
            +
            | RubyGems.org [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].         |
         | 
| 4 | 
            +
            | I'm in the process of adding warnings to gems because I [don't condone the theft][draper-theft] of the bundler and rubygems-update projects.                                                              |
         | 
| 5 | 
            +
            | If repos or publishing rights for my gems were similarly stolen, I'd hope others would stand up for me.                                                                                                   |
         | 
| 6 | 
            +
            | Once publishing to [gem.coop][gem-coop] is available I will stop publishing to RubyGems.org, unless they make amends.                                                                                     |
         | 
| 7 | 
            +
            | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. This ["Technology for Humans" podcast episode][reinteractive-podcast] is the best summary I'm aware of. |
         | 
| 8 | 
            +
            | My (WIP) proposal for [bundler/gem scopes][gem-scopes]. My (WIP) proposal for a federated [gem server][gem-server].                                                                                       |
         | 
| 7 9 |  | 
| 8 10 | 
             
            [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
         | 
| 9 11 | 
             
            [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
         | 
| 12 | 
            +
            [ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
         | 
| 10 13 | 
             
            [draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
         | 
| 11 14 | 
             
            [draper-theft]: https://joel.drapper.me/p/ruby-central/
         | 
| 12 15 | 
             
            [gem-coop]: https://gem.coop
         | 
| 16 | 
            +
            [gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
         | 
| 13 17 | 
             
            [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
         | 
| 18 | 
            +
            [gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
         | 
| 19 | 
            +
            [gem-server]: https://github.com/galtzo-floss/gem-server
         | 
| 20 | 
            +
            [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
         | 
| 14 21 |  | 
| 15 22 | 
             
            [![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]
         | 
| 16 23 |  | 
| @@ -533,7 +540,7 @@ Thanks for RTFM. ☺️ | |
| 533 540 | 
             
            [📌gitmoji]:https://gitmoji.dev
         | 
| 534 541 | 
             
            [📌gitmoji-img]:https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
         | 
| 535 542 | 
             
            [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
         | 
| 536 | 
            -
            [🧮kloc-img]: https://img.shields.io/badge/KLOC- | 
| 543 | 
            +
            [🧮kloc-img]: https://img.shields.io/badge/KLOC-4.112-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
         | 
| 537 544 | 
             
            [🔐security]: SECURITY.md
         | 
| 538 545 | 
             
            [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
         | 
| 539 546 | 
             
            [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
         | 
    
        data/README.md.no-osc.example
    CHANGED
    
    | @@ -1,16 +1,23 @@ | |
| 1 | 
            -
            | 📍 NOTE | 
| 2 | 
            -
             | 
| 3 | 
            -
            | RubyGems.org  | 
| 4 | 
            -
            | I'm in the process of adding warnings to  | 
| 5 | 
            -
            |  | 
| 6 | 
            -
            |  | 
| 1 | 
            +
            | 📍 NOTE                                                                                                                                                                                                   |
         | 
| 2 | 
            +
            |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
         | 
| 3 | 
            +
            | RubyGems.org [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies].         |
         | 
| 4 | 
            +
            | I'm in the process of adding warnings to gems because I [don't condone the theft][draper-theft] of the bundler and rubygems-update projects.                                                              |
         | 
| 5 | 
            +
            | If repos or publishing rights for my gems were similarly stolen, I'd hope others would stand up for me.                                                                                                   |
         | 
| 6 | 
            +
            | Once publishing to [gem.coop][gem-coop] is available I will stop publishing to RubyGems.org, unless they make amends.                                                                                     |
         | 
| 7 | 
            +
            | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. This ["Technology for Humans" podcast episode][reinteractive-podcast] is the best summary I'm aware of. |
         | 
| 8 | 
            +
            | My (WIP) proposal for [bundler/gem scopes][gem-scopes]. My (WIP) proposal for a federated [gem server][gem-server].                                                                                       |
         | 
| 7 9 |  | 
| 8 10 | 
             
            [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
         | 
| 9 11 | 
             
            [draper-takeover]: https://joel.drapper.me/p/ruby-central-takeover/
         | 
| 12 | 
            +
            [ellen-takeover]: https://pup-e.com/blog/goodbye-rubygems/
         | 
| 10 13 | 
             
            [draper-lies]: https://joel.drapper.me/p/ruby-central-fact-check/
         | 
| 11 14 | 
             
            [draper-theft]: https://joel.drapper.me/p/ruby-central/
         | 
| 12 15 | 
             
            [gem-coop]: https://gem.coop
         | 
| 16 | 
            +
            [gem-naming]: https://github.com/gem-coop/gem.coop/issues/12
         | 
| 13 17 | 
             
            [martin-ann]: https://martinemde.com/2025/10/05/announcing-gem-coop.html
         | 
| 18 | 
            +
            [gem-scopes]: https://github.com/galtzo-floss/bundle-namespace
         | 
| 19 | 
            +
            [gem-server]: https://github.com/galtzo-floss/gem-server
         | 
| 20 | 
            +
            [reinteractive-podcast]: https://youtu.be/_H4qbtC5qzU?si=BvuBU90R2wAqD2E6
         | 
| 14 21 |  | 
| 15 22 | 
             
            [![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]
         | 
| 16 23 |  | 
    
        data/Rakefile.example
    CHANGED
    
    
    
        data/exe/kettle-release
    CHANGED
    
    | @@ -11,8 +11,10 @@ | |
| 11 11 | 
             
            # - Builds and releases using Bundler/Rake (reproducible by default in Bundler 2.7+)
         | 
| 12 12 | 
             
            # - Runs `bundle exec rake build` (expects PEM password unless SKIP_GEM_SIGNING)
         | 
| 13 13 | 
             
            #   - If signing not skipped and no public cert in certs/<user>.pem, aborts with guidance
         | 
| 14 | 
            -
            # - Runs bin/gem_checksums
         | 
| 15 14 | 
             
            # - Runs `bundle exec rake release` (expects PEM password and RubyGems MFA OTP)
         | 
| 15 | 
            +
            # - Runs bin/gem_checksums (which creates the checksum commit), then pushes it
         | 
| 16 | 
            +
            # - Optionally creates a GitHub Release when GITHUB_TOKEN is present
         | 
| 17 | 
            +
            # - Finally pushes tags to remotes (including an 'all' aggregator if configured)
         | 
| 16 18 |  | 
| 17 19 | 
             
            # Immediate, unbuffered output
         | 
| 18 20 | 
             
            $stdout.sync = true
         | 
| @@ -52,7 +54,10 @@ if ARGV.include?("-h") || ARGV.include?("--help") | |
| 52 54 | 
             
                  - Commits a release prep change
         | 
| 53 55 | 
             
                  - Ensures trunk is up-to-date, pushes branch, and monitors CI (GitHub/GitLab)
         | 
| 54 56 | 
             
                  - Merges feature into trunk upon CI success
         | 
| 55 | 
            -
                  - Builds | 
| 57 | 
            +
                  - Builds and releases the gem
         | 
| 58 | 
            +
                  - Generates checksums (via bin/gem_checksums), then pushes the checksum commit
         | 
| 59 | 
            +
                  - Optionally creates a GitHub Release
         | 
| 60 | 
            +
                  - Pushes tags to remotes at the end
         | 
| 56 61 |  | 
| 57 62 | 
             
                Environment:
         | 
| 58 63 | 
             
                  SKIP_GEM_SIGNING=true        # skip gem signing during build/release
         | 
    
        data/kettle-dev.gemspec.example
    CHANGED
    
    | @@ -128,8 +128,7 @@ Gem::Specification.new do |spec| | |
| 128 128 |  | 
| 129 129 | 
             
              # Testing
         | 
| 130 130 | 
             
              spec.add_development_dependency("appraisal2", "~> 3.0")                           # ruby >= 1.8.7, for testing against multiple versions of dependencies
         | 
| 131 | 
            -
              spec.add_development_dependency("kettle-test", "~> 1.0") | 
| 132 | 
            -
              spec.add_development_dependency("rspec-pending_for", "~> 0.0", ">= 0.0.17")       # ruby >= 2.3, used to skip specs on incompatible Rubies
         | 
| 131 | 
            +
              spec.add_development_dependency("kettle-test", "~> 1.0", ">= 1.0.5")              # ruby >= 2.3
         | 
| 133 132 |  | 
| 134 133 | 
             
              # Releasing
         | 
| 135 134 | 
             
              spec.add_development_dependency("ruby-progressbar", "~> 1.13")                    # ruby >= 0
         | 
| @@ -147,19 +146,6 @@ Gem::Specification.new do |spec| | |
| 147 146 | 
             
              # spec.add_development_dependency("erb", ">= 2.2")                                  # ruby >= 2.3.0, not SemVer, old rubies get dropped in a patch.
         | 
| 148 147 | 
             
              spec.add_development_dependency("gitmoji-regex", "~> 1.0", ">= 1.0.3")            # ruby >= 2.3.0
         | 
| 149 148 |  | 
| 150 | 
            -
              # HTTP recording for deterministic specs
         | 
| 151 | 
            -
              # Ruby 2.3 / 2.4 can fail with:
         | 
| 152 | 
            -
              # | An error occurred while loading spec_helper.
         | 
| 153 | 
            -
              # | Failure/Error: require "vcr"
         | 
| 154 | 
            -
              # |
         | 
| 155 | 
            -
              # | NoMethodError:
         | 
| 156 | 
            -
              # |   undefined method `delete_prefix' for "CONTENT_LENGTH":String
         | 
| 157 | 
            -
              # | # ./spec/config/vcr.rb:3:in `require'
         | 
| 158 | 
            -
              # | # ./spec/config/vcr.rb:3:in `<top (required)>'
         | 
| 159 | 
            -
              # | # ./spec/spec_helper.rb:8:in `require_relative'
         | 
| 160 | 
            -
              # | # ./spec/spec_helper.rb:8:in `<top (required)>'
         | 
| 161 | 
            -
              # So that's why we need backports.
         | 
| 162 | 
            -
              # spec.add_development_dependency("backports", "~> 3.25", ">= 3.25.1")  # ruby >= 0
         | 
| 163 149 | 
             
              # In Ruby 3.5 (HEAD) the CGI library has been pared down, so we also need to depend on gem "cgi" for ruby@head
         | 
| 164 150 | 
             
              # This is done in the "head" appraisal.
         | 
| 165 151 | 
             
              # See: https://github.com/vcr/vcr/issues/1057
         | 
| @@ -104,6 +104,36 @@ module Kettle | |
| 104 104 | 
             
                    end
         | 
| 105 105 | 
             
                  end
         | 
| 106 106 |  | 
| 107 | 
            +
                  # Push all tags to a remote.
         | 
| 108 | 
            +
                  # Notes:
         | 
| 109 | 
            +
                  # - The ruby-git gem does not provide a stable API for pushing all tags across
         | 
| 110 | 
            +
                  #   versions, so we intentionally shell out to `git push --tags` for both
         | 
| 111 | 
            +
                  #   backends. Tests should stub this method in higher-level code to avoid
         | 
| 112 | 
            +
                  #   mutating any repositories.
         | 
| 113 | 
            +
                  #
         | 
| 114 | 
            +
                  # @param remote [String, nil] The remote name. When nil or empty, uses the
         | 
| 115 | 
            +
                  #   repository's default remote (same behavior as running `git push --tags`)
         | 
| 116 | 
            +
                  #   which typically uses the current branch's upstream.
         | 
| 117 | 
            +
                  # @return [Boolean] true if the system call reports success; false on failure
         | 
| 118 | 
            +
                  def push_tags(remote)
         | 
| 119 | 
            +
                    if @backend == :gem
         | 
| 120 | 
            +
                      # The ruby-git gem does not expose a dedicated API for "--tags" consistently across versions.
         | 
| 121 | 
            +
                      # Use a shell fallback even when the gem backend is active. Tests should stub this method.
         | 
| 122 | 
            +
                      if remote && !remote.to_s.empty?
         | 
| 123 | 
            +
                        system("git", "push", remote.to_s, "--tags")
         | 
| 124 | 
            +
                      else
         | 
| 125 | 
            +
                        system("git", "push", "--tags")
         | 
| 126 | 
            +
                      end
         | 
| 127 | 
            +
                    elsif remote && !remote.to_s.empty?
         | 
| 128 | 
            +
                      system("git", "push", remote.to_s, "--tags")
         | 
| 129 | 
            +
                    else
         | 
| 130 | 
            +
                      system("git", "push", "--tags")
         | 
| 131 | 
            +
                    end
         | 
| 132 | 
            +
                  rescue StandardError => e
         | 
| 133 | 
            +
                    Kettle::Dev.debug_error(e, __method__)
         | 
| 134 | 
            +
                    false
         | 
| 135 | 
            +
                  end
         | 
| 136 | 
            +
             | 
| 107 137 | 
             
                  # @return [String, nil] current branch name, or nil on error
         | 
| 108 138 | 
             
                  def current_branch
         | 
| 109 139 | 
             
                    if @backend == :gem
         | 
| @@ -6,14 +6,14 @@ begin | |
| 6 6 |  | 
| 7 7 | 
             
              desc("Install Appraisal gemfiles (initial setup for projects that didn't previously use Appraisal)")
         | 
| 8 8 | 
             
              task("appraisal:install") do
         | 
| 9 | 
            -
                bundle =  | 
| 9 | 
            +
                bundle = "bundle"
         | 
| 10 10 |  | 
| 11 11 | 
             
                run_in_unbundled = proc do
         | 
| 12 12 | 
             
                  env = {"BUNDLE_GEMFILE" => "Appraisal.root.gemfile"}
         | 
| 13 13 |  | 
| 14 | 
            -
                  # 1)  | 
| 15 | 
            -
                  ok = system(bundle, "install" | 
| 16 | 
            -
                  abort("appraisal:install failed:  | 
| 14 | 
            +
                  # 1) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install
         | 
| 15 | 
            +
                  ok = system(env, bundle, "install")
         | 
| 16 | 
            +
                  abort("appraisal:install failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install") unless ok
         | 
| 17 17 |  | 
| 18 18 | 
             
                  # 2) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal install
         | 
| 19 19 | 
             
                  ok = system(env, bundle, "exec", "appraisal", "install")
         | 
| @@ -33,22 +33,22 @@ begin | |
| 33 33 |  | 
| 34 34 | 
             
              desc("Update Appraisal gemfiles and run RuboCop Gradual autocorrect")
         | 
| 35 35 | 
             
              task("appraisal:update") do
         | 
| 36 | 
            -
                bundle =  | 
| 36 | 
            +
                bundle = "bundle"
         | 
| 37 37 |  | 
| 38 38 | 
             
                run_in_unbundled = proc do
         | 
| 39 39 | 
             
                  env = {"BUNDLE_GEMFILE" => "Appraisal.root.gemfile"}
         | 
| 40 40 |  | 
| 41 41 | 
             
                  # 1) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle update --bundler
         | 
| 42 42 | 
             
                  ok = system(env, bundle, "update", "--bundler")
         | 
| 43 | 
            -
                  abort("appraisal:update failed: bundle update --bundler | 
| 43 | 
            +
                  abort("appraisal:update failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle update --bundler") unless ok
         | 
| 44 44 |  | 
| 45 | 
            -
                  # 2) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle  | 
| 46 | 
            -
                  ok = system(env, bundle)
         | 
| 47 | 
            -
                  abort("appraisal:update failed:  | 
| 45 | 
            +
                  # 2) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install
         | 
| 46 | 
            +
                  ok = system(env, bundle, "install")
         | 
| 47 | 
            +
                  abort("appraisal:update failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle install") unless ok
         | 
| 48 48 |  | 
| 49 49 | 
             
                  # 3) BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update
         | 
| 50 50 | 
             
                  ok = system(env, bundle, "exec", "appraisal", "update")
         | 
| 51 | 
            -
                  abort("appraisal:update failed: bundle exec appraisal update") unless ok
         | 
| 51 | 
            +
                  abort("appraisal:update failed: BUNDLE_GEMFILE=Appraisal.root.gemfile bundle exec appraisal update") unless ok
         | 
| 52 52 |  | 
| 53 53 | 
             
                  # 4) bundle exec rake rubocop_gradual:autocorrect
         | 
| 54 54 | 
             
                  ok = system(bundle, "exec", "rake", "rubocop_gradual:autocorrect")
         | 
| @@ -22,7 +22,7 @@ namespace :bench do | |
| 22 22 | 
             
                end
         | 
| 23 23 |  | 
| 24 24 | 
             
                ruby = RbConfig.ruby
         | 
| 25 | 
            -
                bundle =  | 
| 25 | 
            +
                bundle = "bundle"
         | 
| 26 26 | 
             
                bench_files = Dir[File.join(__dir__, "benchmarks", "*.rb")].sort
         | 
| 27 27 | 
             
                if bench_files.empty?
         | 
| 28 28 | 
             
                  puts "No benchmark scripts found under benchmarks/."
         | 
| @@ -15,7 +15,7 @@ begin | |
| 15 15 | 
             
              desc("Run reek and store the output into the REEK file")
         | 
| 16 16 | 
             
              task("reek:update") do
         | 
| 17 17 | 
             
                # Run via Bundler if available to ensure the right gem version is used
         | 
| 18 | 
            -
                cmd = [ | 
| 18 | 
            +
                cmd = %w[bundle exec reek]
         | 
| 19 19 |  | 
| 20 20 | 
             
                output, status = Open3.capture2e(*cmd)
         | 
| 21 21 |  | 
| @@ -269,22 +269,25 @@ module Kettle | |
| 269 269 | 
             
                    # 16. generate checksums
         | 
| 270 270 | 
             
                    #    Checksums are generated after release to avoid including checksums/ in gem package
         | 
| 271 271 | 
             
                    #    Rationale: Running gem_checksums before release may commit checksums/ and cause Bundler's
         | 
| 272 | 
            -
                    #    release build to include them in the gem, altering the artifact.
         | 
| 272 | 
            +
                    #    release build to include them in the gem, thus altering the artifact, and invalidating the checksums.
         | 
| 273 273 | 
             
                    if @start_step <= 16
         | 
| 274 | 
            -
                      # Generate checksums for the just-built artifact, then validate
         | 
| 274 | 
            +
                      # Generate checksums for the just-built artifact, commit them, then validate
         | 
| 275 275 | 
             
                      run_cmd!("bin/gem_checksums")
         | 
| 276 276 | 
             
                      version ||= detect_version
         | 
| 277 277 | 
             
                      validate_checksums!(version, stage: "after release")
         | 
| 278 278 | 
             
                    end
         | 
| 279 279 |  | 
| 280 | 
            -
                    # 17.  | 
| 281 | 
            -
                    if @start_step <= 17
         | 
| 280 | 
            +
                    # 17. push checksum commit (gem_checksums already commits)
         | 
| 281 | 
            +
                    push! if @start_step <= 17
         | 
| 282 | 
            +
             | 
| 283 | 
            +
                    # 18. create GitHub release (optional)
         | 
| 284 | 
            +
                    if @start_step <= 18
         | 
| 282 285 | 
             
                      version ||= detect_version
         | 
| 283 286 | 
             
                      maybe_create_github_release!(version)
         | 
| 284 287 | 
             
                    end
         | 
| 285 288 |  | 
| 286 | 
            -
                    #  | 
| 287 | 
            -
                    push_tags! if @start_step <=  | 
| 289 | 
            +
                    # 19. push tags to remotes (final step)
         | 
| 290 | 
            +
                    push_tags! if @start_step <= 19
         | 
| 288 291 |  | 
| 289 292 | 
             
                    # Final success message
         | 
| 290 293 | 
             
                    begin
         | 
| @@ -708,17 +711,20 @@ module Kettle | |
| 708 711 | 
             
                    # 2) Otherwise, if other remotes exist, push tags to each of them.
         | 
| 709 712 | 
             
                    # 3) If no remotes are configured, push tags using default remote.
         | 
| 710 713 | 
             
                    if has_remote?("all")
         | 
| 711 | 
            -
                       | 
| 714 | 
            +
                      ok = @git.push_tags("all")
         | 
| 715 | 
            +
                      warn("Push tags to 'all' reported failure.") unless ok
         | 
| 712 716 | 
             
                      return
         | 
| 713 717 | 
             
                    end
         | 
| 714 718 |  | 
| 715 719 | 
             
                    remotes = list_remotes
         | 
| 716 720 | 
             
                    remotes -= ["all"] if remotes
         | 
| 717 721 | 
             
                    if remotes.nil? || remotes.empty?
         | 
| 718 | 
            -
                       | 
| 722 | 
            +
                      ok = @git.push_tags(nil)
         | 
| 723 | 
            +
                      warn("Push tags (default remote) reported failure.") unless ok
         | 
| 719 724 | 
             
                    else
         | 
| 720 725 | 
             
                      remotes.each do |remote|
         | 
| 721 | 
            -
                         | 
| 726 | 
            +
                        ok = @git.push_tags(remote)
         | 
| 727 | 
            +
                        warn("Push tags to #{remote} reported failure.") unless ok
         | 
| 722 728 | 
             
                      end
         | 
| 723 729 | 
             
                    end
         | 
| 724 730 | 
             
                  end
         | 
    
        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.35
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Peter H. Boling
         | 
| @@ -106,33 +106,19 @@ dependencies: | |
| 106 106 | 
             
                - - "~>"
         | 
| 107 107 | 
             
                  - !ruby/object:Gem::Version
         | 
| 108 108 | 
             
                    version: '1.0'
         | 
| 109 | 
            -
              type: :development
         | 
| 110 | 
            -
              prerelease: false
         | 
| 111 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 112 | 
            -
                requirements:
         | 
| 113 | 
            -
                - - "~>"
         | 
| 114 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 115 | 
            -
                    version: '1.0'
         | 
| 116 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 117 | 
            -
              name: rspec-pending_for
         | 
| 118 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 119 | 
            -
                requirements:
         | 
| 120 | 
            -
                - - "~>"
         | 
| 121 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 122 | 
            -
                    version: '0.0'
         | 
| 123 109 | 
             
                - - ">="
         | 
| 124 110 | 
             
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version:  | 
| 111 | 
            +
                    version: 1.0.5
         | 
| 126 112 | 
             
              type: :development
         | 
| 127 113 | 
             
              prerelease: false
         | 
| 128 114 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 129 115 | 
             
                requirements:
         | 
| 130 116 | 
             
                - - "~>"
         | 
| 131 117 | 
             
                  - !ruby/object:Gem::Version
         | 
| 132 | 
            -
                    version: ' | 
| 118 | 
            +
                    version: '1.0'
         | 
| 133 119 | 
             
                - - ">="
         | 
| 134 120 | 
             
                  - !ruby/object:Gem::Version
         | 
| 135 | 
            -
                    version:  | 
| 121 | 
            +
                    version: 1.0.5
         | 
| 136 122 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 137 123 | 
             
              name: ruby-progressbar
         | 
| 138 124 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -409,10 +395,10 @@ licenses: | |
| 409 395 | 
             
            - MIT
         | 
| 410 396 | 
             
            metadata:
         | 
| 411 397 | 
             
              homepage_uri: https://kettle-dev.galtzo.com/
         | 
| 412 | 
            -
              source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1. | 
| 413 | 
            -
              changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1. | 
| 398 | 
            +
              source_code_uri: https://github.com/kettle-rb/kettle-dev/tree/v1.1.35
         | 
| 399 | 
            +
              changelog_uri: https://github.com/kettle-rb/kettle-dev/blob/v1.1.35/CHANGELOG.md
         | 
| 414 400 | 
             
              bug_tracker_uri: https://github.com/kettle-rb/kettle-dev/issues
         | 
| 415 | 
            -
              documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1. | 
| 401 | 
            +
              documentation_uri: https://www.rubydoc.info/gems/kettle-dev/1.1.35
         | 
| 416 402 | 
             
              funding_uri: https://github.com/sponsors/pboling
         | 
| 417 403 | 
             
              wiki_uri: https://github.com/kettle-rb/kettle-dev/wiki
         | 
| 418 404 | 
             
              news_uri: https://www.railsbling.com/tags/kettle-dev
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |