mailpile / moggie

A free & open modern, fast email client with user-friendly encryption and privacy features
https://mailpile.is
Other
73 stars 1 forks source link

Add a `requirements-freeze.txt` file. #18

Open helgihg opened 3 weeks ago

helgihg commented 3 weeks ago

Having problems with running Moggie because of exceptions from urwid, I tried running back some versions and ended up getting Moggie to run with urwid version 2.4.6, as opposed to the most recent one at the time of this writing, 2.6.14.

Keeping a requirements-freeze.txt file would be helpful, seeing that updating dependencies is unlikely to be a priority while implementing features.

I'm still having crashes reasons still unclear to me, which may very well be for similar reasons, i.e. dependencies that should be of an older version than the newest available through PyPi.

Preferably it would be separate from the requirements.txt file, so that unused dependencies don't get stuck. Then, requriements-freeze.txt can be re-generated with a new virtual environment, installing using pip install -r requirements.txt and immediately creating requirements-freeze.txt using:

pip freeze > requirements-freeze.txt

Despite this, it may very well be prudent to maintain version pinning in requirements.txt when it is known that a specific version of a package is needed. For example, my current requirements.txt reads as follows:

setproctitle
cryptography
pycryptodomex
pycrypto
markdown
msgpack
numpy
urwid==2.4.6
aiosmtplib
pyqrcode
dkimpy
aiodns
PGPy
pgpdump
sop
upagekite
pyzipper
websockets

This also adds the benefit of a contributor being able to tackle problems with old dependencies in a more organized fashion by simply removing the version-pinning, and getting the code to work with the newest version at any given time.

BjarniRunar commented 3 weeks ago

Did you forget to update submodules by any chance? I ask because of your PR which I just rejected because I want to pull certain things from git submodules, not from pip.

That aside, what you are proposing probably has merit anyway, but I need to think about it a bit more to be sure I understand what we're aiming for.