Skip to content

Conversation

@sairon
Copy link
Member

@sairon sairon commented Nov 13, 2025

Do not build base images for deprecated architectures. This means removal of build for all armv7, armhf and i386 image variants. Since there is no Raspbian image for any of the supported architectures, these base images are removed completely.

To make builds faster, aarch64 images are now built on the arm runners.

Not to be merged before last 2025.11.x Core patch release, in case that we need to update the base image for a bug fix.

Do not build base images for deprecated architectures. This means removal of
build for all armv7, armhf and i386 image variants. Since there is no Raspbian
image for any of the supported architectures, these base images are removed
completely.
As we're now effectively building only aarch64 or amd64, we can simply pass the
arch to the builder image argument.
@sairon sairon force-pushed the drop-deprecated-archs branch from 7d1f6d8 to 3c59f55 Compare November 13, 2025 13:25
Copy link
Member

@cdce8p cdce8p left a comment

Choose a reason for hiding this comment

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

Thanks for preparing this one! Looking forward to dropping these.

Left a few suggestion below.

--
The new Github UI doesn't seem to handle suggestions quite right yet. Not sure they will all apply. Might be best to commit them manually.

DEBIAN_LATEST: "trixie"
UBUNTU_LATEST: "24.04"
RASPBIAN_LATEST: "trixie"
PYTHON_LATEST: "3.13"
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
PYTHON_LATEST: "3.13"
PYTHON_LATEST: "3.14"

The default for Python should be updated to 3.14. It was deferred previously as 3.14 was only added from amd64 and aarch64.

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe let's do it as a separate PR, so it's more prominent in the changelog?

Comment on lines 29 to 30
| aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 |
| amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 |
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
| aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 |
| amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 |
| aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.14-alpine3.22 |
| amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.14-alpine3.22 |

Copy link
Member Author

Choose a reason for hiding this comment

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

Same as above.

name: Build ${{ matrix.arch }} alpine ${{ matrix.version }} base image
needs: init
runs-on: *runs-on-ubuntu
runs-on: &builder-runs-on ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
runs-on: &builder-runs-on ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}
runs-on: ${{ matrix.os }}

I'd suggest to use matrix.include instead. This looks cleaner than the ternary expression here. Will leave a suggestion below.

Copy link
Member Author

Choose a reason for hiding this comment

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

IMHO it's a matter of personal preference, I find this more readable than wrapping my head around how the matrix looks like with overrides and additions in include - although with just two combinations it's not that much convoluted.

Copy link
Contributor

Choose a reason for hiding this comment

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

matrix.include is more durable. Add a comment if you need to explain the code what is the expected range of values.

@sairon sairon requested a review from cdce8p November 20, 2025 13:07
@sairon
Copy link
Member Author

sairon commented Nov 20, 2025

@cdce8p Implemented your suggestions. I'll wait with the bump to Python 3.14 by default after this gets merged (which we can already do tomorrow), so we don't have to run the slow and unnecessary builds.

@cdce8p
Copy link
Member

cdce8p commented Nov 20, 2025

@cdce8p Implemented your suggestions. I'll wait with the bump to Python 3.14 by default after this gets merged (which we can already do tomorrow), so we don't have to run the slow and unnecessary builds.

Works for me! The changes here look good, can't wait until we finally drop these.

One side note, would you mind removing the @ mention for me in the squash merge commit message? It's often times pretty annoying to be notified just when some random forks rebases main and one commit contains my Github handle with @. AFAIK the Github team is working to fix that at some point, hopefully soon. As a general rule I usually tend to avoid '@' mentions in commit messages all together.

@sairon sairon marked this pull request as ready for review November 21, 2025 15:09
Copy link
Member

@agners agners left a comment

Choose a reason for hiding this comment

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

LGTM!

sairon added a commit to home-assistant/docker that referenced this pull request Nov 21, 2025
After home-assistant/docker-base#324 there won't be base image builds
for the deprecated architectures. Techically we could still build an
image here for those architectures by using the last available tag
(`*-2025.11.1`), but since there's currently no need for that, simply
drop them.
@sairon
Copy link
Member Author

sairon commented Nov 21, 2025

Core 2025.11.3 is being shipped, so let's merge this!

@sairon sairon merged commit 57fa69e into master Nov 21, 2025
40 checks passed
@sairon sairon deleted the drop-deprecated-archs branch November 21, 2025 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants