Skip to content

Add Makefile target and script to update developer environment lock files#2208

Merged
James Frost (jfrost-mo) merged 3 commits into
mainfrom
2207_make_update_dev_deps
Jun 22, 2026
Merged

Add Makefile target and script to update developer environment lock files#2208
James Frost (jfrost-mo) merged 3 commits into
mainfrom
2207_make_update_dev_deps

Conversation

@jfrost-mo

@jfrost-mo James Frost (jfrost-mo) commented Jun 22, 2026

Copy link
Copy Markdown
Member

This makes it possible to update these without relying on GitHub Actions. Additionally a marker file is now created indicating when the lock files were last generated, as a prerequisite for #2207.

Contribution checklist

Aim to have all relevant checks ticked off before merging. See the developer's guide for more detail.

  • Documentation has been updated to reflect change.
  • New code has tests, and affected old tests have been updated.
  • All tests and CI checks pass.
  • Ensured the pull request title is descriptive.
  • Ensure rose-suite.conf.example has been updated if new diagnostic added.
  • Conda lock files have been updated if dependencies have changed.
  • Attributed any Generative AI, such as GitHub Copilot, used in this PR.
  • Marked the PR as ready to review.

A script is used to do the updating, which should be reasonably
portable. Pre-commit hooks are updated at the same time so this covers
all the developer dependencies.
We can now do this without reliance on GitHub.
This ensures we are using the same code everywhere.
@jfrost-mo James Frost (jfrost-mo) added documentation Improvements or additions to documentation cleanup Non-functional improvement dependencies Pull requests that update a dependency file labels Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage

@daflack David Flack (daflack) 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.

LGTM. Really like this addition from an accessibility perspective as a "science developer" as limits potential confusion of branches of branches for those not as used to github. It feels a lot cleaner, and easier to update, if a new dependency is added.

My one thought is what happens if someone wants to add a dependency (say tomorrow) and there is a known upgrade that impacts us - e.g. the matplotlib one) are there ways to restrict the updates, or send a message round to those that have to do this, or are we expecting this to be picked up in review?

@jfrost-mo

Copy link
Copy Markdown
Member Author

There is not a direct way, however we can pin the dependency in requirements/environment.yaml, which drives the environment solver.

Ideally our tests would pick up a broken dependency; the area we are weak on is our plotting, as we don't actually look at the plots produced, only that something is produces. I've got some ideas to improve this, but they need a little bit more thinking about first.

Once this set of PRs is merged I'll do an example pinning back matplotlib, now I've figured out what the issue is in #2205.

@daflack David Flack (daflack) 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.

Happy with response; happy to approve.

@jfrost-mo James Frost (jfrost-mo) merged commit 85e3218 into main Jun 22, 2026
8 checks passed
@jfrost-mo James Frost (jfrost-mo) deleted the 2207_make_update_dev_deps branch June 22, 2026 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup Non-functional improvement dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants