Conversation
…e dependencies from lat passed model tests on PR into devel
…ting up the release dependencies
This reverts commit 0d0a395.
…nd thus renders testmon alomost obsolete (test are always triggered when env changes)
- The check scope is: project.dependencies project.optional-dependencies.phys - The check fails only on newer major/minor stable releases. Patch-only updates are ignored. - The checker writes an artifact report so a second workflow can distinguish stale bounds from unrelated CI failures. - Added a second workflow that triggers on failure of the freshness workflow, but only auto-pushes for same-repository PR branches. - That updater workflow creates a clean venv, runs pip install -U --update-strategy eager ".[phys]", runs python set_release_dependencies.py --optional-group phys, commits pyproject.toml, and pushes back to the PR branch. - Extended the existing updater script so it can now target only selected optional groups via --optional-group, while still always updating project.dependencies. - Documented the new behavior and the fork limitation in CONTRIBUTING.md.
…d clean by checkout)
What happens if we actually require the version to be lower than the latest version on PyPI? |
Good point. At the moment it is planned to not allow this, which forces us to patch immediately when we are not compatible with the newest version of a dependency. Should we add the handling of exceptions? Btw I re-added |
No need to handle an exception that doesn't apply yet. We can worry about this once it occurs. The only dependency which previously had an upper bound was |
Update CI:
develfeectoolsonly if there are submodule changes detecteddependencies,physandmpiin thedevelbranch. These ar checked for major and minor release updates on every PR into devel. The policy is summarized inCONTRIBUTING.m:Pull requests into devel are checked for stale dependency upper bounds in
pyproject.toml.The policy is intentionally narrow:
project.dependenciesare checked.project.optional-dependencies, onlyphysandmpiis checked.When the check fails, the CI summary prints local remediation commands. In short, run the checker locally, run
python utils/update_dependency_bounds.pyon that report, and commit the updatedpyproject.toml.Try with
python utils/check_dependency_bounds.py.One can test this by lowering a version number in pyproject.toml and run the above command again. In the pipeline, then one will get instructions of how to proceed.