Dinnerbone / mcstatus

A Python class for checking the status of an enabled Minecraft server
http://dinnerbone.com/minecraft/tools/status/
1.11k stars 146 forks source link

Use poetry for dependency management and packaging #165

Closed ItsDrike closed 2 years ago

ItsDrike commented 2 years ago

Rather than defining 2 files for dependencies (requrements.txt and test-requirements.txt) along with another file for packaging (setup.py), we can merge all of these into a single pyproject.toml and manage both dependencies and packaging with single tool. Poetry is a very widely used tool and it's very versatile, unless there is some specific reason you'd have to avoid it, I think switching to it makes sense.

TODO

kevinkjt2000 commented 2 years ago

I love poetry! ❤️

unless there is some specific reason you'd have to avoid it,

PEP-517 / 518 did not allow for editable installs of pyproject.toml based files. Which is a deal-breaker for anyone who is trying to integrate an editable install of a poetry-managed project into a non-poetry-managed project. Granted, this might not be an issue within this community. A workaround is to build and install a distribution each time an edit is made. Enough upvotes and I'll assume the community is okay with this.

I'd love to integrate setuptools-scm someday when I have some free time for this project, but poetry's plugin system may not have the support yet (it's been at least 2-3 months since I last checked). My eye is on https://github.com/mtkennerly/poetry-dynamic-versioning. Poetry 1.2 is slated to have most of the building blocks that plugins need, but it's still in alpha https://github.com/python-poetry/poetry/releases/tag/1.2.0a2. I could wait longer on this.

I feel as if I just talked myself into not worrying about my 2 concerns. I'll review.