Things I'd like to try in future
More idiomatic Linux installation
My current installation method is really aimed at Windows users. It produces self-contained directories with an executable inside. However, this executable is not on the path, and you can't install using a package manager - both basic expectations for Linux users.
To be honest, I just haven't got my head around creating .deb
packages but I am planning to add basic support for placing files in the correct
place according to the Filesystem Hierarchy Standard at some point.
Using pdm instead of Poetry
I have been bitten by Poetry's slightly odd approach to pinning maximum versions (excellent article here) and pdm seems to deal more neatly with this aspect. As I understand it pdm is intended to be used as a package manager on the target machine, which goes somewhat against my 'no prerequisites' principle. However, if it were to become ubiquitous like pip or npm, I could certainly see myself using it.
Using Hatch instead of Poetry
Hatch is a really interesting project which I think could take care of generating wheels/sdists in place of Poetry.
It also has some cool versioning features which might mean I could retire my script.
Hatch doesn't do dependency resolution, which is fine because pip
does that.
However, that does mean you have to manually specify dependencies in pyproject.toml
which is a bit tedious and a source of possible errors.
I have submitted a feature request to Hatch for this.
Bundling dependencies
I once read a post on the Python forums opining that application deployment should never use the target system's pip; rather the full code including all dependencies should be bundled with the application. This takes us back into pex territory, so perhaps one day I will revisit pex.