Skip to content

Commit 57ce06d

Browse files
authored
Add support for Ubuntu 26.04 (#550)
Adds support for Ubuntu 26.04 (and thus Heroku-26 / `heroku/builder:26`). Note: Ubuntu 26.04 is not yet GA upstream, so we don't yet recommend using it in production. See: https://documentation.ubuntu.com/release-notes/26.04/schedule/ GUS-W-20775619.
1 parent 9ac9977 commit 57ce06d

4 files changed

Lines changed: 22 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
fail-fast: false
4646
matrix:
47-
builder: ["builder:24", "builder:22"]
47+
builder: ["builder:26", "builder:24", "builder:22"]
4848
arch: ["amd64", "arm64"]
4949
exclude:
5050
- builder: "builder:22"
@@ -86,6 +86,9 @@ jobs:
8686
# only those and not the unit tests, via the `--ignored` option. On the latest stack
8787
# we run all integration tests, but on older stacks we only run stack-specific tests.
8888
- name: Run integration tests (all tests)
89+
# TODO: Switch to builder:26 once Ubuntu 26.04 is GA and also Python and package manager
90+
# versions have changed, so that we have a suitable historic buildpack version that both
91+
# supports the new stack, and has enough version changes for the cache invalidation tests.
8992
if: matrix.builder == 'builder:24'
9093
run: cargo test --locked -- --ignored --test-threads $(($(nproc)+1))
9194
- name: Run integration tests (stack-specific tests only)

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- Added support for Ubuntu 26.04 (and thus Heroku-26 / `heroku/builder:26`). ([#550](https://github.com/heroku/buildpacks-python/pull/550))
13+
1014
## [6.3.0] - 2026-04-07
1115

1216
### Changed

buildpack.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ version = "22.04"
2323
name = "ubuntu"
2424
version = "24.04"
2525

26+
[[targets.distros]]
27+
name = "ubuntu"
28+
version = "26.04"
29+
2630
[[targets]]
2731
os = "linux"
2832
arch = "arm64"
@@ -31,5 +35,9 @@ arch = "arm64"
3135
name = "ubuntu"
3236
version = "24.04"
3337

38+
[[targets.distros]]
39+
name = "ubuntu"
40+
version = "26.04"
41+
3442
[metadata.release]
3543
image = { repository = "docker.io/heroku/buildpack-python" }

tests/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ use libcnb_test::BuildConfig;
1616
use std::env;
1717
use std::path::Path;
1818

19+
// TODO: Switch to builder:26 once Ubuntu 26.04 is GA and also Python and package manager
20+
// versions have changed, so that we have a suitable historic buildpack version that both
21+
// supports the new stack, and has enough version changes for the cache invalidation tests.
1922
const DEFAULT_BUILDER: &str = "heroku/builder:24";
2023

2124
fn default_build_config(fixture_path: impl AsRef<Path>) -> BuildConfig {
@@ -26,7 +29,9 @@ fn default_build_config(fixture_path: impl AsRef<Path>) -> BuildConfig {
2629
// to allow configuring the target arch independently of the builder name (eg via env var).
2730
let target_triple = match builder.as_str() {
2831
// Compile the buildpack for ARM64 iff the builder supports multi-arch and the host is ARM64.
29-
"heroku/builder:24" if cfg!(target_arch = "aarch64") => "aarch64-unknown-linux-musl",
32+
"heroku/builder:24" | "heroku/builder:26" if cfg!(target_arch = "aarch64") => {
33+
"aarch64-unknown-linux-musl"
34+
}
3035
_ => "x86_64-unknown-linux-musl",
3136
};
3237
config.target_triple(target_triple);

0 commit comments

Comments
 (0)