Skip to content

chore: support Ubuntu 26.04 - #574

Merged
lvaroqui merged 2 commits into
mainfrom
cod-3305-support-ubuntu-2604
Oct 13, 2026
Merged

lvaroqui merged 2 commits into
mainfrom
cod-3305-support-ubuntu-2604

Conversation

@lvaroqui

@lvaroqui lvaroqui commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Run the CI on Ubuntu 26.04 alongside 24.04: the unit tests and the basic run test on ubuntu-24.04 and ubuntu-26.04 runners, and the executor tests on ubuntu:24.04 and ubuntu:26.04 base images.

The executor tests run in Docker, so the Dockerfile now takes a BASE_IMAGE build argument, set by tests/docker/run.sh from CODSPEED_TEST_BASE_IMAGE (default ubuntu:24.04). Each base image gets its own image tags, setup container and target volume: binaries built against 26.04's glibc do not run in a 24.04 container, and the setup image cleanup would otherwise delete the other base's image.

The workflow sets CODSPEED_VALGRIND_BUILD_FROM_SOURCE=false (forwarded into the test containers), so a system we publish no valgrind package for fails instead of falling back to a source build that takes minutes and hides the missing package. No valgrind-codspeed package is published for 26.04 yet, so the simulation runs on 26.04 are expected to fail until it is: the 14 simulation executor tests and the whole basic-run-test (ubuntu-26.04) job. Note that codspeed setup only warns when valgrind cannot be installed, so the failure surfaces at codspeed run, not at setup.

With the fallback left on, the full executor suite passes locally on ubuntu:26.04 (valgrind-codspeed built from source, every shard green).

Refs COD-3305, which stays open until valgrind-codspeed is published for 26.04.

@codspeed

codspeed Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 70.23%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚠️ 8 benchmarks spent significant time in system calls

System calls cannot be consistently instrumented, so they are not included in the measure, which understates the real cost. Please switch to the Walltime instrument to accurately measure system calls.

Measurement and system calls

ℹ️ 6 benchmarks have no flame graph

The flamegraph could not be generated because we failed to resolve the symbols in the profiling trace. This happens when we fail to harvest information about language frames.

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 1 improved benchmark
❌ 2 (👁 2) regressed benchmarks
✅ 38 untouched benchmarks
⏩ 6 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
⚡ WallTime memtrack track dd 1.2 s 1.1 s +11.72%
👁 Memory sleep 1 15.6 KB 103.4 KB -84.92%
👁 ⚠️ Simulation sleep 1 245.4 µs 1,566.4 µs -84.33%

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing cod-3305-support-ubuntu-2604 (4f33c00) with main (5ff86d7)

Open in CodSpeed

Footnotes

  1. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@lvaroqui
lvaroqui force-pushed the cod-3305-support-ubuntu-2604 branch from 694b5ce to 3230d82 Compare October 8, 2026 15:22
@lvaroqui lvaroqui changed the title ci: test on Ubuntu 26.04 chore: support Ubuntu 26.04 Oct 9, 2026
@lvaroqui
lvaroqui force-pushed the cod-3305-support-ubuntu-2604 branch 6 times, most recently from 761a30d to 2bff3c6 Compare October 13, 2026 09:49
@lvaroqui
lvaroqui marked this pull request as ready for review October 13, 2026 09:57
@greptile-apps

greptile-apps Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High impact] No new actionable issue remains; the README update appears safe to merge.

Summary

Adds Ubuntu 26.04 coverage, package pins, and support documentation.

  • CodSpeed recognizes Ubuntu 26.04 when choosing Valgrind packages.
  • CI now runs CodSpeed checks on Ubuntu 26.04.
  • Docker executor tests can use separate Ubuntu base images.
  • Sudo keeps command environment variables on Ubuntu 26.04.

Previous-thread context:

  • lvaroqui accepted running unit tests on one Ubuntu version because they do not depend on the OS. The host smoke-test coverage was restored.
  • Both Ubuntu 26.04 targets now appear in ALL_VALGRIND_TARGETS.
  • lvaroqui accepted omitting the source-build setting from the setup-image hash because CI disables source builds and does not cache Docker images. The previous thread treated the local-cache concern as non-actionable.
  • lvaroqui marked missing-package failures on Ubuntu 26.04 as expected until publication.

Reviews (5) · Last reviewed commit: "docs: list Ubuntu 26.04 as officially su..." · Reviewed by Greptile

Comment thread .github/workflows/ci.yml
@lvaroqui
lvaroqui force-pushed the cod-3305-support-ubuntu-2604 branch from 2bff3c6 to d887e80 Compare October 13, 2026 10:42
Comment thread src/binary_pins.rs
@lvaroqui
lvaroqui force-pushed the cod-3305-support-ubuntu-2604 branch from d887e80 to 5734419 Compare October 13, 2026 12:33
Comment thread tests/docker/run.sh

@GuillaumeLagrange GuillaumeLagrange left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

olgtm

Comment thread .github/workflows/ci.yml Outdated
The executor tests always ran in an Ubuntu 24.04 container. The Dockerfile
now takes a BASE_IMAGE build argument, set from CODSPEED_TEST_BASE_IMAGE
(default ubuntu:24.04), so the suite can run on other releases such as
Ubuntu 26.04.

Each base image gets its own image tags, setup container and target
volume: binaries built against a newer glibc do not run on an older one,
and the setup image cleanup no longer deletes another base's image.
`just clean-integ` removes them all by name filter.

CODSPEED_VALGRIND_BUILD_FROM_SOURCE is forwarded to the containers when
set, so the valgrind source-build fallback can be controlled in the tests.

Refs COD-3305

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lvaroqui
lvaroqui force-pushed the cod-3305-support-ubuntu-2604 branch from 5734419 to 64e1085 Compare October 13, 2026 13:45
Ubuntu 20.04 and Debian 11 have no patched valgrind package and are
rejected by the runner, so drop them from the supported list.

Refs COD-3305
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lvaroqui
lvaroqui merged commit aa52796 into main Oct 13, 2026
66 checks passed
@lvaroqui
lvaroqui deleted the cod-3305-support-ubuntu-2604 branch October 13, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants