self-updater

If you want the source:

git clone https://dev.waynewerner.com/pub/repos/self-updater.git

This is a very basic app that performs no particularly useful task, aside from updating itself via pip.

This runs with a --dev flag to increase verbosity. You can also run with --server in order to start a flask webserver.

Let's install:

mkdir -p /tmp/asdf
cd /tmp/asdf
uv venv
source .venv/bin/activate
uv pip install self-updater==2026.2.0 --index=https://dev.waynewerner.com/python

Usage:

$ self-updater --version
2026.2.0.dev1 -- Up-to-date!

Then after a new update is available:

$ self-updater --version
2026.2.0.dev1 -- Update available! New version 2026.2.0.dev2

To update:

$ self-updater --update
Updating versions 2026.2.0.dev1 -> 2026.2.0.dev2 ...
Done!
$ self-updater --version
2026.2.0.dev2

What if something goes wrong, though, because it's a bad version?

$ self-updater --version
2026.2.0.dev2 -- Update available! New version 2026.2.0.dev3
$ self-updater --update
Updating versions 2026.2.0.dev2 -> 2026.2.0.dev3 ...
ERROR - 2026.2.0.dev3 version check failed! Rolling back to 2026.2.0.dev2 ...
Done!
$ self-updater --version
2026.2.0.dev2

Finally, let's try out the web version:

$ self-updater --server --dev