[dist] Make dvr-scan installable via pyproject.toml.
Migrate from the deprecated setup.py to pyproject.toml.
I did the migration using hatch, via uv tool run hatch new --init and did some minor adjustments.
It would be also possible to add optional dependencies, like opencv with pillow, but it is not possible to run dvr-scan without them, so I just made them mandatory, to reflect the current status of the software.
The tool can now be installed from git like using uv/uvx, like this:
uvx git+https://github.com/frafra/DVR-Scan.git@pyproject-toml
I updated the Dockerfile, so that it builds from the source code, using uv, with caching, multi-staging etc.
I set the PR as draft, since I notice that not all the code is installed when building the container, and the dynamic versioning needs to be configured in pyproject.toml.
I also noticed that the dvr-scan-app entrypoint was not defined.
Thanks for doing this, it's been on my radar for some time but I haven't gotten around to it yet.
I also noticed that the dvr-scan-app entrypoint was not defined.
Indeed, that's only in the develop and releases/1.7 branch right now. Would it be alright if we target this PR until after v1.7 is released? I plan on doing that this weekend so you should not have to wait long.
Would it be alright if we target this PR until after v1.7 is released? I plan on doing that this weekend so you should not have to wait long.
I have no hurry, and the PR is not even complete, so that is totally fine to me.
I had some issues converting to a pure pyproject.toml setup, but the project should overall function much better with uv now. Note that in the main branch I've changed the package structure a bit. I landed PR #222 using a UV-based build environment, and the project now uses UV for builds here on Github.
Would you be willing to rebase this PR to get it in for the next release? Thanks!
(P.S. Please let me know if you have any issues with uv out of the box now!)