-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Pin Python to 3.9 for statsmodels dev version #10771
Conversation
Documentation preview for b820741 will be available here when this CircleCI job completes successfully. More info
|
Curious to hear your thoughts on leaving What do you think of adding a param to the function that defines the dev fallback? def get_requires_python(package: str, version: str, dev_package_fallback_versions: t.Dict[str, str]) -> t.Optional[str]:
if version == "dev" and package in dev_package_fallback_versions:
return dev_package_fallback_versions[package]
resp = requests.get(f"https://pypi.python.org/pypi/{package}/json")
resp.raise_for_status()
return next(
(
distributions[0].get("requires_python")
for ver, distributions in resp.json()["releases"].items()
if ver == version and distributions
),
None,
) And then doing something like this to have full control over the versions of dev packages (just so that if some new library decides to jump to Py3.10 for some reason, we're not stuck with bumping all of the versions up? - name: Get Python version
id: get-python-version
run: |
DEV_PACKAGE_FALLBACK_VERSIONS='{"tensorflow": ">=3.9", "scikit-learn": ">=3.9", "statsmodels": ">=3.9"}'
python_version=$(python dev/get_minimum_required_python.py -p ${{ matrix.package }} -v ${{ matrix.version }} --python-versions "3.8,3.9" --dev-package-fallback-versions "$DEV_PACKAGE_FALLBACK_VERSIONS") |
I agree with having dictionary to allow different versions! But I would hardcode it to Python script rather than args, so we don't have to hop between files. We don't reuse this in multiple shell scripts so it doesn't have to be parameters. |
SGTM! Yeah, let's change to a Dict in the .py file as a constant, rename the constant variable to generic "dev" instead of a particular version of python and keep the cleaner new yaml implementation :) |
This suggestion makes sense, let's keep yaml file simple :) |
Signed-off-by: B-Step62 <[email protected]>
Signed-off-by: B-Step62 <[email protected]>
Signed-off-by: B-Step62 <[email protected]>
Signed-off-by: B-Step62 <[email protected]>
4f54c67
to
b820741
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for the fix :)
Signed-off-by: B-Step62 <[email protected]>
Signed-off-by: B-Step62 <[email protected]>
🛠 DevTools 🛠
Install mlflow from this PR
Checkout with GitHub CLI
What changes are proposed in this pull request?
Statsmodels dev version requires Python 3.9 (commit).
Hardcoded Python version in cross-version test to 3.9 and also moved logic to Python script to avoid further complication.
How is this PR tested?
Validated cross version tests passed with dev version using dummy commit.
Does this PR require documentation update?
Release Notes
Is this a user-facing change?
What component(s), interfaces, languages, and integrations does this PR affect?
Components
area/artifacts
: Artifact stores and artifact loggingarea/build
: Build and test infrastructure for MLflowarea/deployments
: MLflow Deployments client APIs, server, and third-party Deployments integrationsarea/docs
: MLflow documentation pagesarea/examples
: Example codearea/model-registry
: Model Registry service, APIs, and the fluent client calls for Model Registryarea/models
: MLmodel format, model serialization/deserialization, flavorsarea/recipes
: Recipes, Recipe APIs, Recipe configs, Recipe Templatesarea/projects
: MLproject format, project running backendsarea/scoring
: MLflow Model server, model deployment tools, Spark UDFsarea/server-infra
: MLflow Tracking server backendarea/tracking
: Tracking Service, tracking client APIs, autologgingInterface
area/uiux
: Front-end, user experience, plotting, JavaScript, JavaScript dev serverarea/docker
: Docker use across MLflow's components, such as MLflow Projects and MLflow Modelsarea/sqlalchemy
: Use of SQLAlchemy in the Tracking Service or Model Registryarea/windows
: Windows supportLanguage
language/r
: R APIs and clientslanguage/java
: Java APIs and clientslanguage/new
: Proposals for new client languagesIntegrations
integrations/azure
: Azure and Azure ML integrationsintegrations/sagemaker
: SageMaker integrationsintegrations/databricks
: Databricks integrationsHow should the PR be classified in the release notes? Choose one:
rn/none
- No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" sectionrn/breaking-change
- The PR will be mentioned in the "Breaking Changes" sectionrn/feature
- A new user-facing feature worth mentioning in the release notesrn/bug-fix
- A user-facing bug fix worth mentioning in the release notesrn/documentation
- A user-facing documentation change worth mentioning in the release notes