Skip to content

Modernized package by using pyproject.toml instead of setup.py#206

Merged
speleo3 merged 3 commits intojensengroup:masterfrom
stefdoerr:pyproject
Feb 25, 2026
Merged

Modernized package by using pyproject.toml instead of setup.py#206
speleo3 merged 3 commits intojensengroup:masterfrom
stefdoerr:pyproject

Conversation

@stefdoerr
Copy link
Contributor

@stefdoerr stefdoerr commented Feb 6, 2026

This modernizes the python packaging of propka. It's also useful for newer tools like uv which don't work without the pyproject.toml file. With this change you can just do uv run pytest in the folder and it creates the env and runs the tests.

In theory I can also get rid of versioneer if you want by jsut adding setuptools-scm to the build-system (which would allow us to remove the remaining setup.py as well as the versioneer.py and version.py files). I didn't do it here to not intervene too much but if you want I am more than happy to add the change.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes PROPKA’s Python packaging by migrating project metadata and tool configuration into pyproject.toml, reducing reliance on legacy setup.py/setup.cfg configuration and improving compatibility with modern tooling (e.g., uv, PEP 517 builds).

Changes:

  • Added pyproject.toml with PEP 621 project metadata, setuptools configuration, and tool configs (versioneer/coverage/yapf/mypy).
  • Simplified setup.py to only provide Versioneer-driven version + cmdclass.
  • Removed setup.cfg, added a dedicated long description markdown file, and updated MANIFEST.in pruning.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
setup.py Reduced to minimal Versioneer integration for dynamic versioning.
setup.cfg Removed in favor of pyproject.toml tool configuration.
pyproject.toml New single source of truth for packaging metadata + tool configs.
MANIFEST.in Prunes docs/tests; needs alignment with removed/added packaging files.
LONG_DESCRIPTION.md New long description file referenced by pyproject.toml.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@stefdoerr
Copy link
Contributor Author

stefdoerr commented Feb 9, 2026

I fixed the suggestions of copilot. Let me know if you want me to also remove versioneer in favor of setuptools-scm https://setuptools-scm.readthedocs.io/en/latest/ which works without adding any files in the repository.

@sobolevnrm sobolevnrm self-requested a review February 9, 2026 14:56
@speleo3 speleo3 merged commit 8afb1df into jensengroup:master Feb 25, 2026
7 checks passed
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.

4 participants