Skip to content

Update ci feectools install#237

Merged
spossann merged 38 commits intodevelfrom
update-ci-feectools-install
May 7, 2026
Merged

Update ci feectools install#237
spossann merged 38 commits intodevelfrom
update-ci-feectools-install

Conversation

@spossann
Copy link
Copy Markdown
Member

@spossann spossann commented May 5, 2026

Update CI:

  • remove some triggers on push to devel
  • re-install feectools only if there are submodule changes detected
  • use upper bounds in dependencies, phys and mpi in the devel branch. These ar checked for major and minor release updates on every PR into devel. The policy is summarized in CONTRIBUTING.m:

Pull requests into devel are checked for stale dependency upper bounds in pyproject.toml.

The policy is intentionally narrow:

  1. Only project.dependencies are checked.
  2. From project.optional-dependencies, only phys and mpi is checked.
  3. Patch-only updates are ignored.
  4. A pull request fails when a newer major or minor stable release exists on PyPI beyond the declared upper bound.

When the check fails, the CI summary prints local remediation commands. In short, run the checker locally, run python utils/update_dependency_bounds.py on that report, and commit the updated pyproject.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.

spossann and others added 30 commits May 5, 2026 15:19
…e dependencies from lat passed model tests on PR into devel
…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.
@spossann spossann marked this pull request as ready for review May 6, 2026 14:58
@spossann spossann requested a review from max-models May 6, 2026 14:58
@max-models
Copy link
Copy Markdown
Member

A pull request fails when a newer major or minor stable release exists on PyPI beyond the declared upper bound.

What happens if we actually require the version to be lower than the latest version on PyPI?

@spossann
Copy link
Copy Markdown
Member Author

spossann commented May 7, 2026

A pull request fails when a newer major or minor stable release exists on PyPI beyond the declared upper bound.

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 pip install upgrade-strategy eager so to test the newest versions always.

@max-models
Copy link
Copy Markdown
Member

A pull request fails when a newer major or minor stable release exists on PyPI beyond the declared upper bound.

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 pip install upgrade-strategy eager so to test the newest versions always.

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 jax-finufft<=1.2.0, but it has been removed in this PR anyway.

@spossann spossann merged commit e0c1813 into devel May 7, 2026
14 checks passed
@spossann spossann deleted the update-ci-feectools-install branch May 7, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants