GEOPY-2661: Update minimum requirement to python >=3.12, <3.15 and numpy 2.*#48
GEOPY-2661: Update minimum requirement to python >=3.12, <3.15 and numpy 2.*#48domfournier merged 12 commits intodevelopfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request updates the Python version support for the grid-apps project, migrating from Python 3.10-3.11 to Python 3.12-3.14. The changes involve updating minimum Python requirements, regenerating conda lock files for the new Python versions, and upgrading major dependencies including numpy (2.x) and scipy (1.17).
Changes:
- Updated Python version support from 3.10-3.11 to 3.12-3.14 across all configuration files
- Upgraded major dependencies: numpy to 2.x (breaking change), scipy to 1.17.0, matplotlib-base to 3.10.8, Pillow to 12.1.1
- Regenerated conda lock files for Python 3.12, 3.13, and 3.14 across Linux and Windows platforms
- Updated CI/CD workflows to test against Python 3.12, 3.13, and 3.14
- Temporarily pointing git dependencies to feature branch "GEOPY-2661"
Reviewed changes
Copilot reviewed 24 out of 25 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Updated Python version requirements (3.12-3.15), removed explicit numpy/scipy/pydantic dependencies, updated git branch references |
| deps-lock-config.yaml | Updated Python versions from 3.10/3.11 to 3.12/3.13/3.14 |
| environments/*.conda.lock.yml | Added lock files for Python 3.12/3.13/3.14, removed 3.10/3.11 lock files with updated dependency versions |
| environments/env-python-*.yml | Added environment files for Python 3.13 and 3.14 |
| .github/workflows/*.yml | Updated CI/CD workflows to use Python 3.12 as default and test matrix with 3.12/3.13/3.14 |
Comments suppressed due to low confidence (1)
environments/env-python-3.14.yml:2
- This environment file specifies python=3.14.* but the file is incorrectly showing python=3.11.* in the removed content. The new version should be 3.14.* which is correct, but note that Python 3.14 is still in early development/alpha stage as of February 2026 and may have stability and compatibility issues. Consider whether production environments should rely on such early Python versions.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
sebhmg
left a comment
There was a problem hiding this comment.
please see notes on dependencies
- force mkl
- do not force Python ABI
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 23 out of 25 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
recipe.yaml
Outdated
| - numpy 1.26.* | ||
| - discretize 0.12.* | ||
| - numpy 2.4.* | ||
| - pydantic >=2.12.0, 2.* |
There was a problem hiding this comment.
pydantic is constrained to ~2.12.0 in pyproject.toml, but the conda recipe allows any 2.*. This can lead to conda users getting a newer major/minor pydantic than the package is tested against. Consider aligning the conda constraint with the Poetry constraint (or relaxing both consistently).
| - pydantic >=2.12.0, 2.* | |
| - pydantic >=2.12.0,<2.13.0a0 |
.pre-commit-config.yaml
Outdated
| @@ -38,7 +38,7 @@ repos: | |||
| numpy==1.26.*, | |||
There was a problem hiding this comment.
| numpy==1.26.*, | |
| numpy==2.4.*, |
recipe.yaml
Outdated
| requirements: | ||
| host: | ||
| - python 3.10.* | ||
| - python 3.12.* |
There was a problem hiding this comment.
| - python 3.12.* | |
| - python {{python_min}}.* |
| matplotlib-base = ">=3.10.0, <3.11.dev" # from geoapps-utils | ||
| pillow = ">=12.1.0, <13.0.dev" # from geoh5py | ||
| h5py = ">=3.15.1, <4.0.dev" # from geoh5py |
There was a problem hiding this comment.
| matplotlib-base = ">=3.10.0, <3.11.dev" # from geoapps-utils | |
| pillow = ">=12.1.0, <13.0.dev" # from geoh5py | |
| h5py = ">=3.15.1, <4.0.dev" # from geoh5py | |
| h5py = ">=3.15.1, 3.15.*" # from geoh5py | |
| matplotlib-base = "3.10.*" # from geoapps-utils | |
| pillow = "12.1.*" # from geoh5py |
pyproject.toml
Outdated
| #---------------------------------------- | ||
| #geoh5py = { version = ">=0.13.0a, 0.13.*", source = "pypi", allow-prereleases = true } | ||
| geoh5py = { git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop" } | ||
| geoh5py = { git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "GEOPY-2661" } |
There was a problem hiding this comment.
PR for geoh5py now merged
| geoh5py = { git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "GEOPY-2661" } | |
| geoh5py = { git = "https://github.com/MiraGeoscience/geoh5py.git", rev = "develop" } |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 23 out of 25 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 30 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Install Conda for Python 3.12 or higher. Follow this link to download its Windows installer (~140 MB of disk space): | ||
|
|
||
| `Miniforge <https://github.com/conda-forge/miniforge#download>`_ `(Windows x86_64) <https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe>`_ |
There was a problem hiding this comment.
The PR updates the minimum supported Python to 3.12, but this page still says “default Python 3.10 interpreter” a few lines below, which is now inconsistent with the new baseline. Update that sentence to refer to Python 3.12 (or remove the version-specific mention) to avoid confusing users.
GEOPY-2661 - Update minimum requirement to python >=3.12, <3.15 and numpy 2.*
required for MiraGeoscience/simpeg-drivers#345