diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d492d7e1d..b67b4c162 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,9 +4,10 @@ "features": { "ghcr.io/rocker-org/devcontainer-features/apt-packages:1": { "packages": "musescore3,lilypond" - } + }, + "ghcr.io/va-h/devcontainers-features/uv:1": {} }, - "postCreateCommand": "pip3 install --user -r requirements_dev.txt;pip3 install --user -e .", + "postCreateCommand": "uv sync --locked", "customizations": { "vscode": { "extensions": [ diff --git a/documentation/source/developerReference/developerGuidelines.ipynb b/documentation/source/developerReference/developerGuidelines.ipynb index 768f90e72..eae51643b 100644 --- a/documentation/source/developerReference/developerGuidelines.ipynb +++ b/documentation/source/developerReference/developerGuidelines.ipynb @@ -52,7 +52,7 @@ }, { "cell_type": "markdown", - "source": "## Preparing to Contribute ##\n\nThe recommended setup uses [uv](https://docs.astral.sh/uv/). From the repository root:\n\n```\nuv sync\n```\n\nThis creates a virtual environment in `.venv/` and installs runtime dependencies plus the\n`dev` dependency group. The `dev` group self-references `music21[extras]`, so the optional\nextras (`scipy` and `python-Levenshtein`) are pulled in automatically -- the test suite will\nnot pass without them.\n\nIf you prefer pip, the equivalent is:\n\n```\npip install -r requirements_dev.txt\npip install -e '.[extras]'\n```", + "source": "## Preparing to Contribute ##\n\nThe recommended setup uses [uv](https://docs.astral.sh/uv/). From the repository root:\n\n```\nuv sync\n```\n\nThis creates a virtual environment in `.venv/` and installs runtime dependencies plus the\n`dev` dependency group. The `dev` group self-references `music21[extras]`, so the optional\nextras (`scipy` and `python-Levenshtein`) are pulled in automatically -- the test suite will\nnot pass without them.\n\nUsers who have not yet adopted `uv` may still install runtime dependencies via\n`pip install -r requirements.txt`, but the development workflow (tests, linting, docs,\ntype-checking) is only supported through `uv`.", "metadata": { "collapsed": false } diff --git a/requirements.txt b/requirements.txt index a0f863c70..6f64da3ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,5 @@ jsonpickle matplotlib more_itertools numpy>=1.26.4 -webcolors>=1.5 requests +webcolors>=1.5 diff --git a/requirements_dev.txt b/requirements_dev.txt deleted file mode 100644 index e966214fe..000000000 --- a/requirements_dev.txt +++ /dev/null @@ -1,20 +0,0 @@ --r requirements.txt -coverage -coveralls -docutils -hatch -hatchling -ipython -jupyter -mypy>=1.16.0 -nbconvert -nbval -pylint>=3.2.0 -pytest -python-Levenshtein -ruff -scipy -sphinx -twine -types-requests -wheel diff --git a/requirements_minimum.txt b/requirements_minimum.txt deleted file mode 100644 index 22fd628e1..000000000 --- a/requirements_minimum.txt +++ /dev/null @@ -1,5 +0,0 @@ -chardet -joblib -more-itertools -requests -webcolors>=1.5