[DRE-maint] Bug#1125237: ruby-progressbar: autopkgtest regression on i386
Paul Gevers
elbrus at debian.org
Sun Jan 11 11:10:35 GMT 2026
Source: ruby-progressbar
Version: 1.13.0-1
Severity: serious
User: debian-ci at lists.debian.org
Usertags: regression
Dear maintainer(s),
I'm filing this bug to enable me to fix bug 1123765 (I'll hint
ruby-progressbar to testing). The error log in the tests hint at i386
numerical precision test problems rather than real issues. Please let me
know if I judged that wrong.
With a recent upload of ruby-progressbar the autopkgtest of
ruby-progressbar fails in testing when that autopkgtest is run with the
binary packages of ruby-progressbar from unstable. It passes when run
with only packages from testing. In tabular form:
pass fail
ruby-progressbar from testing 1.13.0-1
all others from testing from testing
I copied some of the output at the bottom of this report.
Currently this regression is blocking the migration to testing [1]. Can
you please investigate the situation and fix it?
More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation
Paul
[1] https://qa.debian.org/excuses.php?package=ruby-progressbar
https://ci.debian.net/data/autopkgtest/testing/i386/r/ruby-progressbar/67692911/log.gz
ion
35s can properly calculate a running average
35s knows the running average even when progress has been made
(FAILED - 1)
35s knows the running average is reset even after progress is
started (FAILED - 2)
35s #start
35s resets the projection (FAILED - 3)
35s #reset
35s resets the projection (FAILED - 4)
35s resets based on the starting position (FAILED - 5)
35s #strength
35s allows the default strength to be overridden (FAILED - 6)
35s has a default strength (FAILED - 7)
35s 35s ProgressBar::Projector
35s .from_type
35s has a default projector
35s can return a specific projector
35s 35s ProgressBar::Refinements::Enumerator
35s 35s Progress:
|====================================================================|
35s creates a progress bar with the Enumerable size
35s 35s Progress:
|====================================================================|
35s does not allow the user to override the progress bar total
35s 35s Progress:
|====================================================================|
35s does not allow the user to override the progress bar starting
position
35s 35s We All Float:
|================================================================|
35s passes arguments to create
35s calls progressbar.increment the right number of times
35s 35s Progress:
|====================================================================|
35s chains return values properly
35s 35s Progress:
|====================================================================|
35s chains properly in the middle
35s 35s Progress:
|====================================================================|
35s returns an enumerator
35s 35s Progress:
|====================================================================|
35s passes the progressbar instance to the block when two arguments
are requested for the block
35s 35s ProgressBar::Time
35s when Time is being mocked by Timecop retrieves the unmocked
Timecop time
35s when Time is being mocked by Delorean retrieves the unmocked
Delorean time
35s when Time is being mocked by ActiveSupport retrieves the
unmocked time
35s when Time is not being mocked will return the actual time
35s 35s ProgressBar::Timer
35s can be reset and queried
35s 35s Pending: (Failures listed here are expected and do not affect
your suite's status)
35s 35s 1) ProgressBar::Base can be converted into a hash
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/base_spec.rb:634
35s 35s 2) ProgressBar::Base when formatting the bar allows the bar
format to be updated dynamically after it is started
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/base_spec.rb:537
35s 35s 3) ProgressBar::Base when formatting the bar allows the bar
to be reset back to the default format
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/base_spec.rb:549
35s 35s 4) ProgressBar::Calculators::Length asks stream for length
if it is a TTY
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:60
35s 35s 5) ProgressBar::Calculators::Length asks IO.console to
calculate length if the output is null
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:70
35s 35s 6) ProgressBar::Calculators::Length asks IO.console to
calculate length if the output is not a TTY
35s # Temporarily skipped with xit
35s # ./spec/lib/ruby-progressbar/calculators/length_spec.rb:81
35s 35s Failures:
35s 35s 1) ProgressBar::Projectors::SmoothedAverage#projection
knows the running average even when progress has been made
35s Failure/Error: expect(projector.projection).to be 36.0
35s 35s expected #<Float:2080> => 36.0
35s got #<Float:2090> => 36.0
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:40:in
`block (3 levels) in <module:Projectors>'
35s 35s 2) ProgressBar::Projectors::SmoothedAverage#projection
knows the running average is reset even after progress is started
35s Failure/Error: expect(projector.projection).to be 0.0
35s 35s expected #<Float:2100> => 0.0
35s got #<Float:2110> => 0.0
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:53:in
`block (3 levels) in <module:Projectors>'
35s 35s 3) ProgressBar::Projectors::SmoothedAverage#start resets
the projection
35s Failure/Error: expect(projector.projection).to be 0.0
35s 35s expected #<Float:2120> => 0.0
35s got #<Float:2130> => 0.0
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:67:in
`block (3 levels) in <module:Projectors>'
35s 35s 4) ProgressBar::Projectors::SmoothedAverage#reset resets
the projection
35s Failure/Error: expect(projector.projection).to be 0.0
35s 35s expected #<Float:2140> => 0.0
35s got #<Float:2150> => 0.0
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:81:in
`block (3 levels) in <module:Projectors>'
35s 35s 5) ProgressBar::Projectors::SmoothedAverage#reset resets
based on the starting position
35s Failure/Error: expect(projector.projection).to be 9.0
35s 35s expected #<Float:2160> => 9.0
35s got #<Float:2170> => 9.0
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:94:in
`block (3 levels) in <module:Projectors>'
35s 35s 6) ProgressBar::Projectors::SmoothedAverage#strength allows
the default strength to be overridden
35s Failure/Error: expect(projector.strength).to be 0.3
35s 35s expected #<Float:2180> => 0.3
35s got #<Float:2190> => 0.3
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:102:in
`block (3 levels) in <module:Projectors>'
35s 35s 7) ProgressBar::Projectors::SmoothedAverage#strength has a
default strength
35s Failure/Error: expect(SmoothedAverage.new.strength).to be 0.1
35s 35s expected #<Float:2200> => 0.1
35s got #<Float:2210> => 0.1
35s 35s Compared using equal?, which compares object identity,
35s but expected and actual are not the same object. Use
35s `expect(actual).to eq(expected)` if you don't care about
35s object identity in this example.
35s #
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:106:in
`block (3 levels) in <module:Projectors>'
35s 35s Finished in 0.76023 seconds (files took 0.34042 seconds to load)
35s 244 examples, 7 failures, 6 pending
35s 35s Failed examples:
35s 35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:30 #
ProgressBar::Projectors::SmoothedAverage#projection knows the running
average even when progress has been made
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:43 #
ProgressBar::Projectors::SmoothedAverage#projection knows the running
average is reset even after progress is started
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:58 #
ProgressBar::Projectors::SmoothedAverage#start resets the projection
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:72 #
ProgressBar::Projectors::SmoothedAverage#reset resets the projection
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:84 #
ProgressBar::Projectors::SmoothedAverage#reset resets based on the
starting position
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:99 #
ProgressBar::Projectors::SmoothedAverage#strength allows the default
strength to be overridden
35s rspec
./spec/lib/ruby-progressbar/projector/smoothed_average_spec.rb:105 #
ProgressBar::Projectors::SmoothedAverage#strength has a default strength
35s 35s /usr/bin/ruby3.3
-I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib
/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec
--pattern ./spec/\*\*/\*_spec.rb --format documentation failed
35s mv ./.gem2deb.lib lib
35s mv ./.gem2deb.Gemfile.lock Gemfile.lock
35s mv gemfiles/v1/.gem2deb.Gemfile.lock gemfiles/v1/Gemfile.lock
35s mv gemfiles/v2/.gem2deb.Gemfile.lock gemfiles/v2/Gemfile.lock
35s autopkgtest [22:19:20]: test gem2deb-test-runner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 585 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-ruby-extras-maintainers/attachments/20260111/2588b0b3/attachment.sig>
More information about the Pkg-ruby-extras-maintainers
mailing list