chore: pin virtualenv<21 for python 3.9#305
Merged
godobyte merged 1 commit intoOpenJobDescription:mainlinefrom Mar 17, 2026
Merged
chore: pin virtualenv<21 for python 3.9#305godobyte merged 1 commit intoOpenJobDescription:mainlinefrom
godobyte merged 1 commit intoOpenJobDescription:mainlinefrom
Conversation
seant-aws
previously approved these changes
Mar 17, 2026
AlexTranAmz
approved these changes
Mar 17, 2026
jericht
reviewed
Mar 17, 2026
epmog
reviewed
Mar 17, 2026
Signed-off-by: Godot Bian <13778003+godobyte@users.noreply.github.com>
|
epmog
approved these changes
Mar 17, 2026
seant-aws
approved these changes
Mar 17, 2026
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.



What was the problem/requirement? (What/Why)
virtualenv21+ removed thepropose_interpretersattribute fromvirtualenv.discovery.builtin, which breakshatch env createon Python 3.9 with the error:This prevents building and testing on Python 3.9 environments.
What was the solution? (How)
Pin
virtualenv<21only where Python 3.9 is used:pipeline/build.sh— added runtime Python version detection to conditionally pin only on 3.9testing_containers/localuser_sudo_environment/Dockerfile— pinned (usespython:3.9-bookwormbase image)testing_containers/ldap_sudo_environment/Dockerfile— pinned (usespython:3.9-bookwormbase image).github/workflows/release_publish.yml— pinned in the build job that targets Python 3.9Non-3.9 environments are unaffected and will continue to use the latest virtualenv.
What is the impact of this change?
No impact on functionality or public interfaces. This only affects build/test tooling to restore compatibility with Python 3.9.
How was this change tested?
See DEVELOPMENT.md for information on running tests.
Verified with Docker using the
localuser_sudo_environmentcontainer (Python 3.9):hatch env createsucceeds, full test suite passes (544 passed, 28 skipped)hatch env createfails withmodule 'virtualenv.discovery.builtin' has no attribute 'propose_interpreters'Verified
pipeline/build.shversion detection logic:9, installsvirtualenv<21(gets 20.39.1)Was this change documented?
Is this a breaking change?
No. This change only affects internal build and test tooling. No public interfaces are modified.
Does this change impact security?
No. This pins an existing build dependency to a known-good version range. No files, directories, or permissions are created or modified.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.