Repository navigation
[services, hailtop] Restore "shift supported python versions from 3.10-13 to 3.12-14" - #15663
Merged
hail-ci-robot merged 3 commits intoAug 11, 2026
Merged
Conversation
Comment on lines
+5
to
+6
| if version_info < (3, 11): | ||
| raise EnvironmentError(f'Hail requires Python 3.11 or later, found {version_info.major}.{version_info.minor}') |
Contributor
There was a problem hiding this comment.
Version check inconsistency: The runtime check allows Python 3.11+, but setup.py and setup-hailtop.py require Python 3.12+, and docker.py also enforces 3.12+. This creates an inconsistent state where Python 3.11 users could install Hail (passing the runtime check) but fail at build/docker image creation time. Should be:
if version_info < (3, 12):
raise EnvironmentError(f'Hail requires Python 3.12 or later, found {version_info.major}.{version_info.minor}')This aligns with the PR description stating "3.11 will NOT continue to be supported" and matches the python_requires=">=3.12" in both setup files.
Suggested change
| if version_info < (3, 11): | |
| raise EnvironmentError(f'Hail requires Python 3.11 or later, found {version_info.major}.{version_info.minor}') | |
| if version_info < (3, 12): | |
| raise EnvironmentError(f'Hail requires Python 3.12 or later, found {version_info.major}.{version_info.minor}') | |
Spotted by Graphite
Is this helpful? React 👍 or 👎 to let us know.
ehigham
approved these changes
Aug 10, 2026
ehigham
left a comment
Member
There was a problem hiding this comment.
Splendid, excellent, first-rate.
cjllanwarne
force-pushed
the
revert-15660-revert-15603-cjl_python_version_bump
branch
from
August 11, 2026 15:53
cfd157b to
a8366fd
Compare
hail-ci-robot
deleted the
revert-15660-revert-15603-cjl_python_version_bump
branch
August 11, 2026 21:16
kush-chandra
pushed a commit
to kush-chandra/hail
that referenced
this pull request
Aug 19, 2026
…0-13 to 3.12-14" (hail-is#15663) Reverts hail-is#15660; restores the changes in hail-is#15603. Should be ready to merge again after the dataproc update (hail-is#15662) --- ## Change Description Updates the default python version to 3.12 and shifts the list of supported versions to 3.12, 3.13, 3.14 to realign with the numpy's supported versions. Update: 3.11 will NOT continue to be supported. EMR has been shown to work ok with 3.12 and numpy support has already expired on 3.11. ## Security Assessment Delete all except the correct answer: - This change potentially impacts the Hail Batch instance as deployed by Broad Institute in GCP ### Impact Rating - This change has a low security impact ### Impact Description Python version updates in services and client libraries. ### Appsec Review - [ ] Required: The impact has been assessed and approved by appsec
kush-chandra
pushed a commit
to kush-chandra/hail
that referenced
this pull request
Aug 19, 2026
…0-13 to 3.12-14" (hail-is#15663) Reverts hail-is#15660; restores the changes in hail-is#15603. Should be ready to merge again after the dataproc update (hail-is#15662) --- ## Change Description Updates the default python version to 3.12 and shifts the list of supported versions to 3.12, 3.13, 3.14 to realign with the numpy's supported versions. Update: 3.11 will NOT continue to be supported. EMR has been shown to work ok with 3.12 and numpy support has already expired on 3.11. ## Security Assessment Delete all except the correct answer: - This change potentially impacts the Hail Batch instance as deployed by Broad Institute in GCP ### Impact Rating - This change has a low security impact ### Impact Description Python version updates in services and client libraries. ### Appsec Review - [ ] Required: The impact has been assessed and approved by appsec
kush-chandra
pushed a commit
to kush-chandra/hail
that referenced
this pull request
Aug 19, 2026
…0-13 to 3.12-14" (hail-is#15663) Reverts hail-is#15660; restores the changes in hail-is#15603. Should be ready to merge again after the dataproc update (hail-is#15662) --- ## Change Description Updates the default python version to 3.12 and shifts the list of supported versions to 3.12, 3.13, 3.14 to realign with the numpy's supported versions. Update: 3.11 will NOT continue to be supported. EMR has been shown to work ok with 3.12 and numpy support has already expired on 3.11. ## Security Assessment Delete all except the correct answer: - This change potentially impacts the Hail Batch instance as deployed by Broad Institute in GCP ### Impact Rating - This change has a low security impact ### Impact Description Python version updates in services and client libraries. ### Appsec Review - [ ] Required: The impact has been assessed and approved by appsec
kush-chandra
pushed a commit
to kush-chandra/hail
that referenced
this pull request
Aug 19, 2026
…0-13 to 3.12-14" (hail-is#15663) Reverts hail-is#15660; restores the changes in hail-is#15603. Should be ready to merge again after the dataproc update (hail-is#15662) --- ## Change Description Updates the default python version to 3.12 and shifts the list of supported versions to 3.12, 3.13, 3.14 to realign with the numpy's supported versions. Update: 3.11 will NOT continue to be supported. EMR has been shown to work ok with 3.12 and numpy support has already expired on 3.11. ## Security Assessment Delete all except the correct answer: - This change potentially impacts the Hail Batch instance as deployed by Broad Institute in GCP ### Impact Rating - This change has a low security impact ### Impact Description Python version updates in services and client libraries. ### Appsec Review - [ ] Required: The impact has been assessed and approved by appsec
klaricch
added a commit
to broadinstitute/gnomad_qc
that referenced
this pull request
Oct 28, 2026
Collects the inputs for the gnomad-qc-deps images the v5 info HT runs (generate_variant_qc_annotations.py --generate-ac-info-ht) use, beside the script they serve, named for what they build rather than for the directory they sit in: - info_ht.Dockerfile + info_ht_cloudbuild.yaml, carried over from kl/split_info_ht_workflow so they are not stranded on a feature branch. - info_ht_hail_dev.Dockerfile, recovered: this built the currently-running :20260710-hail882835b-py312 image but only ever existed in /tmp, which macOS has since wiped. Its instructions are byte-identical to the published image's build history. - info_ht_hail_dev_venv.pins, the pins for that image's /opt/venv-312, verified byte-identical to the copy baked into the image layer. Named .pins, not requirements*.txt, so GitHub's dependency graph does not read image-exact pins as a manifest for the repo. These reproduce the overlay, not the whole stack. :20260710 was built with hail==0.2.137, so info_ht.Dockerfile as committed produces the equivalent of :20260826 rather than that tag; the header records this. It makes no difference to what runs, since the base's 3.11 venv is shadowed on PATH. The overlay exists because the dev Hail build requires Python >= 3.12 (hail-is/hail#15663 shifted supported versions from 3.10-3.13 to 3.12-3.14) and the base image's /opt/venv is 3.11, so it adds a 3.12 venv at /opt/venv-312 and puts it first on PATH. The build is main at 882835b, 84 commits past the 0.2.139 release; 882835b itself is only a CI commit, so the header points at the range rather than claiming a specific fix. The wheel is the one input the repo cannot regenerate, and the Hail bucket that published it expires around 2026-11-14, so it is mirrored to gs://gnomad-resources/hail-dev-wheels/0.2.139-882835b33794/. Both Dockerfiles now assert the Hail version and interpreter at build time, so a base/pin mismatch fails the build instead of a run. info_ht_cloudbuild .yaml has no default _TAG, so a forgotten --substitutions fails rather than pushing over a shared tag. Keeping cloudbuild config out of the repo root also avoids a collision: the v4/sample_qc README documents `gcloud builds submit --config cloudbuild.yaml` with a TAG_NAME substitution, which would otherwise pick up this file. Assisted-by: ClaudeCode:claude-opus-5
klaricch
added a commit
to broadinstitute/gnomad_qc
that referenced
this pull request
Oct 29, 2026
Collects the inputs for the gnomad-qc-deps images the v5 info HT runs (generate_variant_qc_annotations.py --generate-ac-info-ht) use, beside the script they serve, named for what they build rather than for the directory they sit in: - info_ht.Dockerfile + info_ht_cloudbuild.yaml, carried over from kl/split_info_ht_workflow so they are not stranded on a feature branch. - info_ht_hail_dev.Dockerfile, recovered: this built the currently-running :20260710-hail882835b-py312 image but only ever existed in /tmp, which macOS has since wiped. Its instructions are byte-identical to the published image's build history. - info_ht_hail_dev_venv.pins, the pins for that image's /opt/venv-312, verified byte-identical to the copy baked into the image layer. Named .pins, not requirements*.txt, so GitHub's dependency graph does not read image-exact pins as a manifest for the repo. These reproduce the overlay, not the whole stack. :20260710 was built with hail==0.2.137, so info_ht.Dockerfile as committed produces the equivalent of :20260826 rather than that tag; the header records this. It makes no difference to what runs, since the base's 3.11 venv is shadowed on PATH. The overlay exists because the dev Hail build requires Python >= 3.12 (hail-is/hail#15663 shifted supported versions from 3.10-3.13 to 3.12-3.14) and the base image's /opt/venv is 3.11, so it adds a 3.12 venv at /opt/venv-312 and puts it first on PATH. The build is main at 882835b, 84 commits past the 0.2.139 release; 882835b itself is only a CI commit, so the header points at the range rather than claiming a specific fix. The wheel is the one input the repo cannot regenerate, and the Hail bucket that published it expires around 2026-11-14, so it is mirrored to gs://gnomad-resources/hail-dev-wheels/0.2.139-882835b33794/. Both Dockerfiles now assert the Hail version and interpreter at build time, so a base/pin mismatch fails the build instead of a run. info_ht_cloudbuild .yaml has no default _TAG, so a forgotten --substitutions fails rather than pushing over a shared tag. Keeping cloudbuild config out of the repo root also avoids a collision: the v4/sample_qc README documents `gcloud builds submit --config cloudbuild.yaml` with a TAG_NAME substitution, which would otherwise pick up this file. Assisted-by: ClaudeCode:claude-opus-5
klaricch
added a commit
to broadinstitute/gnomad_qc
that referenced
this pull request
Oct 29, 2026
Collects the inputs for the gnomad-qc-deps images the v5 info HT runs (generate_variant_qc_annotations.py --generate-ac-info-ht) use, beside the script they serve, named for what they build rather than for the directory they sit in: - info_ht.Dockerfile + info_ht_cloudbuild.yaml, carried over from kl/split_info_ht_workflow so they are not stranded on a feature branch. - info_ht_hail_dev.Dockerfile, recovered: this built the currently-running :20260710-hail882835b-py312 image but only ever existed in /tmp, which macOS has since wiped. Its instructions are byte-identical to the published image's build history. - info_ht_hail_dev_venv.pins, the pins for that image's /opt/venv-312, verified byte-identical to the copy baked into the image layer. Named .pins, not requirements*.txt, so GitHub's dependency graph does not read image-exact pins as a manifest for the repo. These reproduce the overlay, not the whole stack. :20260710 was built with hail==0.2.137, so info_ht.Dockerfile as committed produces the equivalent of :20260826 rather than that tag; the header records this. It makes no difference to what runs, since the base's 3.11 venv is shadowed on PATH. The overlay exists because the dev Hail build requires Python >= 3.12 (hail-is/hail#15663 shifted supported versions from 3.10-3.13 to 3.12-3.14) and the base image's /opt/venv is 3.11, so it adds a 3.12 venv at /opt/venv-312 and puts it first on PATH. The build is main at 882835b, 84 commits past the 0.2.139 release; 882835b itself is only a CI commit, so the header points at the range rather than claiming a specific fix. The wheel is the one input the repo cannot regenerate, and the Hail bucket that published it expires around 2026-11-14, so it is mirrored to gs://gnomad-resources/hail-dev-wheels/0.2.139-882835b33794/. Both Dockerfiles now assert the Hail version and interpreter at build time, so a base/pin mismatch fails the build instead of a run. info_ht_cloudbuild .yaml has no default _TAG, so a forgotten --substitutions fails rather than pushing over a shared tag. Keeping cloudbuild config out of the repo root also avoids a collision: the v4/sample_qc README documents `gcloud builds submit --config cloudbuild.yaml` with a TAG_NAME substitution, which would otherwise pick up this file. Assisted-by: ClaudeCode:claude-opus-5
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.
Reverts #15660; restores the changes in #15603. Should be ready to merge again after the dataproc update (#15662)
Change Description
Updates the default python version to 3.12 and shifts the list of supported versions to 3.12, 3.13, 3.14 to realign with the numpy's supported versions.
Update: 3.11 will NOT continue to be supported. EMR has been shown to work ok with 3.12 and numpy support has already expired on 3.11.
Security Assessment
Delete all except the correct answer:
Impact Rating
Impact Description
Python version updates in services and client libraries.
Appsec Review