Add binary build support for Heroku-26#2056
Merged
Conversation
This adds support for building the binaries for the upcoming Heroku-26 stack based on Ubuntu 26.04. A later PR will add support for the stack to the buildpack itself, once the Heroku build system supports Heroku-26 (since until that point we can't run Hatchet in CI anyway). Dry-run test builds using this branch succeeded without any other changes being required to the `Dockerfile` or build scripts. eg: https://github.com/heroku/heroku-buildpack-python/actions/runs/23341280024 https://github.com/heroku/heroku-buildpack-python/actions/runs/23341295487 GUS-W-20775546.
Since it's no longer in `heroku/heroku:26-build` as it was previously a transitive dependency and no longer pulled into the image. It's required by the CPython `crypt` module - though only for Python 3.12 and older, since the module was removed in 3.13: https://docs.python.org/3.13/whatsnew/3.13.html#whatsnew313-pep594 Fixes: ``` *** WARNING: renaming "_crypt" since importing it failed: /tmp/src/build/lib.linux-x86_64-3.10/_crypt.cpython-310-x86_64-linux-gnu.so: undefined symbol: crypt ... Following modules built successfully but were removed because they could not be imported: _crypt ``` The binary test script has been updated to explicitly check that the `crypt` module imports correctly (since the build itself only emits a warning).
runesoerensen
approved these changes
Mar 20, 2026
Member
Author
|
Initial binaries (enough for the tests to pass; given Ubuntu 26.04 is still pre-GA and so we'll need to regenerate all the binaries again later) triggered with: for v in 3.10.0 3.10.20 3.11.15 3.12.13 3.13.13 3.14.0 3.14.4; do
gh workflow run build_python_runtime.yml -F "python_version=${v}" -F "stack=heroku-26"
done |
edmorley
added a commit
that referenced
this pull request
Apr 9, 2026
Following on from #2056 (which added support for building and releasing Python binaries for Heroku-26), this adds support for the new stack to the buildpack itself. Note: Since Ubuntu 26.04 isn't GA yet, Heroku-26 is currently only available on Heroku for use by internal users. GUS-W-20775616.
This was referenced Apr 9, 2026
edmorley
added a commit
that referenced
this pull request
Apr 9, 2026
Following on from #2056 (which added support for building and releasing Python binaries for Heroku-26), this adds support for the new stack to the buildpack itself. Note: Since Ubuntu 26.04 isn't GA yet, Heroku-26 is currently only available on Heroku for use by internal users. GUS-W-20775616.
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.
This adds support for building the binaries for the upcoming Heroku-26 stack based on Ubuntu 26.04.
A later PR will add support for the stack to the buildpack itself, once the Heroku build system supports Heroku-26 (since until that point we can't run Hatchet in CI anyway).
The
libcrypt-devlibrary had to be added to theDockerfileused for binary building, since the headers package is no longer inheroku/heroku:26-buildas it was previously only a transitive dependency in the build image, and with the upstream Ubuntu 26.04 package changes is now no longer pulled in. (From searching it doesn't appear to be widely used, so I don't think it's worth adding back to the Heroku-26 build image.)Doing so fixes this warning on Python 3.12 and older (the
cryptmodule only exists in older Python versions):Dry-run test builds using this branch succeeded. e.g.:
https://github.com/heroku/heroku-buildpack-python/actions/runs/23343385460
https://github.com/heroku/heroku-buildpack-python/actions/runs/23343379302
GUS-W-20775546.