Skip to content

Add dependency floor checks and generate conda recipe dependencies from pyproject.toml - #458

Merged
harryswift01 merged 6 commits into
mainfrom
457-feature-monitor-dependency-lower-bounds-in-ci
Oct 14, 2026
Merged

harryswift01 merged 6 commits into
mainfrom
457-feature-monitor-dependency-lower-bounds-in-ci

Conversation

@harryswift01

@harryswift01 harryswift01 commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Summary

This PR adds CI checks that the lowest allowed versions of our dependencies still install and pass the unit tests, and makes the conda recipe read its dependencies from pyproject.toml so the two can no longer drift apart.

Changes

Dependency floor checks:

  • Add steps to the pull request unit job that resolve the lowest allowed dependency versions as wheels, reinstall them, and rerun the unit tests on Linux, macOS and Windows for Python 3.12–3.14.
  • Add a weekly dependency-floors.yaml workflow, also runnable on demand, that runs the same check.
  • Add a "Dependency Policy" section to the developer guide and a Dependency Floors badge to the README.

Conda recipe generated from pyproject.toml:

  • Build the recipe's run: requirements from pyproject.toml, mapping art to python-art and lowercasing names.
  • Take the waterEntropy pip pin from pyproject.toml too, instead of repeating it in the build script.
  • This also fixes the stale numpy and rdkit ceilings in meta.yaml.

Raise floors pinned by waterEntropy:

  • Raise the numpy, psutil, dask and distributed floors to 2.3.5, 7.1.3, 2025.7.0 and 2025.7.0.
  • The lowest waterEntropy allowed (2.0.0) pins these versions exactly, so they are the oldest versions an install can actually have, and the lowest-version check now tests them.

Impact

  • A dependency floor that no longer installs or passes the unit tests is caught on every pull request and in the weekly run.
  • The conda package's dependencies always match pyproject.toml, so Renovate updates no longer leave meta.yaml behind.
  • numpy older than 2.3.5, psutil older than 7.1.3, and dask or distributed older than 2025.7.0 are no longer supported.

@harryswift01 harryswift01 added this to the 2.6.0 milestone Oct 14, 2026
@harryswift01
harryswift01 requested a review from jimboid October 14, 2026 10:06
@harryswift01 harryswift01 self-assigned this Oct 14, 2026
@harryswift01 harryswift01 added documentation Improvements or additions to documentation feature request New feature or request labels Oct 14, 2026
@harryswift01 harryswift01 linked an issue Oct 14, 2026 that may be closed by this pull request
@harryswift01 harryswift01 added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Oct 14, 2026

@jimboid jimboid left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks like it will work to monitor the floor of our software as renovate only increases the ceiling. The conda recipe is a nice touch, but we should monitor the development of conda-pypi since that is likely going to solve some of these issues independently

@harryswift01
harryswift01 merged commit f5ba2aa into main Oct 14, 2026
23 checks passed
@harryswift01
harryswift01 deleted the 457-feature-monitor-dependency-lower-bounds-in-ci branch October 14, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation feature request New feature or request github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Monitor dependency lower bounds in CI

2 participants