wrapper around train.py, ... scripts and release on pypi
Opened this issue · 1 comments
That would heavily simplify the management of updates for users and make the installation much simpler, just run pip install neosr
and one would be ready to go.
As the config templates wouldn't be available locally anymore a neosr template ls
and neosr template write
command may also be of interest.
I have been thinking about this idea, and kinda decided not to proceed with this for now. I would like to hear opinions though. Reasons:
- PyPI packages don't follow the
.lock
hashes. This means the env can't be reproduced, contrary to usingpoetry
like it is right now. - The
options/
would be awkward to work with (neosr template --otf span
... would be weird) - No benefit (afaik) other than having a pretty name in the terminal. If the project had a public api having a package on pypi would really have benefits, but it doesn't
So instead of publishing on pypi, maybe a better solution would be to provide scripts for installing, updating and uninstalling.
For example, a single command (windows) irm "https://github.com/neosr-project/neosr/install" | iex
or (linux) curl -s https://github.com/neosr-project/neosr/install | sh
, would download and execute a powershell or shell, respectively. That script would check for CUDA version, python version and git. If they are not installed or have an unsupported version, attempt to use a package manager to install it, or fail with a message. Then after that the script executes successfully, a python script is executed, that will install poetry and use it to install neosr (as described on Installation Instructions). That way, the env is completely reproducible by obeying the lock file, and we don't need the complexity that comes with making it a package.
Opinions?