Sun Aug 31 21:31:24 UTC 2025 I: starting to build ruby-semantic-puppet/forky/amd64 on jenkins on '2025-08-31 21:31' Sun Aug 31 21:31:24 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_16/70063/console.log Sun Aug 31 21:31:24 UTC 2025 I: Downloading source for forky/ruby-semantic-puppet=1.1.0-1 --2025-08-31 21:31:24-- http://deb.debian.org/debian/pool/main/r/ruby-semantic-puppet/ruby-semantic-puppet_1.1.0-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 1549 (1.5K) [text/prs.lines.tag] Saving to: ‘ruby-semantic-puppet_1.1.0-1.dsc’ 0K . 100% 186M=0s 2025-08-31 21:31:24 (186 MB/s) - ‘ruby-semantic-puppet_1.1.0-1.dsc’ saved [1549/1549] Sun Aug 31 21:31:24 UTC 2025 I: ruby-semantic-puppet_1.1.0-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: ruby-semantic-puppet Binary: ruby-semantic-puppet Architecture: all Version: 1.1.0-1 Maintainer: Puppet Package Maintainers Uploaders: Sebastien Badia , Markus Frosch , Homepage: https://github.com/puppetlabs/semantic_puppet Standards-Version: 4.7.0 Vcs-Browser: https://salsa.debian.org/puppet-team/ruby-semantic-puppet Vcs-Git: https://salsa.debian.org/puppet-team/ruby-semantic-puppet.git Testsuite: autopkgtest-pkg-ruby Build-Depends: debhelper-compat (= 13), gem2deb, rake, ruby-rspec Package-List: ruby-semantic-puppet deb ruby optional arch=all Checksums-Sha1: e7c68daa40bfadc1b1c157b1b4d9bc948eadddc9 28963 ruby-semantic-puppet_1.1.0.orig.tar.gz 8fdf7006d4e0276b2452536068726423dc7654a8 2836 ruby-semantic-puppet_1.1.0-1.debian.tar.xz Checksums-Sha256: 3c39dc2fc57f65a0a21787713b1da0a3346a21a272329e66544768381a35e953 28963 ruby-semantic-puppet_1.1.0.orig.tar.gz 7ec1e87c0f7620f1a6a8194339a122def63c4795f293d32188bfb2d0e73f4041 2836 ruby-semantic-puppet_1.1.0-1.debian.tar.xz Files: 470739ebf3ddbeb487009de7e9363f2e 28963 ruby-semantic-puppet_1.1.0.orig.tar.gz 3e14a6879d49a2c16647e347a6f4bc77 2836 ruby-semantic-puppet_1.1.0-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iHUEARYIAB0WIQTAq04Rv2xblqv/eu5pxS9ljpiFQgUCZzrP/QAKCRBpxS9ljpiF QjtZAP9PvenzCdp0ST0XVMV+lP6Lnm/nDaBmBfDH8j7kbOeUgAEA45e+TBa+9DXH f0jdgfTKAy4X8vLRQ8lV+1APyouY6gw= =vTU4 -----END PGP SIGNATURE----- Sun Aug 31 21:31:24 UTC 2025 I: Checking whether the package is not for us Sun Aug 31 21:31:24 UTC 2025 I: Starting 1st build on remote node ionos15-amd64.debian.net. Sun Aug 31 21:31:24 UTC 2025 I: Preparing to do remote build '1' on ionos15-amd64.debian.net. Sun Aug 31 21:32:37 UTC 2025 I: Deleting $TMPDIR on ionos15-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sat Oct 3 15:54:22 -12 2026 I: pbuilder-time-stamp: 1791086062 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ruby-semantic-puppet_1.1.0-1.dsc] I: copying [./ruby-semantic-puppet_1.1.0.orig.tar.gz] I: copying [./ruby-semantic-puppet_1.1.0-1.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./ruby-semantic-puppet_1.1.0-1.dsc: no acceptable signature found dpkg-source: info: extracting ruby-semantic-puppet in ruby-semantic-puppet-1.1.0 dpkg-source: info: unpacking ruby-semantic-puppet_1.1.0.orig.tar.gz dpkg-source: info: unpacking ruby-semantic-puppet_1.1.0-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/160572/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='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DISTRIBUTION='forky' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='4ddc4507d4eb497f98d39c81cc431d7a' 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='160572' PS1='# ' PS2='> ' 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.z8VeP57A/pbuilderrc_8Fe1 --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/b1 --logfile b1/build.log ruby-semantic-puppet_1.1.0-1.dsc' SUDO_GID='111' SUDO_HOME='/var/lib/jenkins' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://213.165.73.152:3128' I: uname -a Linux ionos15-amd64 6.12.41+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.41-1 (2025-08-12) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/160572/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), gem2deb, rake, ruby-rspec dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19897 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on gem2deb; however: Package gem2deb is not installed. pbuilder-satisfydepends-dummy depends on rake; however: Package rake is not installed. pbuilder-satisfydepends-dummy depends on ruby-rspec; however: Package ruby-rspec is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} devscripts{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gem2deb{a} gem2deb-test-runner{a} gettext{a} gettext-base{a} gpg{a} gpg-agent{a} gpgconf{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libassuan9{a} libb-hooks-op-check-perl{a} libclass-method-modifiers-perl{a} libclass-xsaccessor-perl{a} libclone-perl{a} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libffi8{a} libfile-dirlist-perl{a} libfile-homedir-perl{a} libfile-listing-perl{a} libfile-stripnondeterminism-perl{a} libfile-touch-perl{a} libfile-which-perl{a} libgcrypt20{a} libgmp-dev{a} libgmpxx4ldbl{a} libgpg-error0{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libimport-into-perl{a} libio-html-perl{a} libio-socket-ssl-perl{a} libio-string-perl{a} libksba8{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.3{a} libsub-quote-perl{a} libtimedate-perl{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} libunistring5{a} liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml2-16{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} patchutils{a} perl-openssl-defaults{a} pinentry-curses{a} po-debconf{a} python3{a} python3-minimal{a} python3.13{a} python3.13-minimal{a} rake{a} readline-common{a} rsopv{a} ruby{a} ruby-all-dev{a} ruby-csv{a} ruby-did-you-mean{a} ruby-diff-lcs{a} ruby-minitest{a} ruby-net-telnet{a} ruby-power-assert{a} ruby-rspec{a} ruby-rspec-core{a} ruby-rspec-expectations{a} ruby-rspec-mocks{a} ruby-rspec-support{a} ruby-ruby2-keywords{a} ruby-rubygems{a} ruby-test-unit{a} ruby-webrick{a} ruby-xmlrpc{a} ruby3.3{a} ruby3.3-dev{a} rubygems-integration{a} sensible-utils{a} tzdata{a} wdiff{a} The following packages are RECOMMENDED but will NOT be installed: apt-file curl dctrl-tools debian-keyring debian-tag2upload-keyring dput dput-ng dupload equivs fonts-lato git-debpush gnupg libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgitlab-api-v4-perl libgpg-error-l10n libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-compress-brotli-perl libjs-jquery libjson-perl libltdl-dev libmail-sendmail-perl libmailtools-perl libmetacpan-client-perl libnamespace-clean-perl libsoap-lite-perl libstring-shellquote-perl libxstring-perl licensecheck lintian lynx lzip pristine-tar python3-apt python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-sdbm ruby3.3-doc strace unzip wget zip 0 packages upgraded, 125 newly installed, 0 to remove and 0 not upgraded. Need to get 36.6 MB of archives. After unpacking 133 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian forky/main amd64 libexpat1 amd64 2.7.1-2 [108 kB] Get: 2 http://deb.debian.org/debian forky/main amd64 libpython3.13-minimal amd64 3.13.7-1 [864 kB] Get: 3 http://deb.debian.org/debian forky/main amd64 python3.13-minimal amd64 3.13.7-1 [2216 kB] Get: 4 http://deb.debian.org/debian forky/main amd64 python3-minimal amd64 3.13.5-1 [27.2 kB] Get: 5 http://deb.debian.org/debian forky/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian forky/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian forky/main amd64 tzdata all 2025b-5 [260 kB] Get: 8 http://deb.debian.org/debian forky/main amd64 libffi8 amd64 3.4.8-2 [24.1 kB] Get: 9 http://deb.debian.org/debian forky/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian forky/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian forky/main amd64 libpython3.13-stdlib amd64 3.13.7-1 [1960 kB] Get: 12 http://deb.debian.org/debian forky/main amd64 python3.13 amd64 3.13.7-1 [761 kB] Get: 13 http://deb.debian.org/debian forky/main amd64 libpython3-stdlib amd64 3.13.5-1 [10.2 kB] Get: 14 http://deb.debian.org/debian forky/main amd64 python3 amd64 3.13.5-1 [28.2 kB] Get: 15 http://deb.debian.org/debian forky/main amd64 sensible-utils all 0.0.26 [27.0 kB] Get: 16 http://deb.debian.org/debian forky/main amd64 openssl amd64 3.5.2-1 [1493 kB] Get: 17 http://deb.debian.org/debian forky/main amd64 ca-certificates all 20250419 [162 kB] Get: 18 http://deb.debian.org/debian forky/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 19 http://deb.debian.org/debian forky/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 20 http://deb.debian.org/debian forky/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 21 http://deb.debian.org/debian forky/main amd64 gettext-base amd64 0.23.1-2+b1 [244 kB] Get: 22 http://deb.debian.org/debian forky/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 23 http://deb.debian.org/debian forky/main amd64 groff-base amd64 1.23.0-9 [1187 kB] Get: 24 http://deb.debian.org/debian forky/main amd64 bsdextrautils amd64 2.41.1-1 [94.7 kB] Get: 25 http://deb.debian.org/debian forky/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian forky/main amd64 man-db amd64 2.13.1-1 [1469 kB] Get: 27 http://deb.debian.org/debian forky/main amd64 m4 amd64 1.4.19-8 [294 kB] Get: 28 http://deb.debian.org/debian forky/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 29 http://deb.debian.org/debian forky/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 30 http://deb.debian.org/debian forky/main amd64 automake all 1:1.17-4 [862 kB] Get: 31 http://deb.debian.org/debian forky/main amd64 autopoint all 0.23.1-2 [770 kB] Get: 32 http://deb.debian.org/debian forky/main amd64 libdebhelper-perl all 13.26 [91.8 kB] Get: 33 http://deb.debian.org/debian forky/main amd64 libtool all 2.5.4-4 [539 kB] Get: 34 http://deb.debian.org/debian forky/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 35 http://deb.debian.org/debian forky/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian forky/main amd64 libfile-stripnondeterminism-perl all 1.14.2-1 [19.8 kB] Get: 37 http://deb.debian.org/debian forky/main amd64 dh-strip-nondeterminism all 1.14.2-1 [8768 B] Get: 38 http://deb.debian.org/debian forky/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 39 http://deb.debian.org/debian forky/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 40 http://deb.debian.org/debian forky/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 41 http://deb.debian.org/debian forky/main amd64 libxml2-16 amd64 2.14.5+dfsg-0.2 [638 kB] Get: 42 http://deb.debian.org/debian forky/main amd64 gettext amd64 0.23.1-2+b1 [1680 kB] Get: 43 http://deb.debian.org/debian forky/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 44 http://deb.debian.org/debian forky/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 45 http://deb.debian.org/debian forky/main amd64 debhelper all 13.26 [939 kB] Get: 46 http://deb.debian.org/debian forky/main amd64 libgpg-error0 amd64 1.55-2 [88.1 kB] Get: 47 http://deb.debian.org/debian forky/main amd64 libassuan9 amd64 3.0.2-2 [61.5 kB] Get: 48 http://deb.debian.org/debian forky/main amd64 libgcrypt20 amd64 1.11.2-2 [865 kB] Get: 49 http://deb.debian.org/debian forky/main amd64 gpgconf amd64 2.4.8-3 [129 kB] Get: 50 http://deb.debian.org/debian forky/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB] Get: 51 http://deb.debian.org/debian forky/main amd64 libnpth0t64 amd64 1.8-3 [23.2 kB] Get: 52 http://deb.debian.org/debian forky/main amd64 gpg amd64 2.4.8-3 [634 kB] Get: 53 http://deb.debian.org/debian forky/main amd64 pinentry-curses amd64 1.3.2-3 [87.8 kB] Get: 54 http://deb.debian.org/debian forky/main amd64 gpg-agent amd64 2.4.8-3 [271 kB] Get: 55 http://deb.debian.org/debian forky/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B] Get: 56 http://deb.debian.org/debian forky/main amd64 libfile-which-perl all 1.27-2 [15.1 kB] Get: 57 http://deb.debian.org/debian forky/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB] Get: 58 http://deb.debian.org/debian forky/main amd64 libfile-touch-perl all 0.12-2 [8816 B] Get: 59 http://deb.debian.org/debian forky/main amd64 libio-string-perl all 1.08-4 [12.1 kB] Get: 60 http://deb.debian.org/debian forky/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB] Get: 61 http://deb.debian.org/debian forky/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b5 [36.1 kB] Get: 62 http://deb.debian.org/debian forky/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB] Get: 63 http://deb.debian.org/debian forky/main amd64 libdynaloader-functions-perl all 0.004-2 [12.2 kB] Get: 64 http://deb.debian.org/debian forky/main amd64 libdevel-callchecker-perl amd64 0.009-2 [15.6 kB] Get: 65 http://deb.debian.org/debian forky/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB] Get: 66 http://deb.debian.org/debian forky/main amd64 libmodule-runtime-perl all 0.018-1 [17.8 kB] Get: 67 http://deb.debian.org/debian forky/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB] Get: 68 http://deb.debian.org/debian forky/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB] Get: 69 http://deb.debian.org/debian forky/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB] Get: 70 http://deb.debian.org/debian forky/main amd64 libmoo-perl all 2.005005-1 [58.0 kB] Get: 71 http://deb.debian.org/debian forky/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB] Get: 72 http://deb.debian.org/debian forky/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB] Get: 73 http://deb.debian.org/debian forky/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB] Get: 74 http://deb.debian.org/debian forky/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB] Get: 75 http://deb.debian.org/debian forky/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB] Get: 76 http://deb.debian.org/debian forky/main amd64 liburi-perl all 5.30-1 [105 kB] Get: 77 http://deb.debian.org/debian forky/main amd64 libhtml-parser-perl amd64 3.83-1+b2 [99.7 kB] Get: 78 http://deb.debian.org/debian forky/main amd64 libhtml-tree-perl all 5.07-3 [211 kB] Get: 79 http://deb.debian.org/debian forky/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB] Get: 80 http://deb.debian.org/debian forky/main amd64 libio-html-perl all 1.004-3 [16.2 kB] Get: 81 http://deb.debian.org/debian forky/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB] Get: 82 http://deb.debian.org/debian forky/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB] Get: 83 http://deb.debian.org/debian forky/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB] Get: 84 http://deb.debian.org/debian forky/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB] Get: 85 http://deb.debian.org/debian forky/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B] Get: 86 http://deb.debian.org/debian forky/main amd64 libnet-ssleay-perl amd64 1.94-3 [339 kB] Get: 87 http://deb.debian.org/debian forky/main amd64 libio-socket-ssl-perl all 2.095-1 [226 kB] Get: 88 http://deb.debian.org/debian forky/main amd64 libnet-http-perl all 6.23-1 [23.9 kB] Get: 89 http://deb.debian.org/debian forky/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB] Get: 90 http://deb.debian.org/debian forky/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB] Get: 91 http://deb.debian.org/debian forky/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB] Get: 92 http://deb.debian.org/debian forky/main amd64 libwww-perl all 6.78-1 [183 kB] Get: 93 http://deb.debian.org/debian forky/main amd64 patchutils amd64 0.4.2-1 [77.5 kB] Get: 94 http://deb.debian.org/debian forky/main amd64 rsopv amd64 0.6.4-1 [1385 kB] Get: 95 http://deb.debian.org/debian forky/main amd64 wdiff amd64 1.2.2-9 [122 kB] Get: 96 http://deb.debian.org/debian forky/main amd64 devscripts all 2.25.19 [1047 kB] Get: 97 http://deb.debian.org/debian forky/main amd64 rubygems-integration all 1.19 [5488 B] Get: 98 http://deb.debian.org/debian forky/main amd64 ruby-csv all 3.3.4-1 [42.2 kB] Get: 99 http://deb.debian.org/debian forky/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB] Get: 100 http://deb.debian.org/debian forky/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB] Get: 101 http://deb.debian.org/debian forky/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B] Get: 102 http://deb.debian.org/debian forky/main amd64 ruby-webrick all 1.9.1-1 [59.6 kB] Get: 103 http://deb.debian.org/debian forky/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB] Get: 104 http://deb.debian.org/debian forky/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB] Get: 105 http://deb.debian.org/debian forky/main amd64 libruby3.3 amd64 3.3.8-2 [6301 kB] Get: 106 http://deb.debian.org/debian forky/main amd64 ruby3.3 amd64 3.3.8-2 [834 kB] Get: 107 http://deb.debian.org/debian forky/main amd64 libruby amd64 1:3.3+b1 [5440 B] Get: 108 http://deb.debian.org/debian forky/main amd64 ruby-rubygems all 3.6.7-2 [407 kB] Get: 109 http://deb.debian.org/debian forky/main amd64 ruby amd64 1:3.3+b1 [6560 B] Get: 110 http://deb.debian.org/debian forky/main amd64 rake all 13.2.1-1 [65.2 kB] Get: 111 http://deb.debian.org/debian forky/main amd64 ruby-minitest all 5.25.4-3 [66.3 kB] Get: 112 http://deb.debian.org/debian forky/main amd64 ruby-power-assert all 2.0.3-1 [11.8 kB] Get: 113 http://deb.debian.org/debian forky/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB] Get: 114 http://deb.debian.org/debian forky/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB] Get: 115 http://deb.debian.org/debian forky/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-4 [329 kB] Get: 116 http://deb.debian.org/debian forky/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-4 [642 kB] Get: 117 http://deb.debian.org/debian forky/main amd64 ruby3.3-dev amd64 3.3.8-2 [1045 kB] Get: 118 http://deb.debian.org/debian forky/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B] Get: 119 http://deb.debian.org/debian forky/main amd64 gem2deb amd64 2.2.5 [48.0 kB] Get: 120 http://deb.debian.org/debian forky/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB] Get: 121 http://deb.debian.org/debian forky/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB] Get: 122 http://deb.debian.org/debian forky/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] Get: 123 http://deb.debian.org/debian forky/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 124 http://deb.debian.org/debian forky/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 125 http://deb.debian.org/debian forky/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Fetched 36.6 MB in 1s (47.1 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (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 ... 19897 files and directories currently installed.) Preparing to unpack .../libexpat1_2.7.1-2_amd64.deb ... Unpacking libexpat1:amd64 (2.7.1-2) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../libpython3.13-minimal_3.13.7-1_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.7-1_amd64.deb ... Unpacking python3.13-minimal (3.13.7-1) ... Setting up libpython3.13-minimal:amd64 (3.13.7-1) ... Setting up libexpat1:amd64 (2.7.1-2) ... Setting up python3.13-minimal (3.13.7-1) ... Selecting previously unselected package python3-minimal. (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 ... 20231 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.5-1_amd64.deb ... Unpacking python3-minimal (3.13.5-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-5_all.deb ... Unpacking tzdata (2025b-5) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.8-2_amd64.deb ... Unpacking libffi8:amd64 (3.4.8-2) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.7-1_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.7-1) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.7-1_amd64.deb ... Unpacking python3.13 (3.13.7-1) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.5-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.5-1) ... Setting up python3-minimal (3.13.5-1) ... Selecting previously unselected package python3. (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 ... 21246 files and directories currently installed.) Preparing to unpack .../000-python3_3.13.5-1_amd64.deb ... Unpacking python3 (3.13.5-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../001-sensible-utils_0.0.26_all.deb ... Unpacking sensible-utils (0.0.26) ... Selecting previously unselected package openssl. Preparing to unpack .../002-openssl_3.5.2-1_amd64.deb ... Unpacking openssl (3.5.2-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../003-ca-certificates_20250419_all.deb ... Unpacking ca-certificates (20250419) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../004-libmagic-mgc_1%3a5.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../005-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../006-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../007-gettext-base_0.23.1-2+b1_amd64.deb ... Unpacking gettext-base (0.23.1-2+b1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../008-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../009-groff-base_1.23.0-9_amd64.deb ... Unpacking groff-base (1.23.0-9) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../010-bsdextrautils_2.41.1-1_amd64.deb ... Unpacking bsdextrautils (2.41.1-1) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../011-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../012-man-db_2.13.1-1_amd64.deb ... Unpacking man-db (2.13.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../013-m4_1.4.19-8_amd64.deb ... Unpacking m4 (1.4.19-8) ... Selecting previously unselected package autoconf. Preparing to unpack .../014-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../015-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../016-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... Selecting previously unselected package autopoint. Preparing to unpack .../017-autopoint_0.23.1-2_all.deb ... Unpacking autopoint (0.23.1-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../018-libdebhelper-perl_13.26_all.deb ... Unpacking libdebhelper-perl (13.26) ... Selecting previously unselected package libtool. Preparing to unpack .../019-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../020-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../021-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../022-libfile-stripnondeterminism-perl_1.14.2-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.2-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../023-dh-strip-nondeterminism_1.14.2-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.2-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../024-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../025-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../026-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2-16:amd64. Preparing to unpack .../027-libxml2-16_2.14.5+dfsg-0.2_amd64.deb ... Unpacking libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Selecting previously unselected package gettext. Preparing to unpack .../028-gettext_0.23.1-2+b1_amd64.deb ... Unpacking gettext (0.23.1-2+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../029-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../030-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../031-debhelper_13.26_all.deb ... Unpacking debhelper (13.26) ... Selecting previously unselected package libgpg-error0:amd64. Preparing to unpack .../032-libgpg-error0_1.55-2_amd64.deb ... Unpacking libgpg-error0:amd64 (1.55-2) ... Selecting previously unselected package libassuan9:amd64. Preparing to unpack .../033-libassuan9_3.0.2-2_amd64.deb ... Unpacking libassuan9:amd64 (3.0.2-2) ... Selecting previously unselected package libgcrypt20:amd64. Preparing to unpack .../034-libgcrypt20_1.11.2-2_amd64.deb ... Unpacking libgcrypt20:amd64 (1.11.2-2) ... Selecting previously unselected package gpgconf. Preparing to unpack .../035-gpgconf_2.4.8-3_amd64.deb ... Unpacking gpgconf (2.4.8-3) ... Selecting previously unselected package libksba8:amd64. Preparing to unpack .../036-libksba8_1.6.7-2+b1_amd64.deb ... Unpacking libksba8:amd64 (1.6.7-2+b1) ... Selecting previously unselected package libnpth0t64:amd64. Preparing to unpack .../037-libnpth0t64_1.8-3_amd64.deb ... Unpacking libnpth0t64:amd64 (1.8-3) ... Selecting previously unselected package gpg. Preparing to unpack .../038-gpg_2.4.8-3_amd64.deb ... Unpacking gpg (2.4.8-3) ... Selecting previously unselected package pinentry-curses. Preparing to unpack .../039-pinentry-curses_1.3.2-3_amd64.deb ... Unpacking pinentry-curses (1.3.2-3) ... Selecting previously unselected package gpg-agent. Preparing to unpack .../040-gpg-agent_2.4.8-3_amd64.deb ... Unpacking gpg-agent (2.4.8-3) ... Selecting previously unselected package libfile-dirlist-perl. Preparing to unpack .../041-libfile-dirlist-perl_0.05-3_all.deb ... Unpacking libfile-dirlist-perl (0.05-3) ... Selecting previously unselected package libfile-which-perl. Preparing to unpack .../042-libfile-which-perl_1.27-2_all.deb ... Unpacking libfile-which-perl (1.27-2) ... Selecting previously unselected package libfile-homedir-perl. Preparing to unpack .../043-libfile-homedir-perl_1.006-2_all.deb ... Unpacking libfile-homedir-perl (1.006-2) ... Selecting previously unselected package libfile-touch-perl. Preparing to unpack .../044-libfile-touch-perl_0.12-2_all.deb ... Unpacking libfile-touch-perl (0.12-2) ... Selecting previously unselected package libio-string-perl. Preparing to unpack .../045-libio-string-perl_1.08-4_all.deb ... Unpacking libio-string-perl (1.08-4) ... Selecting previously unselected package libclass-method-modifiers-perl. Preparing to unpack .../046-libclass-method-modifiers-perl_2.15-1_all.deb ... Unpacking libclass-method-modifiers-perl (2.15-1) ... Selecting previously unselected package libclass-xsaccessor-perl. Preparing to unpack .../047-libclass-xsaccessor-perl_1.19-4+b5_amd64.deb ... Unpacking libclass-xsaccessor-perl (1.19-4+b5) ... Selecting previously unselected package libb-hooks-op-check-perl:amd64. Preparing to unpack .../048-libb-hooks-op-check-perl_0.22-3+b2_amd64.deb ... Unpacking libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Selecting previously unselected package libdynaloader-functions-perl. Preparing to unpack .../049-libdynaloader-functions-perl_0.004-2_all.deb ... Unpacking libdynaloader-functions-perl (0.004-2) ... Selecting previously unselected package libdevel-callchecker-perl:amd64. Preparing to unpack .../050-libdevel-callchecker-perl_0.009-2_amd64.deb ... Unpacking libdevel-callchecker-perl:amd64 (0.009-2) ... Selecting previously unselected package libparams-classify-perl:amd64. Preparing to unpack .../051-libparams-classify-perl_0.015-2+b4_amd64.deb ... Unpacking libparams-classify-perl:amd64 (0.015-2+b4) ... Selecting previously unselected package libmodule-runtime-perl. Preparing to unpack .../052-libmodule-runtime-perl_0.018-1_all.deb ... Unpacking libmodule-runtime-perl (0.018-1) ... Selecting previously unselected package libimport-into-perl. Preparing to unpack .../053-libimport-into-perl_1.002005-2_all.deb ... Unpacking libimport-into-perl (1.002005-2) ... Selecting previously unselected package librole-tiny-perl. Preparing to unpack .../054-librole-tiny-perl_2.002004-1_all.deb ... Unpacking librole-tiny-perl (2.002004-1) ... Selecting previously unselected package libsub-quote-perl. Preparing to unpack .../055-libsub-quote-perl_2.006008-1_all.deb ... Unpacking libsub-quote-perl (2.006008-1) ... Selecting previously unselected package libmoo-perl. Preparing to unpack .../056-libmoo-perl_2.005005-1_all.deb ... Unpacking libmoo-perl (2.005005-1) ... Selecting previously unselected package libencode-locale-perl. Preparing to unpack .../057-libencode-locale-perl_1.05-3_all.deb ... Unpacking libencode-locale-perl (1.05-3) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../058-libtimedate-perl_2.3300-2_all.deb ... Unpacking libtimedate-perl (2.3300-2) ... Selecting previously unselected package libhttp-date-perl. Preparing to unpack .../059-libhttp-date-perl_6.06-1_all.deb ... Unpacking libhttp-date-perl (6.06-1) ... Selecting previously unselected package libfile-listing-perl. Preparing to unpack .../060-libfile-listing-perl_6.16-1_all.deb ... Unpacking libfile-listing-perl (6.16-1) ... Selecting previously unselected package libhtml-tagset-perl. Preparing to unpack .../061-libhtml-tagset-perl_3.24-1_all.deb ... Unpacking libhtml-tagset-perl (3.24-1) ... Selecting previously unselected package liburi-perl. Preparing to unpack .../062-liburi-perl_5.30-1_all.deb ... Unpacking liburi-perl (5.30-1) ... Selecting previously unselected package libhtml-parser-perl:amd64. Preparing to unpack .../063-libhtml-parser-perl_3.83-1+b2_amd64.deb ... Unpacking libhtml-parser-perl:amd64 (3.83-1+b2) ... Selecting previously unselected package libhtml-tree-perl. Preparing to unpack .../064-libhtml-tree-perl_5.07-3_all.deb ... Unpacking libhtml-tree-perl (5.07-3) ... Selecting previously unselected package libclone-perl:amd64. Preparing to unpack .../065-libclone-perl_0.47-1+b1_amd64.deb ... Unpacking libclone-perl:amd64 (0.47-1+b1) ... Selecting previously unselected package libio-html-perl. Preparing to unpack .../066-libio-html-perl_1.004-3_all.deb ... Unpacking libio-html-perl (1.004-3) ... Selecting previously unselected package liblwp-mediatypes-perl. Preparing to unpack .../067-liblwp-mediatypes-perl_6.04-2_all.deb ... Unpacking liblwp-mediatypes-perl (6.04-2) ... Selecting previously unselected package libhttp-message-perl. Preparing to unpack .../068-libhttp-message-perl_7.00-2_all.deb ... Unpacking libhttp-message-perl (7.00-2) ... Selecting previously unselected package libhttp-cookies-perl. Preparing to unpack .../069-libhttp-cookies-perl_6.11-1_all.deb ... Unpacking libhttp-cookies-perl (6.11-1) ... Selecting previously unselected package libhttp-negotiate-perl. Preparing to unpack .../070-libhttp-negotiate-perl_6.01-2_all.deb ... Unpacking libhttp-negotiate-perl (6.01-2) ... Selecting previously unselected package perl-openssl-defaults:amd64. Preparing to unpack .../071-perl-openssl-defaults_7+b2_amd64.deb ... Unpacking perl-openssl-defaults:amd64 (7+b2) ... Selecting previously unselected package libnet-ssleay-perl:amd64. Preparing to unpack .../072-libnet-ssleay-perl_1.94-3_amd64.deb ... Unpacking libnet-ssleay-perl:amd64 (1.94-3) ... Selecting previously unselected package libio-socket-ssl-perl. Preparing to unpack .../073-libio-socket-ssl-perl_2.095-1_all.deb ... Unpacking libio-socket-ssl-perl (2.095-1) ... Selecting previously unselected package libnet-http-perl. Preparing to unpack .../074-libnet-http-perl_6.23-1_all.deb ... Unpacking libnet-http-perl (6.23-1) ... Selecting previously unselected package liblwp-protocol-https-perl. Preparing to unpack .../075-liblwp-protocol-https-perl_6.14-1_all.deb ... Unpacking liblwp-protocol-https-perl (6.14-1) ... Selecting previously unselected package libtry-tiny-perl. Preparing to unpack .../076-libtry-tiny-perl_0.32-1_all.deb ... Unpacking libtry-tiny-perl (0.32-1) ... Selecting previously unselected package libwww-robotrules-perl. Preparing to unpack .../077-libwww-robotrules-perl_6.02-1_all.deb ... Unpacking libwww-robotrules-perl (6.02-1) ... Selecting previously unselected package libwww-perl. Preparing to unpack .../078-libwww-perl_6.78-1_all.deb ... Unpacking libwww-perl (6.78-1) ... Selecting previously unselected package patchutils. Preparing to unpack .../079-patchutils_0.4.2-1_amd64.deb ... Unpacking patchutils (0.4.2-1) ... Selecting previously unselected package rsopv. Preparing to unpack .../080-rsopv_0.6.4-1_amd64.deb ... Unpacking rsopv (0.6.4-1) ... Selecting previously unselected package wdiff. Preparing to unpack .../081-wdiff_1.2.2-9_amd64.deb ... Unpacking wdiff (1.2.2-9) ... Selecting previously unselected package devscripts. Preparing to unpack .../082-devscripts_2.25.19_all.deb ... Unpacking devscripts (2.25.19) ... Selecting previously unselected package rubygems-integration. Preparing to unpack .../083-rubygems-integration_1.19_all.deb ... Unpacking rubygems-integration (1.19) ... Selecting previously unselected package ruby-csv. Preparing to unpack .../084-ruby-csv_3.3.4-1_all.deb ... Unpacking ruby-csv (3.3.4-1) ... Selecting previously unselected package ruby-did-you-mean. Preparing to unpack .../085-ruby-did-you-mean_1.6.3-2_all.deb ... Unpacking ruby-did-you-mean (1.6.3-2) ... Selecting previously unselected package ruby-net-telnet. Preparing to unpack .../086-ruby-net-telnet_0.2.0-1_all.deb ... Unpacking ruby-net-telnet (0.2.0-1) ... Selecting previously unselected package ruby-ruby2-keywords. Preparing to unpack .../087-ruby-ruby2-keywords_0.0.5-1_all.deb ... Unpacking ruby-ruby2-keywords (0.0.5-1) ... Selecting previously unselected package ruby-webrick. Preparing to unpack .../088-ruby-webrick_1.9.1-1_all.deb ... Unpacking ruby-webrick (1.9.1-1) ... Selecting previously unselected package ruby-xmlrpc. Preparing to unpack .../089-ruby-xmlrpc_0.3.3-2_all.deb ... Unpacking ruby-xmlrpc (0.3.3-2) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../090-libyaml-0-2_0.2.5-2_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-2) ... Selecting previously unselected package libruby3.3:amd64. Preparing to unpack .../091-libruby3.3_3.3.8-2_amd64.deb ... Unpacking libruby3.3:amd64 (3.3.8-2) ... Selecting previously unselected package ruby3.3. Preparing to unpack .../092-ruby3.3_3.3.8-2_amd64.deb ... Unpacking ruby3.3 (3.3.8-2) ... Selecting previously unselected package libruby:amd64. Preparing to unpack .../093-libruby_1%3a3.3+b1_amd64.deb ... Unpacking libruby:amd64 (1:3.3+b1) ... Selecting previously unselected package ruby-rubygems. Preparing to unpack .../094-ruby-rubygems_3.6.7-2_all.deb ... Unpacking ruby-rubygems (3.6.7-2) ... Selecting previously unselected package ruby. Preparing to unpack .../095-ruby_1%3a3.3+b1_amd64.deb ... Unpacking ruby (1:3.3+b1) ... Selecting previously unselected package rake. Preparing to unpack .../096-rake_13.2.1-1_all.deb ... Unpacking rake (13.2.1-1) ... Selecting previously unselected package ruby-minitest. Preparing to unpack .../097-ruby-minitest_5.25.4-3_all.deb ... Unpacking ruby-minitest (5.25.4-3) ... Selecting previously unselected package ruby-power-assert. Preparing to unpack .../098-ruby-power-assert_2.0.3-1_all.deb ... Unpacking ruby-power-assert (2.0.3-1) ... Selecting previously unselected package ruby-test-unit. Preparing to unpack .../099-ruby-test-unit_3.6.2-1_all.deb ... Unpacking ruby-test-unit (3.6.2-1) ... Selecting previously unselected package gem2deb-test-runner. Preparing to unpack .../100-gem2deb-test-runner_2.2.5_amd64.deb ... Unpacking gem2deb-test-runner (2.2.5) ... Selecting previously unselected package libgmpxx4ldbl:amd64. Preparing to unpack .../101-libgmpxx4ldbl_2%3a6.3.0+dfsg-4_amd64.deb ... Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-4) ... Selecting previously unselected package libgmp-dev:amd64. Preparing to unpack .../102-libgmp-dev_2%3a6.3.0+dfsg-4_amd64.deb ... Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-4) ... Selecting previously unselected package ruby3.3-dev:amd64. Preparing to unpack .../103-ruby3.3-dev_3.3.8-2_amd64.deb ... Unpacking ruby3.3-dev:amd64 (3.3.8-2) ... Selecting previously unselected package ruby-all-dev:amd64. Preparing to unpack .../104-ruby-all-dev_1%3a3.3+b1_amd64.deb ... Unpacking ruby-all-dev:amd64 (1:3.3+b1) ... Selecting previously unselected package gem2deb. Preparing to unpack .../105-gem2deb_2.2.5_amd64.deb ... Unpacking gem2deb (2.2.5) ... Selecting previously unselected package ruby-diff-lcs. Preparing to unpack .../106-ruby-diff-lcs_1.5.1-1_all.deb ... Unpacking ruby-diff-lcs (1.5.1-1) ... Selecting previously unselected package ruby-rspec-support. Preparing to unpack .../107-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-core. Preparing to unpack .../108-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-expectations. Preparing to unpack .../109-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec-mocks. Preparing to unpack .../110-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Selecting previously unselected package ruby-rspec. Preparing to unpack .../111-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up wdiff (1.2.2-9) ... Setting up libfile-which-perl (1.27-2) ... Setting up libnpth0t64:amd64 (1.8-3) ... Setting up ruby-ruby2-keywords (0.0.5-1) ... Setting up bsdextrautils (2.41.1-1) ... Setting up libgpg-error0:amd64 (1.55-2) ... Setting up libdynaloader-functions-perl (0.004-2) ... Setting up libclass-method-modifiers-perl (2.15-1) ... Setting up ruby-power-assert (2.0.3-1) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libclone-perl:amd64 (0.47-1+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-2) ... Setting up libxml2-16:amd64 (2.14.5+dfsg-0.2) ... Setting up libhtml-tagset-perl (3.24-1) ... Setting up libdebhelper-perl (13.26) ... Setting up liblwp-mediatypes-perl (6.04-2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up libtry-tiny-perl (0.32-1) ... Setting up perl-openssl-defaults:amd64 (7+b2) ... Setting up gettext-base (0.23.1-2+b1) ... Setting up m4 (1.4.19-8) ... Setting up libgcrypt20:amd64 (1.11.2-2) ... Setting up libencode-locale-perl (1.05-3) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' Local time is now: Sun Oct 4 03:55:19 UTC 2026. Universal Time is now: Sun Oct 4 03:55:19 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... Setting up libio-string-perl (1.08-4) ... Setting up autotools-dev (20240727.1) ... Setting up rsopv (0.6.4-1) ... update-alternatives: using /usr/bin/rsopv to provide /usr/bin/sopv (sopv) in auto mode Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-4) ... Setting up ruby-test-unit (3.6.2-1) ... Setting up ruby-net-telnet (0.2.0-1) ... Setting up ruby-csv (3.3.4-1) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up libio-html-perl (1.004-3) ... Setting up autopoint (0.23.1-2) ... Setting up libb-hooks-op-check-perl:amd64 (0.22-3+b2) ... Setting up autoconf (2.72-3.1) ... Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... Setting up libtimedate-perl (2.3300-2) ... Setting up ruby-webrick (1.9.1-1) ... Setting up libffi8:amd64 (3.4.8-2) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.26) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up libassuan9:amd64 (3.0.2-2) ... Setting up librole-tiny-perl (2.002004-1) ... Setting up netbase (6.5) ... Setting up libsub-quote-perl (2.006008-1) ... Setting up libclass-xsaccessor-perl (1.19-4+b5) ... Setting up ruby-did-you-mean (1.6.3-2) ... Setting up libfile-dirlist-perl (0.05-3) ... Setting up libfile-homedir-perl (1.006-2) ... Setting up openssl (3.5.2-1) ... Setting up readline-common (8.2-6) ... Setting up ruby-xmlrpc (0.3.3-2) ... Setting up liburi-perl (5.30-1) ... Setting up libfile-touch-perl (0.12-2) ... Setting up libnet-ssleay-perl:amd64 (1.94-3) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libksba8:amd64 (1.6.7-2+b1) ... Setting up pinentry-curses (1.3.2-3) ... Setting up libfile-stripnondeterminism-perl (1.14.2-1) ... Setting up libhttp-date-perl (6.06-1) ... Setting up gettext (0.23.1-2+b1) ... Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-4) ... Setting up libfile-listing-perl (6.16-1) ... Setting up libtool (2.5.4-4) ... Setting up libnet-http-perl (6.23-1) ... Setting up libdevel-callchecker-perl:amd64 (0.009-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up patchutils (0.4.2-1) ... Setting up ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 150 added, 0 removed; done. Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.2-1) ... Setting up libwww-robotrules-perl (6.02-1) ... Setting up groff-base (1.23.0-9) ... Setting up libhtml-parser-perl:amd64 (3.83-1+b2) ... Setting up gpgconf (2.4.8-3) ... Setting up libpython3.13-stdlib:amd64 (3.13.7-1) ... Setting up libio-socket-ssl-perl (2.095-1) ... Setting up gpg (2.4.8-3) ... Setting up libpython3-stdlib:amd64 (3.13.5-1) ... Setting up libhttp-message-perl (7.00-2) ... Setting up libhttp-negotiate-perl (6.01-2) ... Setting up gpg-agent (2.4.8-3) ... Setting up libhttp-cookies-perl (6.11-1) ... Setting up python3.13 (3.13.7-1) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libhtml-tree-perl (5.07-3) ... Setting up libparams-classify-perl:amd64 (0.015-2+b4) ... Setting up python3 (3.13.5-1) ... Setting up rubygems-integration (1.19) ... Setting up man-db (2.13.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libmodule-runtime-perl (0.018-1) ... Setting up libimport-into-perl (1.002005-2) ... Setting up libmoo-perl (2.005005-1) ... Setting up debhelper (13.26) ... Setting up rake (13.2.1-1) ... Setting up liblwp-protocol-https-perl (6.14-1) ... Setting up libwww-perl (6.78-1) ... Setting up libruby3.3:amd64 (3.3.8-2) ... Setting up ruby-rubygems (3.6.7-2) ... Setting up devscripts (2.25.19) ... Setting up ruby3.3-dev:amd64 (3.3.8-2) ... Setting up ruby3.3 (3.3.8-2) ... Setting up libruby:amd64 (1:3.3+b1) ... Setting up ruby-all-dev:amd64 (1:3.3+b1) ... Setting up ruby (1:3.3+b1) ... Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... Setting up ruby-diff-lcs (1.5.1-1) ... Setting up gem2deb-test-runner (2.2.5) ... Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... Setting up gem2deb (2.2.5) ... Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... Processing triggers for libc-bin (2.41-12) ... Processing triggers for ca-certificates (20250419) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/ruby-semantic-puppet-1.1.0/ && 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-semantic-puppet_1.1.0-1_source.changes dpkg-buildpackage: info: source package ruby-semantic-puppet dpkg-buildpackage: info: source version 1.1.0-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Jérôme Charaoui dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=ruby --with ruby dh_auto_clean -O--buildsystem=ruby dh_ruby --clean dh_autoreconf_clean -O--buildsystem=ruby dh_clean -O--buildsystem=ruby 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-semantic-puppet/ -O--buildsystem=ruby dh_ruby --install /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet ┌──────────────────────────────────────────────────────────────────────────────┐ │ ruby-semantic-puppet: Installing files and building extensions for ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ /usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20261003-187363-ltaz5z/gemspec WARNING: open-ended dependency on rake (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on rspec (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on simplecov (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on cane (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on yard (>= 0, development) is not recommended use a bounded requirement, such as "~> x.y" WARNING: open-ended dependency on redcarpet (>= 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: semantic_puppet Version: 1.1.0 File: semantic_puppet-1.1.0.gem /usr/bin/ruby3.3 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-semantic-puppet/usr/share/rubygems-integration/all /tmp/d20261003-187363-ltaz5z/semantic_puppet-1.1.0.gem /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/graph.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/graph_node.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/module_release.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/source.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/dependency/unsatisfiable_graph.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/gem_version.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/version.rb /build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all/gems/semantic_puppet-1.1.0/lib/semantic_puppet/version_range.rb Successfully installed semantic_puppet-1.1.0 1 gem installed cd debian/ruby-semantic-puppet/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/semantic_puppet-1.1.0 rm -f chmod 644 lib/semantic_puppet/dependency/graph.rb lib/semantic_puppet/dependency/graph_node.rb lib/semantic_puppet/dependency/module_release.rb lib/semantic_puppet/dependency/source.rb lib/semantic_puppet/dependency/unsatisfiable_graph.rb lib/semantic_puppet/dependency.rb lib/semantic_puppet/gem_version.rb lib/semantic_puppet/version.rb lib/semantic_puppet/version_range.rb lib/semantic_puppet.rb find lib/ -type d -empty -delete cd - cd - dh_installchangelogs -pruby-semantic-puppet /build/reproducible-path/ruby-semantic-puppet-1.1.0/CHANGELOG.md upstream /usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner ┌──────────────────────────────────────────────────────────────────────────────┐ │ Checking Rubygems dependency resolution on ruby3.3 │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"semantic_puppet\" ┌──────────────────────────────────────────────────────────────────────────────┐ │ Run tests for ruby3.3 from debian/ruby-tests.rake │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/ruby-semantic-puppet/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-semantic-puppet-1.1.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/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 Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} Randomized with seed 62079 SemanticPuppet::Dependency::GraphNode #<< appends satisfying nodes to the dependencies sorts the dependencies for each addition to the same node does not append unsatisfying nodes sorts once the dependencies for a specific node does not append nodes with unknown names #satisfied is unsatisfied when any dependencies are missing is unsatisfied when no nodes have been appended is satisfied when all dependencies are fulfilled #populate_children saves all relevant nodes as its children accepts a graph solution and populates it across all nodes dependencies are added by #add_dependency are maintained in the #dependencies Hash #<=> can be compared SemanticPuppet::Dependency::Graph #add_graph_constraint can create a new constraint on a graph permits multiple graph constraints #add_constraint can create a new constraint on a module permits multiple constraints against the same module name #satisfies_graph? returns false if the solution violates a graph constraint returns true if the solution violates no graph constraints returns false if the solution violates any graph constraint #initialize implements the GraphNode protocol can be called without arguments adds the named dependencies for every key in the passed hash adds constraints for every key in the passed hash #satisfies_dependency? is not satisfied by modules that do not fulfill all the constraints is satisfied by modules that do fulfill all the constraints is not satisfied by modules it does not depend on is not satisfied by modules that do not fulfill the constraint SemanticPuppet::VersionRange .parse loose version expressions "1.2.3-alpha" stringifies as 1.2.3-alpha "1.X" excludes 1.0.0-alpha "1.2" excludes 1.3.0-0 parse("1.2.3").to_s excludes 1.2.4-alpha "1.x" excludes 2.0.0-0 "1.x" includes 1.999.0 parse("1.2.X").to_s excludes 1.3.0-0 parse("1").to_s excludes 2.0.0-0 "1.2.X" excludes 1.1.999 parse("1").to_s includes 1.0.0 "1.X" excludes 0.999.999 "1.2" excludes 1.2.0-alpha parse("1.X").to_s includes 1.999.0 "1.2.X" stringifies as >=1.2.0 <1.3.0 "1" excludes 1.0.0-alpha parse("1").to_s excludes 0.999.999 "1.x" excludes 0.999.999 parse("1.2.X").to_s excludes 1.2.0-alpha parse("1.2.x").to_s excludes 1.3.0-0 "1.2.x" includes 1.2.999 parse("1.2").to_s excludes 1.3.0-0 parse("1").to_s excludes 1.0.0-alpha parse("1.2.3-alpha").to_s excludes 1.2.3-999 parse("1.X").to_s excludes 0.999.999 parse("1.2.x").to_s includes 1.2.0 "1.2.x" excludes 1.2.0-alpha "1" excludes 2.0.0-0 "1.2.3" stringifies as 1.2.3 parse("1.2.x").to_s excludes 1.1.999 "1.2.3" includes 1.2.3 parse("1.2").to_s excludes 1.1.999 "1.X" includes 1.999.0 "1.2.x" excludes 1.1.999 parse("1.2.x").to_s includes 1.2.999 parse("1.2.X").to_s excludes 1.1.999 "1.X" stringifies as >=1.0.0 <2.0.0 parse("1.x").to_s excludes 1.0.0-alpha "1.2.x" includes 1.2.0 "1.2.X" excludes 1.3.0-0 "1.2" stringifies as >=1.2.0 <1.3.0 parse("1.x").to_s includes 1.999.0 "1.2.3" excludes 1.2.4-alpha parse("1.2.x").to_s excludes 1.2.0-alpha "1.x" includes 1.0.0 "1.2.x" excludes 1.3.0-0 "1.2.3" excludes 1.2.2 "1.2.X" includes 1.2.999 "1.2.3" excludes 1.2.3-alpha parse("1.X").to_s excludes 1.0.0-alpha parse("1.x").to_s includes 1.0.0 "1.2.3-alpha" excludes 1.2.3-999 parse("1.2").to_s includes 1.2.999 parse("1.2.X").to_s includes 1.2.999 "1.X" includes 1.0.0 parse("1.2.X").to_s includes 1.2.0 parse("1.2.3-alpha").to_s excludes 1.2.3-beta "1.2.3-alpha" includes 1.2.3-alpha parse("1.2.3-alpha").to_s includes 1.2.3-alpha "1.2" includes 1.2.999 parse("1.x").to_s excludes 2.0.0-0 parse("1.2").to_s includes 1.2.0 "1.2.X" includes 1.2.0 parse("1.2.3").to_s excludes 1.2.3-alpha parse("1.2").to_s excludes 1.2.0-alpha parse("1").to_s includes 1.999.0 "1.2.x" stringifies as >=1.2.0 <1.3.0 "1.x" excludes 1.0.0-alpha parse("1.x").to_s excludes 0.999.999 "1" excludes 0.999.999 "1" includes 1.999.0 "1.X" excludes 2.0.0-0 parse("1.X").to_s excludes 2.0.0-0 "1.2" includes 1.2.0 parse("1.2.3").to_s excludes 1.2.2 "1.2.X" excludes 1.2.0-alpha parse("1.2.3").to_s includes 1.2.3 "1" stringifies as >=1.0.0 <2.0.0 "1" includes 1.0.0 "1.x" stringifies as >=1.0.0 <2.0.0 "1.2.3-alpha" excludes 1.2.3-beta parse("1.X").to_s includes 1.0.0 "1.2" excludes 1.1.999 open-ended expressions parse("> 1.2.3-alpha").to_s excludes 1.2.3-alpha parse("< 1.2.3-alpha").to_s includes 0.0.0 parse(">=1.2.3-alpha").to_s excludes 1.2.3-alph "< 1.2.3" includes 0.0.0 parse(">= 1.2.3").to_s excludes 1.2.3-0 "<= 1.2.3" excludes 1.2.3-0 "<1.2.3-alpha" excludes 0.0.0-0 "<=1.2.3" includes 0.0.0 parse(">=1.2.3").to_s excludes 1.2.2 parse(">1.2.3").to_s includes 999.0.0 parse("<= 1.2.3-alpha").to_s excludes 0.0.0-0 parse("< 1.2.3").to_s excludes 2.0.0 "<=1.2.3-alpha" excludes 1.2.3-alphb parse("<1.2.3").to_s excludes 1.2.3-0 "> 1.2.3" excludes 1.2.4-0 "<=1.2.3-alpha" includes 0.0.0 ">=1.2.3-alpha" excludes 1.2.4-alpha ">=1.2.3" includes 999.0.0 parse(">= 1.2.3-alpha").to_s includes 1.2.3-alpha "> 1.2.3-alpha" includes 1.2.3-alpha0 parse("> 1.2.3").to_s excludes 1.2.4-0 ">1.2.3" stringifies as >1.2.3 parse("< 1.2.3").to_s excludes 1.2.3-0 "<= 1.2.3-alpha" includes 0.0.0 parse("<= 1.2.3").to_s includes 1.2.3 parse("<= 1.2.3").to_s excludes 1.2.3-0 parse("<=1.2.3-alpha").to_s excludes 1.2.3-alpha0 "> 1.2.3" includes 999.0.0 ">1.2.3-alpha" excludes 1.2.3-alpha parse("<1.2.3-alpha").to_s includes 0.0.0 parse("<1.2.3").to_s includes 1.2.2 "> 1.2.3-alpha" excludes 1.2.3-alpha parse("<1.2.3").to_s includes 0.0.0 ">= 1.2.3-alpha" includes 999.0.0 parse("< 1.2.3-alpha").to_s excludes 1.2.3-alpha parse(">= 1.2.3").to_s includes 999.0.0 ">= 1.2.3" includes 999.0.0 parse(">=1.2.3").to_s includes 999.0.0 ">= 1.2.3" stringifies as >=1.2.3 "<1.2.3-alpha" excludes 1.2.3-alpha parse("<=1.2.3-alpha").to_s excludes 1.2.3-alpha.0 "< 1.2.3" excludes 1.2.3-0 ">1.2.3-alpha" includes 999.0.0 ">= 1.2.3" excludes 1.2.3-0 parse("> 1.2.3-alpha").to_s includes 999.0.0 "<= 1.2.3-alpha" includes 1.2.3-alpha parse("> 1.2.3").to_s excludes 1.2.3 ">=1.2.3-alpha" excludes 1.2.3-alph "<1.2.3-alpha" includes 0.0.0 "<1.2.3" stringifies as <1.2.3 parse(">=1.2.3-alpha").to_s excludes 1.2.4-alpha parse(">=1.2.3-alpha").to_s includes 999.0.0 "< 1.2.3-alpha" excludes 1.2.3-alpha parse("<=1.2.3-alpha").to_s includes 1.2.3-alpha ">1.2.3-alpha" stringifies as >1.2.3-alpha ">=1.2.3-alpha" includes 1.2.3-alpha0 ">1.2.3" excludes 1.2.4-0 ">1.2.3-alpha" includes 1.2.3-alpha.0 parse("<= 1.2.3-alpha").to_s excludes 1.2.3-alpha0 parse(">1.2.3-alpha").to_s excludes 1.2.3-alpha parse(">=1.2.3").to_s excludes 1.2.3-0 "<= 1.2.3-alpha" excludes 1.2.3-alpha0 parse(">1.2.3-alpha").to_s includes 999.0.0 "<1.2.3" excludes 0.0.0-0 "< 1.2.3" stringifies as <1.2.3 "<=1.2.3-alpha" excludes 1.2.3-alpha0 parse("< 1.2.3").to_s excludes 0.0.0-0 parse("< 1.2.3").to_s includes 1.2.2 "<1.2.3" excludes 1.2.3-0 "< 1.2.3-alpha" excludes 0.0.0-0 parse("<= 1.2.3-alpha").to_s includes 0.0.0 "< 1.2.3" excludes 0.0.0-0 "<= 1.2.3" stringifies as <=1.2.3 "<1.2.3-alpha" excludes 2.0.0 parse("<= 1.2.3").to_s excludes 0.0.0-0 parse("<1.2.3").to_s excludes 2.0.0 "<1.2.3-alpha" stringifies as <1.2.3-alpha parse(">1.2.3").to_s excludes 1.2.4-0 ">= 1.2.3-alpha" includes 1.2.3-alpha0 ">1.2.3" includes 999.0.0 parse("<1.2.3-alpha").to_s excludes 0.0.0-0 "<=1.2.3" excludes 0.0.0-0 "<= 1.2.3" includes 0.0.0 parse(">= 1.2.3-alpha").to_s excludes 1.2.3-alph parse(">1.2.3-alpha").to_s includes 1.2.3-alpha.0 parse("<= 1.2.3-alpha").to_s includes 1.2.3-alpha "> 1.2.3-alpha" includes 999.0.0 "<1.2.3-alpha" includes 1.2.3-alph parse(">1.2.3").to_s excludes 1.2.3 "<1.2.3" includes 0.0.0 "<=1.2.3" excludes 1.2.3-0 "< 1.2.3" excludes 2.0.0 "<=1.2.3-alpha" excludes 1.2.3-alpha.0 parse("<1.2.3-alpha").to_s excludes 2.0.0 "<= 1.2.3-alpha" stringifies as <=1.2.3-alpha "<= 1.2.3-alpha" excludes 0.0.0-0 "< 1.2.3-alpha" includes 0.0.0 "> 1.2.3-alpha" includes 1.2.3-alpha.0 "> 1.2.3" stringifies as >1.2.3 parse("< 1.2.3").to_s includes 0.0.0 ">= 1.2.3-alpha" includes 1.2.3-alpha parse("<=1.2.3").to_s includes 0.0.0 parse("> 1.2.3-alpha").to_s includes 1.2.3-alpha0 parse("<=1.2.3-alpha").to_s excludes 1.2.3-alphb parse("<=1.2.3").to_s includes 1.2.3 parse(">= 1.2.3").to_s excludes 1.2.2 ">=1.2.3" stringifies as >=1.2.3 parse("<=1.2.3-alpha").to_s excludes 0.0.0-0 parse("> 1.2.3").to_s includes 999.0.0 parse("< 1.2.3-alpha").to_s excludes 0.0.0-0 "<=1.2.3-alpha" excludes 0.0.0-0 ">=1.2.3" excludes 1.2.2 "<= 1.2.3" includes 1.2.3 parse(">=1.2.3-alpha").to_s includes 1.2.3-alpha parse("< 1.2.3-alpha").to_s excludes 2.0.0 ">=1.2.3" excludes 1.2.3-0 "<= 1.2.3" excludes 0.0.0-0 parse("<1.2.3-alpha").to_s includes 1.2.3-alph parse(">1.2.3-alpha").to_s includes 1.2.3-alpha0 "< 1.2.3" includes 1.2.2 ">=1.2.3-alpha" stringifies as >=1.2.3-alpha parse("<1.2.3-alpha").to_s excludes 1.2.3-alpha parse("<1.2.3").to_s excludes 0.0.0-0 parse(">= 1.2.3-alpha").to_s excludes 1.2.4-alpha parse(">= 1.2.3-alpha").to_s includes 1.2.3-alpha0 "<1.2.3" includes 1.2.2 ">1.2.3" excludes 1.2.3 parse("> 1.2.3-alpha").to_s includes 1.2.3-alpha.0 ">=1.2.3-alpha" includes 999.0.0 ">1.2.3-alpha" includes 1.2.3-alpha0 ">= 1.2.3-alpha" excludes 1.2.3-alph "<=1.2.3" stringifies as <=1.2.3 parse(">=1.2.3-alpha").to_s includes 1.2.3-alpha0 parse("<=1.2.3-alpha").to_s includes 0.0.0 parse("<=1.2.3").to_s excludes 0.0.0-0 "> 1.2.3-alpha" stringifies as >1.2.3-alpha parse("<=1.2.3").to_s excludes 1.2.3-0 ">= 1.2.3-alpha" excludes 1.2.4-alpha "<=1.2.3" includes 1.2.3 "> 1.2.3" excludes 1.2.3 "<=1.2.3-alpha" stringifies as <=1.2.3-alpha parse("<= 1.2.3").to_s includes 0.0.0 ">=1.2.3-alpha" includes 1.2.3-alpha parse("<= 1.2.3-alpha").to_s excludes 1.2.3-alphb parse("< 1.2.3-alpha").to_s includes 1.2.3-alph "< 1.2.3-alpha" includes 1.2.3-alph "<= 1.2.3-alpha" excludes 1.2.3-alphb "< 1.2.3-alpha" stringifies as <1.2.3-alpha parse("<= 1.2.3-alpha").to_s excludes 1.2.3-alpha.0 ">= 1.2.3" excludes 1.2.2 "<= 1.2.3-alpha" excludes 1.2.3-alpha.0 ">= 1.2.3-alpha" stringifies as >=1.2.3-alpha "<1.2.3" excludes 2.0.0 "<=1.2.3-alpha" includes 1.2.3-alpha parse(">= 1.2.3-alpha").to_s includes 999.0.0 "< 1.2.3-alpha" excludes 2.0.0 invalid expressions raise an appropriate exception "reasonably close" expressions "~ 1.2.3" excludes 1.2.3-0 "~1.2.3" excludes 1.3.0-0 "~1.2" excludes 1.3.0-0 parse("~1.2.3").to_s includes 1.2.5 parse("~1.2").to_s excludes 1.2.0-0 parse("~1.2.3").to_s excludes 1.2.3-0 parse("~ 1.2").to_s excludes 1.1.999 "~1.2.3" excludes 1.2.2 parse("~ 1").to_s includes 1.0.0 "~1.2.3-alpha" stringifies as >=1.2.3-alpha <1.3.0 "~ 1.2.3" stringifies as >=1.2.3 <1.3.0 parse("~ 1.2.3").to_s includes 1.2.3 parse("~1").to_s includes 1.0.0 "~1" excludes 2.0.0-0 "~ 1.2.3" excludes 1.2.2 "~ 1" excludes 1.0.0-0 "~ 1.2.3-alpha" includes 1.2.3 "~1.2.3" includes 1.2.5 "~ 1.2" excludes 1.3.0-0 parse("~1.2.3").to_s includes 1.2.3 "~1" stringifies as >=1.0.0 <2.0.0 parse("~ 1.2").to_s includes 1.2.0 parse("~ 1.2.3-alpha").to_s includes 1.2.3 parse("~ 1.2.3-alpha").to_s includes 1.2.3-alpha parse("~1").to_s excludes 0.999.999 parse("~ 1.2").to_s excludes 1.2.0-0 parse("~1.2.3-alpha").to_s includes 1.2.3-alpha parse("~ 1.2.3-alpha").to_s excludes 1.2.4-0 "~1" excludes 0.999.999 parse("~1").to_s excludes 1.0.0-0 "~1.2" stringifies as >=1.2.0 <1.3.0 parse("~1.2.3").to_s excludes 1.3.0-0 "~ 1" excludes 0.999.999 "~1" includes 1.999.999 parse("~ 1").to_s includes 1.999.999 parse("~ 1").to_s excludes 0.999.999 "~ 1.2.3-alpha" excludes 1.2.4-0 parse("~1.2").to_s includes 1.2.999 "~ 1.2.3-alpha" stringifies as >=1.2.3-alpha <1.3.0 "~ 1.2" stringifies as >=1.2.0 <1.3.0 parse("~1.2").to_s includes 1.2.0 "~1.2" includes 1.2.999 parse("~ 1.2").to_s includes 1.2.999 parse("~1").to_s includes 1.999.999 "~ 1.2.3-alpha" excludes 1.2.3-alph "~1.2.3-alpha" excludes 1.2.3-alph parse("~ 1.2.3").to_s includes 1.2.5 "~1" excludes 1.0.0-0 "~1.2.3" includes 1.2.3 parse("~1").to_s excludes 2.0.0-0 "~ 1" excludes 2.0.0-0 "~1.2" excludes 1.2.0-0 parse("~ 1.2.3-alpha").to_s excludes 1.2.3-alph "~ 1.2" includes 1.2.999 "~1.2.3-alpha" excludes 1.2.4-0 parse("~ 1.2.3").to_s excludes 1.2.3-0 parse("~1.2.3-alpha").to_s excludes 1.2.4-0 "~1.2.3" excludes 1.2.3-0 "~1.2.3-alpha" includes 1.2.3 "~ 1.2.3" excludes 1.3.0-0 parse("~1.2.3-alpha").to_s includes 1.2.3 "~ 1.2" includes 1.2.0 parse("~ 1").to_s excludes 2.0.0-0 "~ 1.2.3-alpha" includes 1.2.3-alpha "~1.2.3" stringifies as >=1.2.3 <1.3.0 "~ 1.2" excludes 1.1.999 parse("~ 1.2").to_s excludes 1.3.0-0 parse("~1.2").to_s excludes 1.3.0-0 "~ 1" includes 1.0.0 parse("~1.2").to_s excludes 1.1.999 "~ 1.2.3" includes 1.2.3 parse("~ 1.2.3").to_s excludes 1.3.0-0 "~ 1" stringifies as >=1.0.0 <2.0.0 "~ 1.2.3" includes 1.2.5 "~ 1.2" excludes 1.2.0-0 "~1.2" includes 1.2.0 parse("~ 1").to_s excludes 1.0.0-0 "~1.2.3-alpha" includes 1.2.3-alpha parse("~ 1.2.3").to_s excludes 1.2.2 "~ 1" includes 1.999.999 "~1" includes 1.0.0 parse("~1.2.3").to_s excludes 1.2.2 "~1.2" excludes 1.1.999 parse("~1.2.3-alpha").to_s excludes 1.2.3-alph inclusive range expressions parse("1.2.3 - 1.3.4").to_s excludes 1.2.2 "1.2.3 - 1.3.4-alpha" includes 1.3.4-alpha "1.2.3 - 1.3.4-alpha" excludes 1.2.2 parse("1.2.3-alpha - 1.3.4-alpha").to_s excludes 1.3.5 "1.2.3-alpha - 1.3.4" excludes 1.3.5-0 "1.2.3-alpha - 1.3.4" stringifies as >=1.2.3-alpha <=1.3.4 parse("1.2.3-alpha - 1.3.4").to_s excludes 1.3.5-0 "1.2.3 - 1.3.4" stringifies as >=1.2.3 <=1.3.4 parse("1.2.3-alpha - 1.3.4-alpha").to_s includes 1.3.4-alpha "1.2.3 - 1.3.4" excludes 1.3.5-0 "1.2.3-alpha - 1.3.4-alpha" includes 1.2.3-alpha "1.2.3 - 1.3.4-alpha" excludes 1.2.3-0 parse("1.2.3 - 1.3.4").to_s excludes 1.2.3-0 "1.2.3-alpha - 1.3.4-alpha" includes 1.3.4-alpha "1.2.3 - 1.3.4-alpha" stringifies as >=1.2.3 <=1.3.4-alpha parse("1.2.3-alpha - 1.3.4-alpha").to_s excludes 1.2.3-alph "1.2.3-alpha - 1.3.4-alpha" stringifies as >=1.2.3-alpha <=1.3.4-alpha parse("1.2.3-alpha - 1.3.4-alpha").to_s includes 1.2.3-alpha "1.2.3-alpha - 1.3.4" excludes 1.2.3-alph "1.2.3 - 1.3.4" excludes 1.2.2 parse("1.2.3 - 1.3.4-alpha").to_s excludes 1.2.2 parse("1.2.3 - 1.3.4").to_s excludes 1.3.5-0 "1.2.3 - 1.3.4" excludes 1.2.3-0 "1.2.3-alpha - 1.3.4" includes 1.3.4 parse("1.2.3-alpha - 1.3.4").to_s includes 1.2.3-alpha parse("1.2.3-alpha - 1.3.4").to_s excludes 1.2.3-alph "1.2.3-alpha - 1.3.4-alpha" excludes 1.3.4-alpha0 "1.2.3-alpha - 1.3.4-alpha" excludes 1.2.3-alph parse("1.2.3 - 1.3.4-alpha").to_s includes 1.2.3 parse("1.2.3 - 1.3.4-alpha").to_s excludes 1.3.5 "1.2.3 - 1.3.4-alpha" includes 1.2.3 parse("1.2.3 - 1.3.4-alpha").to_s excludes 1.3.4-alpha0 parse("1.2.3 - 1.3.4-alpha").to_s excludes 1.2.3-0 "1.2.3-alpha - 1.3.4-alpha" excludes 1.3.5 parse("1.2.3 - 1.3.4-alpha").to_s includes 1.3.4-alpha "1.2.3 - 1.3.4-alpha" excludes 1.3.5 parse("1.2.3-alpha - 1.3.4-alpha").to_s excludes 1.3.4-alpha0 "1.2.3 - 1.3.4" includes 1.2.3 "1.2.3 - 1.3.4-alpha" excludes 1.3.4-alpha0 parse("1.2.3 - 1.3.4").to_s includes 1.2.3 "1.2.3 - 1.3.4" includes 1.3.4 parse("1.2.3-alpha - 1.3.4").to_s includes 1.3.4 "1.2.3-alpha - 1.3.4" includes 1.2.3-alpha parse("1.2.3 - 1.3.4").to_s includes 1.3.4 ored expressions adjacent ">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0" includes 1.2.3 parse(">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0").to_s excludes 1.2.6-0 ">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0" stringifies as >=1.2.3 <1.3.0 ">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0" includes 1.2.6 parse("1.2.3 || 1.2.4 || 1.2.5").to_s excludes 1.2.5-0 ">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0" excludes 1.2.3-0 "1.2.3 || 1.2.4 || 1.2.5" excludes 1.2.3-0 parse(">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0").to_s includes 1.2.6 parse(">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0").to_s includes 1.2.3 "1.2.3 || 1.2.4 || 1.2.5" stringifies as >=1.2.3 <=1.2.5 parse("1.2.3 || 1.2.4 || 1.2.5").to_s includes 1.2.5 "1.2.3 || 1.2.4 || 1.2.5" includes 1.2.3 parse(">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0").to_s excludes 1.2.3-0 parse("1.2.3 || 1.2.4 || 1.2.5").to_s includes 1.2.3 returns nil on exclude_end? "1.2.3 || 1.2.4 || 1.2.5" excludes 1.2.5-0 returns nil on exclude_begin? returns nil on end parse("1.2.3 || 1.2.4 || 1.2.5").to_s excludes 1.2.3-0 returns expected begin "1.2.3 || 1.2.4 || 1.2.5" includes 1.2.5 ">=1.2.3 <1.2.5 || >=1.2.5 <1.3.0" excludes 1.2.6-0 non-overlapping returns nil on end parse("1.2.3 || 1.2.5").to_s excludes 1.2.4 parse("1.2.3 || 1.2.5").to_s excludes 1.2.3-0 "1.2.3 || 1.2.5" stringifies as 1.2.3 || 1.2.5 parse("1.2.3 || 1.2.5").to_s includes 1.2.5 "1.2.3 || 1.2.5" includes 1.2.3 "1.2.3 || 1.2.5" includes 1.2.5 "1.2.3 || 1.2.5" excludes 1.2.5-0 "1.2.3 || 1.2.5" excludes 1.2.3-0 returns nil on exclude_end? "1.2.3 || 1.2.5" excludes 1.2.4 returns nil on begin returns nil on exclude_begin? parse("1.2.3 || 1.2.5").to_s excludes 1.2.5-0 parse("1.2.3 || 1.2.5").to_s includes 1.2.3 overlapping ">=1.2.3 || 1.2.5" excludes 1.2.4-0 parse(">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0").to_s includes 1.2.6 parse(">=1.2.3 || 1.2.5").to_s includes 1.2.4 ">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0" excludes 1.2.6-0 ">=1.2.3 || 1.2.5" stringifies as >=1.2.3 ">=1.2.3 || 1.2.5" includes 1.2.4 parse(">=1.2.3 || 1.2.5").to_s includes 1.2.3 parse(">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0").to_s excludes 1.2.3-0 ">=1.2.3 || 1.2.5" excludes 1.2.3-0 ">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0" includes 1.2.6 ">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0" includes 1.2.3 parse(">=1.2.3 || 1.2.5").to_s excludes 1.2.4-0 ">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0" excludes 1.2.3-0 ">=1.2.3 || 1.2.5" includes 1.2.3 ">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0" stringifies as >=1.2.3 <1.3.0 parse(">=1.2.3 || 1.2.5").to_s excludes 1.2.3-0 parse(">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0").to_s includes 1.2.3 parse(">=1.2.3 <=1.2.5 || >=1.2.5 <1.3.0").to_s excludes 1.2.6-0 unioned expressions "<1.0.0 >2.0.0" stringifies as <0.0.0 parse("1 <=1.2.5").to_s excludes 1.0.0-0 "1 <=1.2.5" excludes 1.0.0-0 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" includes 4.999.999 "1.2 <1.2.5" excludes 1.1.999 "1.2 <1.2.5" excludes 1.2.5-0 parse("1.2 <1.2.5").to_s excludes 1.1.999 parse(">1.0.0 >2.0.0 >=3.0.0 <5.0.0").to_s excludes 5.0.0-0 "1.2 <1.2.5" excludes 1.2.0-0 parse(">1.0.0 >2.0.0 >=3.0.0 <5.0.0").to_s excludes 3.0.0-0 parse("<1.0.0 >2.0.0").to_s excludes 0.0.0 parse("1 <=1.2.5").to_s includes 1.2.5 parse("1 <=1.2.5").to_s excludes 1.9.0 parse("1.2 <1.2.5").to_s excludes 1.2.5-0 parse("1 <=1.2.5").to_s includes 1.0.0 "1.2 <1.2.5" excludes 1.9.0 parse("1.2 <1.2.5").to_s includes 1.2.4 "1 <=1.2.5" excludes 1.9.0 "<1.0.0 >2.0.0" excludes 0.0.0-0 "1 <=1.2.5" stringifies as >=1.0.0 <=1.2.5 parse("1 <=1.2.5").to_s excludes 1.2.6-0 parse("1 <=1.2.5").to_s excludes 0.999.999 parse("1.2 <1.2.5").to_s excludes 1.9.0 "1 <=1.2.5" includes 1.2.5 "1 <=1.2.5" excludes 0.999.999 parse("<1.0.0 >2.0.0").to_s excludes 0.0.0-0 "1 <=1.2.5" excludes 1.2.6-0 "1 <=1.2.5" includes 1.0.0 parse("1.2 <1.2.5").to_s includes 1.2.0 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" excludes 3.0.0-0 "1.2 <1.2.5" includes 1.2.0 parse("1.2 <1.2.5").to_s excludes 1.2.0-0 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" stringifies as >=3.0.0 <5.0.0 "<1.0.0 >2.0.0" excludes 0.0.0 parse(">1.0.0 >2.0.0 >=3.0.0 <5.0.0").to_s excludes 2.999.999 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" includes 3.0.0 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" excludes 5.0.0-0 parse(">1.0.0 >2.0.0 >=3.0.0 <5.0.0").to_s includes 3.0.0 ">1.0.0 >2.0.0 >=3.0.0 <5.0.0" excludes 2.999.999 "1.2 <1.2.5" stringifies as >=1.2.0 <1.2.5 "1.2 <1.2.5" includes 1.2.4 parse(">1.0.0 >2.0.0 >=3.0.0 <5.0.0").to_s includes 4.999.999 The version 1.9999.9999 should not be above range <= 2.0.0(<=2.0.0) 1.0.1 should not be above range >1.0.0(>1.0.0) 2.1.1 should be above range <=2.0.0 1.2.3 should not be above range x(*) 0.7.2 should not be below range =0.7.x 0.1.5 should be below range 0.1.20 || 1.2.4 3.5.0 should not be below range ^0.1.0 || ~3.0.1 || >4 <=5.0.0 1.2.4 should not be below range 0.1.20 || >1.2.4 0.0.0-beta should be below range 1 1.1.0 should be above range ~1.0 0.8.0-asdf should be above range =0.7.x 1.2.3 should not be below range 1.2.x 1.9999.9999 should not be below range <=2.0.0 1.3.3 should be above range 1.2.* 3.2.2 should not be above range ~>3.2.1(>=3.2.1 <3.3.0) 1.0.1 should not be above range >= 1.0.0(>=1.0.0) 1.1.3 should be below range 1.2.x || 2.x 2.4.5 should not be above range ~2.4(>=2.4.0 <2.5.0) 1.0.0-beta.1 should be below range 1.0.0-beta.2 0.2.3 should not be below range >=0.2.3 || <0.0.1 2.5.0 should be above range ~2.4 0.2.5 should not be above range >0.2.3 >0.2.4 <=0.2.5(>0.2.4 <=0.2.5) 1.1.0 should be above range ~ 1.0 0.2.4 should be below range ~>1 1.1.1 should not be above range < 1.2(<1.2.0) 1.2.3 should not be below range ~> 1 0.6.2 should not be above range <=0.7.x(<0.8.0) 1.2.3-foo should not be above range *(*) 0.6.0 should be above range ~v0.5.4-pre 1.0.0 should not be above range (*) 1.2.3 should not be above range ~> 1(>=1.0.0 <2.0.0) 1.2.4 should not be above range 0.1.20 || 1.2.4(0.1.20 || 1.2.4) 1.0.0 should not be above range 1.0.0(1.0.0) 2.0.0 should not be above range ^1.0.0 || ~2.0.1(>=1.0.0 <2.0.0 || >=2.0.1 <2.1.0) 0.2.9 should not be below range < 2.0.0 1.2.3 should not be above range ~1(>=1.0.0 <2.0.0) 0.2.9 should not be above range <=2.0.0(<=2.0.0) 1.2.1 should be below range ~1.2.2 1.0.0 should not be below range >=1 2.9999.9999 should be above range <2.0.0 0.7.2 should not be below range >=0.7.x 1.1.1 should not be below range < 1.2 1.0.0 should not be above range >= 1.0.0(>=1.0.0) 2.9999.9999 should be above range <=2.0.0 5.0.0-0 should not be above range ^0.1.0 || ~3.0.1 || 5.0.0(>=0.1.0 <0.2.0 || >=3.0.1 <3.1.0 || 5.0.0) 1.2.3 should not be above range 1.0.0 - 2.0.0(>=1.0.0 <=2.0.0) 0.2.9 should not be below range <2.0.0 1.9999.9999 should be below range >=2.0.0 1.2.3 should not be below range 0.1.20 || 1.2.4 0.6.2 should be below range =0.7.x 3.3.0 should be above range ~>3.2.1 1.2.3 should not be above range 1.2.x(>=1.2.0 <1.3.0) 1.2.3 should not be below range 1.2.x || 2.x 1.0.0-beta should not be below range ^1.0.0-alpha 1.0.0 should not be below range >=1.0.0 1.2.1 should be below range > 1.2 1.1.0 should not be below range >1.0.0 0.0.1 should be below range 1.0.0 1.1.3 should be below range 1.2.* || 2.* 0.2.9 should not be above range <2.0.0(<2.0.0) 1.0.0-0 should be below range ^1 1.0.0-beta should not be below range ~1.0.0-alpha 0.6.1-1 should not be above range ~0.6.1-1(>=0.6.1-1 <0.7.0) 3.2.9 should be above range <=2.0.0 1.0.1 should not be below range >= 1.0.0 1.2.3 should not be below range 1.2.* || 2.* 0.7.2 should not be above range =0.7.x(>=0.7.0 <0.8.0) 1.1.0 should be below range 1.2.x 3.2.2 should not be below range ~>3.2.1 1.0.0-beta should be above range <1 2.5.5 should be above range ~2.4 1.1.3 should be below range 1.2.* 1.1.3 should be below range 1.2.x 2.5.0 should be above range ~2.4 2.3.1 should not be above range 2.3(>=2.3.0 <2.4.0) 1.2.4 should not be above range 0.1.20 || >1.2.4(0.1.20 || >1.2.4) 2.1.3 should not be below range 2.*.* 0.5.4 should not be above range ~v0.5.4-pre(>=0.5.4-pre <0.6.0) 1.2.3 should not be below range ~1 1.0.0 should not be below range 1.0.0 1.0.0-beta should be below range >1 1.1.0 should not be below range ~ 1.0 1.0.1 should not be below range > 1.0.0 3.1.3 should be above range 2.x.x 1.1.0 should not be above range >= 1.0.0(>=1.0.0) 0.2.3 should be below range ~1 2.3.2 should be below range ~>3.2.1 1.1.0 should not be below range >= 1.0.0 3.3.2 should be above range ~>3.2.1 0.7.2 should not be above range >=0.7.x(>=0.7.0) 3.1.3 should be above range 2.*.* 1.3.3 should be above range 1.2.x 1.0.0 should be below range 1.2.x || 2.x 3.0.0 should be above range 2.x.x 2.0.0 should not be below range <=2.0.0 1.2.3 should not be above range *(*) 1.2.1 should be above range < 1.2 1.2.3 should not be below range * 1.1.0 should not be above range >1.0.0(>1.0.0) 1.9999.9999 should not be above range <=2.0.0(<=2.0.0) 1.1.1 should not be above range <1.2(<1.2.0) 2.2.3 should be above range ~1 2.0.0 should not be above range 1.0.0 - 2.0.0(>=1.0.0 <=2.0.0) 2.1.2 should not be below range 2 1.0.1-beta1 should be above range 1.0.0 1.2.0 should be above range <1.2 1.2.3 should not be below range 1.2.* || 2.* 1.9999.9999 should not be above range < 2.0.0(<2.0.0) 2.0.0 should not be below range ^1.0.0 || ~2.0.1 1.0.0 should not be below range >= 1 2.4.2 should be above range 2.3 1.0.1 should not be above range >=1.0.0(>=1.0.0) 1.1.0 should not be above range >=1.0.0(>=1.0.0) 2.4.1 should be above range 2.3 3.2.0 should be below range ~>3.2.1 0.1.97 should not be above range >=0.1.97(>=0.1.97) 1.0.0 should be below range 2 1.0.0 should not be below range >= 1.0.0 1.0.2 should not be below range ~1.0 1.2.3 should not be above range ~>1(>=1.0.0 <2.0.0) 1.0.1 should be above range 1.0.0 2.0.0 should not be above range <= 2.0.0(<=2.0.0) 3.2.0 should not be below range ^0.1.0 || ~3.0.1 || 5.0.0 0.7.0-asdf should be below range >=0.7.x 1.0.2 should not be above range ~1.0(>=1.0.0 <1.1.0) 1.3.0 should be above range 1.2.x 1.0.1 should not be below range >1.0.0 1.1.3 should be below range 2.*.* 1.3.0 should be above range ~1.2.2 2.1.3 should not be above range 2.x.x(>=2.0.0 <3.0.0) 2.1.2 should not be above range 2(>=2.0.0 <3.0.0) 0.1.20 should not be below range 0.1.20 || 1.2.4 1.1.0 should not be below range >=1.0.0 0.6.2 should not be below range <=0.7.x 2.0.0 should be below range >2.0.0 0.7.0-asdf should not be above range =0.7.x(>=0.7.0 <0.8.0) 0.6.1-pre should be above range ~v0.5.4-pre 0.6.2 should be below range >=0.7.x 4.0.0 should not be below range ^3.0.0 0.2.9 should not be below range <=2.0.0 1.9999.9999 should not be below range < 2.0.0 3.5.0 should not be above range ^0.1.0 || ~3.0.1 || >4 <=5.0.0(>=0.1.0 <0.2.0 || >=3.0.1 <3.1.0 || 5.0.0) 1.2.3 should not be below range 1.2.* 2.2.9 should be above range <2.0.0 2.2.1 should be below range 2.3 0.5.5 should not be below range ~v0.5.4-pre 0.6.0-asdf should be below range =0.7.x 1.2.5 should be above range 0.1.20 || 1.2.4 0.2.3 should not be above range >=0.2.3 || <0.0.1(>=0.2.3 || <0.0.1) 1.2.3 should not be above range *(*) 2.2.2 should be below range 2.3 2.1.3 should not be above range 2.*.*(>=2.0.0 <3.0.0) 2.2.9 should be above range <=2.0.0 0.0.1 should be below range 1.0.0 - 2.0.0 0.6.1-0 should be below range ~0.6.1-1 0.0.0 should be below range ~1.0 0.6.1-1 should not be below range ~0.6.1-1 2.3.0 should be below range ~2.4 0.2.3 should be below range ~>1 1.2.9 should be below range >=2.0.0 0.1.2 should be below range ~1.0 1.2.1 should be below range ~1.2.2 2.1.3 should not be above range 1.2.x || 2.x(>=1.2.0 <1.3.0 || >=2.0.0 <3.0.0) 0.7.0 should be above range <0.7.x 2.0.0 should not be below range <= 2.0.0 1.2.3 should not be below range * 0.8.0 should be above range =0.7.x 0.2.4 should not be above range >=0.2.3 <=0.2.4(>=0.2.3 <=0.2.4) 5.0.0-0 should not be below range ^0.1.0 || ~3.0.1 || 5.0.0 1.0.0 should not be below range =0.1.0 1.2.9 should be below range >=2.0.0 0.2.3 should be below range ~> 1 1.0.0 should be above range <1 0.5.4 should not be below range ~v0.5.4-pre 1.0.0 should not be below range 3.0.0 should be above range <=2.0.0 0.7.0-asdf should be below range =0.7.x 0.2.9 should not be above range <= 2.0.0(<=2.0.0) 2.4.0 should not be above range ~2.4(>=2.4.0 <2.5.0) 3.2.3 should be above range ~> 1 1.0.1 should not be above range > 1.0.0(>1.0.0) 1.2.3 should not be above range 1.2.x || 2.x(>=1.2.0 <1.3.0 || >=2.0.0 <3.0.0) 1.0.1 should be below range 2.*.* 1.0.0-beta should not be below range ^0.1.0 || ~3.0.1 || 5.0.0 1.0.0-beta should be below range 1 1.9999.9999 should not be above range <2.0.0(<2.0.0) 1.1.1 should not be below range <1.2 2.3.5 should be below range ~2.4 0.0.0 should not be above range >=0.2.3 || <0.0.1(>=0.2.3 || <0.0.1) 1.0.0-beta should be above range < 1 1.9999.9999 should be below range 2 0.5.4-alpha should be below range ~v0.5.4-pre 0.2.4 should not be below range >=* 1.0.0 should be below range 2.x.x 2.0.0 should not be below range 1.0.0 - 2.0.0 3.1.3 should be above range 1.2.* || 2.* 2.0.0-beta should be above range 1 0.1.0 should be below range ~ 1.0 1.2.4 should not be below range 0.1.20 || 1.2.4 2.0.1 should be above range 1.0.0 - 2.0.0 0.2.4 should not be below range >=0.2.3 <=0.2.4 3.1.2 should be above range 2 2.2.3 should be above range 1.0.0 - 2.0.0 1.9999.9999 should not be below range <= 2.0.0 0.6.0 should be below range >=0.7.x 1.0.1 should not be below range >=1.0.0 2.4.0 should not be below range ~2.4 1.2.9 should be below range >2.0.0 1.2.3 should not be above range 1.2.*(>=1.2.0 <1.3.0) 5.0.1 should be above range 2.*.* 0.0.0-0 should not be above range ^1(>=1.0.0 <2.0.0) 1.2.3 should not be below range x 2.3.0 should be below range ~2.4 1.2.3 should not be below range ~>1 1.3.0 should be above range ~1.2.2 1.0.0 should be below range >=2.0.0 1.0.0-beta should not be above range ^0.1.0 || ~3.0.1 || 5.0.0(>=0.1.0 <0.2.0 || >=3.0.1 <3.1.0 || 5.0.0) 0.0.0 should be below range 1.0.0 0.2.3 should be below range ~1 1.1.2 should be above range ~1.0 0.2.3 should be below range 1.0.0 - 2.0.0 2.0.0 should be above range <2.0.0 1.0.0-beta should not be above range 1(>=1.0.0 <2.0.0) 0.7.0-asdf should not be above range >=0.7.x(>=0.7.0) 0.0.0 should not be below range >=0.2.3 || <0.0.1 1.0.0-beta should be below range 2 2.9.9 should not be below range 1.0.0 - 2.0.0 1.3.3 should be above range 1.2.* 0.7.2 should be above range <0.7.x 2.3.1 should not be below range 2.3 1.3.4 should not be below range || 2.2.3 should be above range ~>1 0.2.5 should not be below range >0.2.3 >0.2.4 <=0.2.5 0.6.0 should be below range =0.7.x 0.5.4-alpha should be below range ~v0.5.4-pre 0.8.2 should be above range =0.7.x 1.1.0 should not be below range > 1.0.0 1.2.3 should not be above range 1.2.* || 2.*(>=1.2.0 <1.3.0 || >=2.0.0 <3.0.0) 1.0.0 should be below range >1 0.2.4 should not be above range >=0.2.3 || <0.0.1(>=0.2.3 || <0.0.1) 2.2.3 should be above range ~1 0.5.5 should not be above range ~v0.5.4-pre(>=0.5.4-pre <0.6.0) 1.0.0 should not be above range >=1(>=1.0.0) 1.3.4 should not be above range ||(*) 0.1.20 should not be above range 0.1.20 || 1.2.4(0.1.20 || 1.2.4) 2.1.3 should not be below range 2.x.x 2.4.5 should not be below range ~2.4 1.1.3 should be below range 1.2.* 1.1.0 should not be above range > 1.0.0(>1.0.0) 1.0.0-beta should be below range > 1 1.1.3 should be below range 2.x.x 1.1.1 should be below range >=2.0.0 2.0.0-beta should be above range 1 3.1.3 should be above range 1.2.x || 2.x 1.2.3 should not be above range 1.2.* || 2.*(>=1.2.0 <1.3.0 || >=2.0.0 <3.0.0) 1.9999.9999 should not be below range <2.0.0 0.1.97 should not be below range >=0.1.97 3.0.0 should be above range 2 0.2.4 should not be above range >=*(>=0.0.0) 1.1.9999 should be below range 1.2.* || 2.* 0.2.9 should not be above range < 2.0.0(<2.0.0) 2.1.3 should not be below range 1.2.* || 2.* 1.0.0 should not be above range >=1.0.0(>=1.0.0) 0.7.1-1 should be above range ~0.6.1-1 1.2.3 should not be below range 1.0.0 - 2.0.0 2.1.3 should not be above range 1.2.* || 2.*(>=1.2.0 <1.3.0 || >=2.0.0 <3.0.0) 1.0.2 should not be below range ~ 1.0 1.2.0 should be below range >1.2 2.0.0 should be above range 1.0.0 0.9.9 should not be above range 1.0.0 - 2.0.0(>=1.0.0 <=2.0.0) 0.1.97 should not be above range >=0.1.97(>=0.1.97) 0.2.4 should not be below range >=0.2.3 || <0.0.1 0.2.9 should not be below range <= 2.0.0 1.0.2 should not be above range ~ 1.0(>=1.0.0 <1.1.0) 2.0.0 should not be above range <=2.0.0(<=2.0.0) 4.0.0 should be above range 1.2.* || 2.* 3.0.0 should be above range 1.2.x || 2.x 2.0.0 should be below range >2.0.0 2.1.3 should not be below range 1.2.x || 2.x 2.0.0 should not be above range ^3.0.0(>=3.0.0 <4.0.0) 1.0.0 should not be above range >= 1(>=1.0.0) 1.2.3 should not be above range 0.1.20 || 1.2.4(0.1.20 || 1.2.4) 2.2.4 should be above range ~>1 3.2.0 should not be above range ^0.1.0 || ~3.0.1 || 5.0.0(>=0.1.0 <0.2.0 || >=3.0.1 <3.1.0 || 5.0.0) #intersection cannot intersect with non-VersionRanges between 10.0.0 - 5.0.0 & >=7.0.0 <1.0.0 4.0.0 - 1.0.0 10.0.0 - 5.0.0 6.0.0 - 1.0.0 11.0.0 - 4.0.0 5.0.0 - 1.0.0 >=5.0.0 <1.0.0 15.0.0 - 11.0.0 15.0.0 - 10.0.0 >=10.0.0 <5.0.0 15.0.0 - 9.0.0 9.0.0 - 6.0.0 is commutative between 10.0.0 - 5.0.0 & >=10.0.0 <5.0.0 between >=10.0.0 <5.0.0 & 9.0.0 - 6.0.0 between 10.0.0 - 5.0.0 & 6.0.0 - 1.0.0 between >=10.0.0 <5.0.0 & 4.0.0 - 1.0.0 between >=10.0.0 <5.0.0 & >=5.0.0 <1.0.0 between >=10.0.0 <5.0.0 & 15.0.0 - 9.0.0 between 10.0.0 - 5.0.0 & 15.0.0 - 10.0.0 between >=10.0.0 <5.0.0 & >=7.0.0 <1.0.0 between 10.0.0 - 5.0.0 & >=7.0.0 <1.0.0 between 10.0.0 - 5.0.0 & >=5.0.0 <1.0.0 between >=10.0.0 <5.0.0 & 15.0.0 - 11.0.0 between >=10.0.0 <5.0.0 & 10.0.0 - 5.0.0 between 10.0.0 - 5.0.0 & 9.0.0 - 6.0.0 between 10.0.0 - 5.0.0 & 15.0.0 - 11.0.0 between 10.0.0 - 5.0.0 & 4.0.0 - 1.0.0 between 10.0.0 - 5.0.0 & 10.0.0 - 5.0.0 between 10.0.0 - 5.0.0 & 5.0.0 - 1.0.0 between >=10.0.0 <5.0.0 & 11.0.0 - 4.0.0 between >=10.0.0 <5.0.0 & 5.0.0 - 1.0.0 between 10.0.0 - 5.0.0 & 15.0.0 - 9.0.0 between 10.0.0 - 5.0.0 & 11.0.0 - 4.0.0 between >=10.0.0 <5.0.0 & 6.0.0 - 1.0.0 between >=10.0.0 <5.0.0 & >=10.0.0 <5.0.0 between >=10.0.0 <5.0.0 & 15.0.0 - 10.0.0 between >=10.0.0 <5.0.0 & 11.0.0 - 4.0.0 >=10.0.0 <5.0.0 15.0.0 - 9.0.0 5.0.0 - 1.0.0 10.0.0 - 5.0.0 15.0.0 - 10.0.0 4.0.0 - 1.0.0 >=7.0.0 <1.0.0 15.0.0 - 11.0.0 >=5.0.0 <1.0.0 6.0.0 - 1.0.0 9.0.0 - 6.0.0 SemanticPuppet::Version #next with :major removes any prerelease information resets the minor and patch versions to 0 removes any build information returns the next major version does not modify the original version with :patch returns the next patch version does not modify the original version removes any build information removes any prerelease information with :minor returns the next minor version resets the patch version to 0 removes any prerelease information does not modify the original version removes any build information #== should yield false when the major differs should yield false when the patch differs should yield true when comparing two equal instances should yield false when the minor differs should yield false when the prerelease differs should yield false when compared to something that is not a Version .parse Spec v2.0.0 Section 10 rejects empty build metadata permits numeric build identifiers with leading zeroes rejects build identifiers with non-alphanumerics rejects empty build identifiers permits non-numeric build identifiers with leading zeroes permits numeric build identifiers of zero examples 1.0.0-beta+exp.sha.5114f85 1.0.0-alpha+001 1.0.0+20130313144700 Section 2 rejects versions that contain non-integers permits zeroes in version number parts rejects versions that contain too few parts rejects versions that contain too many parts rejects version numbers containing leading zeroes rejects versions that contain negative integers examples 1.9.0 1.11.0 1.10.0 Section 9 permits non-numeric prerelease identifiers with leading zeroes rejects empty prerelease versions permits numeric prerelease identifiers of zero rejects numeric prerelease identifiers with leading zeroes rejects prerelease identifiers with non-alphanumerics rejects empty prerelease version identifiers examples 1.0.0-alpha 1.0.0-alpha.1 1.0.0-x.7.z.92 1.0.0-0.3.7 Spec v1.0.0 Section 4 permits numeric prerelease identifiers of zero permits non-numeric prerelease identifiers with leading zeroes rejects empty prerelease versions rejects numeric prerelease identifiers with leading zeroes rejects prerelease identifiers with non-alphanumerics examples 1.0.0-beta2 1.0.0-rc1 1.0.0-alpha1 1.0.0-beta1 Section 2 permits zeroes in version number parts rejects versions that contain non-integers rejects versions that contain too many parts rejects versions that contain too few parts examples 1.10.0 1.9.0 1.11.0 .valid? Spec v2.0.0 Section 9 rejects empty prerelease versions permits non-numeric prerelease identifiers with leading zeroes permits non-numeric prerelease identifiers rejects prerelease identifiers with non-alphanumerics rejects numeric prerelease identifiers with leading zeroes permits numeric prerelease identifiers of zero rejects empty prerelease version identifiers Section 2 rejects versions that contain non-integers rejects version numbers containing leading zeroes permits zeroes in version number parts rejects versions that contain too few parts rejects versions that contain too many parts rejects versions that contain negative integers Section 10 rejects empty build metadata permits numeric build identifiers of zero permits numeric build identifiers with leading zeroes rejects empty build identifiers rejects build identifiers with non-alphanumerics permits non-numeric build identifiers with leading zeroes Spec v1.0.0 Section 2 rejects versions that contain non-integers rejects versions that contain too few parts rejects versions that contain too many parts permits zeroes in version number parts Section 4 rejects numeric prerelease identifiers with leading zeroes permits numeric prerelease identifiers of zero rejects empty prerelease versions permits non-numeric prerelease identifiers with leading zeroes rejects prerelease identifiers with non-alphanumerics #<=> Spec v2.0.0 Section 11 comparisions between prereleases larger identifier sets have precendence identifiers are parsed left-to-right numeric identifiers sort numerically sorted order non-numeric identifiers sort ASCIIbetically build metadata does not figure into precendence build metadata does figure into equality non-numeric identifiers have a higher precendence identical prereleases are equal comparisons against prereleases prereleases have lower precedence comparisons without prereleases sorted order Spec v1.0.0 Section 4 sorted order SemanticPuppet::Dependency::ModuleRelease #satisfies_dependency? returns false when the release does not match the dependency name returns true when the release matches the dependency returns false when there are no dependencies to satisfy returns false when the release does not match the dependency version #to_s is expected to =~ /1.2.3/ is expected to =~ /foobarbaz/ #<=> orders releases by name first considers releases with lesser version numbers lesser considers releases with greater version numbers greater orders releases with different names lexographically #<< does not mark mis-matching dependency names as satisfied does not mark mis-matching dependency versions as satisfied marks matching dependencies as satisfied #== considers a release different from something that is not a release considers two equal releases to be equal can compare a release with something that is not a release considers two releases with different names to be different considers two releases with different versions to be different #dependency_names lists the names of all the release's dependencies #satisfied? returns false when not all dependencies have been satisified returns false when not all dependency versions have been satisified returns true when there are no dependencies to satisfy returns false when no dependencies have been satisified returns true when all dependencies have been satisified SemanticPuppet::Dependency::UnsatisfiableGraph #message is expected to match /foo, bar, and baz/ #sentence_from_list with a list of three items is expected to eql "foo, bar, and baz" with a list of more than three items is expected to eql "foo, bar, baz, and quux" with a list of two items is expected to eql "foo and bar" with a list of one item is expected to eql "foo" SemanticPuppet::Dependency .resolve for a module without dependencies returns the greatest release matching the version range when the query omits all versions fails with an appropriate message when the query omits all stable versions returns the greatest prerelease version matching the range when the query includes both stable and prerelease versions returns the greatest stable release matching the range for a module with circular dependencies that cannot be resolved fails with an appropriate message that can be resolved terminates for a module with competing dependencies that overlap returns the greatest release satisfying all dependencies that do not overlap fails with an appropriate message that violate graph constraints that can be resolved terminates that cannot be resolved fails with an appropriate message for a module with dependencies that violate module constraints on the graph that can be resolved terminates that cannot be resolved fails with an appropriate message for a module with dependencies returns the greatest releases matching the dependency range when the dependency has no stable versions returns the greatest prerelease version matching the range when the dependency cannot be satisfied sets unsatisfiable fails with an appropriate message when the dependency has both stable and prerelease versions returns the greatest stable release matching the range .query with one source populates all returned ModuleReleases with related dependencies queries the source for each dependency queries the source for release information queries the source for each dependency only once returns a ModuleRelease with the requested dependencies populates the returned ModuleRelease with related dependencies without sources returns an unsatisfied ModuleRelease with multiple sources resolves all dependencies against all sources queries each source in turn .sources can be modified by using #add_source can be emptied by using #clear_sources is frozen defaults to an empty list Finished in 0.41777 seconds (files took 0.24298 seconds to load) 988 examples, 0 failures Randomized with seed 62079 ┌──────────────────────────────────────────────────────────────────────────────┐ │ dh_ruby --install finished │ └──────────────────────────────────────────────────────────────────────────────┘ dh_installdocs -O--buildsystem=ruby dh_ruby_fixdocs -O--buildsystem=ruby debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/reproducible-path/ruby-semantic-puppet-1.1.0' dh_installchangelogs CHANGELOG.md -O--buildsystem=ruby make[1]: Leaving directory '/build/reproducible-path/ruby-semantic-puppet-1.1.0' dh_installsystemduser -O--buildsystem=ruby dh_perl -O--buildsystem=ruby dh_link -O--buildsystem=ruby dh_strip_nondeterminism -O--buildsystem=ruby dh_compress -X.rb -O--buildsystem=ruby dh_fixperms -O--buildsystem=ruby dh_missing -O--buildsystem=ruby dh_ruby_fixdepends -O--buildsystem=ruby dh_installdeb -O--buildsystem=ruby dh_gencontrol -O--buildsystem=ruby dpkg-gencontrol: warning: Depends field of package ruby-semantic-puppet: substitution variable ${shlibs:Depends} used, but is not defined dh_md5sums -O--buildsystem=ruby dh_builddeb -O--buildsystem=ruby dpkg-deb: building package 'ruby-semantic-puppet' in '../ruby-semantic-puppet_1.1.0-1_all.deb'. dpkg-genbuildinfo --build=binary -O../ruby-semantic-puppet_1.1.0-1_amd64.buildinfo dpkg-genchanges --build=binary -O../ruby-semantic-puppet_1.1.0-1_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration 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/160572 and its subdirectories I: Current time: Sat Oct 3 15:55:34 -12 2026 I: pbuilder-time-stamp: 1791086134 Sun Aug 31 21:32:38 UTC 2025 I: 1st build successful. Starting 2nd build on remote node ionos11-amd64.debian.net. Sun Aug 31 21:32:38 UTC 2025 I: Preparing to do remote build '2' on ionos11-amd64.debian.net. Sun Aug 31 21:36:35 UTC 2025 I: Deleting $TMPDIR on ionos11-amd64.debian.net. Sun Aug 31 21:36:35 UTC 2025 I: ruby-semantic-puppet_1.1.0-1_amd64.changes: Format: 1.8 Date: Mon, 18 Nov 2024 00:22:21 -0500 Source: ruby-semantic-puppet Binary: ruby-semantic-puppet Architecture: all Version: 1.1.0-1 Distribution: unstable Urgency: medium Maintainer: Puppet Package Maintainers Changed-By: Jérôme Charaoui Description: ruby-semantic-puppet - Useful tools for working with semantic versions with Puppet Changes: ruby-semantic-puppet (1.1.0-1) unstable; urgency=medium . * Team upload. . * New upstream version 1.1.0 * d/control: drop obsolete X*-Ruby-Versions * d/control: bump Standards-Version, no changes needed * run wrap-and-sort -bastk Checksums-Sha1: c4ac6f5f99e47a02f5255999623c4d6137d48eb8 15108 ruby-semantic-puppet_1.1.0-1_all.deb 76749d65fa6370f6fa81ae77fdd2b73db759670b 7629 ruby-semantic-puppet_1.1.0-1_amd64.buildinfo Checksums-Sha256: 7e9e7c75b0ad379340e749153b2d7f1bf7b0113fd8830ce9a50de8ec7e21452c 15108 ruby-semantic-puppet_1.1.0-1_all.deb acf04794dbb77642318a5dfe1084d169264a71c1fab3c1f90f4bc40d7bdce349 7629 ruby-semantic-puppet_1.1.0-1_amd64.buildinfo Files: 473ac5138497b695bbf015c605e95cd0 15108 ruby optional ruby-semantic-puppet_1.1.0-1_all.deb ca21307715953a8e679326fce72d6eaa 7629 ruby optional ruby-semantic-puppet_1.1.0-1_amd64.buildinfo Sun Aug 31 21:36:36 UTC 2025 I: diffoscope 305 will be used to compare the two builds: Running as unit: rb-diffoscope-amd64_16-70063.service; invocation ID: 0370b421878742059d48f43d3cb21bd8 # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/ruby-semantic-puppet_1.1.0-1.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/ruby-semantic-puppet_1.1.0-1.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/ruby-semantic-puppet_1.1.0-1.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/b1/ruby-semantic-puppet_1.1.0-1_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.z8VeP57A/b2/ruby-semantic-puppet_1.1.0-1_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call diffoscope.comparators.binary.FilesystemFile ## main (total time: 0.003s) 0.003s 2 calls outputs 0.000s 1 call cleanup Finished with result: success Main processes terminated with: code=exited, status=0/SUCCESS Service runtime: 211ms CPU time consumed: 176ms Memory peak: 18M (swap: 0B) Sun Aug 31 21:36:36 UTC 2025 I: diffoscope 305 found no differences in the changes files, and a .buildinfo file also exists. Sun Aug 31 21:36:36 UTC 2025 I: ruby-semantic-puppet from forky built successfully and reproducibly on amd64. Sun Aug 31 21:36:37 UTC 2025 I: Removing signed ruby-semantic-puppet_1.1.0-1_amd64.buildinfo.asc files: removed './b1/ruby-semantic-puppet_1.1.0-1_amd64.buildinfo.asc' removed './b2/ruby-semantic-puppet_1.1.0-1_amd64.buildinfo.asc'