Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion RELEASING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Release Procedure

#. From a clean work tree, execute::

tox -e release -- VERSION
uvx tox -e release -- VERSION

This will create the branch ready to be pushed.

Expand Down
30 changes: 24 additions & 6 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1097,17 +1097,29 @@ projects rely on it. Our Github integrated CI process runs the full
`tox test suite`_ on each commit so be sure your changes can run on
all required `Python interpreters`_ and ``pytest`` versions.

For development, we suggest to create a virtual environment and install ``pluggy`` in
editable mode and ``dev`` dependencies::
For development, we suggest uv_. ``uv sync`` creates a virtual environment with
``pluggy`` installed in editable mode and the ``dev`` and ``testing`` dependency
groups, and ``uv run`` runs commands in it::

$ python3 -m venv .env
$ source .env/bin/activate
$ pip install -e .[dev]
$ uv sync
$ uv run pytest

Without uv, pip 25.1 or later installs the same dependency groups::

$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -e . --group dev --group testing

To run the full tox_ matrix, install tox as a tool rather than into the project
environment, because tox itself depends on ``pluggy`` and would otherwise run on
the checkout under test::

$ uvx tox

To make sure you follow the code style used in the project, install pre-commit_ which
will run style checks before each commit::

$ pre-commit install
$ uv run pre-commit install


Release Policy
Expand Down Expand Up @@ -1151,6 +1163,12 @@ Table of contents
.. _pre-commit:
https://pre-commit.com/

.. _uv:
https://docs.astral.sh/uv/

.. _tox:
https://tox.wiki/


.. Indices and tables
.. ==================
Expand Down
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ Issues = "https://github.com/pytest-dev/pluggy/issues"
Funding = "https://tidelift.com/subscription/pkg/pypi-pluggy"

[dependency-groups]
dev = ["pre-commit", "tox"]
testing = ["pytest", "pytest-benchmark", "coverage"]
dev = ["pre-commit"]
testing = ["pytest>=8", "pytest-benchmark", "coverage"]


[tool.setuptools]
Expand Down Expand Up @@ -87,6 +87,11 @@ known-local-folder = ["pluggy"]
lines-after-imports = 2

[tool.setuptools_scm]
# Crutch for dependabot, not a real version. Dependabot relocks uv.lock from
# files fetched without git and pretends fallback_version, or 0.0.0 without one.
# pytest depends on pluggy>=1.5, so at 0.0.0 the lock silently fell back to
# pytest 3.2.5. The local label marks this as fake and keeps it off PyPI.
fallback_version = "1.6.0+fallback"

[tool.uv]
default-groups = ["dev", "testing"]
Expand Down
Loading
Loading