Diff of the two buildlogs: -- --- b1/build.log 2025-01-02 10:53:03.891051254 +0000 +++ b2/build.log 2025-01-02 10:55:28.964443663 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jan 1 22:51:33 -12 2025 -I: pbuilder-time-stamp: 1735815093 +I: Current time: Fri Jan 3 00:53:12 +14 2025 +I: pbuilder-time-stamp: 1735815192 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -28,52 +28,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/7115/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3748/tmp/hooks/D01_modify_environment starting +debug: Running on virt32b. +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 Jan 2 10:53 /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/3748/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3748/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='trixie' - 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=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='6a079142486640a58256e1ea78c7e482' - 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='7115' - PS1='# ' - PS2='> ' + INVOCATION_ID=064537f318ff4684a4bf813140568ac2 + 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=3748 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.OgL4k592/pbuilderrc_r55X --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.OgL4k592/b1 --logfile b1/build.log ruby-dry-container_0.7.2-2.dsc' - SUDO_GID='114' - SUDO_UID='108' - 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.OgL4k592/pbuilderrc_wD2W --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.OgL4k592/b2 --logfile b2/build.log ruby-dry-container_0.7.2-2.dsc' + SUDO_GID=112 + SUDO_UID=106 + 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 virt64a 6.1.0-28-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-28-armmp-lpae #1 SMP Debian 6.1.119-1 (2024-11-22) armv7l GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/7115/tmp/hooks/D02_print_environment finished +I: user script /srv/workspace/pbuilder/3748/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -257,7 +289,7 @@ Get: 136 http://deb.debian.org/debian trixie/main armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 137 http://deb.debian.org/debian trixie/main armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 138 http://deb.debian.org/debian trixie/main armhf ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 42.3 MB in 1s (47.0 MB/s) +Fetched 42.3 MB in 1s (33.7 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.12-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 ... 19679 files and directories currently installed.) @@ -722,8 +754,8 @@ Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Thu Jan 2 10:52:25 UTC 2025. -Universal Time is now: Thu Jan 2 10:52:25 UTC 2025. +Local time is now: Thu Jan 2 10:54:22 UTC 2025. +Universal Time is now: Thu Jan 2 10:54:22 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -845,7 +877,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/3748/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/3748/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 @@ -879,7 +915,7 @@ │ ruby-dry-container: Installing files and building extensions for ruby3.1 │ └──────────────────────────────────────────────────────────────────────────────┘ -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250101-11941-5mybyg/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20250103-9221-ulh77v/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on bundler (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' @@ -892,7 +928,7 @@ Name: dry-container Version: 0.7.2 File: dry-container-0.7.2.gem -/usr/bin/ruby3.1 -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/d20250101-11941-5mybyg/dry-container-0.7.2.gem +/usr/bin/ruby3.1 -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/d20250103-9221-ulh77v/dry-container-0.7.2.gem Failed to load /dev/null because it doesn't contain valid YAML hash /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 @@ -940,14 +976,146 @@ 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 10332 +Randomized with seed 43022 + +Dry::Container + inheritance + sets up a container for a child class + behaves like a container + .dup + returns a copy that doesn't share registered keys with the parent + configuration + registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + default + is expected to be a kind of Dry::Container::Registry + 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 + custom + is expected to eq "item" + default + is expected to eq "." + 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 + 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 + with default configuration + #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 + #keys + returns stringified versions of all registered keys + #key? + when key exists in container + is expected to equal true + when key does not exist in container + is expected to equal false + namespace + when block takes arguments + registers items under the given namespace + with nesting and when block takes arguments + resolves items relative to the namespace + with nesting + registers items under the given namespaces + when block does not take arguments + registers items under the given namespace + #each_key + returns the container + yields stringified versions of all registered keys to the block + #each + yields stringified versions of all registered keys to the block + returns the container + 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 + 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 + #decorate + for callable item + memoize true + is expected to equal #:0xb45fc5d0>)> + memoize false + does not call the block until the key is resolved + is expected not to equal #<#:0xb45f18ec> + 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 + registering a proc + with option call: false + registers and resolves 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 + registering with the same key multiple times + is expected to raise Dry::Container::Error + import + allows importing of nested namespaces + allows importing of namespaces + .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::Mixin included + into a class with a custom .initialize method + does not fail on missing member variable behaves like a container - .clone - re-uses frozen container + .dup returns a copy that doesn't share registered keys with the parent + .resolve + accepts a fallback block + .freeze + allows to freeze a container so that nothing can be registered later + returns self back configuration registry default @@ -955,11 +1123,11 @@ custom is expected to have received call({}, :key, :item, {}) 1 time 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 namespace_separator default is expected to eq "." @@ -968,69 +1136,85 @@ stubbing raises an error when key is missing keys can be stubbed - only other keys remain accesible keys can be reverted back to their original value + only other keys remain accesible 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 - allows to freeze a container so that nothing can be registered later - returns self back + executes the block with the given stubs + .clone + returns a copy that doesn't share registered keys with the parent + re-uses frozen container with default configuration + namespace + with nesting + registers items under the given namespaces + when block does not take arguments + registers items under the given namespace + when block takes arguments + registers items under the given namespace + with nesting and when block takes arguments + resolves items relative to the namespace + #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 true + is expected to equal #:0xb4684f84>)> + memoize false + does not call the block until the key is resolved + is expected not to equal #<#:0xb46770b4> registering a proc - 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 + with arguments + registers and resolves 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 - 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 + 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 with option call: false registers and resolves an object without options registers and resolves the object - #each - returns the container - yields stringified versions of all registered keys to the block - #each_key - returns the container - yields stringified versions of all registered keys to the block - #decorate - with an instance as a decorator - expected to pass original value to decorator#call method - for callable item - memoize true - is expected to equal #:0xf51b84ec>)> - memoize false - is expected not to equal #<#:0xf51ade0c> - 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 + registering a block + 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 + with option call: false + registers and resolves a proc #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 + #keys + returns stringified versions of all registered keys + #each_key + 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 registering with the same key multiple times @@ -1040,302 +1224,154 @@ is expected to equal :item is expected to equal :item with namespace argument - when namespace is nil + when namespace is not nil is expected to equal :item is expected to equal :item - when namespace is not nil + when namespace is nil is expected to equal :item is expected to equal :item - #keys - returns stringified versions of all registered keys - import - allows importing of namespaces - allows importing of nested namespaces - mixing Strings and Symbols - is expected to eql "item" - 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 - .resolve - accepts a fallback block - .dup - returns a copy that doesn't share registered keys with the parent - into a class with a custom .initialize method - does not fail on missing member variable extended behaves like a container + .dup + returns a copy that doesn't share registered keys with the parent + .resolve + accepts a fallback block + .freeze + returns self back + allows to freeze a container so that nothing can be registered later + stubbing + raises an error when key is missing + keys can be reverted back to their original value + only other keys remain accesible + keys can be stubbed + 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 - import - allows importing of nested namespaces - allows importing of namespaces - #merge - 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 - without namespace argument - is expected to equal :item - is expected to equal :item + registering with the same key multiple times + 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 proc + registering a block without options - with arguments - registers and resolves a proc 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 arguments + registers and resolves a proc + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments with option call: false registers and resolves a proc + #each + yields stringified versions of all registered keys to the block + returns the container registering an object without options registers and resolves the object with option call: false registers and resolves an object - mixing Strings and Symbols - is expected to eql "item" - registering a block - 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 - resolving with a key that has not been registered - is expected to raise Dry::Container::Error + #merge + 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 + without namespace argument + is expected to equal :item + is expected to equal :item + #keys + returns stringified versions of all registered keys #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 #:0xf51d5ec0>)> memoize false + is expected not to equal #<#:0xb45ce4f0> does not call the block until the key is resolved - is expected not to equal #<#:0xf51ae9d8> - #keys - returns stringified versions of all registered keys - #each - yields stringified versions of all registered keys to the block - returns the container + memoize true + is expected to equal #:0xb45b7d90>)> + 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 + 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" namespace + when block takes arguments + registers items under the given 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 + import + allows importing of namespaces + allows importing of nested namespaces #each_key - returns the container yields stringified versions of all registered keys to the block - registering with the same key multiple times - is expected to raise Dry::Container::Error - .resolve - accepts a fallback block + returns the container + 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 + 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 .clone - returns a copy that doesn't share registered keys with the parent re-uses frozen container + returns a copy that doesn't share registered keys with the parent 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 registry + default + is expected to be a kind of Dry::Container::Registry custom is expected to have received call({}, :key, :item, {}) 1 time + 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::Registry + is expected to be a kind of Dry::Container::Resolver namespace_separator custom is expected to eq "item" default is expected to eq "." - .freeze - allows to freeze a container so that nothing can be registered later - returns self back - .dup - returns a copy that doesn't share registered keys with the parent - stubbing - keys can be reverted back to their original value - only other keys remain accesible - raises an error when key is missing - keys can be stubbed - 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 - -Dry::Container - behaves like a container - .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 - .resolve - accepts a fallback block - stubbing - keys can be reverted back to their original value - only other keys remain accesible - raises an error when key is missing - keys can be stubbed - 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 - configuration - 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 # - 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 - with default configuration - import - allows importing of nested namespaces - allows importing of namespaces - #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 - #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 - #keys - returns stringified versions of all registered keys - #each - returns the container - yields stringified versions of all registered keys to the block - 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 - 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 - registering with the same key multiple times - is expected to raise Dry::Container::Error - 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 - with option call: false - registers and resolves a proc - 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 - #decorate - with an instance as a decorator - expected to pass original value to decorator#call method - for callable item - memoize true - is expected to equal #:0xf52670dc>)> - memoize false - is expected not to equal #<#:0xf5218e78> - 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 - registering an object - with option call: false - registers and resolves an object - without options - registers and resolves the object - #key? - when key exists in container - is expected to equal true - when key does not exist in container - is expected to equal false - inheritance - sets up a container for a child class -Top 3 slowest examples (0.0564 seconds, 12.2% of total time): - Dry::Container::Mixin included behaves like a container configuration registry custom is expected to have received call({}, :key, :item, {}) 1 time - 0.02632 seconds ./spec/support/shared_examples/container.rb:32 - Dry::Container::Mixin included behaves like a container stubbing with block argument executes the block with the given stubs - 0.01849 seconds ./spec/support/shared_examples/container.rb:597 - Dry::Container::Mixin included behaves like a container stubbing mixing Strings and Symbols is expected to eql "stub" - 0.0116 seconds ./spec/support/shared_examples/container.rb:611 +Top 3 slowest examples (0.04262 seconds, 6.5% of total time): + Dry::Container behaves like a container configuration registry custom is expected to have received call({}, :key, :item, {}) 1 time + 0.02084 seconds ./spec/support/shared_examples/container.rb:32 + Dry::Container::Mixin extended behaves like a container .clone re-uses frozen container + 0.01407 seconds ./spec/support/shared_examples/container.rb:653 + Dry::Container behaves like a container stubbing with block argument executes the block with the given stubs + 0.00772 seconds ./spec/support/shared_examples/container.rb:597 Top 2 slowest example groups: - Dry::Container::Mixin - 0.00291 seconds average (0.35168 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 Dry::Container - 0.0017 seconds average (0.10395 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + 0.0039 seconds average (0.23766 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + Dry::Container::Mixin + 0.00338 seconds average (0.40903 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 -Finished in 0.46126 seconds (files took 0.56939 seconds to load) +Finished in 0.65387 seconds (files took 0.78775 seconds to load) 182 examples, 0 failures -Randomized with seed 10332 +Randomized with seed 43022 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1367,12 +1403,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/3748/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3748/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/7115 and its subdirectories -I: Current time: Wed Jan 1 22:52:59 -12 2025 -I: pbuilder-time-stamp: 1735815179 +I: removing directory /srv/workspace/pbuilder/3748 and its subdirectories +I: Current time: Fri Jan 3 00:55:24 +14 2025 +I: pbuilder-time-stamp: 1735815324