Skip to content

feat: support Python 3.13 and drop the upper Python cap (cyvcf2 >=0.32)#283

Open
nh13 wants to merge 1 commit into
mainfrom
nh/support-python-3.13
Open

feat: support Python 3.13 and drop the upper Python cap (cyvcf2 >=0.32)#283
nh13 wants to merge 1 commit into
mainfrom
nh/support-python-3.13

Conversation

@nh13

@nh13 nh13 commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

The cyvcf2~=0.31.4 pin was the blocker for Python 3.13: cyvcf2 0.31.x shipped no cp313 build, which forced requires-python to cap at <3.13. cyvcf2 0.32+ adds 3.13 support with an unchanged API, so this relaxes the pin to >=0.32 and drops the upper Python cap entirelyrequires-python is now >=3.10 (unbounded).

Because the cap is removed (not merely raised to 3.13), the package is forward-compatible with Python 3.14+ as soon as the dependency builds exist — no further permutect change required. On the conda side that is already true (conda-forge ships pytorch/cyvcf2 py314 builds), so the Bioconda recipe will be able to enable 3.14 directly.

Verified on Python 3.13.14: exercised cyvcf2 0.33.0 against permutect's actual usage (encode_variant, overlapping_filters, find_variant_type, and the filter_variants Writer/header/round-trip path) and ran the unit suite — all green.

3.14 is permitted by requires-python but is not dev-tested here: the pixi dev env can't resolve torch 2.10's macOS-arm64 cp314 wheel (a pytorch wheel-tagging detail, unrelated to permutect), so the pixi dev environment stays capped at <3.14.

Follow-up: once released, the Bioconda recipe can drop its cyvcf2 <0.32 and python <3.13 caps and add py314.

The previous cyvcf2~=0.31.4 pin blocked Python 3.13: cyvcf2 0.31.x ships no
cp313 build, which forced requires-python to cap at <3.13. cyvcf2 0.32+ adds
3.13 support with an unchanged API, so relax the pin to >=0.32 and widen
requires-python to >=3.10 (and the pixi dev env to <3.14).

Verified cyvcf2 0.33.0 against permutect's actual read/write usage (encode_variant,
overlapping_filters, find_variant_type, and the filter_variants Writer/header path)
and ran the unit suite on Python 3.13.14: all green.
@nh13 nh13 changed the title feat: support Python 3.13 by bumping cyvcf2 to >=0.32 feat: support Python 3.13 and drop the upper Python cap (cyvcf2 >=0.32) Jun 18, 2026
@nh13

nh13 commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator Author

@davidbenjamin once this merges, could we cut a new release (e.g. v0.7.2)? It drops the upper Python cap (cyvcf2 >=0.32, requires-python >=3.10), which unblocks Python 3.13. A release also lets the Bioconda recipe pick it up and drop its own python <3.13 / cyvcf2 <0.32 caps. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant