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

Sort pyenv tags as versions #8488

Merged
merged 1 commit into from
May 22, 2023
Merged

Sort pyenv tags as versions #8488

merged 1 commit into from
May 22, 2023

Conversation

Hellzed
Copy link
Contributor

@Hellzed Hellzed commented May 22, 2023

What changes are proposed in this pull request?

By default, git ls-remote command sorts its output lexicographically, this causes pyenv 2.3.9 to be considered the latest version even if 2.3.17 is available.
Treating git tags as semver strings (where 2.3.17 > 2.3.9) fixes this behavior.

This fixes mlflow models build-docker not working for recent Python versions only available with newer pyenv releases.

How is this patch tested?

  • Existing unit/integration tests
  • New unit/integration tests
  • Manual tests (describe details, including test results, below)

Trying to build a model logged with Python 3.11.3 consistently fails without this patch, with the error:

python-build: definition not found: 3.11.3

Does this PR change the documentation?

  • No. You can skip the rest of this section.
  • Yes. Make sure the changed pages / sections render correctly in the documentation preview.

Release Notes

Is this a user-facing change?

  • No. You can skip the rest of this section.
  • Yes. Give a description of this change to be included in the release notes for MLflow users.

Ensure the latest version of pyenv is installed on mlflow-generated Docker images

What component(s), interfaces, languages, and integrations does this PR affect?

Components

  • area/artifacts: Artifact stores and artifact logging
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages
  • area/examples: Example code
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/recipes: Recipes, Recipe APIs, Recipe configs, Recipe Templates
  • area/projects: MLproject format, project running backends
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/server-infra: MLflow Tracking server backend
  • area/tracking: Tracking Service, tracking client APIs, autologging

Interface

  • area/uiux: Front-end, user experience, plotting, JavaScript, JavaScript dev server
  • area/docker: Docker use across MLflow's components, such as MLflow Projects and MLflow Models
  • area/sqlalchemy: Use of SQLAlchemy in the Tracking Service or Model Registry
  • area/windows: Windows support

Language

  • language/r: R APIs and clients
  • language/java: Java APIs and clients
  • language/new: Proposals for new client languages

Integrations

  • integrations/azure: Azure and Azure ML integrations
  • integrations/sagemaker: SageMaker integrations
  • integrations/databricks: Databricks integrations

How should the PR be classified in the release notes? Choose one:

  • rn/breaking-change - The PR will be mentioned in the "Breaking Changes" section
  • rn/none - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
  • rn/feature - A new user-facing feature worth mentioning in the release notes
  • rn/bug-fix - A user-facing bug fix worth mentioning in the release notes
  • rn/documentation - A user-facing documentation change worth mentioning in the release notes

By default, `git ls-remote` command sorts its output lexicographically, this causes pyenv 2.3.9 to be considered the latest version even if 2.3.17 is available. Treating git tags as semver strings (where 2.3.17 > 2.3.9) fixes this behavior.
This fixes `mlflow models build-docker` not working for recent Python versions only available with newer pyenv releases.

Signed-off-by: Loris Zinsou <lzinsou@protonmail.com>
Copy link
Member

@harupy harupy left a comment

Choose a reason for hiding this comment

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

LGTM!

@harupy harupy enabled auto-merge (squash) May 22, 2023 13:53
@mlflow-automation
Copy link
Collaborator

Documentation preview for d2a790d will be available here when this CircleCI job completes successfully.

More info

@github-actions github-actions bot added area/docker Docker use anywhere, such as MLprojects and MLmodels rn/bug-fix Mention under Bug Fixes in Changelogs. labels May 22, 2023
@harupy harupy merged commit 46ae87a into mlflow:master May 22, 2023
35 checks passed
BenWilson2 pushed a commit to BenWilson2/mlflow that referenced this pull request May 23, 2023
By default, `git ls-remote` command sorts its output lexicographically, this causes pyenv 2.3.9 to be considered the latest version even if 2.3.17 is available. Treating git tags as semver strings (where 2.3.17 > 2.3.9) fixes this behavior.
This fixes `mlflow models build-docker` not working for recent Python versions only available with newer pyenv releases.

Signed-off-by: Loris Zinsou <lzinsou@protonmail.com>
@Hellzed Hellzed deleted the patch-1 branch June 6, 2023 20:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docker Docker use anywhere, such as MLprojects and MLmodels rn/bug-fix Mention under Bug Fixes in Changelogs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants