From 7580e50f251bd322d37685472e58089377583878 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 8 Nov 2024 21:50:14 -0500 Subject: [PATCH] Bump Docker image to Debian 12 for `pure-rust-build` This tests with various additional packages (tools and libraries) installed whose absence affected the `pure-rust-build` job, to establish the conditions under which it fails; then bumps the Debian 10 buster image to Debian 12 bookworm, becuase Debian 10 is past long-term support, and its Docker image is no longer being updated (see below for details); then redoes the original tests in reverse order to verify that each combination of packages had the same effect. This is several commit squashed together. (The shown reverted commit hashes may at some point become unavailable on the remote.) * Temporarily break `pure-rust-build` to verify that it can fail This makes the `pure-rust-build` CI job attempt to install gitoxide from `.` with implicit `max`, rather than explicit `max-pure`. This job, introduced in ed4deac (#624), is intended to identify unintended C toolchain dependencies. If, without the current breakage, it is (still) capable of doing this, then as temporarily modified here, it should fail. If it fails and the error messages clearly relate to the absence of components necessary to build/use C libraries, then it is probably (still) working. Assuming it fails as expected, the Debian version can then be increased, and then the changes here (and in any follow-up testing adjustments) undone: if that fails, then succeeds, respectively, then the job's functionality is most likely preserved across the upgrade. * Temporarily add `cmake` to `pure-rust-build` job This needs to be undone, since `max-pure` definitely should not require `cmake`. The reason for this temporary change is to figure out how robust the test is: currently, it fails on `max` as it should, but reports the absence of `cmake` as the reason. For the test to be robust, its failure should be for a deeper reason, and preferably even implicate the `minimal` Rust profile. * Temporarily add `build-essential` to `pure-rust-build` job This still installs `gcc` and `libc-dev` because `build-essential` depends on them, but this als installs packages such as `g++` and `make`, the absence of which seems to trigger failure before the effects of installing the `minimal` toolchain do (if they do). As in the previous change, this will of course need to be undone. * Temporarily add `pkgconf` and `libssl-dev` to `pure-rust-build` job This too must of course be undone. Like the last couple temporary changes, this is to see if the significance of using the `minimal` Rust toolchain can be identified. Note: This causes the test to pass, even with the `minimal` Rust toolchain. That's okay. These effects can be compared to those of the reverse incremental changes to be made after increasing the Debian image version. * Bump Docker image to Debian 12 for `pure-rust-build` It was previously Debian 10 buster. That version of Debian is past long term support (LTS), and although third-party Freexian ELTS updates are publicly available, the image on Docker Hub has not received any updates since the end of its LTS period. In contrast, the Debian 11 bullseye and Debian 12 bookworm images continue to be regularly updated, as of this writing. * Revert "Temporarily add `pkgconf` and `libssl-dev` to `pure-rust-build` job" This reverts commit 2ed0a370c2ac063f62cc0fa416a147fc9a550c29. * Revert "Temporarily add `build-essential` to `pure-rust-build` job" This reverts commit d9e122815c31b239f706657ed0095f69fbc1d3f1. * Revert "Temporarily add `cmake` to `pure-rust-build` job" This reverts commit 26ebbe6b454492102b863f447d94c0ca2db8907f. * Revert "Temporarily break `pure-rust-build` to verify that it can fail" This reverts commit b2e9289ce8d6cb45b07f7550f9db76d80d67b4d0. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 523e909c8e2..503dde72a8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ on: jobs: pure-rust-build: runs-on: ubuntu-latest - container: debian:buster + container: debian:bookworm steps: - uses: actions/checkout@v4 - name: Prerequisites