From b71eb4f6ec8ad2250a5065ffe76078c44e8b2213 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Mon, 20 Jan 2025 15:43:32 +0200 Subject: [PATCH 01/14] Add support for Rails 6.1.0 patches --- carpentry.gemspec | 4 ++-- lib/carpentry/version.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/carpentry.gemspec b/carpentry.gemspec index 4a77cd2..1c08ff6 100644 --- a/carpentry.gemspec +++ b/carpentry.gemspec @@ -17,10 +17,10 @@ Gem::Specification.new do |s| s.files = Dir["{app,lib,config}/**/*"] + ["Rakefile", "Gemfile", "README.md"] - s.add_dependency("railties", ">= 4.2.0", "<= 6.1.4.1") + s.add_dependency("railties", ">= 4.2.0", "~> 6.1.0") s.add_development_dependency "rdoc" - s.add_development_dependency "rails", ">= 4.2.0", "<= 6.1.4.1" + s.add_development_dependency "rails", ">= 4.2.0", "~> 6.1.0" s.add_development_dependency "capybara", "~> 2.13" s.add_development_dependency "autotest-standalone" s.add_development_dependency "rspec-rails", "~> 3.4" diff --git a/lib/carpentry/version.rb b/lib/carpentry/version.rb index 97d19cf..a3692ab 100644 --- a/lib/carpentry/version.rb +++ b/lib/carpentry/version.rb @@ -1,3 +1,3 @@ module Carpentry - VERSION = "2.2.5" + VERSION = "2.2.6" end From 8754b8bd07578b70253cf6a10075ea83dc981798 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Mon, 20 Jan 2025 15:44:06 +0200 Subject: [PATCH 02/14] Add Ruby 3.4. for testing --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0225817..f4d5731 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,7 @@ rvm: - 2.6 - 2.7 - 3.0 + - 3.4 gemfile: - Gemfile - Gemfile.rails-5.0.x @@ -16,11 +17,15 @@ jobs: exclude: - rvm: 3.0 gemfile: Gemfile.rails-5.0.x + - rvm: 3.4 + gemfile: Gemfile.rails-5.0.x - rvm: 3.0 gemfile: Gemfile.rails-5.1.x + - rvm: 3.4 + gemfile: Gemfile.rails-5.1.x script: "./bin/rspec spec" before_install: - - gem install bundler + - gem install bundler -v 2.4.22 notifications: email: false deploy: From d738e60389585bf7467cbae2e9211a6be3dd9f9b Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Tue, 21 Jan 2025 08:54:23 +0200 Subject: [PATCH 03/14] Fix dependency concurrent-ruby to v1.3.5 Concurrent-ruby v1.3.5 has removed the dependency on logger. All Rails versions before 7.1 are affected by this issue because they have a direct dependency on concurrent --- carpentry.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/carpentry.gemspec b/carpentry.gemspec index 1c08ff6..5e7886d 100644 --- a/carpentry.gemspec +++ b/carpentry.gemspec @@ -21,6 +21,7 @@ Gem::Specification.new do |s| s.add_development_dependency "rdoc" s.add_development_dependency "rails", ">= 4.2.0", "~> 6.1.0" + s.add_development_dependency "concurrent-ruby", "<= 1.3.4" s.add_development_dependency "capybara", "~> 2.13" s.add_development_dependency "autotest-standalone" s.add_development_dependency "rspec-rails", "~> 3.4" From 4b4036bfec8bd91a05fc7ddc47e73fac3dcfedff Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Tue, 21 Jan 2025 13:23:10 +0200 Subject: [PATCH 04/14] Change travis bundler version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f4d5731..96c8bdf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ jobs: gemfile: Gemfile.rails-5.1.x script: "./bin/rspec spec" before_install: - - gem install bundler -v 2.4.22 + - gem install bundler -v 2.0 notifications: email: false deploy: From 4512a139962275040bea53075ad9cde366995b97 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 10:00:56 +0200 Subject: [PATCH 05/14] Change exists method to singular form Support for Ruby 3.2.0 - Alias exists? (pluralized) for exist? (singular) has been removed. --- spec/dummy/config/boot.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/dummy/config/boot.rb b/spec/dummy/config/boot.rb index ef36047..6266cfc 100644 --- a/spec/dummy/config/boot.rb +++ b/spec/dummy/config/boot.rb @@ -1,5 +1,5 @@ # Set up gems listed in the Gemfile. ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__) -require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE']) +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE']) $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__) From a3419004c66cddf5055a22bbfd13780c8aa71741 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 11:30:30 +0200 Subject: [PATCH 06/14] Ruby 3.4 dropping support for BigDecimal and mutex_m --- carpentry.gemspec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/carpentry.gemspec b/carpentry.gemspec index 5e7886d..a0230fc 100644 --- a/carpentry.gemspec +++ b/carpentry.gemspec @@ -24,5 +24,10 @@ Gem::Specification.new do |s| s.add_development_dependency "concurrent-ruby", "<= 1.3.4" s.add_development_dependency "capybara", "~> 2.13" s.add_development_dependency "autotest-standalone" - s.add_development_dependency "rspec-rails", "~> 3.4" + s.add_development_dependency "rspec-rails" + + if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.4') + s.add_development_dependency "bigdecimal" + s.add_development_dependency "mutex_m" + end end From 2fa8d802bbfec7d54dad6e03b830e5e16ccaa1be Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 11:43:22 +0200 Subject: [PATCH 07/14] Change capybara dev dependency version requirement --- carpentry.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/carpentry.gemspec b/carpentry.gemspec index a0230fc..b2bd5b3 100644 --- a/carpentry.gemspec +++ b/carpentry.gemspec @@ -22,7 +22,7 @@ Gem::Specification.new do |s| s.add_development_dependency "rdoc" s.add_development_dependency "rails", ">= 4.2.0", "~> 6.1.0" s.add_development_dependency "concurrent-ruby", "<= 1.3.4" - s.add_development_dependency "capybara", "~> 2.13" + s.add_development_dependency "capybara", ">= 2.13" s.add_development_dependency "autotest-standalone" s.add_development_dependency "rspec-rails" From a2605b5ddb2adb26c3eaa16e2a416f2331a72a20 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 12:33:24 +0200 Subject: [PATCH 08/14] Add drb as dev dependency for ruby 3.4. --- carpentry.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/carpentry.gemspec b/carpentry.gemspec index b2bd5b3..1ada44f 100644 --- a/carpentry.gemspec +++ b/carpentry.gemspec @@ -29,5 +29,6 @@ Gem::Specification.new do |s| if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.4') s.add_development_dependency "bigdecimal" s.add_development_dependency "mutex_m" + s.add_development_dependency "drb" end end From c2c0eb304199cded547b73585a474123985202b4 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 10:24:34 +0200 Subject: [PATCH 09/14] Add github actions --- .github/workflows/ci.yml | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c5ceaeb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,53 @@ +name: CI + +concurrency: + group: ${{ github.workflow }}-${{ github.ref_name }} + cancel-in-progress: true + +on: + push: + branches: + - kiskolabs/add_rails_6.1_and_ruby_3_4 + + pull_request: + branches: + - kiskolabs/add_rails_6.1_and_ruby_3_4 + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + matrix: + ruby: ['2.6', '2.7', '3.0', '3.4'] + gemfile: + - Gemfile + - Gemfile.rails-5.0.x + - Gemfile.rails-5.1.x + - Gemfile.rails-6.0.x + - Gemfile.rails-6.1.x + + exclude: + - ruby: 3.0 + gemfile: Gemfile.rails-5.0.x + - ruby: 3.4 + gemfile: Gemfile.rails-5.0.x + - ruby: 3.0 + gemfile: Gemfile.rails-5.1.x + - ruby: 3.4 + gemfile: Gemfile.rails-5.1.x + + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler: '2.4' + bundler-cache: true + cache-version: 1 # ignore contents of the cache and get and build all the gems anew. + + - name: Run tests + run: | + bundle exec rspec From 97ccc59bd42e30052acf58520fe4e8d0a3d20234 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 13:39:24 +0200 Subject: [PATCH 10/14] Create initial publish github actions --- .github/workflows/ci.yml | 1 + .github/workflows/publish.yml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5ceaeb..3b4423d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,7 @@ concurrency: cancel-in-progress: true on: + workflow_call: push: branches: - kiskolabs/add_rails_6.1_and_ruby_3_4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..3f48cee --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,33 @@ +name: Deploy to RubyGems + +on: + workflow_dispatch: + push: + tags: + - '*' + branches: + - kiskolabs/gha-publish-to-rubygems + +jobs: + test: + uses: ./.github/workflows/ci.yml + push: + runs-on: ubuntu-latest + needs: [test] + permissions: + contents: write + id-token: write + steps: + - name: Test + run: | + echo "Testing successful case" + + # - uses: actions/checkout@v4 + # - name: Set up Ruby + # uses: ruby/setup-ruby@v1 + # with: + # bundler-cache: true + # ruby-version: 3.0 + + # # Release + # - uses: rubygems/release-gem@v1 From 0b50df1b06133e2e30eae80929b9c6cdf509cc1a Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 13:56:11 +0200 Subject: [PATCH 11/14] Add github action to release to ruby gems --- .github/workflows/publish.yml | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3f48cee..3a3ab32 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,8 +5,6 @@ on: push: tags: - '*' - branches: - - kiskolabs/gha-publish-to-rubygems jobs: test: @@ -18,16 +16,12 @@ jobs: contents: write id-token: write steps: - - name: Test - run: | - echo "Testing successful case" + - uses: actions/checkout@v4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + ruby-version: 2.6 - # - uses: actions/checkout@v4 - # - name: Set up Ruby - # uses: ruby/setup-ruby@v1 - # with: - # bundler-cache: true - # ruby-version: 3.0 - - # # Release - # - uses: rubygems/release-gem@v1 + # Release + - uses: rubygems/release-gem@v1 From 783f0cb1d8f351a9477cee689911c41bd7a53ad0 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 13:57:58 +0200 Subject: [PATCH 12/14] Remove Travis Has been replaced with github actions --- .travis.yml | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 96c8bdf..0000000 --- a/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ -sudo: false -dist: xenial -cache: bundler -language: ruby -rvm: - - 2.6 - - 2.7 - - 3.0 - - 3.4 -gemfile: - - Gemfile - - Gemfile.rails-5.0.x - - Gemfile.rails-5.1.x - - Gemfile.rails-6.0.x - - Gemfile.rails-6.1.x -jobs: - exclude: - - rvm: 3.0 - gemfile: Gemfile.rails-5.0.x - - rvm: 3.4 - gemfile: Gemfile.rails-5.0.x - - rvm: 3.0 - gemfile: Gemfile.rails-5.1.x - - rvm: 3.4 - gemfile: Gemfile.rails-5.1.x -script: "./bin/rspec spec" -before_install: - - gem install bundler -v 2.0 -notifications: - email: false -deploy: - provider: rubygems - api_key: - secure: Qng7FzbYWSU+R5Ou+hsg3EiyGwWQ2DVEP/Oc3zksVBT0zGy+/c2XgIvbZvw9KdcR0TNW4sLa135twwyQS5Qnfjq/jogKrBnR9uHvxvvVIIvN/kPO8HG0XFXg4IW+M/pbC25iZMo/x1HnYlKqWpCol8d86fbtjL8tT/clB10ulRM= - gem: carpentry - on: - tags: true - repo: kiskolabs/carpentry - ruby: 2.4 - condition: "$BUNDLE_GEMFILE = $PWD/Gemfile" From 739fea1b5f1257d67833365e4199ed382a6f9606 Mon Sep 17 00:00:00 2001 From: Tiina Pennala Date: Wed, 22 Jan 2025 16:28:35 +0200 Subject: [PATCH 13/14] Publish only if tag starts with v* --- .github/workflows/publish.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3a3ab32..ad88091 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -3,8 +3,7 @@ name: Deploy to RubyGems on: workflow_dispatch: push: - tags: - - '*' + tags: [ 'v*.*.*' ] jobs: test: From 56f539aef7e2c04d335696f10174f8c359599365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vesa=20V=C3=A4nsk=C3=A4?= Date: Mon, 27 Jan 2025 15:03:48 +0200 Subject: [PATCH 14/14] Skip tests when publishing new gem version - The tests should be run before tagging release. - Use hardened environment. Inspired by https://github.com/segiddins/rubygems-await/blob/main/.github/workflows/push_gem.yml --- .github/workflows/publish.yml | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad88091..b69e589 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -3,18 +3,28 @@ name: Deploy to RubyGems on: workflow_dispatch: push: - tags: [ 'v*.*.*' ] + tags: + - v*.*.* + +permissions: + contents: read jobs: - test: - uses: ./.github/workflows/ci.yml push: + if: github.repository == 'kiskolabs/carpentry' runs-on: ubuntu-latest - needs: [test] + permissions: contents: write id-token: write + steps: + # Set up + - name: Harden Runner + uses: step-security/harden-runner@v2 + with: + egress-policy: audit + - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1