Skip to content

constrain python package versions - #113

Open
JordanLaserGit wants to merge 1 commit into
mainfrom
pin_package_versions
Open

constrain python package versions#113
JordanLaserGit wants to merge 1 commit into
mainfrom
pin_package_versions

Conversation

@JordanLaserGit

Copy link
Copy Markdown
Collaborator

Adds minimum version floors for all dependencies to better track forcingprocessor dependencies. This decreases the likelihood that pytests are broken by package version updates that are inherited in new build environments.

Closes #24

Additions

  • Python package version constraints

Removals

  • None

Changes

  • None

Testing

  1. Local pytests pass on MacOS

Screenshots

Notes

Todos

Checklist

  • PR has an informative and human-readable title
  • Changes are limited to a single goal (no scope creep)
  • Code can be automatically merged (no conflicts)
  • Code follows project standards (link if applicable)
  • Passes all existing automated tests
  • Any change in functionality is tested
  • New functions are documented (with a description, list of inputs, and expected output)
  • Placeholder code is flagged / future todos are captured in comments
  • Visually tested in supported browsers and devices (see checklist below 👇)
  • Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
  • Reviewers requested with the Reviewers tool ➡️

Testing checklist

Target Environment support

  • Windows
  • Linux
  • Browser

Accessibility

  • Keyboard friendly
  • Screen reader friendly

Other

  • Is useable without CSS
  • Is useable without JS
  • Flexible from small to large screens
  • No linting errors or warnings
  • JavaScript tests are passing

@JordanLaserGit JordanLaserGit added enhancement New feature or request P0 Priority level. P0: Critical, P1: High, P2: Medium, P3: Low CI/CD Related to Continuous Integration and Delivery/Deployment labels Aug 20, 2026

@pratikshac15 pratikshac15 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Just curious, was nwmurl>=1.0.8 chosen because there is a specific fix or functionality in this version that forcingprocessor now requires?

@JordanLaserGit

Copy link
Copy Markdown
Collaborator Author

Anywhere I could, I set to latest version for all packages.

Copilot AI left a comment

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.

Pull request overview

This PR adds minimum version constraints (and one targeted upper bound) to the project’s Python dependencies so builds are less likely to break due to inherited package changes in fresh environments, addressing issue #24.

Changes:

  • Added minimum version floors for all runtime dependencies.
  • Added an upper bound for gcsfs to avoid a problematic release.
  • Added a minimum version floor for the develop extra (pytest).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
setup.cfg Adds >= version floors (and one < upper bound) to install_requires and pins pytest for the develop extra.
pyproject.toml Mirrors dependency version floors in PEP 621 [project] dependencies and pins pytest in optional develop dependencies; documents the gcsfs upper bound rationale inline.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread setup.cfg
Comment on lines 29 to +34
install_requires =
boto3
cftime
dask
exactextract
gcsfs
geopandas
imageio
matplotlib
netCDF4
h5netcdf
h5py
nwmurl==1.0.1
pandas
psutil
pyarrow
pyogrio
requests
s3fs
scipy
xarray
boto3>=1.43.56
cftime>=1.6.5
dask>=2026.7.1
exactextract>=0.3.0
gcsfs>=2026.7.0,<2026.8.0
Comment thread pyproject.toml
Comment on lines +14 to +16
"exactextract>=0.3.0",
"gcsfs>=2026.7.0,<2026.8.0", # 2026.8.0 deadlocks worker processes on GCS reads
"geopandas>=1.1.4",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD Related to Continuous Integration and Delivery/Deployment enhancement New feature or request P0 Priority level. P0: Critical, P1: High, P2: Medium, P3: Low

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Python Package Versions

4 participants