Skip to content

stop using python semver parsing for mysql versions - #11868

Merged
prha merged 4 commits into
masterfrom
prha/mysql_version_parsing
Jan 27, 2023
Merged

stop using python semver parsing for mysql versions#11868
prha merged 4 commits into
masterfrom
prha/mysql_version_parsing

Conversation

@prha

@prha prha commented Jan 27, 2023

Copy link
Copy Markdown
Contributor

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

vercel Bot commented Jan 27, 2023

Copy link
Copy Markdown

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)

)


def parse_mysql_version(version: str) -> tuple:

Copy link
Copy Markdown
Contributor

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.

2 participants