{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":146918141,"defaultBranch":"main","name":"toolbox","ownerLogin":"containers","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-31T16:39:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5874934?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726064773.0","currentOid":""},"activityList":{"items":[{"before":"a653325279a0f63745f1cd8525e088794bcb3dff","after":null,"ref":"refs/heads/mainn","pushedAt":"2024-09-11T14:26:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"}},{"before":"a8dd3c691c2e534aa56e158ed11715aeeb86a646","after":"a653325279a0f63745f1cd8525e088794bcb3dff","ref":"refs/heads/main","pushedAt":"2024-09-11T14:26:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump github.com/NVIDIA/nvidia-container-toolkit to 1.16.1\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1540","shortMessageHtmlLink":"build: Bump github.com/NVIDIA/nvidia-container-toolkit to 1.16.1"}},{"before":null,"after":"a653325279a0f63745f1cd8525e088794bcb3dff","ref":"refs/heads/mainn","pushedAt":"2024-09-11T14:25:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump github.com/NVIDIA/nvidia-container-toolkit to 1.16.1\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1540","shortMessageHtmlLink":"build: Bump github.com/NVIDIA/nvidia-container-toolkit to 1.16.1"}},{"before":"369781a6d615a9bc540b10fdd4c290e1485529c1","after":"a8dd3c691c2e534aa56e158ed11715aeeb86a646","ref":"refs/heads/main","pushedAt":"2024-09-11T13:32:10.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump golang.org/x/sys to 0.22.0\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1539","shortMessageHtmlLink":"build: Bump golang.org/x/sys to 0.22.0"}},{"before":"26a76f2d7fcdc3af7c8ad23a8310975f61d30d8f","after":"369781a6d615a9bc540b10fdd4c290e1485529c1","ref":"refs/heads/main","pushedAt":"2024-09-10T21:05:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Test attempts to create the same container twice\n\nhttps://github.com/containers/toolbox/issues/957","shortMessageHtmlLink":"test/system: Test attempts to create the same container twice"}},{"before":"d287588f3d0e7d74eb7512fd4dfe30a3485be7d4","after":"26a76f2d7fcdc3af7c8ad23a8310975f61d30d8f","ref":"refs/heads/main","pushedAt":"2024-09-10T18:18:45.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/run, test/system: Handle exit code 127 in 'run' from forwarded call\n\nWhen 'toolbox run' is invoked on the host, an exit code of 127 from\n'podman exec' means either that the specified command couldn't be found\nor that the working directory didn't exist. The only way to tell these\ntwo scenarios apart is to actually look inside the container.\n\nSecondly, Toolbx containers always have an executable toolbox(1) binary\nat /usr/bin/toolbox and it's assumed that /usr/bin is always part of the\nPATH environment variable.\n\nWhen 'toolbox run toolbox ...' is invoked, the inner toolbox(1)\ninvocation will be forwarded back to the host by the Toolbx container's\n/usr/bin/toolbox, which is always present as an executable. Hence, if\nthe outer 'podman exec' on the host fails with an exit code of 127,\nthen it doesn't mean that the container didn't have a toolbox(1)\nexecutable, but that some subordinate process started by the container's\ntoolbox(1) failed with that exit code.\n\nTherefore, handle this as a special case to avoid losing the exit code.\nOtherwise, it leads to:\n $ toolbox run toolbox run non-existent-command\n bash: line 1: exec: non-existent-command: not found\n Error: command non-existent-command not found in container\n fedora-toolbox-40\n $ echo \"$?\"\n 0\n\nInstead, it will now be:\n $ toolbox run toolbox run non-existent-command\n bash: line 1: exec: non-existent-command: not found\n Error: command non-existent-command not found in container\n fedora-toolbox-40\n $ echo \"$?\"\n 127\n\nhttps://github.com/containers/toolbox/issues/957\nhttps://github.com/containers/toolbox/pull/1052","shortMessageHtmlLink":"cmd/run, test/system: Handle exit code 127 in 'run' from forwarded call"}},{"before":"76a8508019eb6ceef1a76002e768282931e49387","after":"d287588f3d0e7d74eb7512fd4dfe30a3485be7d4","ref":"refs/heads/main","pushedAt":"2024-09-10T17:53:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/root, cmd/run: Handle printing all errors but the CLI parsing ones\n\nThis will make it easier to propagate the exit codes of subordinate\nprocesses through an exitError instance, when toolbox(1) is invoked\ninside a container, and invocation is forwarded to the host.\n\nCobra doesn't honour the root command's SilenceErrors, if an error\noccurred when parsing the command line for a command, even though the\ncommand was found. However, Cobra does honour SilenceErrors, if the\nerror occurred afterwards.\n\nTherefore, to avoid setting SilenceErrors in each and every command, it\nwas set in the PersistentPreRunE hook (ie., preRun), which is called\nafter all command line parsing has been successfully completed.\n\nhttps://github.com/containers/toolbox/issues/957","shortMessageHtmlLink":"cmd/root, cmd/run: Handle printing all errors but the CLI parsing ones"}},{"before":"62fcc093e7d9dbe2620835be7b30a7af61875ded","after":"76a8508019eb6ceef1a76002e768282931e49387","ref":"refs/heads/main","pushedAt":"2024-09-05T21:18:08.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Test the output messages when a container is created\n\nhttps://github.com/containers/toolbox/pull/1536","shortMessageHtmlLink":"test/system: Test the output messages when a container is created"}},{"before":"c8c9e95ed05ec240f9d045bf18960ddd918e1482","after":"62fcc093e7d9dbe2620835be7b30a7af61875ded","ref":"refs/heads/main","pushedAt":"2024-09-03T21:15:56.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"pkg/utils, test/system: Retain errors without -v when forwarding to host\n\nhttps://github.com/containers/toolbox/issues/957\nhttps://github.com/containers/toolbox/pull/1052","shortMessageHtmlLink":"pkg/utils, test/system: Retain errors without -v when forwarding to host"}},{"before":"67d40024ce98451dffc738294a136b579ff295ad","after":"c8c9e95ed05ec240f9d045bf18960ddd918e1482","ref":"refs/heads/main","pushedAt":"2024-09-02T11:16:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Test that CLI errors are shown inside Toolbx containers\n\nhttps://github.com/containers/toolbox/pull/1525","shortMessageHtmlLink":"test/system: Test that CLI errors are shown inside Toolbx containers"}},{"before":"3f359f3edd5699611a60c28fb826ad01c3745753","after":"67d40024ce98451dffc738294a136b579ff295ad","ref":"refs/heads/main","pushedAt":"2024-08-29T21:40:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Consolidate teardown() to remove both containers & images\n\nIt's far more consistent and understandable if all tests start with a\nclean state without any containers or images present. Otherwise, the\nsubtle side-effects of having some image left behind from a previous\ntest can lead to surprises, and there's no need to spend time wondering\nwhether some tests should only clean up the containers or both\ncontainers and images.\n\nThis additional work of cleaning up the images for all tests makes it\nnecessary to increase the timeout for all Fedora nodes to prevent the CI\nfrom timing out.\n\nhttps://github.com/containers/toolbox/pull/1526","shortMessageHtmlLink":"test/system: Consolidate teardown() to remove both containers & images"}},{"before":"b684b190d1d931434d0d7d63c841973101dfb928","after":"3f359f3edd5699611a60c28fb826ad01c3745753","ref":"refs/heads/main","pushedAt":"2024-08-29T19:12:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump tags.cncf.io/container-device-interface to v0.8.0\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1529","shortMessageHtmlLink":"build: Bump tags.cncf.io/container-device-interface to v0.8.0"}},{"before":"18d47d1fee9d894d68fb8f3c2937a4f2372ea8b6","after":"b684b190d1d931434d0d7d63c841973101dfb928","ref":"refs/heads/main","pushedAt":"2024-08-15T15:55:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":".zuul: Drop testing on Fedora 38\n\nFedora 38 reached End of Life on 21st May 2024:\nhttps://docs.fedoraproject.org/en-US/releases/eol/\n\nhttps://github.com/containers/toolbox/pull/1527","shortMessageHtmlLink":".zuul: Drop testing on Fedora 38"}},{"before":"cb6eee85ef88a0dc8694707d29737f61fa0ac330","after":"18d47d1fee9d894d68fb8f3c2937a4f2372ea8b6","ref":"refs/heads/main","pushedAt":"2024-07-31T18:10:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Replace the RHEL toolbox:8.9 image with toolbox:8.10\n\nRed Hat Enterprise Linux 8.9 reached End of Life when RHEL 8.10 was\nreleased on 22nd May 2024:\nhttps://access.redhat.com/articles/3078\nhttps://access.redhat.com/support/policy/updates/errata\n\nFor what it's worth, RHEL 8's full support phase ended on the 31st of\nMay 2024 and it wil be in maintenance support, as RHEL 8.10, until the\ncorresponding day in 2029.\n\nhttps://github.com/containers/toolbox/pull/1522","shortMessageHtmlLink":"test/system: Replace the RHEL toolbox:8.9 image with toolbox:8.10"}},{"before":"6e848b250b4cde98fb9a40b17421f1f54eacd8f3","after":"cb6eee85ef88a0dc8694707d29737f61fa0ac330","ref":"refs/heads/main","pushedAt":"2024-06-18T08:43:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"README.md: Add GitHub star history chart\n\n... from https://star-history.com/.\n\nhttps://github.com/containers/toolbox/pull/1511","shortMessageHtmlLink":"README.md: Add GitHub star history chart"}},{"before":"ef98adbb7a9d48a68f89abf34d763ab302d1cdda","after":"6e848b250b4cde98fb9a40b17421f1f54eacd8f3","ref":"refs/heads/main","pushedAt":"2024-06-12T17:46:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd, pkg/nvidia: Enable the proprietary NVIDIA driver\n\nThis uses the NVIDIA Container Toolkit [1] to generate a Container\nDevice Interface specification [2] on the host during the 'enter' and\n'run' commands. The specification is saved as JSON in the runtime\ndirectories at /run/toolbox or $XDG_RUNTIME_DIR/toolbox to make it\navailable to the Toolbx container's entry point. The environment\nvariables in the specification are directly passed to 'podman exec',\nwhile the hooks and mounts are handled by the entry point.\n\nToolbx containers already have access to all the devices in the host\noperating system's /dev, and containers share the kernel space driver\nwith the host. So, this is only about making the user space driver\navailable to the container. It's done by bind mounting the files\nmentioned in the generated CDI specification from the host to the\ncontainer, and then updating the container's dynamic linker cache.\n\nThis neither depends on 'nvidia-ctk cdi generate' to generate the\nContainer Device Interface specification nor on 'podman create --device'\nto consume it.\n\nThe main problem with nvidia-ctk and 'podman create' is that the\nspecification must be saved in /etc/cdi or /var/run/cdi, both of which\nrequire root access, for it to be visible to 'podman create --device'.\nToolbx containers are often used rootless, so requiring root privileges\nfor hardware support, something that's not necessary on the host, will\nbe a problem.\n\nSecondly, updating the toolbox(1) binary won't let existing containers\nuse the proprietary NVIDIA driver, because 'podman create' only affects\nnew containers.\n\nTherefore, toolbox(1) uses the Go APIs used by 'nvidia-ctk cdi generate'\nand 'podman create --device' to generate, save, load and apply the CDI\nspecification itself. This removes the need for root privileges due to\n/etc/cdi or /var/run/cdi, and makes the driver available to existing\ncontainers.\n\nUntil Bats 1.10.0, 'run --keep-empty-lines' had a bug where it counted\nthe trailing newline on the last line as a separate line [3]. However,\nBats 1.10.0 is only available in Fedora >= 39 and is absent from Fedora\n38.\n\nBased on an idea from Ievgen Popovych.\n\n[1] https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/\n https://github.com/NVIDIA/nvidia-container-toolkit\n\n[2] https://github.com/cncf-tags/container-device-interface\n\n[3] Bats commit 6648e2143bffb933\n https://github.com/bats-core/bats-core/commit/6648e2143bffb933\n https://github.com/bats-core/bats-core/issues/708\n\nhttps://github.com/containers/toolbox/issues/116","shortMessageHtmlLink":"cmd, pkg/nvidia: Enable the proprietary NVIDIA driver"}},{"before":"d9cdfe80d9da867056fd27223ead466a10a6609e","after":"ef98adbb7a9d48a68f89abf34d763ab302d1cdda","ref":"refs/heads/main","pushedAt":"2024-06-11T23:20:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"playbooks: Avoid using potentially broken DNF5\n\nThe Zuul executor got updated from Ansible 2.13.7 to 2.15.10, which now\nhas support for DNF5 [1] and the previous DNF5 Change [2] for Fedora 39\nis now aiming at Fedora 41 (and Rawhide) [3]. Unfortunately, Ansible's\n'dnf5' module is still under development and doesn't seem to match the\nstate of DNF5 in Fedora Rawhide, which causes:\n TASK [Install RPM packages]\n fedora-rawhide | ERROR\n fedora-rawhide | {\n fedora-rawhide | \"failures\": [],\n fedora-rawhide | \"msg\": \"Could not import the libdnf5 python module\n using /usr/bin/python3 (3.12.3 (main, Apr 17 2024, 00:00:00) [GCC\n 14.0.1 20240411 (Red Hat 14.0.1-0)]). Please install\n python3-libdnf5 package or ensure you have specified the correct\n ansible_python_interpreter. (attempted\n ['/usr/libexec/platform-python', '/usr/bin/python3',\n '/usr/bin/python2', '/usr/bin/python'])\"\n fedora-rawhide | }\n\nTrying to explicitly install python3-libdnf5, as suggested above, using\nAnsible's 'command' module before using the 'package' module to install\nthe Toolbx dependencies, still ends up with:\n TASK [Install RPM packages]\n fedora-rawhide | MODULE FAILURE:\n fedora-rawhide | Traceback (most recent call last):\n fedora-rawhide | File \"\", line 107, in \n fedora-rawhide | File \"\", line 99, in _ansiballz_main\n fedora-rawhide | File \"\", line 47, in invoke_module\n fedora-rawhide | File \"\", line 226, in run_module\n fedora-rawhide | File \"\", line 98, in _run_module_code\n fedora-rawhide | File \"\", line 88, in _run_code\n fedora-rawhide | File \"/tmp/ansible_ansible.legacy.dnf5_payload_kecazv78/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\",\n line 708, in \n fedora-rawhide | File \"/tmp/ansible_ansible.legacy.dnf5_payload_kecazv78/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\",\n line 704, in main\n fedora-rawhide | File \"/tmp/ansible_ansible.legacy.dnf5_payload_kecazv78/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\",\n line 487, in run\n fedora-rawhide | AttributeError: 'Base' object has no attribute\n 'load_config_from_file'\n\nTherefore, force the use of DNF4 when an Ansible job is being attempted\nmore than once [4].\n\n[1] Ansible commit a81b787a05100986\n https://github.com/ansible/ansible/commit/a81b787a05100986\n https://github.com/ansible/ansible/issues/78898\n\n[2] https://fedoraproject.org/wiki/Changes/ReplaceDnfWithDnf5\n\n[3] https://fedoraproject.org/wiki/Changes/SwitchToDnf5\n\n[4] https://zuul-ci.org/docs/zuul/latest/job-content.html#var-zuul.attempts\n\nhttps://github.com/containers/toolbox/pull/1509","shortMessageHtmlLink":"playbooks: Avoid using potentially broken DNF5"}},{"before":"c22b09d095c7a8ac75696b701a1daeea951eb7a3","after":"d9cdfe80d9da867056fd27223ead466a10a6609e","ref":"refs/heads/main","pushedAt":"2024-06-11T13:58:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/create, cmd/root: Style fixes\n\nhttps://github.com/containers/toolbox/pull/1508","shortMessageHtmlLink":"cmd/create, cmd/root: Style fixes"}},{"before":"05e700af2ad346bfe9516dfd2083ac884787171c","after":"c22b09d095c7a8ac75696b701a1daeea951eb7a3","ref":"refs/heads/main","pushedAt":"2024-06-05T21:36:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":".github/workflows: Enable more tests on Ubuntu 22.04 by setting SHELL\n\nThe SHELL environment variable goes mysteriously missing from the\nruntime environment of the GitHub Actions workflow [1]. This breaks the\n'create' and 'enter' commands with:\n Error: failed to get the current user's default shell\n\n... and therefore tests involving them can't be run until this is\nresolved.\n\nIt's been a year since this problem was first encountered and no\nsolution is in sight. Therefore, it will be better to work around this\nby explicitly setting the SHELL environment variable on Ubuntu 22.04 to\nincrease the number of tests run by the CI.\n\nThe 'list' tests couldn't be enabled due to:\n $ bats test/system\n ...\n not ok 110 list: Containers and images\n # (from function `assert_line' in file\n test/system/libs/bats-assert/src/assert.bash, line 479,\n # in test file test/system/102-list.bats, line 502)\n # `assert_line --index 1 --partial\n \"registry.fedoraproject.org/fedora-toolbox:34\"' failed\n #\n # -- line does not contain substring --\n # index : 1\n # substring : registry.fedoraproject.org/fedora-toolbox:34\n # line : 5c5b1421750d quay.io/toolbx/ubuntu-toolbox:22.04\n 28 hours ago\n # --\n #\n ...\n\nThe 'run' tests couldn't be enabled due to:\n $ bats --print-output-on-failure --verbose-run test/system\n ...\n not ok 134 run: 'sudo id' inside the default container\n # (from function `assert_success' in file\n test/system/libs/bats-assert/src/assert.bash, line 114,\n # in test file test/system/104-run.bats, line 208)\n # `assert_success' failed\n # ~ ~/work/toolbox/toolbox/containers/toolbox\n # stderr:\n # runner is not in the sudoers file. This incident will be reported.\n #\n # -- command failed --\n # status : 1\n # output :\n # --\n #\n ...\n\nThe 'user' tests couldn't be enabled due to:\n $ bats test/system\n ...\n not ok 243 user: runner in passwd(5) inside the default container\n # (from function `assert_line' in file\n test/system/libs/bats-assert/src/assert.bash, line 509,\n # in test file test/system/206-user.bats, line 190)\n # `assert_line --regexp\n \"^$USER::$user_id_real:$user_id_real:$user_gecos:$HOME:$SHELL$\"'\n failed\n # ~ ~/work/toolbox/toolbox/containers/toolbox\n #\n # -- no output line matches regular expression --\n # regexp : ^runner::1001:1001:,,,:/home/runner:/bin/bash$\n # output (27 lines):\n # root:x:0:0:root:/root:/bin/bash\n # ...\n # runner::1001:127::/home/runner:/bin/bash\n # --\n #\n ...\n\nThe 'ulimit' tests couldn't be enabled due to:\n $ bats test/system\n ...\n not ok 271 ulimit: real-time non-blocking time (hard) in 3504ms\n # (from function `assert_line' in file\n test/system/libs/bats-assert/src/assert.bash, line 488,\n # in test file test/system/210-ulimit.bats, line 43)\n # `assert_line --index 0 \"$limit\"' failed\n # ~ ~/work/toolbox/toolbox/containers/toolbox\n #\n # -- line differs --\n # index : 0\n # expected : unlimited\n # actual :\n # --\n #\n ...\n\nThe 'dbus' tests couldn't be enabled due to:\n $ bats --print-output-on-failure --verbose-run test/system\n ...\n not ok 206 dbus: session bus inside the default container\n # (from function `assert_success' in file\n test/system/libs/bats-assert/src/assert.bash, line 114,\n # in test file test/system/211-dbus.bats, line 50)\n # `assert_success' failed\n # ~ ~/work/toolbox/toolbox/containers/toolbox\n # stderr:\n # bash: line 1: exec: gdbus: not found\n # Error: command gdbus not found in container ubuntu-toolbox-22.04\n #\n # -- command failed --\n # status : 127\n # output :\n # --\n #\n ...\n\n[1] https://github.com/orgs/community/discussions/59413\n\nhttps://github.com/containers/toolbox/pull/1507","shortMessageHtmlLink":".github/workflows: Enable more tests on Ubuntu 22.04 by setting SHELL"}},{"before":"3de56c0c31788df0505ce01dcae5d3d9a5588412","after":"05e700af2ad346bfe9516dfd2083ac884787171c","ref":"refs/heads/main","pushedAt":"2024-06-05T21:00:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"test/system: Rewrite a test using the standard Bats helpers\n\nThe test was earlier rewritten in commit b0beb68255374392 with custom\ncode in the hope that it would make it more reliable. The test has\nproven to be reliable in recent times, and the cause for its past\nunreliability is unclear. Therefore, it will be better to remove the\ncustom code in favour of the standard Bats helpers for the sake of\nconsistency and readability.\n\nUntil Bats 1.10.0, 'run --keep-empty-lines' had a bug where it counted\nthe trailing newline on the last line as a separate line [1]. However,\nBats 1.10.0 is only available in Fedora >= 39 and is absent from Fedora\n38.\n\n[1] Bats commit 6648e2143bffb933\n https://github.com/bats-core/bats-core/commit/6648e2143bffb933\n https://github.com/bats-core/bats-core/issues/708\n\nhttps://github.com/containers/toolbox/pull/1506","shortMessageHtmlLink":"test/system: Rewrite a test using the standard Bats helpers"}},{"before":"d8dc8bb0529c8b97f03f59ae678d16b8e4978e5b","after":"3de56c0c31788df0505ce01dcae5d3d9a5588412","ref":"refs/heads/main","pushedAt":"2024-06-05T16:30:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump github.com/sirupsen/logrus to 1.9.3\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1503","shortMessageHtmlLink":"build: Bump github.com/sirupsen/logrus to 1.9.3"}},{"before":"37c5c9fbe62b66697a49ff7ceadabb1d274b1d2b","after":"d8dc8bb0529c8b97f03f59ae678d16b8e4978e5b","ref":"refs/heads/main","pushedAt":"2024-06-05T16:28:09.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump github.com/fsnotify/fsnotify to 1.7.0\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1501","shortMessageHtmlLink":"build: Bump github.com/fsnotify/fsnotify to 1.7.0"}},{"before":"96260744ab09f4761ebad1f83258ffed6020c299","after":"37c5c9fbe62b66697a49ff7ceadabb1d274b1d2b","ref":"refs/heads/main","pushedAt":"2024-06-05T14:47:37.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump golang.org/x/sys to 0.19.0\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1502","shortMessageHtmlLink":"build: Bump golang.org/x/sys to 0.19.0"}},{"before":"6239f32ec7f132dd28c914e258d690985527c8b8","after":"96260744ab09f4761ebad1f83258ffed6020c299","ref":"refs/heads/main","pushedAt":"2024-06-04T14:55:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"travier","name":"Timothée Ravier","path":"/travier","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/64795720?s=80&v=4"},"commit":{"message":"images: ubuntu: Add 24.04 as most recent LTS\n\nSigned-off-by: Ievgen Popovych ","shortMessageHtmlLink":"images: ubuntu: Add 24.04 as most recent LTS"}},{"before":"815d7f60354dad2d0ce675025b1e2856e64df8a3","after":"6239f32ec7f132dd28c914e258d690985527c8b8","ref":"refs/heads/main","pushedAt":"2024-06-04T08:01:39.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"build: Bump github.com/stretchr/testify to 1.9.0\n\nThe src/go.sum file was updated with 'go mod tidy'.\n\nhttps://github.com/containers/toolbox/pull/1500","shortMessageHtmlLink":"build: Bump github.com/stretchr/testify to 1.9.0"}},{"before":"8563cdfbd0d647bdd9e026860ca65bc1396773cc","after":"815d7f60354dad2d0ce675025b1e2856e64df8a3","ref":"refs/heads/main","pushedAt":"2024-06-03T15:48:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/run: Show the entry point's debug logs & errors in 'enter' & 'run'\n\nUntil now, if the entry point of a Toolbx container encountered an\nerror, while starting the container as part of the 'enter' and 'run'\ncommands, the specific error wouldn't be presented to the user by those\ncommands. Instead, the user would have to use 'podman start --attach'\nor 'podman logs' to retrieve it. Same for the debug logs coming from\nthe entry point.\n\nThe lack of relevant information and insight made it difficult for users\nto debug their containers or file high quality bug reports.\n\nThis is addressed by using 'podman logs', as part of the 'enter' and\n'run' commands to fetch everything from the entry point's standard error\nand output streams, which means both debug logs and errors, separating\nthem out, and presenting them to the user depending on the chosen debug\nor verbosity level.\n\nThe debug logs from 'podman logs' are in the logfmt format [1], because\nthat's the default behaviour of Logrus when a terminal device is not\nattached [2]. Logs without a 'level' key are assumed to be errors.\n\nIt's assumed that the 'podman logs' process can crash or terminate,\nbecause the entry point crashed or got killed due to an out-of-band\n'podman stop' or encountered an error. Under such circumstances, the\n'enter' and 'run' commands will terminate immediately if they have\nalready read any error coming from the entry point, if not then they\nwill wait for the timeout.\n\nIf the entry point successfully initializes the Toolbx container, then\n'enter' and 'run' will cancel the 'podman logs' process, parse and show\nany pending logs, and then terminate.\n\nIt's possible to detect the creation of the initialization stamp file\nbefore all that was written by the entry point has been read from\n'podman logs', causing all or some of the debug logs to be not shown as\npart of 'enter' and 'run'. This is because the creation of the\ninitialization stamp file is detected by a quick inotify(7) watch within\nthe 'enter' and 'run' processes, while the logs slowly change hands\nacross multiple entities - from the entry point to conmon(8) to the\nsystemd journal to 'podman logs'.\n\n[1] https://brandur.org/logfmt\n\n[2] https://pkg.go.dev/github.com/sirupsen/logrus#section-readme\n\nhttps://github.com/containers/toolbox/issues/750","shortMessageHtmlLink":"cmd/run: Show the entry point's debug logs & errors in 'enter' & 'run'"}},{"before":"d8289fb8322f3145128bdc498be26084e5d56134","after":"8563cdfbd0d647bdd9e026860ca65bc1396773cc","ref":"refs/heads/main","pushedAt":"2024-05-27T12:41:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/utils: Remove redundant code\n\nThe default split function for bufio.Scanner is bufio.ScanLines [1].\nThere's no need to explicitly set it.\n\nFallout from 6e538284ade4907c48b090a7d6e375d38287e734\n\n[1] https://pkg.go.dev/bufio#Scanner.Split\n\nhttps://github.com/containers/toolbox/pull/1494","shortMessageHtmlLink":"cmd/utils: Remove redundant code"}},{"before":"74d4fcf00c6ec3d1954a87da60b38fdc5eed7b2d","after":"d8289fb8322f3145128bdc498be26084e5d56134","ref":"refs/heads/main","pushedAt":"2024-05-22T11:58:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"Optimize 'enter' and 'run' for a container getting initialized\n\nCurrently, the 'enter' and 'run' commands poll at one second intervals\nto check if the Toolbx container's entry point has created the\ninitialization stamp file to indicate that the container has been\ninitialized. This came from the POSIX shell implementation [1], where\nit was relatively easier to poll than to use inotify(7) to monitor the\nfile system.\n\nThe problem with polling is that the interval is always going to be\neither too short and waste resources or too long and cause delays. The\ncurrent one second interval is sufficiently long to add a noticeable\ndelay to the 'enter' and 'run' commands.\n\nIt will be better to use inotify(7) to monitor the file system, which is\nquite easy to do with the Go implementation, so that the commands can\nproceed as soon as the initialization stamp file is available, instead\nof waiting for the polling interval to pass.\n\nThere's a fallback to polling, as before, when the operating system is\nsuffering from a shortage of resources needed for inotify(7). This code\npath can be forced through the TOOLBX_RUN_USE_POLLING environment\nvariable for testing. Setting this environment variable disables some\ncode to ensure that the polling ticker is actually used, because,\notherwise, the race between the creation and detection of the\ninitialization stamp file makes it difficult to test the fallback.\n\n[1] Commit d3e0f3df06d3f5ac\n https://github.com/containers/toolbox/commit/d3e0f3df06d3f5ac\n https://github.com/containers/toolbox/pull/305\n\nhttps://github.com/containers/toolbox/issues/1070","shortMessageHtmlLink":"Optimize 'enter' and 'run' for a container getting initialized"}},{"before":"af56286ab2c27368c38f957cb991f91041b5aee7","after":"74d4fcf00c6ec3d1954a87da60b38fdc5eed7b2d","ref":"refs/heads/main","pushedAt":"2024-05-20T09:27:24.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/run: Optimize 'enter' and 'run' for an already running container\n\nCurrently, the 'enter' and 'run' commands always invoke 'podman start'\neven if the Toolbx container's entry point is already running. There's\nno need for that. The commands already invoke 'podman inspect' to find\nout if the org.freedesktop.Flatpak.SessionHelper D-Bus service needs to\nbe started. Thus, they already have what is needed to find out if the\ncontainer is stopped and 'podman start' is necessary before it can be\nused with 'podman exec', or if it's already running.\n\nThe unconditional 'podman start' invocation was followed by a second\n'podman inspect' invocation to find out if the 'podman start' managed to\nstart the container's entry point. There's no need for this second\n'podman inspect' either, just like the 'podman start', when it's already\nknown from the first 'podman inspect' that the container is running.\n\nThe extra 'podman start' and 'podman inspect' invocations are\nsufficiently expensive to add a noticeable overhead to the 'enter' and\n'run' commands. It's common to use a container that's already running,\njust like having multiple terminals within the same working directory,\nand terminal emulation applications like Ptyxis try to make it easier to\ndo so [1]. Therefore, it's worth optimizing this code path.\n\n[1] https://gitlab.gnome.org/chergert/ptyxis\n https://flathub.org/apps/app.devsuite.Ptyxis\n\nhttps://github.com/containers/toolbox/issues/1070","shortMessageHtmlLink":"cmd/run: Optimize 'enter' and 'run' for an already running container"}},{"before":"ec7eb59bb058c12d44413535445b2795af22814e","after":"af56286ab2c27368c38f957cb991f91041b5aee7","ref":"refs/heads/main","pushedAt":"2024-05-19T22:23:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"debarshiray","name":"Debarshi Ray","path":"/debarshiray","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3208107?s=80&v=4"},"commit":{"message":"cmd/run, test/system: Fix typo\n\nFallout from 238f2451e7d7d54adaf73bc5ec548731df5eb242\n\nhttps://github.com/containers/toolbox/pull/1493","shortMessageHtmlLink":"cmd/run, test/system: Fix typo"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEs08XewA","startCursor":null,"endCursor":null}},"title":"Activity · containers/toolbox"}