Vagrant: upgrade the VMs to Ubuntu 26.04 - #1380
Merged
gusthoff merged 4 commits intoSep 12, 2026
Merged
Conversation
Both VMs move from `bento/ubuntu-24.04` 202510.26.0 to `bento/ubuntu-26.04` 202606.01.0, the current LTS box. The pinned package lists still describe 24.04 at this point and cannot describe the new release: its archive carries none of those versions, so the pinned install would abort before a new list could be captured. The first provision on the new box therefore needs `VM_APT_PIN=0`, after which the lists are recaptured. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both lists now record the package set of a VM provisioned on the new base box, replacing the 24.04 versions that its archive does not carry. The kernel moves from the 6.8 series to 7.0, texlive from 2023 to 2025, and the system Python to 3.14. Captured from VMs whose output was checked first. A full site build succeeded. Both VMs were then destroyed and re-provisioned with pinning enabled: the lists installed from scratch without a missing version, and recapturing afterwards reproduced them byte for byte. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CI is meant to mirror the VMs, which now run Ubuntu 26.04 and its system Python 3.14. Running the workflows on 24.04 with Python 3.12 leaves a divergence that can hide a dependency problem until someone meets it locally. Seven workflows move to `ubuntu-26.04`, and the five that pin an interpreter move to 3.14. The two axes are independent: `actions/setup-python` fetches the version it is given regardless of the runner image, so the interpreter would not have followed the runner on its own. `codeql-analysis.yml` is unchanged; it uses `ubuntu-latest`. The `ubuntu-26.04` image is currently published as a preview. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The epub VM pulled Node.js 22 from NodeSource while the web VM pulled 24 and every CI workflow requests 24.x. Both VMs run the same JavaScript toolchain -- `pnpm install --frozen-lockfile` on provisioning, and webpack during a site build -- so there is no reason for them to differ, and the difference makes an epub-only build failure harder to reason about. Point the epub provisioner at `setup_24.x` and recapture its pinned list, which now records the same `nodejs=24.21.0-1nodesource1` as the web VM. Both halves are required together: NodeSource publishes one repository per major release, so the 24.x repository does not carry the 22.23.2 build the old list named, and provisioning with pinning enabled would have failed to find it. Recapturing changed that one line and nothing else. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Vagrant: upgrade the VMs to Ubuntu 26.04
Why
The VMs were on
bento/ubuntu-24.04. This moves them to the currentLTS, and brings CI along so the two stay in step.
What changed
bento/ubuntu-26.04202606.01.0, and the pinnedpackage lists are recaptured for the new release: the kernel moves
from the 6.8 series to 7.0, texlive from 2023 to 2025, and the system
Python to 3.14.
ubuntu-26.04with Python 3.14, matching the VMs.actions/setup-pythonfetches the version it is given regardless ofthe runner image, so the interpreter pin had to move separately.
Node 22 while the web VM and CI used 24; its pinned list is recaptured
to match, since NodeSource publishes one repository per major release
and the 24.x repository does not carry the build the old list named.
Testing & validation
PDFs and all EPUBs.
the lists installed from scratch, and recapturing afterwards
reproduced them byte for byte.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com