Skip to content

1.0.0 - Semantic releases!

Compare
Choose a tag to compare
@in03 in03 released this 23 Jan 21:27
· 65 commits to main since this release

Huzzah! Automated semantic-releases are here!

This release marks the beginning of an automated semantic release cycle using python-semantic-release. It's been a year and a half since Proxima started on GitHub (back on the 28th of April 2021). Before then it was a two-year working collection of scripts that read .txt files for encoding jobs.

The old way

Until now, managing queuer/worker compatibility was maintained using a version-constraint key (a simple animal codename like 'quizzically-queer-quail') generated by CI/CD on each git push. This allowed for guaranteed queuer/worker compatibility across installation methods: pip/pipx, git/vcs, local repo clone, release install, etc. The plan was always to use semantic versioning as the version-constraint system eventually, but there were so many breaking changes in early dev that we'd but up to version 49.0.0 by now.

Why the change now?

While generating version-constraint-keys on repo push worked great to prevent incompatible workers from taking jobs, it was a big hindrance to development. Even the smallest bug-fix would require complete re-installation on each test-machine in the cluster. The code to get build info was also overly complicated and hacky for diminishing-returns: it needed to check if the installation was a local git-repo, installed via pip/pipx with a git URL or if it was a release install, and pass or fail instances in the cluster accordingly... Just a bit too much user hand-holding in the end.

What does that look like now?

For now, the version-constraint-key uses the package's __version__ which also matches pypackage.toml. Python-semantic-release handles bumping the hardcoded version variables based on conventional-commits (fix:, feat:, BREAKING CHANGE, etc). For the time being, the version-constraint uses both the major and minor semver numbers. This means that a minor change will create incompatibilities. Until there is solid compatibility testing to check for breaking changes, this is safer. This removes all the complexity of maintaining the complicated BuildInfo class, whilst also preventing patch level changes from creating incompatibilities. This release version will be incompatible with all prior git versions.

What's Changed?

This is actually everything since Proxima started, since we've never done a release! (This list doesn't include every change I pushed straight to 'main' which I'm ashamed to say was a lot)

  • Bump pywin32 from 300 to 301 by @dependabot in #8
  • Merge dev updates to main by @in03 in #18
  • Detect offline proxies, updated docstrings by @in03 in #23
  • fixed icecream dependency import error by @in03 in #24
  • Fixed bug/issue-27 by @in03 in #28
  • ci: [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #30
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #31
  • Bug/issue 25 by @in03 in #35
  • feat: Add queuer/worker compatibility check by @in03 in #40
  • fix: Bug/issue 49 by @in03 in #59
  • feat: Feature/issue 48 by @in03 in #66
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #63
  • fix: bug/issue 25 by @in03 in #94
  • bug/issue103 by @in03 in #107
  • fix(CLI): Address printing incorrect queue name by @in03 in #109
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #90
  • fix: Offline proxy handler prints whole job obj by @in03 in #111
  • fix: Recognise offline but relinkable proxies by @in03 in #113
  • fix(handlers): handle zero queueable properly by @in03 in #116
  • fix: clip flip detection by @in03 in #119
  • fix(handlers): revert proxy status on link failed by @in03 in #124
  • fix: broken aspect ratio from target resolution rounding error by @in03 in #135
  • fix: unlinked_proxy KeyError by @in03 in #136
  • Bug/issue-138/correct-bad-loglevels by @in03 in #157
  • fix: bug/issue-155/git-sha-slicing by @in03 in #159
  • feat: add commitizen support by @in03 in #164
  • feat: Improve version constraining by @in03 in #165
  • ci: Export requirements.txt on build by @in03 in #168
  • ci: Fix requirements.txt not being pushed to repo by @in03 in #169
  • ci: Fix broken export-requirements GitHub action by @in03 in #170
  • fix: Remove linked proxies from queue by @in03 in #172
  • fix: Improved version constraint key generation by @in03 in #175
  • fix: Always choose newest existing proxy by @in03 in #177
  • feat: Add "create issue branch" GH action by @in03 in #181
  • ci: Fix syntax error in CIB by @in03 in #183
  • fix(linking): Match proxies properly by @in03 in #186
  • feat: Queuer-side progress indication by @github-actions in #190
  • feat: Rebrand to Proxima by @github-actions in #211
  • fix: Data levels issues by @github-actions in #209
  • fix: First stream probed is not main video stream by @in03 in #219
  • fix: Premature link success message by @github-actions in #220
  • feat: Redis PubSub for Queuer side progress by @github-actions in #225
  • refactor: Swap Redis PubSub for Celery AsyncResult and custom states by @in03 in #228
  • fix: Remove dead Redis PubSub code by @in03 in #229
  • chore: [pre-commit.ci] automatic update by @pre-commit-ci in #188
  • chore: [pre-commit.ci] automatic update by @pre-commit-ci in #230
  • feat: Extend rerender offline prompt by @in03 in #232
  • refactor: Job dict object as Class by @github-actions in #234
  • feat: support-semver-version-constraint by @in03 in #251

New Contributors

Full Changelog: https://github.com/in03/proxima/commits/0.1.0