This document describes the automated release process for Artwork Uploader for Plex.
The release process is fully automated using GitHub Actions. When you push a version tag, it will automatically:
- Verify the version matches
core/__version__.py - Generate a changelog from git commits
- Create source code archives
- Build executables (if PyInstaller spec exists)
- Create a GitHub release with all artifacts
- Update the
latesttag
# Bump patch version (0.5.1 -> 0.5.2)
python3 bump_version.py patch
# Bump minor version (0.5.1 -> 0.6.0)
python3 bump_version.py minor
# Bump major version (0.5.1 -> 1.0.0)
python3 bump_version.py major
# Set specific version
python3 bump_version.py 0.6.0The script will:
- Update
core/__version__.py - Create a git commit
- Create a git tag (e.g.,
v0.5.2) - Prompt you to push
Then just push:
git push
git push origin v0.5.2 # Push the tag to trigger release-
Update version in
core/__version__.py:__version__ = "0.5.2" __version_info__ = (0, 5, 2, "patch")
-
Commit the version change:
git add core/__version__.py git commit -m "Bump version to 0.5.2" -
Create and push tag:
git tag -a v0.5.2 -m "Release v0.5.2" git push git push origin v0.5.2
Once you push the tag, GitHub Actions will:
- Verify - Check that the tag version matches
__version__.py - Build - Create source archives and executables
- Release - Create a GitHub release with:
- Auto-generated changelog from commits
- Source code (zip and tar.gz)
- Executable builds (if available)
- Tag - Update the
latesttag to point to this release
For alpha, beta, or release candidate versions:
python3 bump_version.py 0.6.0-beta
git push
git push origin v0.6.0-betaVersions containing alpha, beta, or rc will automatically be marked as pre-releases on GitHub.
Since the changelog is auto-generated from commits, write clear, descriptive commit messages:
Good:
Fix KeyError when deleting scheduled tasksAdd support for MediUX season postersImprove error handling in scheduler service
Avoid:
fix bugupdatesWIP
After pushing a tag, you can:
- View the GitHub Action progress: https://github.com/mscodemonkey/artwork-uploader-plex/actions
- See the release when complete: https://github.com/mscodemonkey/artwork-uploader-plex/releases
If the workflow fails with a version mismatch:
- Check that
core/__version__.pymatches your tag - Update the version file and amend your commit
- Delete and recreate the tag:
git tag -d v0.5.2 git push origin :refs/tags/v0.5.2 git tag -a v0.5.2 -m "Release v0.5.2" git push origin v0.5.2
If the build fails:
- Check the GitHub Actions logs for details
- You can manually edit the release on GitHub
- The workflow is in
.github/workflows/release.yml
We follow Semantic Versioning:
- MAJOR version (1.0.0): Incompatible API changes
- MINOR version (0.6.0): New functionality (backwards compatible)
- PATCH version (0.5.2): Bug fixes (backwards compatible)
- The
latesttag always points to the most recent release - Users can check for updates by comparing their version to the latest tag
- Releases are public and visible to all users
- Draft releases are not supported with this automation (releases go live immediately)