From 767a1850ecec5bc230d0d28f70ac0a461da602f6 Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Tue, 29 Jul 2025 11:01:30 +0200 Subject: [PATCH 1/3] Run spotbugs with --primary * Before: Scanning archives (123 / 216) 2 analysis passes to perform Pass 1: Analyzing classes (23005 / 23005) - 100% complete Pass 2: Analyzing classes (21728 / 21728) - 100% complete Done with analysis 529.73s user 8.03s system 184% cpu 4:51.94 total * After: Scanning archives (35 / 46) 2 analysis passes to perform Pass 1: Analyzing classes (8157 / 8157) - 100% complete Pass 2: Analyzing classes (7346 / 7346) - 100% complete Done with analysis 225.31s user 4.18s system 231% cpu 1:39.03 total --- mx.truffleruby/mx_truffleruby.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mx.truffleruby/mx_truffleruby.py b/mx.truffleruby/mx_truffleruby.py index 12c805fd980..3749b18c464 100644 --- a/mx.truffleruby/mx_truffleruby.py +++ b/mx.truffleruby/mx_truffleruby.py @@ -303,7 +303,7 @@ def ruby_spotbugs(args): spotbugsArgs = ['-textui', '-low', '-longBugCodes', '-include', filters] if mx.is_interactive(): spotbugsArgs.append('-progress') - sys.exit(mx_spotbugs.spotbugs(args, spotbugsArgs)) + sys.exit(mx_spotbugs.spotbugs(['--primary', *args], spotbugsArgs)) def verify_ci(args): """Verify CI configuration""" From 70600094b0c95660feb08ef13ac8f21cadbc9df8 Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Tue, 29 Jul 2025 11:51:16 +0200 Subject: [PATCH 2/3] Run ruby-lint with jdk-latest to avoid building librubyvm * Using jdk.stable would cause to set BOOTSTRAP_GRAALVM which would then build librubyvm.so on `mx build` (needed by spotbugs). --- ci.jsonnet | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci.jsonnet b/ci.jsonnet index 29b0b1579fd..87c3850ec1d 100644 --- a/ci.jsonnet +++ b/ci.jsonnet @@ -537,8 +537,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " test_builds: { - # Lint runs on JDK stable because some lint tools do not work on JDK latest - "ruby-lint": $.platform.linux + $.cap.tier2 + $.jdk.stable + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, + "ruby-lint": $.platform.linux + $.cap.tier2 + $.jdk.latest + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, # Run specs on CRuby to make sure new specs are compatible and have the needed version guards "ruby-test-specs-on-cruby": $.platform.linux + $.cap.tier2 + $.use.skip_ci + $.use.common + $.run.test_specs_mri + { timelimit: "45:00" }, } + From 72045177d8e5c171319b30b9b53b8dd1c562013d Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Tue, 29 Jul 2025 11:34:02 +0200 Subject: [PATCH 3/3] Make ruby-lint tier1 as it should be fast enough now --- ci.jsonnet | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci.jsonnet b/ci.jsonnet index 87c3850ec1d..3651cf2ea42 100644 --- a/ci.jsonnet +++ b/ci.jsonnet @@ -537,7 +537,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " test_builds: { - "ruby-lint": $.platform.linux + $.cap.tier2 + $.jdk.latest + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, + "ruby-lint": $.platform.linux + $.cap.tier1 + $.jdk.latest + $.use.common + $.env.jvm + $.use.build + $.run.lint + { timelimit: "45:00" }, # Run specs on CRuby to make sure new specs are compatible and have the needed version guards "ruby-test-specs-on-cruby": $.platform.linux + $.cap.tier2 + $.use.skip_ci + $.use.common + $.run.test_specs_mri + { timelimit: "45:00" }, } + @@ -764,6 +764,7 @@ local composition_environment = utils.add_inclusion_tracking(part_definitions, " specVersion: "7", overlay: overlay, tierConfig: { + "tier1": "gate", "tier2": "gate", "tier3": "gate", },