Skip to content

Relax mule's dependency requirements #18

@atteggiani

Description

Overview

Mule's current pyproject.toml pins all dependecies to exact versions:

mule/pyproject.toml

Lines 7 to 22 in 1957b13

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",
]

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

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",
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions