Diff of the two buildlogs: -- --- b1/build.log 2025-02-03 11:51:37.384370773 +0000 +++ b2/build.log 2025-02-03 11:54:10.533461471 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Feb 2 23:50:01 -12 2025 -I: pbuilder-time-stamp: 1738583401 +I: Current time: Tue Feb 4 01:51:45 +14 2025 +I: pbuilder-time-stamp: 1738583505 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -24,52 +24,84 @@ dpkg-source: info: applying require-pathname.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/27264/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/D01_modify_environment starting +debug: Running on virt64c. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Feb 3 11:51 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='47a15da21d194bd9981c6d0f403dfaa8' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='27264' - PS1='# ' - PS2='> ' + INVOCATION_ID=00890a95350c45cf8c9f7cc440b6d762 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=12290 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.ainp0JfF/pbuilderrc_quuZ --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ainp0JfF/b1 --logfile b1/build.log ruby-dry-container_0.7.2-2.dsc' - SUDO_GID='110' - SUDO_UID='103' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.ainp0JfF/pbuilderrc_9Up0 --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.ainp0JfF/b2 --logfile b2/build.log ruby-dry-container_0.7.2-2.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt32z 6.1.0-30-armmp-lpae #1 SMP Debian 6.1.124-1 (2025-01-12) armv7l GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/27264/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -261,7 +293,7 @@ Get: 144 http://deb.debian.org/debian unstable/main armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 145 http://deb.debian.org/debian unstable/main armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 146 http://deb.debian.org/debian unstable/main armhf ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 53.6 MB in 5s (11.5 MB/s) +Fetched 53.6 MB in 1s (60.3 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19565 files and directories currently installed.) @@ -746,8 +778,8 @@ Setting up tzdata (2025a-1) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Feb 3 11:50:57 UTC 2025. -Universal Time is now: Mon Feb 3 11:50:57 UTC 2025. +Local time is now: Mon Feb 3 11:53:22 UTC 2025. +Universal Time is now: Mon Feb 3 11:53:22 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-1) ... @@ -880,7 +912,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/ruby-dry-container-0.7.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-dry-container_0.7.2-2_source.changes +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-dry-container-0.7.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-dry-container_0.7.2-2_source.changes dpkg-buildpackage: info: source package ruby-dry-container dpkg-buildpackage: info: source version 0.7.2-2 dpkg-buildpackage: info: source distribution unstable @@ -914,7 +950,7 @@ │ ruby-dry-container: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250202-32669-6wen6q/gemspec +/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250204-17473-43c4cy/gemspec WARNING: open-ended dependency on bundler (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on rake (>= 0, development) is not recommended @@ -926,7 +962,7 @@ Name: dry-container Version: 0.7.2 File: dry-container-0.7.2.gem -/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-dry-container/usr/share/rubygems-integration/all /tmp/d20250202-32669-6wen6q/dry-container-0.7.2.gem +/usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-dry-container/usr/share/rubygems-integration/all /tmp/d20250204-17473-43c4cy/dry-container-0.7.2.gem /build/reproducible-path/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all/gems/dry-container-0.7.2/lib/dry-container.rb /build/reproducible-path/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all/gems/dry-container-0.7.2/lib/dry/container.rb /build/reproducible-path/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all/gems/dry-container-0.7.2/lib/dry/container/error.rb @@ -973,85 +1009,198 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/arm-linux-gnueabihf/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /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 -Randomized with seed 8325 +Randomized with seed 24758 + +Dry::Container + inheritance + sets up a container for a child class + behaves like a container + with default configuration + #each + yields stringified versions of all registered keys to the block + returns the container + import + allows importing of nested namespaces + allows importing of namespaces + registering an object + with option call: false + registers and resolves an object + without options + registers and resolves the object + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + mixing Strings and Symbols + is expected to eql "item" + registering a block + without options + with arguments + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + registers and resolves a proc + without arguments + registers and resolves an object + with option call: false + registers and resolves a proc + registering with the same key multiple times + is expected to raise Dry::Container::Error + #each_key + returns the container + yields stringified versions of all registered keys to the block + namespace + with nesting and when block takes arguments + resolves items relative to the namespace + when block does not take arguments + registers items under the given namespace + when block takes arguments + registers items under the given namespace + with nesting + registers items under the given namespaces + #merge + without namespace argument + is expected to equal :item + is expected to equal :item + with namespace argument + when namespace is nil + is expected to equal :item + is expected to equal :item + when namespace is not nil + is expected to equal :item + is expected to equal :item + #keys + returns stringified versions of all registered keys + #key? + when key does not exist in container + is expected to equal false + when key exists in container + is expected to equal true + registering a proc + with option memoize: true + only resolves the proc once + registers and resolves a proc + when receiving something other than a proc + is expected to raise Dry::Container::Error + with option call: false + registers and resolves a proc + without options + with arguments + registers and resolves a proc + without arguments + registers and resolves an object + #decorate + with an instance as a decorator + expected to pass original value to decorator#call method + for not callable item + memoization + decorates static value only once + wrapping + expected to be an instance of SimpleDelegator + for callable item + memoize false + does not call the block until the key is resolved + is expected not to equal #<#:0xf5580f20> + memoize true + is expected to equal #:0xf5694f74>)> + .dup + returns a copy that doesn't share registered keys with the parent + configuration + resolver + custom + is expected to have received call({}, :key) 1 time + is expected to eq # + default + is expected to be a kind of Dry::Container::Resolver + namespace_separator + custom + is expected to eq "item" + default + is expected to eq "." + registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + default + is expected to be a kind of Dry::Container::Registry + stubbing + raises an error when key is missing + only other keys remain accesible + keys can be stubbed + keys can be reverted back to their original value + mixing Strings and Symbols + is expected to eql "stub" + with block argument + keys are stubbed only while inside the block + executes the block with the given stubs + .freeze + returns self back + allows to freeze a container so that nothing can be registered later + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent + .resolve + accepts a fallback block Dry::Container::Mixin included - into a class with a custom .initialize method - does not fail on missing member variable behaves like a container + .resolve + accepts a fallback block with default configuration registering with the same key multiple times is expected to raise Dry::Container::Error - namespace - when block does not take arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - with nesting and when block takes arguments - resolves items relative to the namespace - when block takes arguments - registers items under the given namespace - registering a block + #each_key + returns the container + yields stringified versions of all registered keys to the block + registering an object with option call: false - registers and resolves a proc + registers and resolves an object without options - without arguments - registers and resolves an object - with arguments - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments - registers and resolves a proc - import - allows importing of namespaces - allows importing of nested namespaces + registers and resolves the object #each - yields stringified versions of all registered keys to the block returns the container + yields stringified versions of all registered keys to the block #keys returns stringified versions of all registered keys + mixing Strings and Symbols + is expected to eql "item" #decorate + with an instance as a decorator + expected to pass original value to decorator#call method for not callable item - memoization - decorates static value only once wrapping expected to be an instance of SimpleDelegator - with an instance as a decorator - expected to pass original value to decorator#call method + memoization + decorates static value only once for callable item memoize false does not call the block until the key is resolved - is expected not to equal #<#:0xb49f44f8> + is expected not to equal #<#:0xf54a7d24> memoize true - is expected to equal #:0xb4a2e7ac>)> - registering an object - with option call: false - registers and resolves an object - without options - registers and resolves the object - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - registering a proc - with option call: false - registers and resolves a proc + is expected to equal #:0xf54a36fc>)> + namespace + when block does not take arguments + registers items under the given namespace + with nesting + registers items under the given namespaces + with nesting and when block takes arguments + resolves items relative to the namespace + when block takes arguments + registers items under the given namespace + registering a block without options - with arguments - registers and resolves a proc without arguments registers and resolves an object - with option memoize: true + with arguments + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + registers and resolves a proc + with option call: false registers and resolves a proc - only resolves the proc once - when receiving something other than a proc - is expected to raise Dry::Container::Error - #each_key - returns the container - yields stringified versions of all registered keys to the block - mixing Strings and Symbols - is expected to eql "item" + import + allows importing of nested namespaces + allows importing of namespaces + #key? + when key does not exist in container + is expected to equal false + when key exists in container + is expected to equal true #merge - without namespace argument - is expected to equal :item - is expected to equal :item with namespace argument when namespace is nil is expected to equal :item @@ -1059,89 +1208,102 @@ when namespace is not nil is expected to equal :item is expected to equal :item - #key? - when key does not exist in container - is expected to equal false - when key exists in container - is expected to equal true - .resolve - accepts a fallback block + without namespace argument + is expected to equal :item + is expected to equal :item + registering a proc + with option memoize: true + registers and resolves a proc + only resolves the proc once + when receiving something other than a proc + is expected to raise Dry::Container::Error + without options + without arguments + registers and resolves an object + with arguments + registers and resolves a proc + with option call: false + registers and resolves a proc + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + .dup + returns a copy that doesn't share registered keys with the parent + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent + .freeze + returns self back + allows to freeze a container so that nothing can be registered later + configuration + resolver + default + is expected to be a kind of Dry::Container::Resolver + custom + is expected to eq # + is expected to have received call({}, :key) 1 time + namespace_separator + default + is expected to eq "." + custom + is expected to eq "item" + registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + default + is expected to be a kind of Dry::Container::Registry stubbing - only other keys remain accesible raises an error when key is missing - keys can be stubbed keys can be reverted back to their original value + keys can be stubbed + only other keys remain accesible with block argument - executes the block with the given stubs keys are stubbed only while inside the block + executes the block with the given stubs mixing Strings and Symbols is expected to eql "stub" - .freeze - returns self back - allows to freeze a container so that nothing can be registered later + into a class with a custom .initialize method + does not fail on missing member variable + extended + behaves like a container .clone - re-uses frozen container returns a copy that doesn't share registered keys with the parent + re-uses frozen container + .resolve + accepts a fallback block configuration - registry - default - is expected to be a kind of Dry::Container::Registry + resolver custom - is expected to have received call({}, :key, :item, {}) 1 time + is expected to eq # + is expected to have received call({}, :key) 1 time + default + is expected to be a kind of Dry::Container::Resolver namespace_separator custom is expected to eq "item" default is expected to eq "." - resolver + registry custom - is expected to have received call({}, :key) 1 time - is expected to eq # + is expected to have received call({}, :key, :item, {}) 1 time default - is expected to be a kind of Dry::Container::Resolver - .dup - returns a copy that doesn't share registered keys with the parent - extended - behaves like a container + is expected to be a kind of Dry::Container::Registry stubbing keys can be stubbed - only other keys remain accesible raises an error when key is missing + only other keys remain accesible keys can be reverted back to their original value mixing Strings and Symbols is expected to eql "stub" with block argument - executes the block with the given stubs keys are stubbed only while inside the block + executes the block with the given stubs + .dup + returns a copy that doesn't share registered keys with the parent with default configuration - namespace - when block does not take arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - when block takes arguments - registers items under the given namespace - with nesting and when block takes arguments - resolves items relative to the namespace - mixing Strings and Symbols - is expected to eql "item" - import - allows importing of namespaces - allows importing of nested namespaces - registering a proc - with option call: false - registers and resolves a proc - with option memoize: true - only resolves the proc once - registers and resolves a proc - when receiving something other than a proc - is expected to raise Dry::Container::Error - without options - with arguments - registers and resolves a proc - without arguments - registers and resolves an object #merge + without namespace argument + is expected to equal :item + is expected to equal :item with namespace argument when namespace is nil is expected to equal :item @@ -1149,30 +1311,26 @@ when namespace is not nil is expected to equal :item is expected to equal :item - without namespace argument - is expected to equal :item - is expected to equal :item + #keys + returns stringified versions of all registered keys resolving with a key that has not been registered is expected to raise Dry::Container::Error - registering an object - with option call: false - registers and resolves an object - without options - registers and resolves the object #key? when key does not exist in container is expected to equal false when key exists in container is expected to equal true - #each_key - yields stringified versions of all registered keys to the block - returns the container - #keys - returns stringified versions of all registered keys - #each - yields stringified versions of all registered keys to the block - returns the container + registering with the same key multiple times + is expected to raise Dry::Container::Error + mixing Strings and Symbols + is expected to eql "item" #decorate + for callable item + memoize true + is expected to equal #:0xf554efc0>)> + memoize false + is expected not to equal #<#:0xf5543ee0> + does not call the block until the key is resolved for not callable item wrapping expected to be an instance of SimpleDelegator @@ -1180,195 +1338,73 @@ decorates static value only once with an instance as a decorator expected to pass original value to decorator#call method - for callable item - memoize false - does not call the block until the key is resolved - is expected not to equal #<#:0xb4964ec0> - memoize true - is expected to equal #:0xb4960910>)> + #each_key + yields stringified versions of all registered keys to the block + returns the container + #each + returns the container + yields stringified versions of all registered keys to the block + namespace + with nesting and when block takes arguments + resolves items relative to the namespace + when block takes arguments + registers items under the given namespace + with nesting + registers items under the given namespaces + when block does not take arguments + registers items under the given namespace registering a block without options - without arguments - registers and resolves an object with arguments does not call a proc on resolving if one accepts an arbitrary number of keyword arguments registers and resolves a proc + without arguments + registers and resolves an object with option call: false registers and resolves a proc - registering with the same key multiple times - is expected to raise Dry::Container::Error - .dup - returns a copy that doesn't share registered keys with the parent - configuration - registry - default - is expected to be a kind of Dry::Container::Registry - custom - is expected to have received call({}, :key, :item, {}) 1 time - namespace_separator - custom - is expected to eq "item" - default - is expected to eq "." - resolver - custom - is expected to eq # - is expected to have received call({}, :key) 1 time - default - is expected to be a kind of Dry::Container::Resolver - .resolve - accepts a fallback block - .clone - re-uses frozen container - returns a copy that doesn't share registered keys with the parent - .freeze - returns self back - allows to freeze a container so that nothing can be registered later - -Dry::Container - behaves like a container - .clone - re-uses frozen container - returns a copy that doesn't share registered keys with the parent - .dup - returns a copy that doesn't share registered keys with the parent - stubbing - keys can be reverted back to their original value - raises an error when key is missing - only other keys remain accesible - keys can be stubbed - mixing Strings and Symbols - is expected to eql "stub" - with block argument - executes the block with the given stubs - keys are stubbed only while inside the block - .freeze - returns self back - allows to freeze a container so that nothing can be registered later - with default configuration - namespace - when block takes arguments - registers items under the given namespace - when block does not take arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - with nesting and when block takes arguments - resolves items relative to the namespace - #merge - without namespace argument - is expected to equal :item - is expected to equal :item - with namespace argument - when namespace is not nil - is expected to equal :item - is expected to equal :item - when namespace is nil - is expected to equal :item - is expected to equal :item - registering a proc - with option call: false - registers and resolves a proc - with option memoize: true - only resolves the proc once - registers and resolves a proc - when receiving something other than a proc - is expected to raise Dry::Container::Error - without options - with arguments - registers and resolves a proc - without arguments + import + allows importing of namespaces + allows importing of nested namespaces + registering an object + with option call: false registers and resolves an object - #decorate - for not callable item - wrapping - expected to be an instance of SimpleDelegator - memoization - decorates static value only once - with an instance as a decorator - expected to pass original value to decorator#call method - for callable item - memoize false - does not call the block until the key is resolved - is expected not to equal #<#:0xb49f3d00> - memoize true - is expected to equal #:0xb495ecf0>)> - #each - returns the container - yields stringified versions of all registered keys to the block - registering a block - without options - with arguments - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + without options + registers and resolves the object + registering a proc + with option call: false registers and resolves a proc - without arguments - registers and resolves an object - with option call: false - registers and resolves a proc - #keys - returns stringified versions of all registered keys - import - allows importing of nested namespaces - allows importing of namespaces - #key? - when key does not exist in container - is expected to equal false - when key exists in container - is expected to equal true - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - registering with the same key multiple times - is expected to raise Dry::Container::Error - #each_key - yields stringified versions of all registered keys to the block - returns the container - mixing Strings and Symbols - is expected to eql "item" - registering an object - without options - registers and resolves the object - with option call: false - registers and resolves an object - configuration - namespace_separator - custom - is expected to eq "item" - default - is expected to eq "." - resolver - custom - is expected to have received call({}, :key) 1 time - is expected to eq # - default - is expected to be a kind of Dry::Container::Resolver - registry - default - is expected to be a kind of Dry::Container::Registry - custom - is expected to have received call({}, :key, :item, {}) 1 time - .resolve - accepts a fallback block - inheritance - sets up a container for a child class + without options + without arguments + registers and resolves an object + with arguments + registers and resolves a proc + with option memoize: true + only resolves the proc once + registers and resolves a proc + when receiving something other than a proc + is expected to raise Dry::Container::Error + .freeze + allows to freeze a container so that nothing can be registered later + returns self back -Top 3 slowest examples (0.02917 seconds, 6.1% of total time): - Dry::Container::Mixin included behaves like a container with default configuration #decorate with an instance as a decorator expected to pass original value to decorator#call method - 0.01325 seconds ./spec/support/shared_examples/container.rb:472 - Dry::Container::Mixin included behaves like a container with default configuration #each yields stringified versions of all registered keys to the block - 0.00964 seconds ./spec/support/shared_examples/container.rb:377 - Dry::Container::Mixin included behaves like a container stubbing with block argument executes the block with the given stubs - 0.00629 seconds ./spec/support/shared_examples/container.rb:597 +Top 3 slowest examples (0.03597 seconds, 6.6% of total time): + Dry::Container behaves like a container with default configuration #decorate with an instance as a decorator expected to pass original value to decorator#call method + 0.01834 seconds ./spec/support/shared_examples/container.rb:472 + Dry::Container::Mixin included behaves like a container configuration resolver default is expected to be a kind of Dry::Container::Resolver + 0.00896 seconds ./spec/support/shared_examples/container.rb:45 + Dry::Container behaves like a container stubbing with block argument executes the block with the given stubs + 0.00867 seconds ./spec/support/shared_examples/container.rb:597 Top 2 slowest example groups: - Dry::Container::Mixin - 0.00302 seconds average (0.36584 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 Dry::Container - 0.00171 seconds average (0.10454 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + 0.00364 seconds average (0.22218 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + Dry::Container::Mixin + 0.00262 seconds average (0.31692 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 -Finished in 0.47567 seconds (files took 0.4499 seconds to load) +Finished in 0.54533 seconds (files took 0.6304 seconds to load) 182 examples, 0 failures -Randomized with seed 8325 +Randomized with seed 24758 /usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner @@ -1385,159 +1421,55 @@ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/arm-linux-gnueabihf/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/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 -Randomized with seed 30558 +Randomized with seed 41762 Dry::Container::Mixin extended behaves like a container - .clone - re-uses frozen container - returns a copy that doesn't share registered keys with the parent - stubbing - keys can be stubbed - only other keys remain accesible - keys can be reverted back to their original value - raises an error when key is missing - with block argument - executes the block with the given stubs - keys are stubbed only while inside the block - mixing Strings and Symbols - is expected to eql "stub" - with default configuration - #key? - when key exists in container - is expected to equal true - when key does not exist in container - is expected to equal false - mixing Strings and Symbols - is expected to eql "item" - #each - returns the container - yields stringified versions of all registered keys to the block - registering an object - without options - registers and resolves the object - with option call: false - registers and resolves an object - #each_key - yields stringified versions of all registered keys to the block - returns the container - import - allows importing of nested namespaces - allows importing of namespaces - #decorate - with an instance as a decorator - expected to pass original value to decorator#call method - for callable item - memoize false - is expected not to equal #<#:0xb4421274> - does not call the block until the key is resolved - memoize true - is expected to equal #:0xb4415488>)> - for not callable item - memoization - decorates static value only once - wrapping - expected to be an instance of SimpleDelegator - namespace - with nesting - registers items under the given namespaces - with nesting and when block takes arguments - resolves items relative to the namespace - when block does not take arguments - registers items under the given namespace - when block takes arguments - registers items under the given namespace - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - registering with the same key multiple times - is expected to raise Dry::Container::Error - #merge - with namespace argument - when namespace is nil - is expected to equal :item - is expected to equal :item - when namespace is not nil - is expected to equal :item - is expected to equal :item - without namespace argument - is expected to equal :item - is expected to equal :item - registering a block - without options - with arguments - registers and resolves a proc - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments - without arguments - registers and resolves an object - with option call: false - registers and resolves a proc - registering a proc - without options - without arguments - registers and resolves an object - with arguments - registers and resolves a proc - with option memoize: true - only resolves the proc once - registers and resolves a proc - when receiving something other than a proc - is expected to raise Dry::Container::Error - with option call: false - registers and resolves a proc - #keys - returns stringified versions of all registered keys .resolve accepts a fallback block - .dup - returns a copy that doesn't share registered keys with the parent - .freeze - returns self back - allows to freeze a container so that nothing can be registered later configuration - namespace_separator - custom - is expected to eq "item" - default - is expected to eq "." registry custom is expected to have received call({}, :key, :item, {}) 1 time default is expected to be a kind of Dry::Container::Registry + namespace_separator + custom + is expected to eq "item" + default + is expected to eq "." resolver + default + is expected to be a kind of Dry::Container::Resolver custom is expected to have received call({}, :key) 1 time is expected to eq # - default - is expected to be a kind of Dry::Container::Resolver - included - behaves like a container .freeze - allows to freeze a container so that nothing can be registered later returns self back + allows to freeze a container so that nothing can be registered later + .clone + returns a copy that doesn't share registered keys with the parent + re-uses frozen container stubbing - keys can be reverted back to their original value keys can be stubbed - raises an error when key is missing only other keys remain accesible + raises an error when key is missing + keys can be reverted back to their original value mixing Strings and Symbols is expected to eql "stub" with block argument executes the block with the given stubs keys are stubbed only while inside the block + .dup + returns a copy that doesn't share registered keys with the parent with default configuration - #key? - when key does not exist in container - is expected to equal false - when key exists in container - is expected to equal true - import - allows importing of namespaces - allows importing of nested namespaces - mixing Strings and Symbols - is expected to eql "item" + resolving with a key that has not been registered + is expected to raise Dry::Container::Error #merge + without namespace argument + is expected to equal :item + is expected to equal :item with namespace argument when namespace is not nil is expected to equal :item @@ -1545,20 +1477,26 @@ when namespace is nil is expected to equal :item is expected to equal :item - without namespace argument - is expected to equal :item - is expected to equal :item + mixing Strings and Symbols + is expected to eql "item" + #each_key + yields stringified versions of all registered keys to the block + returns the container #keys returns stringified versions of all registered keys - registering with the same key multiple times - is expected to raise Dry::Container::Error + #each + returns the container + yields stringified versions of all registered keys to the block + registering a block + with option call: false + registers and resolves a proc + without options + without arguments + registers and resolves an object + with arguments + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + registers and resolves a proc #decorate - for callable item - memoize false - is expected not to equal #<#:0xb440f22c> - does not call the block until the key is resolved - memoize true - is expected to equal #:0xb43f9940>)> for not callable item memoization decorates static value only once @@ -1566,178 +1504,291 @@ expected to be an instance of SimpleDelegator with an instance as a decorator expected to pass original value to decorator#call method + for callable item + memoize false + is expected not to equal #<#:0xf4d035b4> + does not call the block until the key is resolved + memoize true + is expected to equal #:0xf4cfa0b8>)> + import + allows importing of namespaces + allows importing of nested namespaces + namespace + when block does not take arguments + registers items under the given namespace + when block takes arguments + registers items under the given namespace + with nesting + registers items under the given namespaces + with nesting and when block takes arguments + resolves items relative to the namespace + #key? + when key does not exist in container + is expected to equal false + when key exists in container + is expected to equal true registering a proc - without options - with arguments - registers and resolves a proc - without arguments - registers and resolves an object with option memoize: true - registers and resolves a proc only resolves the proc once + registers and resolves a proc when receiving something other than a proc is expected to raise Dry::Container::Error + without options + without arguments + registers and resolves an object + with arguments + registers and resolves a proc with option call: false registers and resolves a proc - #each_key - returns the container - yields stringified versions of all registered keys to the block registering an object with option call: false registers and resolves an object without options registers and resolves the object + registering with the same key multiple times + is expected to raise Dry::Container::Error + included + behaves like a container + with default configuration namespace when block does not take arguments registers items under the given namespace - with nesting - registers items under the given namespaces when block takes arguments registers items under the given namespace + with nesting + registers items under the given namespaces with nesting and when block takes arguments resolves items relative to the namespace - registering a block - with option call: false - registers and resolves a proc + registering a proc without options with arguments registers and resolves a proc - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments without arguments registers and resolves an object + with option memoize: true + only resolves the proc once + registers and resolves a proc + when receiving something other than a proc + is expected to raise Dry::Container::Error + with option call: false + registers and resolves a proc + #keys + returns stringified versions of all registered keys + registering with the same key multiple times + is expected to raise Dry::Container::Error + #merge + without namespace argument + is expected to equal :item + is expected to equal :item + with namespace argument + when namespace is nil + is expected to equal :item + is expected to equal :item + when namespace is not nil + is expected to equal :item + is expected to equal :item + registering an object + with option call: false + registers and resolves an object + without options + registers and resolves the object + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + mixing Strings and Symbols + is expected to eql "item" #each yields stringified versions of all registered keys to the block returns the container - resolving with a key that has not been registered - is expected to raise Dry::Container::Error + #key? + when key does not exist in container + is expected to equal false + when key exists in container + is expected to equal true + registering a block + with option call: false + registers and resolves a proc + without options + without arguments + registers and resolves an object + with arguments + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + registers and resolves a proc + import + allows importing of nested namespaces + allows importing of namespaces + #each_key + returns the container + yields stringified versions of all registered keys to the block + #decorate + for callable item + memoize true + is expected to equal #:0xf4d12654>)> + memoize false + is expected not to equal #<#:0xf4d1cfc8> + does not call the block until the key is resolved + for not callable item + wrapping + expected to be an instance of SimpleDelegator + memoization + decorates static value only once + with an instance as a decorator + expected to pass original value to decorator#call method + .freeze + allows to freeze a container so that nothing can be registered later + returns self back + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent + .dup + returns a copy that doesn't share registered keys with the parent configuration - registry - default - is expected to be a kind of Dry::Container::Registry - custom - is expected to have received call({}, :key, :item, {}) 1 time namespace_separator - default - is expected to eq "." custom is expected to eq "item" + default + is expected to eq "." resolver + default + is expected to be a kind of Dry::Container::Resolver custom is expected to eq # is expected to have received call({}, :key) 1 time + registry + custom + is expected to have received call({}, :key, :item, {}) 1 time default - is expected to be a kind of Dry::Container::Resolver - .dup - returns a copy that doesn't share registered keys with the parent - .clone - re-uses frozen container - returns a copy that doesn't share registered keys with the parent + is expected to be a kind of Dry::Container::Registry .resolve accepts a fallback block + stubbing + keys can be stubbed + raises an error when key is missing + only other keys remain accesible + keys can be reverted back to their original value + mixing Strings and Symbols + is expected to eql "stub" + with block argument + executes the block with the given stubs + keys are stubbed only while inside the block into a class with a custom .initialize method does not fail on missing member variable Dry::Container - inheritance - sets up a container for a child class behaves like a container + configuration + namespace_separator + default + is expected to eq "." + custom + is expected to eq "item" + resolver + default + is expected to be a kind of Dry::Container::Resolver + custom + is expected to have received call({}, :key) 1 time + is expected to eq # + registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + default + is expected to be a kind of Dry::Container::Registry with default configuration #each_key returns the container yields stringified versions of all registered keys to the block - #key? - when key exists in container - is expected to equal true - when key does not exist in container - is expected to equal false + #decorate + with an instance as a decorator + expected to pass original value to decorator#call method + for not callable item + wrapping + expected to be an instance of SimpleDelegator + memoization + decorates static value only once + for callable item + memoize false + is expected not to equal #<#:0xf4d3166c> + does not call the block until the key is resolved + memoize true + is expected to equal #:0xf4d12be0>)> + #keys + returns stringified versions of all registered keys + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + registering with the same key multiple times + is expected to raise Dry::Container::Error import allows importing of namespaces allows importing of nested namespaces - #keys - returns stringified versions of all registered keys - #each - yields stringified versions of all registered keys to the block - returns the container - registering an object + namespace + with nesting and when block takes arguments + resolves items relative to the namespace + with nesting + registers items under the given namespaces + when block takes arguments + registers items under the given namespace + when block does not take arguments + registers items under the given namespace + registering a block without options - registers and resolves the object + with arguments + registers and resolves a proc + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + without arguments + registers and resolves an object with option call: false - registers and resolves an object + registers and resolves a proc #merge - without namespace argument - is expected to equal :item - is expected to equal :item with namespace argument - when namespace is not nil + when namespace is nil is expected to equal :item is expected to equal :item - when namespace is nil + when namespace is not nil is expected to equal :item is expected to equal :item - registering with the same key multiple times - is expected to raise Dry::Container::Error - registering a block + without namespace argument + is expected to equal :item + is expected to equal :item + registering a proc with option call: false registers and resolves a proc without options - without arguments - registers and resolves an object - with arguments - registers and resolves a proc - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments - registering a proc - without options with arguments registers and resolves a proc without arguments registers and resolves an object - with option call: false - registers and resolves a proc with option memoize: true - registers and resolves a proc only resolves the proc once + registers and resolves a proc when receiving something other than a proc is expected to raise Dry::Container::Error + #each + returns the container + yields stringified versions of all registered keys to the block + #key? + when key does not exist in container + is expected to equal false + when key exists in container + is expected to equal true + registering an object + with option call: false + registers and resolves an object + without options + registers and resolves the object mixing Strings and Symbols is expected to eql "item" - #decorate - for not callable item - memoization - decorates static value only once - wrapping - expected to be an instance of SimpleDelegator - with an instance as a decorator - expected to pass original value to decorator#call method - for callable item - memoize true - is expected to equal #:0xb439fbfc>)> - memoize false - is expected not to equal #<#:0xb43bc6a8> - does not call the block until the key is resolved - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - namespace - when block takes arguments - registers items under the given namespace - when block does not take arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - with nesting and when block takes arguments - resolves items relative to the namespace - .freeze - returns self back - allows to freeze a container so that nothing can be registered later - .resolve - accepts a fallback block .dup returns a copy that doesn't share registered keys with the parent .clone - re-uses frozen container returns a copy that doesn't share registered keys with the parent + re-uses frozen container + .resolve + accepts a fallback block + .freeze + allows to freeze a container so that nothing can be registered later + returns self back stubbing - only other keys remain accesible keys can be stubbed + only other keys remain accesible keys can be reverted back to their original value raises an error when key is missing mixing Strings and Symbols @@ -1745,42 +1796,27 @@ with block argument executes the block with the given stubs keys are stubbed only while inside the block - configuration - resolver - custom - is expected to eq # - is expected to have received call({}, :key) 1 time - default - is expected to be a kind of Dry::Container::Resolver - registry - custom - is expected to have received call({}, :key, :item, {}) 1 time - default - is expected to be a kind of Dry::Container::Registry - namespace_separator - custom - is expected to eq "item" - default - is expected to eq "." + inheritance + sets up a container for a child class -Top 3 slowest examples (0.04083 seconds, 9.1% of total time): - Dry::Container::Mixin extended behaves like a container with default configuration #key? when key does not exist in container is expected to equal false - 0.01444 seconds ./spec/support/shared_examples/container.rb:317 - Dry::Container::Mixin extended behaves like a container with default configuration #decorate with an instance as a decorator expected to pass original value to decorator#call method - 0.01366 seconds ./spec/support/shared_examples/container.rb:472 - Dry::Container::Mixin extended behaves like a container with default configuration mixing Strings and Symbols is expected to eql "item" - 0.01273 seconds ./spec/support/shared_examples/container.rb:259 +Top 3 slowest examples (0.05608 seconds, 10.5% of total time): + Dry::Container::Mixin extended behaves like a container configuration registry custom is expected to have received call({}, :key, :item, {}) 1 time + 0.0309 seconds ./spec/support/shared_examples/container.rb:32 + Dry::Container::Mixin extended behaves like a container stubbing keys can be stubbed + 0.01296 seconds ./spec/support/shared_examples/container.rb:576 + Dry::Container::Mixin extended behaves like a container .clone re-uses frozen container + 0.01222 seconds ./spec/support/shared_examples/container.rb:653 Top 2 slowest example groups: Dry::Container::Mixin - 0.00263 seconds average (0.31795 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 + 0.00309 seconds average (0.37377 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 Dry::Container - 0.00202 seconds average (0.12337 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + 0.0025 seconds average (0.15244 seconds / 61 examples) ./spec/integration/container_spec.rb:1 -Finished in 0.44711 seconds (files took 0.43275 seconds to load) +Finished in 0.53244 seconds (files took 0.59607 seconds to load) 182 examples, 0 failures -Randomized with seed 30558 +Randomized with seed 41762 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1812,12 +1848,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/12290/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/27264 and its subdirectories -I: Current time: Sun Feb 2 23:51:33 -12 2025 -I: pbuilder-time-stamp: 1738583493 +I: removing directory /srv/workspace/pbuilder/12290 and its subdirectories +I: Current time: Tue Feb 4 01:54:05 +14 2025 +I: pbuilder-time-stamp: 1738583645