Refresh of the dependencies in Vigilant Crypto Snatch

The dependencies in the Vigilant Crypto Snatch project ended up being the dependency hell. Now I finally got it fixed.

In November 2022 I basically stopped working on Vigilant Crypto Snatch because the dependencies could not be updated any more. The problem is that there are so many packages with special requirements that there was no way to resolve all of this. Running poetry update took 40 minutes and then just crashed because it has exhausted my main memory. I gave up on it.

Then I had an idea, I just deleted all the dependencies except for the one with Python. And I updated Python from 3.7 to 3.8 because that would allow me to use more packages. And then I just added all the dependencies in one go:

poetry add BitstampClient appdirs coloredlogs pyyaml \
    requests sqlalchemy krakenex python-dateutil click \
    ccxt 'pandas^1.0' scipy streamlit altair PySide6 \
    black mkdocs_material pytest coverage pre-commit \
    mypy types-PyYAML types-requests \
    types-python-dateutil sqlalchemy-stubs

This led to a change in all the dependencies but I got it to a sensible version agin.

Let us write this nicer in a table:

Package Version before Version after
Python ^3.7.1,<3.11 ^3.8,<3.12,!=3.9.7
bitstampclient ^2.2.8 ^2.2.10
appdirs ^1.4.4 ^1.4.4
coloredlogs ^15.0 ^15.0.1
pyyaml ^6.0 ^6.0
requests ^2.25.1 ^2.28.2
sqlalchemy ^1.4.27 ^2.0.9
krakenex ^2.1.0 ^2.1.0
python-dateutil ^2.8.2 ^2.8.2
click ^8.0.0 ^8.1.3
ccxt ^1.74.11 ^3.0.72
pandas ^1.3.4 ^1.0
scipy ^1.7.2 ^1.10.1
streamlit ^1.14.0 ^1.21.0
urllib3 ^1.26.3
altair ^4.1.0 ^4.2.2
PySide6 ^6.3.0 ^6.5.0

As you can see, there was a major version bump in SQLAlchemy and two major versions in CCXT. The remainder has not have had a major version bump. But these and the Python version were enough to keep Poetry stuck when resolving the versions.

I am glad that this is now unstuck again and that one could continue developing it. However, there hasn't been much interest in new features lately. And I have stopped investing in Bitcoin altogether as I don't believe in much further growth. We had all the ingredients that would increased demand like Exchange Traded Notes (ETNs) and states adopting it as main currency (Ecuador). Both didn't help, and then we have the fraudulent exchanges which went bankrupt. I just sold everything and therefore my interest in this program isn't that high either.

At least the project is now in a state where one could keep developing it. Over the years it has been my playground for design patterns and I think that I have done a decent job with it. The time was certainly well spent learning about software architecture as it enables me to achieve much more at work than before.