Robustify SQLA version determination logic#647
Merged
sfc-gh-mraba merged 1 commit intosnowflakedb:mainfrom Feb 17, 2026
Merged
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
4 tasks
Contributor
Author
|
I have read the CLA Document and I hereby sign the CLA |
9fcbb2a to
3f7e367
Compare
Collaborator
sfc-gh-mraba
left a comment
There was a problem hiding this comment.
Thanks for for the contribution.
Pls take a look at the comments.
a4baee6 to
9481682
Compare
sfc-gh-mraba
approved these changes
Feb 12, 2026
9481682 to
2339550
Compare
2339550 to
86b76bf
Compare
|
Nice one! |
potiuk
approved these changes
Feb 15, 2026
sfc-gh-jcieslak
approved these changes
Feb 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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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 GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.
Fixes SNOW-3066571: SQLAlchemy compat script doesn't handle versions containing letters #646
Fill out the following pre-review checklist:
Please describe how your code solves the related issue.
The version string
SA_VERSIONcan contain pre-release suffixes like2.1.0b1,2.0.0rc2, or2.0.5.post1. The original code splits on"."and callsint()on each segment, which raisesValueErrorfor segments like0b1orpost1that contain non-numeric characters.The fix uses
re.match(r"(\d+)\.(\d+)\.(\d+)", SA_VERSION)to extract only the three leading numeric version components, ignoring any suffix. This works because the regex captures digits up to the first non-digit in each segment, and stops after the third group, so2.1.0b1yields(2, 1, 0),2.0.5.post1yields(2, 0, 5), etc.It is worth noting that this can be achieved more simply (and correctly) using an additional dependency,
packaging, by doingWith the key difference being that
packagingcorrectly treats pre-releases as less than the release (2.0.0b1 < 2.0.0), while the regex treats them as equal.