Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stop using python semver parsing for mysql versions #11868

Merged
merged 4 commits into from Jan 27, 2023

Conversation

prha
Copy link
Member

@prha prha commented Jan 27, 2023

Summary & Motivation

We were using packaging.parse to compare mysql server versions, which broke when 0.23.0 was released with dropped support for LegacyVersion.

This rolls our own custom version compares to find minimum supported versions, which is tolerant of non semver compliant version strings.

The regex parses all the numeric values, and does tuple int comparisons.

Reported in #11794

Reference links:
pypa/packaging#407

How I Tested These Changes

Added some test cases that override the server version string to exercise the parsing logic.

@vercel
Copy link

vercel bot commented Jan 27, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
dagster ✅ Ready (Inspect) Visit Preview 💬 Add your feedback Jan 27, 2023 at 4:22PM (UTC)
1 Ignored Deployment
Name Status Preview Comments Updated
dagit-storybook ⬜️ Ignored (Inspect) Jan 27, 2023 at 4:22PM (UTC)

@@ -46,6 +47,26 @@ def get_conn_string(username, password, hostname, db_name, port="3306"):
)


def parse_mysql_version(version: str) -> tuple:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add some test cases that use this directly too

@prha prha force-pushed the prha/mysql_version_parsing branch from ec32b6a to d85600f Compare January 27, 2023 16:22
@prha prha merged commit 26ca189 into master Jan 27, 2023
@prha prha deleted the prha/mysql_version_parsing branch January 27, 2023 16:34
gibsondan pushed a commit that referenced this pull request Jan 27, 2023
### Summary & Motivation
We were using `packaging.parse` to compare mysql server versions, which
broke when `0.23.0` was released with dropped support for
`LegacyVersion`.

This rolls our own custom version compares to find minimum supported
versions, which is tolerant of non semver compliant version strings.

The regex parses all the numeric values, and does tuple int comparisons.

Reported in #11794

Reference links:
pypa/packaging#407

### How I Tested These Changes
Added some test cases that override the server version string to
exercise the parsing logic.
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.

None yet

2 participants