Py313: Update to Python 3.13, move from Jfrog Artifactory to Pypi, change from CentOS to Ubuntu. - #34
Merged
Merged
Conversation
# Conflicts: # docker/Dockerfile # docker/Singularity.def # pyproject.toml
…ult, update to idmtools 3.0
… and install dependencies from pypi
update dependency for idm-tskit to 0.3.7 and bump fpg version to 1.0.2
Update ObsModel_ubuntu.id from GHA
add section for idm developer instruction
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project’s packaging and runtime environment by upgrading to Python 3.13, switching distribution from the IDM Artifactory index to public PyPI, and updating container + CI tooling accordingly (including moving the base container OS from Rocky/CentOS-style to Ubuntu runtime images).
Changes:
- Update package metadata and CI to Python 3.13; adjust dependency pins and remove Artifactory index usage.
- Switch Docker/Singularity builds to
ghcr.io/emod-hub/emod-ubuntu-runtimeand update COMPS asset workflow to produceObsModel_ubuntu.id. - Replace Artifactory staging/production publish workflows with a manual “publish to PyPI” workflow.
Reviewed changes
Copilot reviewed 18 out of 21 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| requirements.txt | Adds upper bounds and replaces tskit/extra index usage with idm-tskit pin. |
| README.md | Updates setup/install instructions and expands COMPS/image/release workflows documentation. |
| pyproject.toml | Bumps version to 1.0.2, requires Python >=3.13, updates deps, removes Artifactory pip config. |
| fpg_observational_model/unified_sampling.py | Removes unused typing.List import. |
| docker/Singularity.def | Switches base image to Ubuntu runtime and installs package from PyPI. |
| docker/Dockerfile | Switches base image to Ubuntu runtime and installs package from PyPI. |
| docker/readme.md | Updates container docs from Rocky → Ubuntu and removes Artifactory install instructions. |
| docker/push_singularity.py | Changes default OS name to ubuntu. |
| docker/pip.conf | Sets global index to PyPI. |
| docker/ObsModel_ubuntu.id | Adds the new COMPS asset id file for the Ubuntu image. |
| docker/ObsModel_rocky.id | Removes the old Rocky asset id file. |
| .github/workflows/run_tests.yml | Runs CI tests on Python 3.13 and removes custom index usage. |
| .github/workflows/test_and_publish_package_to_pypi.yml | Adds a manual workflow to test and publish to PyPI. |
| .github/workflows/build_publish_package.yml | Updates reusable publish workflow to PyPI + Python 3.13. |
| .github/workflows/push_image_to_comp.yml | Updates COMPS image build/push workflow for Ubuntu + Python 3.13 + new id file. |
| .github/workflows/mkdocs_build.yml | Updates docs build to Python 3.13 and PyPI-only installs. |
| .github/workflows/mkdocs_deploy.yml | Updates docs deploy to Python 3.13 and PyPI-only installs. |
| .github/workflows/test_and_publish_package_to_staging.yml | Removes Artifactory staging workflow. |
| .github/workflows/promote_package_to_production.yml | Removes Artifactory production promotion workflow. |
Comments suppressed due to low confidence (2)
.github/workflows/run_tests.yml:22
- In GitHub Actions YAML, unquoted
3.13can be parsed as a number (and sometimes loses formatting), which can breakactions/setup-pythonversion resolution. Quote the Python version string in the matrix.
.github/workflows/build_publish_package.yml:16 - This workflow is invoked via
workflow_callfrom aworkflow_dispatchworkflow; in that contextgithub.event.head_commit.messageis typically undefined. The currentif:can fail expression evaluation. Guard against a missing commit message by defaulting to an empty string.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| epel-release \ | ||
| wget \ | ||
| nano | ||
| FROM ghcr.io/emod-hub/emod-ubuntu-runtime:latest |
Comment on lines
1
to
+2
| Bootstrap: docker | ||
| From: rockylinux:9.2 | ||
| From: ghcr.io/emod-hub/emod-ubuntu-runtime:latest |
Comment on lines
4
to
6
| The containers encapsulate the application environment, in this case, the mpich runtime for EMOD and the | ||
| fpg_observational_model is pre-installed with all necessary dependencies(Python 3.9, tskit, etc.). | ||
| fpg_observational_model is pre-installed with all necessary dependencies(Python 3.13, idm-tskit, etc.). | ||
|
|
(cherry picked from commit 89e9fb0)
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.