[DRE-maint] Bug#1086314: ruby-timeliness: FTBFS: Failure/Error: expect(value).to eq Time.use_zone('Perth') { Time.zone.local(2000, 6, 1, 18, 0, 0) }

Santiago Vila sanvila at debian.org
Tue Oct 29 20:05:28 GMT 2024


Package: src:ruby-timeliness
Version: 0.4.5-1
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
  debian/rules binary
dh binary --buildsystem=ruby --with ruby
    dh_update_autotools_config -O--buildsystem=ruby
    dh_autoreconf -O--buildsystem=ruby
    dh_auto_configure -O--buildsystem=ruby
	dh_ruby --configure
    dh_auto_build -O--buildsystem=ruby
	dh_ruby --build
    dh_auto_test -O--buildsystem=ruby
	dh_ruby --test
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--buildsystem=ruby
    dh_prep -O--buildsystem=ruby
    dh_auto_install --destdir=debian/ruby-timeliness/ -O--buildsystem=ruby
	dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-timeliness
/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20241028-1425856-2df80x/gemspec
Failed to load /dev/null because it doesn't contain valid YAML hash
WARNING:  open-ended dependency on activesupport (>= 3.2, development) is not recommended
   if activesupport is semantically versioned, use:
     add_development_dependency 'activesupport', '~> 3.2'
WARNING:  open-ended dependency on tzinfo (>= 0.3.31, development) is not recommended
   if tzinfo is semantically versioned, use:
     add_development_dependency 'tzinfo', '~> 0.3', '>= 0.3.31'
WARNING:  open-ended dependency on timecop (>= 0, development) is not recommended
   use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on i18n (>= 0, development) is not recommended
   use a bounded requirement, such as '~> x.y'
WARNING:  See https://guides.rubygems.org/specification-reference/ for help
   Successfully built RubyGem
   Name: timeliness
   Version: 0.4.5
   File: timeliness-0.4.5.gem
/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-timeliness/usr/share/rubygems-integration/all /tmp/d20241028-1425856-2df80x/timeliness-0.4.5.gem
Failed to load /dev/null because it doesn't contain valid YAML hash
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/configuration.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/core_ext.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/core_ext/string.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/definitions.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/format.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/format_set.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/helpers.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/parser.rb
/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all/gems/timeliness-0.4.5/lib/timeliness/version.rb
Successfully installed timeliness-0.4.5
1 gem installed
cd debian/ruby-timeliness/usr/share/rubygems-integration/all
rm -rf bin
rm -rf build_info
rm -rf cache
rm -rf doc
rm -rf extensions
rmdir plugins
cd gems/timeliness-0.4.5
rm -f
chmod 644 lib/timeliness/configuration.rb lib/timeliness/core_ext/string.rb lib/timeliness/core_ext.rb lib/timeliness/definitions.rb lib/timeliness/format.rb lib/timeliness/format_set.rb lib/timeliness/helpers.rb lib/timeliness/parser.rb lib/timeliness/version.rb lib/timeliness.rb
find lib/ -type d -empty -delete
cd -
cd -
dh_installchangelogs -pruby-timeliness /<<PKGBUILDDIR>>/CHANGELOG.rdoc upstream
/usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner

┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby3.1                           │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=. GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -e gem\ \"timeliness\"

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby3.1 from debian/ruby-tests.rake                            │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=. GEM_PATH=/<<PKGBUILDDIR>>/debian/ruby-timeliness/usr/share/rubygems-integration/all:/<<PKGBUILDDIR>>/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake
/usr/bin/ruby3.1 -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

Timeliness::CoreExt String
   #to_time
     should convert valid string to Time object in default zone
     should convert ISO 8601 string to Time object
     should convert valid future string to Time object
     should convert valid future string to Time object
     should convert empty string to nil
     with :local
       should convert valid string to local time
       should convert ISO 8601 string to local time
   #to_datetime
     should convert valid string to DateTime object
     should convert to DateTime object with UTC offset
     should convert ISO 8601 string to DateTime object
     should use Rubys default start value
     should convert empty string to nil
   #to_date
     should convert string to Date object
     should convert empty string to nil

Timeliness::Definitions
   add_formats
     should add format to format array
     should parse new format after its added
     should raise error if format exists
     with :before option
       should add new format with higher precedence
       should raise error if :before format does not exist
   remove_formats
     should remove a single format from the formats array for type
     should remove multiple formats from formats array for type
     should prevent parsing of removed format
     should raise error if format does not exist
   use_euro_formats
     should allow ambiguous date to be parsed as European format
     should not parse formats on switch to euro after initial compile
   use_us_formats
     should allow ambiguous date to be parsed as European format
     should not parse formats on switch to euro after initial compile
   thread safe ambiguous date format switching
     should allow independent control in current thread
     should use default format in new threads

Timeliness::FormatSet
   #compile!
     should set the regexp for the set
   compiled regexp
     for time formats
       should correctly match times in format 'hh:nn:ss'
       should correctly match times in format 'hh-nn-ss'
       should correctly match times in format 'h:nn'
       should correctly match times in format 'h.nn'
       should correctly match times in format 'h nn'
       should correctly match times in format 'h-nn'
       should correctly match times in format 'h:nn_ampm'
       should correctly match times in format 'h.nn_ampm'
       should correctly match times in format 'h nn_ampm'
       should correctly match times in format 'h-nn_ampm'
       should correctly match times in format 'h_ampm'
     for date formats
       should correctly match dates in format 'yyyy/mm/dd'
       should correctly match dates in format 'yyyy-mm-dd'
       should correctly match dates in format 'yyyy.mm.dd'
       should correctly match dates in format 'm/d/yy'
       should correctly match dates in format 'd/m/yy'
       should correctly match dates in format 'm\d\yy'
       should correctly match dates in format 'd\m\yy'
       should correctly match dates in format 'd-m-yy'
       should correctly match dates in format 'd.m.yy'
       should correctly match dates in format 'd mmm yy'
     for datetime formats
       should correctly match datetimes in format 'ddd mmm d hh:nn:ss zo yyyy'
       should correctly match datetimes in format 'ddd mmm d hh:nn:ss tz yyyy'
       should correctly match datetimes in format 'yyyy-mm-ddThh:nn:sszo'
       should correctly match datetimes in format 'yyyy-mm-ddThh:nn:ss.uzt'
   #match
     should return array if string matches a format in set
     should return nil if string does not matches a format in set
     should only use specific format string for match if provided
     should compile unknown format for one off match

Timeliness::Format
   #compile!
     should compile valid string format
     should return self
     should raise compilation error for bad format
     should raise compilation error if token with captured arg is present more than once
   #process
     should define method which outputs date array with values in correct order
     should define method which outputs date array from format with different order
     should define method which outputs date array with zeros when month and day are '0'
     should define method which outputs date array with zeros when month and day are '00'
     should define method which outputs time array
     should define method which outputs time array with meridian 'pm' adjusted hour
     should define method which outputs time array with meridian 'am' unadjusted hour
     should define method which outputs time array with microseconds
     should define method which outputs datetime array with zone offset
     should define method which outputs datetime array with zone offset
     should define method which outputs datetime array with timezone string
     should define method which outputs datetime array with 0 offset for zulu time ('Z')
     with long month
       with I18n loaded
         should parse abbreviated month for current locale to correct value
         should parse full month for current locale to correct value
         with upper case month abbreviations
           should parse abbreviated month for current locale case insensitively
         with upper case month names
           should parse full month for current locale case insensitively
       without I18n loaded
         should parse abbreviated month to correct value
         should parse full month to correct value

Timeliness::Parser
   parse
     should return Time object for valid datetime string
     should return nil for empty string
     should return nil for nil value
     should return same value if value is a Time, Date, or DateTime
     should return nil for non-string non-temporal values
     should return time object for valid date string
     should return nil for invalid date string
     should return nil for invalid date string where month is '0'
     should return nil for invalid date string where month is '00'
     should return nil for invalid date month string
     should return time object for valid time string
     should return nil for invalid time string
     should return nil for datetime string with invalid date part
     should return nil for datetime string with invalid time part
     should return nil for ISO 8601 string with invalid time part
     string with zone offset value
       when current timezone is earler than string zone
         should return value shifted by positive offset in default timezone
         should return value shifted by negative offset in default timezone
       when current timezone is later than string zone
         should return value shifted by positive offset in default timezone
         should return value shifted by negative offset in default timezone
     string with zone abbreviation
       should return value using string zone adjusted to default :local timezone (FAILED - 1)
       should return value using string zone adjusted to default :current timezone (FAILED - 2)
       should return value using string zone adjusted to :zone option string timezone (FAILED - 3)
     string with zulu time abbreviation 'Z'
       should return value using string zone adjusted to default :current timezone
     with :datetime type
       should return time object for valid datetime string
       should return nil for invalid date string
     with :date type
       should return time object for valid date string
       should ignore time in datetime string
       should return nil for invalid date string
     with :time type
       should return time object with a dummy date values
       should ignore date in datetime string
       should raise error if time hour is out of range for AM meridian
     with :now option
       should use date parts if string does not specify
     with time value argument
       should use argument as :now option value
     with :zone option
       :utc
         should return time object in utc timezone
         should return nil for partial invalid time component
       :local
         should return time object in local system timezone
         should return nil for partial invalid time component
       :current
         should return time object in current timezone
         should return nil for partial invalid time component
       named zone
         should return time object in the timezone
         should return nil for partial invalid time component
       without ActiveSupport loaded
         should output message
     for time type
       with date from date_for_time_type
         should return date array
         should return date array evaluated lambda
       with :now option
         should use date from :now
       with :zone option
         should use date from the specified zone
   _parse
     with no type
       should return date array from date string
       should return time array from time string
       should return datetime array from datetime string
     with type
       should return date array from date string
       should not return time array from time string for :date type
       should return time array from time string
       should not return date array from date string for :time type
       should return datetime array from datetime string when type is date
       should return date array from date string when type is datetime
       should not return time array from time string when type is datetime
     with strict: true
       should return nil from date string when type is datetime
       should return nil from datetime string when type is date
       should return nil from datetime string when type is time
       should parse date string when type is date
       should parse time string when type is time
       should parse datetime string when type is datetime
       should ignore strict parsing if no type specified
     with :format option
       should return values if string matches specified format
       should return nil if string does not match specified format
     date with ambiguous year
       should return year in current century if year below threshold
       should return year in last century if year at or above threshold
       should allow custom threshold
   make_time
     should return time object for valid time array
     should return nil for invalid date in array
     should return nil for invalid time in array
     should return nil for invalid time in array with timezone
     default timezone
       should be used if no zone value
     with zone value
       :utc
         should return time object in utc timezone
       :local
         should return time object in local system timezone
       :current
         should return time object in current timezone
       named zone
         should return time object in the timezone
   current_date
     with no options
       should return date_for_time_type values with no options
     with :now option
       should return date array from Time value
     with :zone option
       should return date array for utc zone
       should return date array for local zone
       should return date array for current zone
       should return date array for named zone

Failures:

   1) Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to default :local timezone
      Failure/Error: expect(value).to eq Time.utc(2000,6,1,10,0,0).getlocal

        expected: 2000-06-01 10:00:00.000000000 +0000
             got: nil

        (compared using ==)
      # ./spec/timeliness/parser_spec.rb:125:in `block (4 levels) in <top (required)>'
      # ./spec/timeliness/parser_spec.rb:11:in `block (2 levels) in <top (required)>'

   2) Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to default :current timezone
      Failure/Error: expect(value).to eq Time.zone.local(2000,6,1,19,30,0)

        expected: 2000-06-01 19:30:00.000000000 +0930
             got: nil

        (compared using ==)
      # ./spec/timeliness/parser_spec.rb:134:in `block (4 levels) in <top (required)>'
      # ./spec/timeliness/parser_spec.rb:11:in `block (2 levels) in <top (required)>'

   3) Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to :zone option string timezone
      Failure/Error: expect(value).to eq Time.use_zone('Perth') { Time.zone.local(2000,6,1,18,0,0) }

        expected: 2000-06-01 18:00:00.000000000 +0800
             got: nil

        (compared using ==)
      # ./spec/timeliness/parser_spec.rb:142:in `block (4 levels) in <top (required)>'
      # ./spec/timeliness/parser_spec.rb:11:in `block (2 levels) in <top (required)>'

Finished in 0.23698 seconds (files took 0.18906 seconds to load)
164 examples, 3 failures

Failed examples:

rspec ./spec/timeliness/parser_spec.rb:121 # Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to default :local timezone
rspec ./spec/timeliness/parser_spec.rb:129 # Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to default :current timezone
rspec ./spec/timeliness/parser_spec.rb:138 # Timeliness::Parser parse string with zone abbreviation should return value using string zone adjusted to :zone option string timezone

/usr/bin/ruby3.1 -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
ERROR: Test "ruby3.1" failed. Exiting.
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-timeliness returned exit code 1
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202410/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.



More information about the Pkg-ruby-extras-maintainers mailing list