Skip to content

chore: merge constraints.txt and setup.cfg into pyproject.toml to simplify setup - #798

Open
ThosRTanner wants to merge 1 commit into
python-zk:masterfrom
ThosRTanner:issue/786/rationalise_pins
Open

chore: merge constraints.txt and setup.cfg into pyproject.toml to simplify setup#798
ThosRTanner wants to merge 1 commit into
python-zk:masterfrom
ThosRTanner:issue/786/rationalise_pins

Conversation

@ThosRTanner

@ThosRTanner ThosRTanner commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Fixes #786

Why is this needed?

Currently constraints are specified in 3 places which makes it hard to track what you need to change. I'm not an out and out lover of pyproject.toml but having all module setup in one place makes it easier to control package version dependencies.

All that is left in setup.cfg is the tag_build = dev to tag dev builds as such, as I've been unable to find an obvious equivalent in pyproject.toml

Proposed Changes

  • Move constraints.txt and setup.cfg info into pyproject.toml. This also requires us to:
    • Update setuptools to a version that supports dependency groups
    • Update the pytest version for python3.8 to the latest version that still supports python3.8
    • Update the required version of tox
  • Differentiate between the project's optional dependencies and the internal tooling dependencies
  • Update tox.ini to use new dependency groups
  • Remove the top level Makefile which has not been maintained and refers to non existent requirements file
  • Move control of sphinx dependencies into docs/requirements.txt
    • also make tox -e docs actually generate the docs.

Does this PR introduce any breaking change?

The internal dependencies are no longer leaked from setup.cfg, and the top level Makefile has been removed. This shouldn't affect anyone, but one never knows...

Codecov report

This appears to be because it's two commits out of date. This change hasn't affected what code is covered during tests

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.41%. Comparing base (e894342) to head (c24cafe).
⚠️ Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #798      +/-   ##
==========================================
- Coverage   96.65%   95.41%   -1.24%     
==========================================
  Files          27       27              
  Lines        3554     3858     +304     
==========================================
+ Hits         3435     3681     +246     
- Misses        119      177      +58     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ThosRTanner
ThosRTanner force-pushed the issue/786/rationalise_pins branch 2 times, most recently from 3a4595f to d542b29 Compare September 4, 2026 19:41
@ThosRTanner
ThosRTanner marked this pull request as ready for review September 4, 2026 19:57
@ThosRTanner
ThosRTanner force-pushed the issue/786/rationalise_pins branch 3 times, most recently from 15c17d4 to 21f0b93 Compare September 5, 2026 17:25
Consolidates setup.cfg and constraints.txt into pyproject.toml, and
additionally cleans up the list so that only the optional eventlet,
gevent and sasl dependencies are visible, the various dev ones are not.

Updated pytest to the latest supporting 3.8 or it can't cope with
the .toml file...

Removed Makefile which isn't used anywhere and references a bunch of
requirements*.txt files which don't exist.
@ThosRTanner
ThosRTanner force-pushed the issue/786/rationalise_pins branch from 21f0b93 to c24cafe Compare September 5, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move to using pyproject.toml and requirements.txt rather than setup.cfg+pyproject.toml+constraints.txt

1 participant