Relax mule's dependency requirements
- Dominant language
- Python
- Stars
- 5
- Forks
- 8
- Avg merge
- 4h 16m
- Merged PRs (30d)
- 6
Description
## Overview
Mule's current `pyproject.toml` pins all dependecies to exact versions:
https://github.com/MetOffice/mule/blob/1957b135859760a1858d67bc86161977bbb69b1b/pyproject.toml#L7-L22
This makes `mule` difficult to install alongside other Python packages and, more generally, within custom Python environments. In the Python packaging ecosystem, pinning dependencies to exact versions is usually discouraged for libraries (unless strictly necessary).
Would it be possible to relax these constraints?
For example, instead of pinning to exact versions, could `mule` declare only lower bounds for its dependencies (example below), allowing greater flexibility while still ensuring compatibility?
### Example
```toml
dependencies = [
"cpplint >= 2.0.2",
"ruff >= 0.12.1",
"shellcheck-py >= 0.10.0.1",
"sphinx >= 8.2.3",
"sphinx-lint >= 1.0.0",
"pydata-sphinx-theme >= 0.16.1",
"sphinx-design >= 0.6.1",
"sphinx-copybutton >= 0.5.2",
"sphinx-lint >= 1.0.0",
"sphinx-sitemap >= 2.8.0",
"sphinxcontrib-svg2pdfconverter >= 1.3.0",
"numpy >= 2.3.3",
"six >= 1.17.0",
"pillow >= 11.3.0",
]
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with pyproject.toml lines 7–22 and review the exact dependency pins against the proposed lower-bound declarations. Check the dependency list for consistency, then verify that the package can still be installed with the relaxed constraints; done means the metadata permits compatible newer versions without retaining unnecessary exact pins.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100