This replaces the previous yt-dlp auto-test and merge workflow to use
Renovate instead of Dependabot, since we've found that Dependabot is
no longer able to update our dependencies.
We previously ran the full suite, including test_brozzling, on a daily
timer because it took an enormous amount of time to run. I'd been under
the impression this was because it *had* to take that long to do the
work it was performing, but it looks like it hadn't been necessary and
the suite has been sped up massively since. We can now run it in about
six and a half minutes, which is perfectly fine to run on every PR.
This was skipped before due to flakiness, but it seems to be both
reliable and fast enough to be tolerable. It takes about 30 seconds
to complete on my local machine.
Python 3.8 is EOL since October. It's no longer supported by new versions
of yt-dlp, limiting video capture support. It's also no longer supported
by setuptools, which has complicated distribution - it's preventing us
from keeping packaging configuration up to date.
This runs every time we get a new yt-dlp version - we test to see if
this script is able to download at least 3/5 out of a set of videos
we've defined. If it succeeds, we go ahead and automatically merge
the new yt-dlp version into the qa branch so that we can test
further.
This adds a tag-to-release Actions config based around uv.
This is triggered by pushing a tag with a new version; it will
automatically kick off this job, which will publish the new
version to PyPI on completion. We can push that tag from a PR
or directly to master.
At the moment, this doesn't do anything to automatically create
a GitHub release from the tag; we can do that manually for now,
but if we're interested I can add something to automatically
generate the release too.
We don't need to provide a token to uv to publish; instead, we
just need to configure the repo for PyPI access using this:
https://docs.pypi.org/trusted-publishers/adding-a-publisher/
* Makefile improvements + pre-commit hook
* update make target in CI
* fix CI more
* .gitignore update
* couple more Makefile refinements
* make target-version explicit on ruff import sorting
There are a few minor changes here compared to black; it flagged
unnecessary string concatenations, and has slightly different
opinions on line length.
This adds two CI runs: a quick one that happens for every pull
request and merge to master, and a longer one that happens daily.
This also adds a new installation group to setup.py because the
`easy` group isn't currently installable, and some of the dependencies
specified there need to be present for the tests to run.