From 19d24e31ac8f0674d675635bd62a12b53bf3dd28 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Wed, 1 Jul 2026 12:50:54 -0700 Subject: [PATCH 1/3] ci: adopt shared reusable CI workflow Replace the hand-rolled test/type-check/lint matrix with a call to rubyatscale/shared-config's reusable ci.yml, which already tests Ruby 3.3, 3.4, and 4.0. Keeps this repo's CI in lockstep with the org. --- .github/workflows/ci.yml | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55146fc..c1178ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,30 +4,9 @@ on: push: branches: - main - pull_request: jobs: - tests: - name: Tests Ruby ${{ matrix.ruby }} - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - ruby: - - '3.3' - - '3.4' - - steps: - - uses: actions/checkout@v7.0.0 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - bundler-cache: true - - name: Run static type checks - run: bundle exec srb tc - - name: Run lint - run: bundle exec rubocop - - name: Run tests - run: bundle exec rspec + call-workflow-from-shared-config: + uses: rubyatscale/shared-config/.github/workflows/ci.yml@main + secrets: inherit From 726de2cd15ac44366eb596c0bbfefc6b600509e6 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Wed, 1 Jul 2026 13:17:33 -0700 Subject: [PATCH 2/3] deps: support Ruby 4.0 (bump rubocop, minitest) Adding Ruby 4.0 to CI surfaced two incompatibilities: - Gemfile.lock pinned minitest 5.25.5, whose gemspec caps Ruby < 4.0, breaking `bundle install` on 4.0. - RuboCop 1.74.0 rejects `RUBY_VERSION.to_f` (4.0) with 'unknown Ruby version', failing the specs that parse source via RuboCop::ProcessedSource. Bump both (rubocop 1.74->1.88, minitest ->6) plus transitive deps. RuboCop 1.88 enables Naming/PredicateMethod, which flags enforce_dependencies/ enforce_privacy; those mirror packwerk's public API and can't be renamed, so each is annotated with an inline rubocop:disable comment. --- Gemfile.lock | 33 ++++++++++++++++++--------------- lib/query_packwerk/package.rb | 6 ++++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 503a82e..1031bd7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -59,15 +59,17 @@ GEM pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.10.2) - language_server-protocol (3.17.0.4) + json (2.20.0) + language_server-protocol (3.17.0.5) lint_roller (1.1.0) logger (1.6.6) loofah (2.24.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) method_source (1.1.0) - minitest (5.25.5) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) netrc (0.11.0) nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) @@ -94,17 +96,17 @@ GEM prism (>= 0.25.0) sorbet-runtime (>= 0.5.9914) zeitwerk (>= 2.6.1) - parallel (1.26.3) + parallel (2.1.0) parse_packwerk (0.26.0) bigdecimal sorbet-runtime - parser (3.3.7.2) + parser (3.3.11.1) ast (~> 2.4.1) racc pp (0.6.2) prettyprint prettyprint (0.2.0) - prism (1.4.0) + prism (1.9.0) pry (0.15.2) coderay (~> 1.1) method_source (~> 1.0) @@ -129,7 +131,7 @@ GEM logger rdoc (6.12.0) psych (>= 4.0.0) - regexp_parser (2.10.0) + regexp_parser (2.12.0) reline (0.6.0) io-console (~> 0.5) rspec (3.13.0) @@ -145,19 +147,20 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.2) - rubocop (1.74.0) + rubocop (1.88.1) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) - parallel (~> 1.10) + parallel (>= 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.38.0, < 2.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.41.0) + rubocop-ast (1.49.1) parser (>= 3.3.7.2) + prism (~> 1.7) rubocop-performance (1.24.0) lint_roller (~> 1.1) rubocop (>= 1.72.1, < 2.0) @@ -197,9 +200,9 @@ GEM thor (1.3.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) uri (1.1.1) yard (0.9.44) yard-sorbet (0.9.0) @@ -232,4 +235,4 @@ DEPENDENCIES tapioca BUNDLED WITH - 4.0.15 + 4.0.10 diff --git a/lib/query_packwerk/package.rb b/lib/query_packwerk/package.rb index d844a46..5c89382 100644 --- a/lib/query_packwerk/package.rb +++ b/lib/query_packwerk/package.rb @@ -21,13 +21,15 @@ def name @original_package.name end + # Mirrors packwerk's public API naming, so it can't take a `?` suffix. sig { returns(T::Boolean) } - def enforce_dependencies + def enforce_dependencies # rubocop:disable Naming/PredicateMethod !!@original_package.enforce_dependencies end + # Mirrors packwerk's public API naming, so it can't take a `?` suffix. sig { returns(T::Boolean) } - def enforce_privacy + def enforce_privacy # rubocop:disable Naming/PredicateMethod !!@original_package.enforce_privacy end From 9b02673064bffad76af36ba08b6e58d09278ef26 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger <697964+dduugg@users.noreply.github.com> Date: Wed, 1 Jul 2026 13:22:45 -0700 Subject: [PATCH 3/3] Apply suggestion from @dduugg --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1031bd7..3d31f7a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -235,4 +235,4 @@ DEPENDENCIES tapioca BUNDLED WITH - 4.0.10 + 4.0.15