Raise ImportError on Python 3.14 or later#3855
Merged
Conversation
un-def
approved these changes
May 6, 2026
jvstme
approved these changes
May 6, 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.
Fixes #3854
Currently
dstackis guaranteed NOT to work on Python 3.14 due to Pydantic V1 dependency (#1844). But the installation is allowed and there are no explicit errors or warnings which leads to unexpected behavior. For example, I get segfaults on macOS:The solution is to error when running/importing
dstack:ImportErroris common in the case of Python version incompatibility so that dependent packages can handle the error if they want. CLI just printsImportErrortraceback for simplicity – we could show pretty error but it would require having a separate entry point for dstack executable so that it does not import fromdstack.Specifying an upper cap like
requires-python = ">=3.10, <3.14"is not an option since it would makepipbacktrack to find the earliest version without the cap.uvjust ignores the upper cap.