ci-queue 0.93.0 → 0.94.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be6f03ad5e92846d3fc8439c3e7f0c5d8c7f5aff4d3c7fd18524ecf84c0e7965
4
- data.tar.gz: f8a218457abece125c9670fe8462009fb3787b3df923b4ae0d4beb56e2dff80f
3
+ metadata.gz: 3c02125deb535c3692db00957a8684af3080464e2eb0433ce32a86d596068290
4
+ data.tar.gz: 609ffa08032a2603d305a2651b91a751beb25220fda483a64c5b29b4bd4b9b9e
5
5
  SHA512:
6
- metadata.gz: e7192b7e8fb8fb41446b3569e21a5672e7cf36ca5cfd24a8443eb91b093e8cd6174a914cbfcf52580f33793a02a463381ab2cee5504425096b1435e5eb06ada1
7
- data.tar.gz: 159a1525f2b3096ca7b32bb0da3353db324c58abe7275ad0c56de05e72c2939325f78e5aa699241dc226e01a932be8c893cd6864262ee78f84c20a71298ee476
6
+ metadata.gz: e543f22d017b64b9ff0c053e1095485de56900b67f3d81d3f5ee9271c1dd2534774362f5a275bc160aa5c88e9de9f4ba80770540d08b9e0fc017dd58dbfda55f
7
+ data.tar.gz: 6309ef7b55e0a627ddeb7415316dae9eb761bebc7d8bf7355d5a6239ac70a91e7558b991c27affc0484a4ccc0a50bb00be7b3d6c2fba9bee52d13fd0af8d9c8e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ci-queue (0.93.0)
4
+ ci-queue (0.94.0)
5
5
  logger
6
6
 
7
7
  GEM
@@ -38,6 +38,7 @@ GEM
38
38
  lint_roller (1.1.0)
39
39
  logger (1.7.0)
40
40
  minitest (5.27.0)
41
+ minitest-mock (5.27.0)
41
42
  minitest-reporters (1.7.1)
42
43
  ansi
43
44
  builder
@@ -106,6 +107,7 @@ GEM
106
107
 
107
108
  PLATFORMS
108
109
  arm64-darwin-23
110
+ arm64-darwin-24
109
111
  ruby
110
112
 
111
113
  DEPENDENCIES
@@ -113,7 +115,8 @@ DEPENDENCIES
113
115
  benchmark
114
116
  bundler
115
117
  ci-queue!
116
- minitest (~> 5.11)
118
+ minitest (>= 5.11)
119
+ minitest-mock
117
120
  minitest-reporters (~> 1.1)
118
121
  mocha
119
122
  msgpack
data/ci-queue.gemspec CHANGED
@@ -35,11 +35,12 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  spec.add_development_dependency 'bundler'
37
37
  spec.add_development_dependency 'rake'
38
- spec.add_development_dependency 'minitest', ENV.fetch('MINITEST_VERSION', '~> 5.11')
38
+ spec.add_development_dependency 'minitest', ENV.fetch('MINITEST_VERSION', '>= 5.11')
39
39
  spec.add_development_dependency 'rspec', '~> 3.10'
40
40
  spec.add_development_dependency 'redis'
41
41
  spec.add_development_dependency 'simplecov', '~> 0.12'
42
42
  spec.add_development_dependency 'minitest-reporters', '~> 1.1'
43
+ spec.add_development_dependency 'minitest-mock'
43
44
  spec.add_development_dependency 'mocha'
44
45
 
45
46
  spec.add_development_dependency 'rexml'
@@ -2,7 +2,7 @@
2
2
 
3
3
  module CI
4
4
  module Queue
5
- VERSION = '0.93.0'
5
+ VERSION = '0.94.0'
6
6
  DEV_SCRIPTS_ROOT = ::File.expand_path('../../../../../redis', __FILE__)
7
7
  RELEASE_SCRIPTS_ROOT = ::File.expand_path('../redis', __FILE__)
8
8
  end
@@ -393,6 +393,7 @@ module Minitest
393
393
  child_pid = fork do
394
394
  Minitest.queue = queue
395
395
  Minitest::Reporters.use!([Minitest::Reporters::BisectReporter.new])
396
+ Minitest.load_plugins if Minitest.respond_to?(:load_plugins)
396
397
  exit # let minitest excute its at_exit
397
398
  end
398
399
 
@@ -359,7 +359,7 @@ module Minitest
359
359
 
360
360
  def run
361
361
  with_timestamps do
362
- Minitest.run_one_method(@runnable, @method_name)
362
+ @runnable.new(@method_name).run
363
363
  end
364
364
  end
365
365
 
@@ -450,7 +450,7 @@ module Minitest
450
450
  elsif skip_stale_tests? && !(runnable.method_defined?(@method_name) || runnable.private_method_defined?(@method_name))
451
451
  build_stale_skip_result
452
452
  else
453
- Minitest.run_one_method(runnable, @method_name)
453
+ runnable.new(@method_name).run
454
454
  end
455
455
  rescue StandardError, ScriptError => error
456
456
  build_error_result(error)
@@ -552,6 +552,12 @@ module Minitest
552
552
  Reporters.use!(((Reporters.reporters || []) - @queue_reporters) + reporters)
553
553
  Minitest.backtrace_filter.add_filter(%r{exe/minitest-queue|lib/ci/queue/})
554
554
  @queue_reporters = reporters
555
+
556
+ # minitest 6 made plugin loading opt-in (no longer called from
557
+ # Minitest.run). Ensure minitest-reporters' plugin is loaded so
558
+ # that its DelegateReporter wires our reporters into the
559
+ # CompositeReporter that Minitest.run creates.
560
+ Minitest.load_plugins if Minitest.respond_to?(:load_plugins)
555
561
  end
556
562
 
557
563
  def loaded_tests
@@ -562,19 +568,34 @@ module Minitest
562
568
  end
563
569
  end
564
570
 
565
- def __run(*args)
566
- if queue
567
- Queue.run(*args)
571
+ # minitest 5 calls __run; minitest 6 renamed it to run_all_suites.
572
+ # Define both so the prepend intercepts whichever version is active.
573
+ %i[__run run_all_suites].each do |name|
574
+ define_method(name) do |*args|
575
+ if queue
576
+ Queue.run(*args)
568
577
 
569
- if queue.config.circuit_breakers.any?(&:open?)
570
- STDERR.puts queue.config.circuit_breakers.map(&:message).join(' ').strip
571
- end
578
+ if queue.config.circuit_breakers.any?(&:open?)
579
+ STDERR.puts queue.config.circuit_breakers.map(&:message).join(' ').strip
580
+ end
581
+
582
+ if queue.max_test_failed?
583
+ STDERR.puts 'This worker is exiting early because too many failed tests were encountered.'
584
+ end
572
585
 
573
- if queue.max_test_failed?
574
- STDERR.puts 'This worker is exiting early because too many failed tests were encountered.'
586
+ # minitest 6 starts a Parallel::Executor thread pool before
587
+ # calling run_all_suites, then joins those threads in shutdown
588
+ # afterward. ci-queue bypasses the executor entirely (it has
589
+ # its own Redis poll loop), so the worker threads sit idle and
590
+ # shutdown hangs forever. Drain them here so the later
591
+ # shutdown in Minitest.run is a no-op.
592
+ if Minitest.respond_to?(:parallel_executor)
593
+ executor = Minitest.parallel_executor
594
+ executor.shutdown if executor.respond_to?(:shutdown)
595
+ end
596
+ else
597
+ super(*args)
575
598
  end
576
- else
577
- super
578
599
  end
579
600
  end
580
601
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ci-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.93.0
4
+ version: 0.94.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
@@ -55,14 +55,14 @@ dependencies:
55
55
  name: minitest
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '5.11'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '5.11'
68
68
  - !ruby/object:Gem::Dependency
@@ -121,6 +121,20 @@ dependencies:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: '1.1'
124
+ - !ruby/object:Gem::Dependency
125
+ name: minitest-mock
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
124
138
  - !ruby/object:Gem::Dependency
125
139
  name: mocha
126
140
  requirement: !ruby/object:Gem::Requirement