Diff of the two buildlogs: -- --- b1/build.log 2023-05-18 09:07:08.321902302 +0000 +++ b2/build.log 2023-05-18 09:21:38.023819759 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed May 17 21:03:31 -12 2023 -I: pbuilder-time-stamp: 1684400611 +I: Current time: Thu May 18 23:07:33 +14 2023 +I: pbuilder-time-stamp: 1684400853 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./ruby-tty-prompt_0.23.1.orig.tar.gz] I: copying [./ruby-tty-prompt_0.23.1-1.debian.tar.xz] I: Extracting source -gpgv: Signature made Thu Oct 21 12:49:11 2021 -12 +gpgv: Signature made Fri Oct 22 14:49:11 2021 +14 gpgv: using RSA key 8ED6C3F8BAC9DB7FC130A870F823A2729883C97C gpgv: issuer "kanashiro@debian.org" gpgv: Can't check signature: No public key @@ -26,135 +26,167 @@ dpkg-source: info: unpacking ruby-tty-prompt_0.23.1-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/17671/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/D01_modify_environment starting +debug: Running on cbxi4pro0. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 18 23:10 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='4761c9b45a74467589d9d9ab228f6218' - 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='17671' - PS1='# ' - PS2='> ' + INVOCATION_ID=ee9cc30a7ac04cbf824b7672ce55f296 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=24966 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.LlbbfMov/pbuilderrc_2tt1 --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.LlbbfMov/b1 --logfile b1/build.log ruby-tty-prompt_0.23.1-1.dsc' - SUDO_GID='114' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.LlbbfMov/pbuilderrc_z4b4 --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.LlbbfMov/b2 --logfile b2/build.log --extrapackages usrmerge ruby-tty-prompt_0.23.1-1.dsc' + SUDO_GID=113 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux jtx1b 5.10.0-23-arm64 #1 SMP Debian 5.10.179-1 (2023-05-12) aarch64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-armmp #1 SMP Debian 5.10.179-1 (2023-05-12) armv7l GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/17671/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 May 18 23:10 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -337,7 +369,7 @@ Get: 135 http://deb.debian.org/debian bookworm/main armhf ruby-tty-screen all 0.8.1-2 [8924 B] Get: 136 http://deb.debian.org/debian bookworm/main armhf ruby-wisper all 2.0.1-2 [12.7 kB] Get: 137 http://deb.debian.org/debian bookworm/main armhf ruby-tty-reader all 0.9.0-1 [18.1 kB] -Fetched 44.7 MB in 6s (7256 kB/s) +Fetched 44.7 MB in 12s (3763 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19329 files and directories currently installed.) @@ -908,8 +940,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ruby-tty-prompt-0.23.1/ && 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-tty-prompt_0.23.1-1_source.changes +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/ruby-tty-prompt-0.23.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-tty-prompt_0.23.1-1_source.changes dpkg-buildpackage: info: source package ruby-tty-prompt dpkg-buildpackage: info: source version 0.23.1-1 dpkg-buildpackage: info: source distribution unstable @@ -938,7 +981,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-tty-prompt/ -O--buildsystem=ruby dh_ruby --install /build/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230517-5784-m164fp/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230518-2697-tsqr1z/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on rake (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' @@ -950,7 +993,7 @@ Name: tty-prompt Version: 0.23.1 File: tty-prompt-0.23.1.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-prompt/usr/share/rubygems-integration/all /tmp/d20230517-5784-m164fp/tty-prompt-0.23.1.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-tty-prompt/usr/share/rubygems-integration/all /tmp/d20230518-2697-tsqr1z/tty-prompt-0.23.1.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all/gems/tty-prompt-0.23.1/lib/tty-prompt.rb /build/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all/gems/tty-prompt-0.23.1/lib/tty/prompt.rb @@ -1019,21 +1062,10 @@ RUBYLIB=. GEM_PATH=/build/ruby-tty-prompt-0.23.1/debian/ruby-tty-prompt/usr/share/rubygems-integration/all:/build/ruby-tty-prompt-0.23.1/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/arm-linux-gnueabihf/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/arm-linux-gnueabihf/rubygems-integration/3.1.0 ruby3.1 -S rake -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.12.0/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 44124 +Randomized with seed 35700 -TTY::Prompt#decorate - doesn't decorate empty string - decorates with a proc - doesn't decorate without additional arguments - decorates string with named colors - decorates with a callable object - doesn't decorate when disabled - -TTY::Prompt::Choices#find_by - finds a matching choice by :key key - finds a matching choice by :value key - finds a matching choice by :name key - finds no matching choice +TTY::Prompt::Choices#pluck + plucks choice by key name TTY::Prompt No entry for terminal type "unknown"; @@ -1043,501 +1075,577 @@ No entry for terminal type "unknown"; using dumb terminal settings. doesn't paginate short selections - selects default option when return pressed immediately + raises configuration error when default is higher than number of choices + changes colors for selection, hint and error + selects option through DSL + switches through pages with tab key selects default choice by name + selects option by index from the list + raises when default choice name is not found selects option through DSL with key and value + displays error with unrecognized input changes global symbols through DSL - changes global symbols - selects option through DSL + sets quiet mode cycles around when configured to do so - displays error with unrecognized input doesn't cycle around by default sets choice value to nil through DSL - raises configuration error when default is higher than number of choices + selects default option when return pressed immediately sets quiet mode through DSL - sets quiet mode + shows pages matching input + changes global symbols raises when default name matches a disabled choice paginates long selections - selects option by index from the list - raises when default choice name is not found - changes colors for selection, hint and error - shows pages matching input - switches through pages with tab key with :disabled choice - omits disabled choice when navigating with numbers doesn't allow to choose disabled choice and defaults - fails when active item is also disabled finds first non-disabled index + fails when active item is also disabled + omits disabled choice when navigating with numbers + +TTY::Prompt::Choices#<< + adds choice to collection TTY::Prompt#expand - fails to expand due to wrong key length - informs about invalid input when automatically expanding hint + fails to expand due to lack of key attribute automatically expands hint - fails to expand due to duplicate key - sets quiet mode through DSL - fails to expand due to reserve key - changes default option - specifies options through DSL and executes value + informs about invalid input when automatically expanding hint + expands chosen option with extra information specifies options through DSL + changes default option + fails to expand due to reserve key + sets quiet mode + fails to expand due to duplicate key expands help option and then defaults expands default option - expands chosen option with extra information + sets quiet mode through DSL + specifies options through DSL and executes value + fails to expand due to wrong key length + +TTY::Prompt::Question + fails range check + fails convert check with custom message + fails required check + fails validation check with inlined custom message + fails validation check + fails convert check + fails required check with custom message + passes validation check + passes required check + passes range check + fails validation check with custom message + passes convert check + fails range check + +TTY::Prompt::Question#default sets quiet mode - fails to expand due to lack of key attribute + +TTY::Prompt::Choice#== + is true with the same name and value attributes + is false with non-choice object + is false with different key attribute + is false with different name attribute + is false with different value attribute + +TTY::Prompt::Question convert file + converts to file + +TTY::Prompt::Question convert to hash + converts answer to a hash of boolean values + converts answer to a hash of integer values + converts answer to a hash TTY::Prompt::Statement.new forces newline after the prompt message displays prompt message in color -TTY::Prompt::Question convert file - converts to file +TTY::Prompt::Question#modify + preserves answer for unkown modification + strips and collapses whitespace + collapses whitespace + converts to upper case + trims whitespace -TTY::Prompt::Evaluator - checks chained validation procs - checks chained validation objects +TTY::Prompt::Question#validate + deprecates :validation option + provides default error message for wrong input + understands custom validation like :email + provides custom error message for wrong input + validates input with regex + validates input with proc -TTY::Prompt::Result - checks value to be invalid - checks value to be valid +TTY::Prompt#suggest + suggests a single match for one character + suggests few matches + suggests a single match for two characters + suggests with different text and indentation -TTY::Prompt#slider - sets default choice by index number - sets quiet mode - doesn't allow values outside of range - specifies default value - specifies choices through DSL - specifies choices through DSL +TTY::Prompt::Question::Modifier#whitespace + string with whitespaces + trims whitespace + removes whitespace + collapses text + chomps whitespace + nil (empty user input) + chomp returns nil + trim returns nil + remove returns nil + collapse returns nil + +TTY::Prompt#decorate + doesn't decorate without additional arguments + decorates with a proc + decorates with a callable object + doesn't decorate when disabled + decorates string with named colors + doesn't decorate empty string + +TTY::Prompt#collect + collects more than one answer + when receiving multiple answers + collects as a list if values method used in chain + collects as a list if values method used in chain with block + overrides a non-array key on multiple answers + with multiple keys + collects into the appropriate keys + +TTY::Prompt::SelectedChoices + inserts choices by the index order + clears choices + initializes with selected choices + inserts and deletes choices + +TTY::Prompt::Question::Validation#call + validates with a proc + fails validation when not maching pattern + validates successfully when the value matches pattern + validates nil input + validates with custom name + +TTY::Prompt#select + verifies default index format + doesn't paginate short selections + verifies default index range + sets choices and single choice through DSL + sets choice value to nil + selects by default first option + raises when default choice matches disabled choice + raises when default choice doesn't match any choices + sets choice name through DSL + sets quiet mode through DSL + sets choice name & value through DSL sets choice value to proc and executes it + sets prompt prefix + allows navigation using events without errors changes to never show help - specifies range through DSL + changes help text + selects default choice by name changes to always show help - specifies ranges & step - formats via proc - changes display colors - specifies choices instead of calculated range - mixes choices as values and via DSL and keeps ordering - changes all display symbols - changes all display symbols per instance - specifies quiet mode through DSL - sets default choice by name + changes help text through DSL + sets choice name and value + sets choice name & value through DSL + changes selected item color & marker + configures quiet mode + sets default option through hash syntax + with filter + cancels a selection + doesn't allow mixing enumeration and filter + filters and chooses the first of multiple matching entries + filters and chooses a uniquely matching entry, ignoring case + navigates left and right with filtered items + filters based on alphanumeric and punctuation characters + doesn't exit when there are no matching entries + when paginated + combines up/down navigation with left/right + navigates evenly paged output with right arrow until end of selection + navigates left and right + navigates unevenly paged output with right arrow until the end of selection + paginates choices as hash object + navigates pages up/down with disabled items + paginates long selections + paginates long selections through DSL + navigates pages left/right with disabled items + with :disabled choice + sets active to be first non-disabled choice + prevents setting default to disabled choice + omits disabled choice when number key is pressed + omits disabled choice when navigating menu + doesn't show disabled choice when filtering choices + with :cycle option + cycles around disabled items + doesn't cycle by default + cycles pages left/right with disabled items + cycles choices using left/right arrows + cycles filtered choices left and right + cycles around when configured to do so -TTY::Prompt::BlockPaginator#paginate - starts with default selection - finds both start and end index for current selection - ignores per_page when equal items - doesn't accept invalid pagination - paginates items not matching per_page count - paginates items matching per_page count - ignores per_page when less items +TTY::Prompt::Question convert range + converts with valid range + fails to convert to range -TTY::Prompt::Question convert to hash - converts answer to a hash of integer values - converts answer to a hash of boolean values - converts answer to a hash +TTY::Prompt#mask + validates input + masks with unicode character + ignores mask if echo is off + masks output with custom character + masks output by default TTY::Prompt + selects item when space pressed but doesn't echo item if echo: false + sets choice value to nil through DSL sets prompt prefix sets default options through hash syntax sets default options through DSL syntax - sets prompt to quiet mode - selects nothing when return pressed immediately - sets choice value to nil through DSL + raises error for defaults out of range + selects item when space pressed changes help text and color + selects nothing when return pressed immediately sets default choices using names changes to never show help - changes to always show help - selects item when space pressed but doesn't echo item if echo: false + changes selected item color & marker sets choice name and value through DSL - selects item when space pressed sets choice custom values - changes selected item color & marker - raises error for defaults out of range + changes to always show help + sets prompt to quiet mode + with :cycle + doesn't cycle by default + cycles filtered choices left and right + cycles choices using left/right arrows + cycles when configured to do so + with :max + limits number of choices + disables Ctrl+a/Ctrl+r selection when :max option is specified with :min requires number of choices when paginated navigates left and right - paginates long selections paginates long selections through DSL - paginates choices as hash object - navigates unevenly paged output with right arrow until the end of selection - selects all paged choices with ctrl+a doesn't paginate short selections - combines up/down navigation with left/right - reverts selection accross pages with Ctrl+r navigates evenly paged output with right arrow until end of selection + reverts selection accross pages with Ctrl+r + combines up/down navigation with left/right + selects all paged choices with ctrl+a + paginates choices as hash object + navigates unevenly paged output with right arrow until the end of selection + paginates long selections with :disabled + omits disabled choice when number key is pressed fails when default item is also disabled omits disabled choice when nagivating menu adjusts active index to match first non-disabled choice - omits disabled choice when number key is pressed selects all non-disabled choices when ctrl+a is pressed - with :max - disables Ctrl+a/Ctrl+r selection when :max option is specified - limits number of choices with filter doesn't lose the selection when switching between filters - with :cycle - doesn't cycle by default - cycles choices using left/right arrows - cycles filtered choices left and right - cycles when configured to do so -TTY::Prompt::Question::Modifier#whitespace - nil (empty user input) - collapse returns nil - chomp returns nil - trim returns nil - remove returns nil - string with whitespaces - removes whitespace - collapses text - chomps whitespace - trims whitespace - -TTY::Prompt::Question#initialize - is expected to eq true - is expected to eq TTY::Prompt::Question::UndefinedSetting - is expected to eq [] - -TTY::Prompt::Question convert numbers - fails to convert integer - converts float - fails to convert float - converts integer +TTY::Prompt::Question convert to array + converts answer to an array of booleans + converts answer to an array + converts answer to an array of integers -TTY::Prompt::Choice#== - is true with the same name and value attributes - is false with different key attribute - is false with non-choice object - is false with different name attribute - is false with different value attribute +TTY::Prompt::Paginator#paginate + paginates items not matching per_page count + ignores per_page when less items + finds both start and end index for current selection + ignores per_page when equal items + doesn't accept invalid pagination + paginates items matching per_page count + starts with default selection TTY::Prompt#warn changes default yellow color to cyan - displays message with option displays one message + displays message with option displays many messages -TTY::Prompt::SelectedChoices - inserts choices by the index order - initializes with selected choices - inserts and deletes choices - clears choices +TTY::Prompt::Question::Modifier#apply_to + doesn't apply modifiers + combines whitespace & letter case modifications + combines letter case & whitespace modifications -TTY::Prompt::Distance.distance - when empty - is expected to eql 0 - when similar - is expected to eql 1 - when similar - is expected to eql 0 - when end similar - is expected to eql 3 - when contain similar - is expected to eql 2 - when unicode - is expected to eql 1 - when prefix - is expected to eql 3 - when nil - is expected to eql 0 - when single char - is expected to eql 2 - with one non empty - is expected to eql 3 - when similar - is expected to eql 2 +TTY::Prompt::Choices#enabled + returns only choices which aren't disabled -TTY::Prompt#collect - collects more than one answer - when receiving multiple answers - overrides a non-array key on multiple answers - collects as a list if values method used in chain with block - collects as a list if values method used in chain - with multiple keys - collects into the appropriate keys +TTY::Prompt::Converters + :time + converts "11:12:13" to 2023-05-18 11:12:13 +1400 + converts "unknown" to "undefined" + :boolean + converts "YES" to true + converts "f" to false + converts "no" to false + converts "1" to true + converts "FALSE" to false + converts "t" to true + converts "true" to true + converts "unknown" to "undefined" + converts "0" to false + converts "y" to true + :datetime + converts "unknown" to "undefined" + converts "2020/05/21 11:12:13" to # + :regexp + converts "\\d+" to /\d+/ + converts "unknown" to /unknown/ + :array/:list + converts "a,b,c" to ["a", "b", "c"] + converts "a,b,c" to [:a, :b, :c] + converts "1,2,3" to [1, 2, 3] + converts ["a", "b", "c"] to ["a", "b", "c"] + converts "a, b\\, c" to ["a", "b, c"] + converts "t,t,f" to [true, true, false] + converts "a, , c" to ["a", "c"] + converts "a,b,c" to [/a/, /b/, /c/] + converts "a,b,c" to [:a, :b, :c] + converts ",," to [] + converts "t,t,f" to [true, true, false] + converts "1,2,3" to [1, 2, 3] + converts "1,2,3" to [1, 2, 3] + converts "a , b , c" to ["a", "b", "c"] + converts "t,t,f" to [true, true, false] + converts "1,2,3" to [1.0, 2.0, 3.0] + converts "1,2,3" to [1, 2, 3] + converts ",b,c" to ["b", "c"] + converts "1,2,3" to [1.0, 2.0, 3.0] + :float + converts "unknown" to "undefined" + converts "12.3" to 12.3 + :char + converts "" to nil + converts "input" to "i" + :string + converts "" to "" + converts "input\n" to "input" + :integer + converts "12" to 12 + converts "unknown" to "undefined" + :date + converts "unknown" to "undefined" + converts "2020/05/21" to # + :uri + converts "http://foobar.com" to # + :path + converts "/foo/bar/baz" to # + :range + converts "1-10" to 1..10 + converts "1.0" to 1.0..1.0 + converts "1 . . . 10" to 1...10 + converts "a . . . z" to "a"..."z" + converts 1..10 to 1..10 + converts "1...10" to 1...10 + converts "a..z" to "a".."z" + converts "unknown" to "undefined" + converts "1.2-5.0" to 1.2..5.0 + converts "1 , 10" to 1..10 + converts "-5--1" to -5..-1 + converts "1" to 1..1 + converts "1..10" to 1..10 + :hash/:map + converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} + converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} + converts "a=1" to {:a=>"1"} + converts "a=1&b=2" to {:a=>"1", :b=>"2"} + converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} + converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} + converts ["a=1", "b=2", "c=3"] to {:a=>"1", :b=>"2", :c=>"3"} + converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} + converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} + converts "" to {} + converts "a:1 b:2" to {:a=>"1", :b=>"2"} + converts "a=&b=2" to {:a=>"", :b=>"2"} + converts "a=1&b=2&a=3" to {:a=>["1", "3"], :b=>"2"} + converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} + converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} + converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} -TTY::Prompt#ask - asks an empty question - asks an empty question with prepopulated value - asks question with prepopulated value - asks a question with block - permits empty default parameter - permits nil default parameter - changes question color +TTY::Prompt::Result + checks value to be invalid + checks value to be valid + +TTY::Prompt::Choices#each + iterates over collection + +TTY::Prompt::Question convert path + converts pathname + +TTY::Prompt#slider + changes display colors + specifies ranges & step + changes all display symbols + changes to always show help + formats via proc + specifies range through DSL + sets default choice by index number + sets default choice by name + changes all display symbols per instance + specifies choices through DSL + mixes choices as values and via DSL and keeps ordering + specifies default value sets quiet mode - asks question - asks a question with a prefix [?] - overwrites global settings - sets quiet mode through DSL - asks an empty question and returns nil if EOF is sent to stdin + specifies choices through DSL + specifies choices instead of calculated range + doesn't allow values outside of range + specifies quiet mode through DSL + changes to never show help + sets choice value to proc and executes it -TTY::Prompt#inspect - inspects instance attributes +TTY::Prompt::Evaluator + checks chained validation procs + checks chained validation objects + +TTY::Prompt::Question#multiline + changes help text + reads no lines + sets quiet mode + reads multiple lines with empty lines + uses defualt when no input + +TTY::Prompt::Question convert bool + converts single positive boolean + handles default values + converts positive boolean + handles default values + converts negative boolean + fails to convert boolean + +TTY::Prompt::Question#keypress + asks for a keypress with echo off + receives line feed with echo on + asks for a keypress with echo on + interrupts input + timeouts when no key provided TTY::Prompt::ConverterRegistry - fetch - retrieves uppcase named converter - retrieves converter from the registry - fails to retrieve conversion register fails to register conversion registers new conversion under multiple names registers new conversion under single name + fetch + retrieves converter from the registry + fails to retrieve conversion + retrieves uppcase named converter contain checks conversion with object type doesn't have conversion contains conversion -TTY::Prompt::Choices#enabled - returns only choices which aren't disabled - TTY::Prompt confirmation #yes? - customizes question through options - accepts regex conflicting characters as suffix - defaults positive and negative - warns about invalid entry when using defaults - disagrees with question - changes default - customizes question through DSL + fails to infer default value from a word assumes default true - agrees with question defaults suffix and converter infers default value from a word - fails to infer default value from a word + changes default + customizes question through DSL + defaults positive and negative obeys quiet mode - #no? - defaults suffix and converter + accepts regex conflicting characters as suffix + customizes question through options + agrees with question + disagrees with question warns about invalid entry when using defaults + #no? + customizes question through DSL assumes default false - changes default disagrees with question - customizes question through DSL + warns about invalid entry when using defaults + changes default agrees with question + defaults suffix and converter -TTY::Prompt::Question#multiline - reads no lines - changes help text - uses defualt when no input - reads multiple lines with empty lines - sets quiet mode +TTY::Prompt::Timer + times out loop execution + registers a tick event -TTY::Prompt::Choices.new - creates choices collection +TTY::Utils + #blank? + detects blank of :foo as false + detects blank of "" as true + detects blank of "foo" as false + detects blank of nil as true + detects blank of "\n\t " as true + detects blank of " " as true + #deep_copy + copies "" + copies ["foo", {:bar=>"baz"}, :fum, 11] -TTY::Prompt::Question::Validation#call - validates with a proc - validates with custom name - fails validation when not maching pattern - validates nil input - validates successfully when the value matches pattern +TTY::Prompt::Choice#from + creates choice from an array with name and a value + creates choice from a string + creates disabled choice + creates choice from a hash with a value + creates choice from array with name and nil value + creates choice from an array with name only and defaults value + creates choice from a symbol + creates choice from an array with a hash with name and value keys + creates choice from a hash with a nil value + creates choice from an array with key-value pair + creates choice from an arbitrary object that responds to to_s call + creates choice from a hash with name, value and key keys + creates choice from an array with a hash without value key + skips Choice instance + creates choice from an array with name and false value -TTY::Prompt#say - prints an empty message - without color - prints message without ansi - with color - prints message with ansi color - prints message with ansi color without newline - with new line - prints a message with newline - prints a message with implicit newline - prints a message with newline within text and blank space - prints a message without newline - prints a message with newline within text - with tab or space - prints +TTY::Prompt#new + sets prefix + sets input stream + sets output stream -TTY::Prompt::Question convert to array - converts answer to an array of integers - converts answer to an array of booleans - converts answer to an array +TTY::Prompt::Question convert char + reads single character TTY::Prompt::Question#default uses default value uses default value in block -TTY::Prompt::Question#keypress - timeouts when no key provided - asks for a keypress with echo off - receives line feed with echo on - asks for a keypress with echo on - interrupts input - -TTY::Utils - #deep_copy - copies ["foo", {:bar=>"baz"}, :fum, 11] - copies "" - #blank? - detects blank of nil as true - detects blank of "foo" as false - detects blank of "" as true - detects blank of " " as true - detects blank of "\n\t " as true - detects blank of :foo as false - -TTY::Prompt::Question#echo - asks with echo on - asks with echo off - -TTY::Prompt::Question::Modifier#apply_to - combines letter case & whitespace modifications - doesn't apply modifiers - combines whitespace & letter case modifications - TTY::Prompt::Question::Modifier#letter_case - string - changes to uppercase - changes to lower case - capitalizes text nil (empty user input) up returns nil capitalize returns nil down returns nil + string + capitalizes text + changes to lower case + changes to uppercase -TTY::Prompt::Question#in - provides default error message when wrong input - reads range from option - reads number within digit range - reads number within string range - overwrites default error message when wrong input - reads letters within range - -TTY::Prompt::Question convert regexp - converts regex - -TTY::Prompt::Question convert char - reads single character - -TTY::Prompt::Question#modify - converts to upper case - preserves answer for unkown modification - collapses whitespace - strips and collapses whitespace - trims whitespace - -TTY::Prompt#select - selects by default first option - changes help text - changes to never show help - doesn't paginate short selections - sets choice value to proc and executes it - sets choices and single choice through DSL - sets choice name & value through DSL - sets default option through hash syntax - changes selected item color & marker - sets choice name and value - sets quiet mode through DSL - sets prompt prefix - sets choice name & value through DSL - changes to always show help - allows navigation using events without errors - verifies default index range - configures quiet mode - raises when default choice doesn't match any choices - changes help text through DSL - raises when default choice matches disabled choice - selects default choice by name - sets choice name through DSL - sets choice value to nil - verifies default index format - when paginated - navigates unevenly paged output with right arrow until the end of selection - navigates pages left/right with disabled items - paginates long selections - combines up/down navigation with left/right - paginates choices as hash object - navigates left and right - navigates pages up/down with disabled items - navigates evenly paged output with right arrow until end of selection - paginates long selections through DSL - with :cycle option - cycles around disabled items - doesn't cycle by default - cycles choices using left/right arrows - cycles around when configured to do so - cycles pages left/right with disabled items - cycles filtered choices left and right - with :disabled choice - doesn't show disabled choice when filtering choices - omits disabled choice when navigating menu - sets active to be first non-disabled choice - prevents setting default to disabled choice - omits disabled choice when number key is pressed - with filter - filters based on alphanumeric and punctuation characters - navigates left and right with filtered items - cancels a selection - filters and chooses a uniquely matching entry, ignoring case - doesn't exit when there are no matching entries - doesn't allow mixing enumeration and filter - filters and chooses the first of multiple matching entries - -TTY::Prompt::Choices#<< - adds choice to collection - -TTY::Prompt::Timer - registers a tick event - times out loop execution - -TTY::Prompt::Choices#each - iterates over collection - -TTY::Prompt::Question convert range - fails to convert to range - converts with valid range - -TTY::Prompt::Choices#pluck - plucks choice by key name - -TTY::Prompt#subscribe - subscribes to key events only for the current prompt - -TTY::Prompt#mask - masks with unicode character - ignores mask if echo is off - masks output with custom character - masks output by default - validates input - -TTY::Prompt::Question#required - requires value to be present - uses required in validation check - requires value to be present with option - doesn't require value to be present - -TTY::Prompt::Paginator#paginate +TTY::Prompt::BlockPaginator#paginate + paginates items not matching per_page count + ignores per_page when equal items finds both start and end index for current selection - paginates items matching per_page count starts with default selection - ignores per_page when less items - ignores per_page when equal items doesn't accept invalid pagination - paginates items not matching per_page count + ignores per_page when less items + paginates items matching per_page count -TTY::Prompt::Question convert bool - converts negative boolean - fails to convert boolean - handles default values - converts single positive boolean - handles default values - converts positive boolean +TTY::Prompt::Distance.distance + when single char + is expected to eql 2 + when contain similar + is expected to eql 2 + when similar + is expected to eql 2 + when unicode + is expected to eql 1 + when empty + is expected to eql 0 + when nil + is expected to eql 0 + with one non empty + is expected to eql 3 + when similar + is expected to eql 1 + when similar + is expected to eql 0 + when end similar + is expected to eql 3 + when prefix + is expected to eql 3 -TTY::Prompt::Question - fails validation check - fails required check - fails convert check with custom message - passes convert check - fails range check - fails required check with custom message - fails convert check - fails validation check with inlined custom message - fails range check - passes range check - fails validation check with custom message - passes required check - passes validation check +TTY::Prompt::Question#echo + asks with echo off + asks with echo on + +TTY::Prompt#inspect + inspects instance attributes TTY::Prompt#error displays one message @@ -1545,181 +1653,116 @@ displays message with option displays many messages -TTY::Prompt::Question#default - sets quiet mode +TTY::Prompt#subscribe + subscribes to key events only for the current prompt -TTY::Prompt::Question convert path - converts pathname +TTY::Prompt::Question#required + requires value to be present with option + doesn't require value to be present + uses required in validation check + requires value to be present TTY::Prompt::Question::Validation#coerce - coerces into regex fails to coerce pattern into validation + coerces into regex coerces lambda into proc doesn't coerce symbols -TTY::Prompt::Choice#from - creates choice from a hash with name, value and key keys - creates choice from an arbitrary object that responds to to_s call - creates choice from an array with a hash without value key - skips Choice instance - creates choice from an array with name and a value - creates choice from an array with name and false value - creates choice from a hash with a nil value - creates choice from a hash with a value - creates choice from a string - creates choice from a symbol - creates choice from array with name and nil value - creates choice from an array with key-value pair - creates choice from an array with name only and defaults value - creates disabled choice - creates choice from an array with a hash with name and value keys - -TTY::Prompt#new - sets input stream - sets prefix - sets output stream - -TTY::Prompt::Question convert custom - converts response with custom conversion - -TTY::Prompt#suggest - suggests a single match for one character - suggests with different text and indentation - suggests a single match for two characters - suggests few matches +TTY::Prompt#ask + permits empty default parameter + asks a question with block + asks a question with a prefix [?] + asks question with prepopulated value + overwrites global settings + sets quiet mode + asks an empty question and returns nil if EOF is sent to stdin + asks an empty question + changes question color + permits nil default parameter + asks an empty question with prepopulated value + asks question + sets quiet mode through DSL -TTY::Prompt#ok - prints text in green - changes color to cyan - prints multiple lines in green +TTY::Prompt::Question convert regexp + converts regex TTY::Prompt::Question convert string - converts string converts symbol + converts string -TTY::Prompt::Converters - :array/:list - converts "a , b , c" to ["a", "b", "c"] - converts "1,2,3" to [1, 2, 3] - converts ["a", "b", "c"] to ["a", "b", "c"] - converts "1,2,3" to [1.0, 2.0, 3.0] - converts "1,2,3" to [1.0, 2.0, 3.0] - converts "t,t,f" to [true, true, false] - converts "t,t,f" to [true, true, false] - converts "1,2,3" to [1, 2, 3] - converts "a, , c" to ["a", "c"] - converts "a, b\\, c" to ["a", "b, c"] - converts "a,b,c" to ["a", "b", "c"] - converts ",b,c" to ["b", "c"] - converts "a,b,c" to [/a/, /b/, /c/] - converts "t,t,f" to [true, true, false] - converts ",," to [] - converts "a,b,c" to [:a, :b, :c] - converts "a,b,c" to [:a, :b, :c] - converts "1,2,3" to [1, 2, 3] - converts "1,2,3" to [1, 2, 3] - :regexp - converts "unknown" to /unknown/ - converts "\\d+" to /\d+/ - :time - converts "11:12:13" to 2023-05-17 11:12:13 -1200 - converts "unknown" to "undefined" - :hash/:map - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "" to {} - converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - converts ["a:1", "b:2", "c:3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a=1" to {:a=>"1"} - converts "a=1&b=2" to {:a=>"1", :b=>"2"} - converts "a=&b=2" to {:a=>"", :b=>"2"} - converts "a:1 b:2" to {:a=>"1", :b=>"2"} - converts "a:t b:f c:t" to {:a=>/t/, :b=>/f/, :c=>/t/} - converts "a:1 b:2 c:3" to {"a"=>1, "b"=>2, "c"=>3} - converts ["a=1", "b=2", "c=3"] to {:a=>"1", :b=>"2", :c=>"3"} - converts "a:1 b:2 c:3" to {:a=>1.0, :b=>2.0, :c=>3.0} - converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} - converts "a:1 b:2 c:3" to {:a=>1, :b=>2, :c=>3} - converts "a:t b:f c:t" to {:a=>:t, :b=>:f, :c=>:t} - converts "a=1&b=2&a=3" to {:a=>["1", "3"], :b=>"2"} - converts "a:1 b:2 a:3" to {:a=>["1", "3"], :b=>"2"} - converts "a:t b:f c:t" to {:a=>true, :b=>false, :c=>true} - :path - converts "/foo/bar/baz" to # - :datetime - converts "unknown" to "undefined" - converts "2020/05/21 11:12:13" to # - :float - converts "unknown" to "undefined" - converts "12.3" to 12.3 - :uri - converts "http://foobar.com" to # - :char - converts "" to nil - converts "input" to "i" - :date - converts "unknown" to "undefined" - converts "2020/05/21" to # - :range - converts "1 , 10" to 1..10 - converts 1..10 to 1..10 - converts "1.2-5.0" to 1.2..5.0 - converts "1.0" to 1.0..1.0 - converts "1...10" to 1...10 - converts "a..z" to "a".."z" - converts "a . . . z" to "a"..."z" - converts "1 . . . 10" to 1...10 - converts "-5--1" to -5..-1 - converts "1-10" to 1..10 - converts "1" to 1..1 - converts "1..10" to 1..10 - converts "unknown" to "undefined" - :integer - converts "unknown" to "undefined" - converts "12" to 12 - :boolean - converts "t" to true - converts "YES" to true - converts "1" to true - converts "no" to false - converts "unknown" to "undefined" - converts "FALSE" to false - converts "f" to false - converts "true" to true - converts "y" to true - converts "0" to false - :string - converts "" to "" - converts "input\n" to "input" +TTY::Prompt::Choices#find_by + finds a matching choice by :name key + finds no matching choice + finds a matching choice by :value key + finds a matching choice by :key key + +TTY::Prompt::Choices.new + creates choices collection + +TTY::Prompt::Question#initialize + is expected to eq TTY::Prompt::Question::UndefinedSetting + is expected to eq [] + is expected to eq true TTY::Prompt::Question convert date fails to convert date converts date converts datetime -TTY::Prompt::Question#validate - validates input with regex - deprecates :validation option - provides default error message for wrong input - understands custom validation like :email - validates input with proc - provides custom error message for wrong input +TTY::Prompt::Question#in + provides default error message when wrong input + reads letters within range + reads number within string range + reads range from option + overwrites default error message when wrong input + reads number within digit range + +TTY::Prompt#say + prints an empty message + without color + prints message without ansi + with new line + prints a message with newline + prints a message without newline + prints a message with implicit newline + prints a message with newline within text and blank space + prints a message with newline within text + with color + prints message with ansi color without newline + prints message with ansi color + with tab or space + prints + +TTY::Prompt::Question convert custom + converts response with custom conversion + +TTY::Prompt#ok + changes color to cyan + prints text in green + prints multiple lines in green + +TTY::Prompt::Question convert numbers + converts integer + converts float + fails to convert integer + fails to convert float -Top 2 slowest examples (0.10423 seconds, 5.4% of total time): - TTY::Prompt::Question#modify strips and collapses whitespace - 0.06294 seconds ./spec/unit/question/modify_spec.rb:34 - TTY::Prompt::Question#validate validates input with proc - 0.04129 seconds ./spec/unit/question/validate_spec.rb:25 +Top 2 slowest examples (0.99364 seconds, 4.4% of total time): + TTY::Prompt#subscribe subscribes to key events only for the current prompt + 0.52329 seconds ./spec/unit/subscribe_spec.rb:4 + TTY::Prompt::Question#modify trims whitespace + 0.47034 seconds ./spec/unit/question/modify_spec.rb:20 Top 2 slowest example groups: - TTY::Prompt::Timer - 0.03318 seconds average (0.06636 seconds / 2 examples) ./spec/unit/timer_spec.rb:3 - TTY::Prompt::Question#modify - 0.02304 seconds average (0.11521 seconds / 5 examples) ./spec/unit/question/modify_spec.rb:3 + TTY::Prompt#subscribe + 0.52592 seconds average (0.52592 seconds / 1 example) ./spec/unit/subscribe_spec.rb:3 + TTY::Prompt::Question convert path + 0.28454 seconds average (0.28454 seconds / 1 example) ./spec/unit/converters/convert_path_spec.rb:3 -Finished in 1.92 seconds (files took 1.03 seconds to load) +Finished in 22.67 seconds (files took 12.95 seconds to load) 494 examples, 0 failures -Randomized with seed 44124 +Randomized with seed 35700 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1752,12 +1795,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/24966/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/17671 and its subdirectories -I: Current time: Wed May 17 21:07:00 -12 2023 -I: pbuilder-time-stamp: 1684400820 +I: removing directory /srv/workspace/pbuilder/24966 and its subdirectories +I: Current time: Thu May 18 23:21:32 +14 2023 +I: pbuilder-time-stamp: 1684401692