Skip to content

Latest commit

 

History

History
1709 lines (952 loc) · 79.5 KB

CHANGELOG.md

File metadata and controls

1709 lines (952 loc) · 79.5 KB

CHANGELOG

v1.0.7 (2023-09-14)

Build

  • build: Bump package version (08cd3f5)

  • build: Export updated requirements.txt (88f980b)

  • build: Export updated requirements.txt (5733bbc)

Chore

  • chore: gitignore user config toml (5842d52)

Documentation

  • docs: Update README

Remove new TOML support from roadmap, added to features, updated issue link to PR link (ebcc818)

Fix

  • fix: Broken module import paths (6461cd5)

  • fix: Broken module import paths (242eb31)

  • fix: Broken dependency (41a2501)

v1.0.6 (2023-02-20)

Chore

  • chore: [pre-commit.ci] automatic update (#259)

updates:

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (e92b4a9)

Documentation

  • docs(is_offline): Disambiguate 'Offline' (99ac4ef)

  • docs(is_linked): Disambiguate 'linked' (572294f)

Fix

  • fix: Incorrect definition of 'linked' (70c3c03)

  • fix: Inverted offline logic (1ce6aa5)

  • fix(settings): Settings priority issues

Some settings had incorrect keys and were pulling defaults from the pydantic defaults. I removed the defaults from Pydantic for better config/code seperation.

Some settings were renamed to more accurately reflect their purpose, leading to some breaking changes in configuration. Unfortunately, if a user attempted to change the settings with incorrect keys, they were ineffective anyway.

Although technically a breaking change, will treat this as semver minor bump. The version constraints are still set to respect semver minor changes as incompatible. (b11c5de)

Refactor

  • refactor(newest_linkable): Improve readability (1651bc2)

  • refactor: Rename ambiguous 'managed_proxy_status' (d36c168)

  • refactor(batch): Improve readability

  • De-nesting
  • More comments
  • Exit early
  • More debug logs (ea5afa4)
  • refactor: Disambiguate 'already linked' usage (6c14851)

  • refactor: Disambiguate 'already linked' usage (f356fd0)

Unknown

  • Merge pull request #268 from in03/bugfix/266/detecting-proxy-status-none-as-offline (2f3ac3a)

v2.0.0 (2023-02-16)

Refactor

  • refactor: SettingsManager with TOML and better practices (#258) (89a8fa4)

v1.0.5 (2023-02-09)

Fix

  • fix(build): Typed git vars were unassigned (ad53709)

Unknown

v1.0.4 (2023-02-09)

Fix

  • fix: isort broke fragile init imports (e227ac2)

Unknown

v1.0.3 (2023-02-09)

Build

  • build: Export updated requirements.txt (c539357)

  • build: Update black (627037c)

Chore

  • chore: [pre-commit.ci] automatic update (#253)

  • chore: [pre-commit.ci] automatic update

updates:

  • chore: [pre-commit.ci] automatic fixes

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (f96d749)

Ci

  • ci: Disable flake8 for now (a45a458)

  • ci: Add flake8 (06440e6)

  • ci: Add isort, flake8 to precommit (95691cc)

  • ci: Enable upload to PyPi (f7b6a53)

Fix

  • fix: git sha type error (02064fb)

  • fix: git_sha attribute error (357c821)

Refactor

  • refactor: Remove unused statement (0b14889)

Style

  • style: package wide isort (deaeb9c)

  • style: Format all modules with black (f061082)

Unknown

v1.0.2 (2023-02-06)

Build

  • build: Export updated requirements.txt (825d736)

  • build: Using official notify-py again (af61774)

  • build(deps): bump setuptools from 65.3.0 to 65.5.1 (#243)

Bumps setuptools from 65.3.0 to 65.5.1.


updated-dependencies:

  • dependency-name: setuptools dependency-type: indirect ...

Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (31a5cfe)

  • build: Add python-semantic-release as Poetry dependency (5a83136)

Chore

  • chore: [pre-commit.ci] automatic update (#236)

updates:

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (cb74425)

Ci

  • ci: Change to sem-rel GH action (6b92166)

  • ci: Add repo and pypi secrets for auto-release (0db66ea)

  • ci: Ensure full git history (8c1faed)

  • ci: Prevent simultaneous releases (ea26666)

Documentation

Fix

  • fix: Package path was using PWD! (4b2972d)

Refactor

  • refactor: VC key as environment variable (b349a25)

  • refactor: More robust version constraint key (5b020de)

Style

Unknown

v1.0.1 (2023-01-25)

Build

  • build: Manually bump version for first major release (2661661)

  • build: Export updated requirements.txt (c744932)

  • build: Export updated requirements.txt (c5e84be)

  • build: Make docs optional (39ee9ce)

  • build: Export updated requirements.txt (289504b)

  • build: Export updated requirements.txt (ccef3ef)

  • build: Export updated requirements.txt (5be21b6)

  • build: Export updated requirements.txt (f63bb5c)

  • build(poetry): Add vc key to poetry include section

Forgot to explicitly include version_constraint_key when Poetry builds. The file is not pulled into the installation when built with pip or pipx without being explicitly included. (fb45d79)

  • build(poetry): remove unused merge_args dev dependency (e884f30)

Chore

  • chore: Add FUNDING.yml (c846285)

  • chore: [pre-commit.ci] automatic update (#230)

  • chore: [pre-commit.ci] automatic update

updates:

  • build: Export updated requirements.txt

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <pre-commit-ci[bot]@users.noreply.github.com> (1d735bf)

  • chore: [pre-commit.ci] automatic update (#188)

  • chore: [pre-commit.ci] automatic update

updates:

  • refactor: Update version_constraint_key

  • refactor: Update version_constraint_key

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Caleb Trevatt <[email protected]> (c68ef3c)

  • chore: Remove old dependencies (0ed55e3)

  • chore: Merge branch 'main' (618ba2b)

  • chore(pycache): remove ignorables

Accidentally committed __pycache__ .pyc files somehow. (587d320)

  • chore: rollback pre-commit to 4.1.0

precommit 4.2.0 drops Python 3.6 support. Will need to migrate to 3.7 or above soon but must be switch to Resolve 18 for >3.6 support. Drops compatability with all 17 users. Need a final 17 release first. (0c190b2)

  • chore: [pre-commit.ci] automatic update (#90)

updates:

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (c3ae387)

  • chore: alter pre-commit CI msg to pass semantic-PR CI (999d14e)

  • chore: attempt to trigger TODO-to-issues CI action (dab5839)

  • chore: remove TODOs AGAIN to trigger gh issues (81a978e)

  • chore: Recommit TODOs to trigger gh action (b20eb50)

  • chore: hide TODOs for recommit to trigger action (d7d895e)

  • chore: Add TODOs to generate issues in github

  • Fix pywin32 dependency error, set gh runner to Windows
  • Delete duplicate gh-action workflow (890a60e)
  • chore: Add GitHub 'TODO-to-issue' action (2290a8e)

  • chore: update dependencies (1679e38)

Ci

  • ci(semantic-release): Bump poetry version (fbf2b3f)

  • ci: Pin python-semantic-release version (5e720b4)

  • ci: Change branch name for release criteria (2187ce2)

  • ci: Remove flake8 and pytest for now (c31f7f2)

  • ci: Add flake8 (6e62725)

  • ci: Attempt fix poetry config error (73fe9bf)

  • ci: Remove large file check (9d38a48)

  • ci(issues): fix GH action trigger (59e2026)

  • ci(issues): Moved action config to correct file

Created issue-branch.yml file in .github directory. Configuration for create-issue-branch action isn't supposed to be in the workflow file itself. (8ac21b5)

  • ci(issues): Fix indentation parsing error (67ea1b8)

  • ci(issues): Fixed indentation error (117f13a)

  • ci: Fix syntax error in CIB (#183)

  • ci(issues): Add GH action 'Create Issue Branch'

More testing needed!

  • refactor: Update version_constraint_key

  • ci(issues): Fix syntax error in CIB

Forgot 'uses:'...

  • refactor: Update version_constraint_key

  • refactor: Update version_constraint_key (809c7db)

  • ci(requirements.txt): Make check pass if no change

Also now only runs on pushes, not pull-requests. (8f242d9)

  • ci: Fix broken export-requirements GitHub action (#170)

  • ci: export requirements.txt on each push

  • ci: fix invalid yaml, separate ci jobs

Renamed CI workflow files yet again. Something wrong with formatting. One job per file seems tidy enough.

  • refactor: Update version-constraint key

  • ci: fix requirements.txt not being pushed to repo

Action didn't include commit and push steps so file wasn't persisting.

  • refactor: Update version-constraint key

  • refactor: Update version-constraint key

  • ci: fix syntax error in export-requirements action

Missing dash.... Gosh!

  • refactor: Update version-constraint key

  • refactor: Update version-constraint key

Co-authored-by: Update VC-key Action <[email protected]> (d36a48e)

  • ci: Fix requirements.txt not being pushed to repo (#169)

  • ci: export requirements.txt on each push

  • ci: fix invalid yaml, separate ci jobs

Renamed CI workflow files yet again. Something wrong with formatting. One job per file seems tidy enough.

  • refactor: Update version-constraint key

  • ci: fix requirements.txt not being pushed to repo

Action didn't include commit and push steps so file wasn't persisting.

  • refactor: Update version-constraint key

  • refactor: Update version-constraint key

Co-authored-by: Update VC-key Action <[email protected]> (27cf226)

  • ci: Export requirements.txt on build (#168) (8bd6c63)

Documentation

  • docs: Add semantic-release badge (ff4e59e)

  • docs: Fix mkdocs.yml (63d30b3)

  • docs: Remove 'termynal' plugin (450710e)

  • docs: Fix mkdocs.yml (04943dc)

  • docs(job): Logger precision of language (1a7f1c7)

  • docs: Add roadmap and philosophy (b6470c1)

  • docs: Update README.md (3509175)

  • docs: Update landing page (b268d3d)

  • docs: Update README.md

Initial updates to match new documentation on GitHub pages (23fd29e)

  • docs: Improve landing page (43bf724)

  • docs: Update README.md

Add documentation link (51b6c1c)

  • docs: Update mkdocs site (8e3a895)

  • docs: Update mkdocs site (0078f67)

  • docs: update README

  • Added badges
  • Added basic UI demo GIF
  • Added warning callouts
  • Added contribution guide link
  • Addressed Blackmagic Proxy Generator
  • Added sections detailing existing features and features to come
  • Restyled some sections
  • Updated old configuration references (9f5aa99)
  • docs(README): add demo gifs (192b9d6)

Feature

  • feat: support-semver-version-constraint (#251) (354523a)

  • feat(checks): Start support for busy-worker metrics (18431a7)

  • feat: Extend rerender offline prompt (#232) (0407b58)

  • feat: Redis PubSub for Queuer side progress (#225)

  • Create draft PR for #224

  • feat(link): Add exception info if all fail link

  • refactor: Group ID as Redis channel ID

  • refactor: Update version_constraint_key

  • refactor: MVP Redis PubSub

  • refactor: Update version_constraint_key

  • refactor: Tidy deeply nested modules

  • refactor: Update version_constraint_key

  • fix: Remove new data flag, recalc every loop

Now just calculating progress and task info every iteration of the loop instead of checking new data flags. It looks like there may be a race condition of some sort causing inaccurate worker numbers.

I might consider thread locks if they work with Redis' pubsub run_in_thread.

  • refactor: Update version_constraint_key

  • refactor: Dropped direct Redis usage altogether

Alright, this is kind of funny. Turns out I've been reinventing the wheel this whole time. Celery's GroupResult contains AsyncResult instances with all the data we need to get active worker count, task completion and task encoding progress (with a custom task state definition).

So:

  • dropped Redis database polling
  • dropped Redis PubSub
  • use unique worker IDs instead of sequential prefix to easily start additional workers at any time
  • refactor: Update version_constraint_key

  • docs: Update README.md

  • build: Export updated requirements.txt

  • refactor: Update version_constraint_key

Co-authored-by: in03 <[email protected]> (f75e167)

  • feat: Rebrand to Proxima (#211)

  • Create draft PR for #210

  • feat(cli): Major app changes

  • Rebranded "Resolve Proxy Encoder" as "Proxima"
  • Changed CLI entrypoint from "rprox" to "proxima"
  • Added full Celery sub command support
  • refactor(figlet): Delete unused figlet font

  • refactor: Rename all old names across files

  • refactor: Update version_constraint_key

  • docs(README): New features

  • Cross off completed features
  • Add features and enhancements to roadmap
  • Reflect name change
  • Warn dropped support for brokers other than Redis
  • refactor: Update version_constraint_key

  • docs(README): Grammar

  • refactor: Update version_constraint_key (2ccae65)

  • feat: Queuer-side progress indication (#190)

Some refinements and performance improvements are likely needed, but this is good enough to be merged into main. (4928568)

  • feat: Add "create issue branch" GH action (#181)

  • ci(issues): Add GH action 'Create Issue Branch'

More testing needed!

  • refactor: Update version_constraint_key (c3df49b)

  • feat: Improve version constraining (#165)

  • ci: Add GH action to create queue-id file

  • ci: test queue-id action

  • ci: fix broken git push ref

  • ci: Update Queue-ID file

  • ci: terminology change - 'version-constraint key'

Using 'version-constraint key' instead of 'queue-id' to be more descriptive. Celery terminology is already opaque to end users, i.e. 'routing-key' vs 'queue'. Queue is both a noun and a verb, and refers to both Celery's queue name that receives queued tasks as well as the act of queuing them.

  • ci: Fix incorrect variable name

File was being written with "" as key, since variable reference was wrong.

  • fix: Force overwrite since file name is different

  • refactor: Update version-constraint key

  • fix: Unnecessary echo in version_constraint_key

  • refactor: Update version-constraint key

  • feat: implement mnemonic version constrain key

  • moved hefty imports to CLI sub-commands for faster loading time and quicker UI responsiveness

  • queuer checks other workers compatibility against its own version_constraint_key file

TODO:

  • get worker queue name from version_constraint_key file, otherwise all locally workers will still be using git-sha mechanism, including self.

  • implement --hide_banner option globally with Typer

  • implement RPROX_HIDE_BANNER environment variable

  • further test version collision probability

  • refactor: Update version-constraint key

  • fix: remove unnecessary insecure serialization protocols

  • feat(launch_workers.py): worker use new version constraint key

  • refactor(launch_workers.py): logging queue-name reflect term change

Still in a bit of a weird place with terminology here. We have queue, version constraint key and routing key. The choice to refer to the name of the queue as version constraint key better reflects application usage and user expectations. "Queue" on its own is both a noun and a verb and we already use the term to describe a module and the process of "queuing" proxies. Some additional terminology changes in code may be necessary at a later date.

  • refactor: Update version-constraint key

  • refactor: Update version-constraint key

Co-authored-by: Update-Queue-ID <[email protected]> Co-authored-by: Update VC-key Action <[email protected]>

pre-commit.ci autofix (b4b22fc)

  • feat: add commitizen support (#164)

Implements #162 :sunglasses: :+1: (10554c8)

  • feat: merge misc enhancements from feat/issue-9

BREAKING CHANGES

Merged some enhancements from: 4eaaf02ec3f66143f5d871d81ebe332d94b537c8 b9d9a357f30dd8cbfc7f77644c53997f7cb4a580

Namely:

  • relative imports where possible
  • maintain source aspect ratio, match user set vertical resolution
  • inherit timecode from Resolve clip attributes, no probing file

Since YouTour's camera config change, timecode issues were preventing proxies from linking.

Excluded any chunked-encoding development. (572810e)

  • feat: started work on chunking on queuer-side (e800d31)

  • feat: start split and stitch integration (1dd2062)

  • feat: Feature/issue 48 (#66)

  • fix: stop spinners from breaking console logging

Bit of a verbose solution that could do with some refinement, but works. Adresses #42

  • chore: delete todos, close issues

  • fix: Improve worker console progress output

  • Modified better_ffmpeg_progress source code instead of import
  • Using rich now instead of better_ffmpeg_progress tqdm handler
  • Delete broken CI workflow. Will fix later. Unresolvable dependencies.

Addresses #48

  • feat: add app settings, improve console output
  • Add logfile path, disable version constrain, check for updates
  • Improve console spinner behaviour, icons, etc.
  • Improve console logging
  • Add --without-gossip and --without-mingle to worker_celery_args in default_settings.yml.

BREAKING CHANGE: some settings renamed and moved! Recommend re-initialising user config.

Address #42 and #48 (507102a)

  • feat: Add queuer/worker compatibility check (#40)

  • initial dev versioning detection

  • Started on github commit query

  • Added git based update checking

  • Add versioning detection when not package

  • FIX: Merge from main, start worker compat testing

  • FIX: Catch timeout when calling GitHub API

  • FEAT: Queuer/Worker version mismatch warning working

  • Moved worker check to CLI queue cmd, better logging

  • feat: Add setting to bypass worker compat check

  • Fix notify function in helpers
  • Fix worker_use_win_terminal setting
  • docs: Update README
  • Recommend pipx to deal with dependency conflicts
  • Explain potential issues with running Python 3.6
  • [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (f635cee)

Fix

  • fix(BuildInfo): Incorrect version import

BuildInfo was pulling the verison number from site-package's distinfo. Running from git would yield the system installed version and if not installed, would throw an error. (100e006)

  • fix(job): Incorrect loglevel (b90ade1)

  • fix: Including vc key incorrectly (c323d60)

  • fix: Pushing vc key to wrong path (7637170)

  • fix: Broken build_info check (713e6ad)

  • fix: Broken vc_key resolution (de4440a)

  • fix: Broken vc_key resolution (caf7998)

  • fix: Version constraint file path inconsistency

We were relying implicitly on the VC file path-depth matching between different package installation methods. Moving the source a src subfolder broke the VC key file path resolution for URL/release installs.

This should be fixed with a more robust path-matching solution at some point. (93c8195)

  • fix: Output directory never created (60e2762)

  • fix: Regex criteria applied incorrectly to file extension instead of name (dcef3fb)

  • fix(job): Allow modifying 'is_offline' property (a98f56b)

  • fix: Set existing media 'online', prevent offline handler handling (6ba72b0)

  • fix(tasks): Parsing color data in_range incorrectly (88d3009)

  • fix(batch): Re-render mitmatch_fail queues twice (b590631)

  • fix: collision-check logic flip breaks every export (d8a3a75)

  • fix: Incorrect loglevel (96bb683)

  • fix: Broken timeout print on app-exit (48f892a)

  • fix: handle broken tasks worker-side (06dfefe)

  • fix: Up-to-date emoji (6a5d099)

  • fix: Relink Rerendered offline media (f011bfb)

  • fix(handlers): handle offline choice not respected (0dc0a5a)

  • fix: Relative script path fetching broken

purge and celery subcommands rely on passing commands to Celery. Previously they were passing commands to the Celery installed on path unlike the launch_workers module which uses the local package instance. If Celery isn't installed on the system (or is incompatible version), things would break.

  • Update get_script_from_package function
  • Remove get_celery_binary_path function
  • Remove global Celery from path fallback (ac0fa63)
  • fix: Remove dead Redis PubSub code (#229)

  • Create draft PR for #224

  • feat(link): Add exception info if all fail link

  • refactor: Group ID as Redis channel ID

  • refactor: Update version_constraint_key

  • refactor: MVP Redis PubSub

  • refactor: Update version_constraint_key

  • refactor: Tidy deeply nested modules

  • refactor: Update version_constraint_key

  • fix: Remove new data flag, recalc every loop

Now just calculating progress and task info every iteration of the loop instead of checking new data flags. It looks like there may be a race condition of some sort causing inaccurate worker numbers.

I might consider thread locks if they work with Redis' pubsub run_in_thread.

  • refactor: Update version_constraint_key

  • refactor: Dropped direct Redis usage altogether

Alright, this is kind of funny. Turns out I've been reinventing the wheel this whole time. Celery's GroupResult contains AsyncResult instances with all the data we need to get active worker count, task completion and task encoding progress (with a custom task state definition).

So:

  • dropped Redis database polling
  • dropped Redis PubSub
  • use unique worker IDs instead of sequential prefix to easily start additional workers at any time
  • refactor: Update version_constraint_key

  • docs: Update README.md

  • build: Export updated requirements.txt

  • fix: Remove dead Redis PubSub code

  • refactor: Update version_constraint_key

  • chore: [pre-commit.ci] automatic fixes

  • refactor: Update version_constraint_key

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <pre-commit-ci[bot]@users.noreply.github.com> (36f5cf5)

  • fix(ffmpeg_progress): broken relative import (050eef8)

  • fix(resolve): 'Is' with literal syntax (ced1979)

  • fix: Premature link success message (#220) (2d6cac7)

  • fix: First stream probed is not main video stream (#219)

  • Create draft PR for #200

  • fix: Add probe_for_input_range func

  • Probe input file for correct color range
  • Add support for Resolve data level overrides
  • fix: Ensure probing video stream

  • refactor: Update version_constraint_key

  • refactor: Update version_constraint_key (4e51283)

  • fix: Data levels issues (#209)

  • Create draft PR for #200

  • fix: Add probe_for_input_range func

  • Probe input file for correct color range
  • Add support for Resolve data level overrides
  • refactor: Update version_constraint_key

Co-authored-by: in03 <[email protected]> (a193f6b)

  • fix(broker): Stale data checksum comparison

Turns out the __data_is_new function in ProgressTracker was broken. It was checking to see if data was in self.data_checksums, instead of checksum. Of course the answer was always no and so the data was always "new". That meant that every message was new. (0db7155)

  • fix(linking): Match proxies properly (#186)

  • fix(linking): Use 'link_with_mpi' post-encode

Decided to ditch 'find_and_link' method for post-encode linking. Now just passing stringified reference to media pool item through Celery and re-mapping the original object reference for post-encode link. Performance is fantastic.

  • fix(link_with_mpi): Add prompt_requeue opt arg

Allows handle_existing_unlinked to requeue failed links but prevents user from getting stuck in an endless loop of post-encode retries.

  • fix(linking): Assert 0 proxies remain post-encode

No proxies should remain post-encode without explicitly failing to be linked. If they do, throw an exception.

  • refactor: Update version_constraint_key

  • fix(linking): Fail fast if not proxy_media_path

Link function was assigned job proxy_media_path and proxy_status keys to variables with .get() method, assigning None on KeyError.

Now calling with bracket syntax to fail fast.

  • fix(linking): prevent pre-linking all

Prevent 'existing unlinked' handler from attempting to link all in media list when matched media triggers a link routine.

  • fix(linking): Fix incorrect proxy output extension

Incorrect output extension was causing linking to fail.

  • fix(linking): Fix shallow-copy loophole

Fixed issue with original media_list being altered by list comprehension.

  • refactor: Update version_constraint_key

  • fix(linking): Iterate and remove skipping items

Every second item wasn't being linked. Reversed the media_list to prevent removing items ahead of the loop.

  • refactor: Update version_constraint_key

  • feat(linking): Add prompt_reiterate option

Add prompt_reiterate method to link_proxies_with_mpi to reiterate timelines if media_pool_items are "stale". Essentially the same as running the existing_unlinked handler without all the setup overhead.

  • refactor(linking): Quick filter with linkable type

Replace reversed comprehension with linkable type update for code that looks better, makes more sense and probably works faster.

  • refactor: Update version_constraint_key

  • perf(queue): Use zip to iterate two lists at once

Use zip instead of nested for loops

  • fix(handlers): restored reverse list sort

Tried to switch from hacky reverse list sort in handle_existing_unlinked. Still seems like the best way.

  • refactor: Update version_constraint_key

  • fix(linking): Catch TypeError if project change

Any reasonable way a link fails we need to catch it to mark it as failed.

  • feat(linking): Add prompt_reiterate option

Find_and_link returns linked, failed, allows reiterating timelines if media pool items are "stale" and pass on for re-rendering if media is corrupt.

  • refactor: Update version_constraint_key

  • refactor: Update version_constraint_key (e1b40b4)

  • fix: Always choose newest existing proxy (#177) (4440841)

  • fix: Improved version constraint key generation (#175) (91a0262)

  • fix: Remove linked proxies from queue (#172) (046e595)

  • fix: bug/issue-155/git-sha-slicing (#159) (0666a9a)

  • fix: correct bad log-levels

fixes #138 (0f33845)

  • fix: raise all warning that exit to error (c0951cf)

  • fix(resolve.py): set warning to critical before exits (5d3c71d)

  • fix: remove extraneous 'no worker' warning (abcd7a2)

  • fix: unlinked_proxy KeyError (#136)

  • what the heck...

  • chore: [pre-commit.ci] automatic fixes

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (16a1d35)

  • fix: broken aspect ratio from target resolution rounding error (#135)

  • fix(tasks): make orientation detection a function

  • fix(tasks): correctly resolve resolution

Using ffmpeg built-in special variable in 'scale' filter: -2:720

  • fix(tasks): remove old get resolution statements

  • style(tasks): inconsistent slashes in log path

Inconsistent slashes were annoying to look at (and technically wrong) (896c83c)

  • fix(handlers): revert proxy status on link failed (#124) (9a5ec13)

  • fix: clip flip detection (#119) (685dd64)

  • fix(handlers): handle zero queueable properly

Fixes issue #114 ofc... (f4f8f62)

  • fix: Recognise offline but relinkable proxies (#113) (491e29d)

  • fix: Offline proxy handler prints whole job obj (#111) (497824e)

  • fix(CLI): Address printing incorrect queue name (#109) (50cc3d0)

  • fix: address multiple broken features post-merge

BREAKING CHANGES:

  • incorrect git-sha slicing fixed - routing key formatting has changed!
  • worker queue key error fixed: tried to call local var from new process

OTHER:

  • post-encode linking now works
  • link speed greatly improved after removing redundant timeline searches
  • linking stdout formatting improved
  • all modules now following user_settings.yml app -> loglevel (23a4804)
  • fix(celery): fix wrong module path, unregistered task (01ab218)

  • fix: remove unused import 'icecream' (6cd1da0)

  • fix: add missing ffmpeg library (a8f768a)

  • fix: bug/issue 25 (#94)

  • feat: start substitute default settings in ensure_keys

  • feat: prompt sub missing settings instead of warn

This is really a final enhancement to the #25 'Handle Missing Keys' issue. We can now substitute missing settings with default app values, or we can type a new custom value in, all on initial app startup.

FUTURE CONSIDERATIONS: If configuration management were to become more important in future, the following may need to be addressed:

  • If a whole section is missing with an inline comment, a different function parses the diff to the usual. Some of this code could be better shared with the main function. There's currently minor inconsistency.

  • Missing settings are declared as root[&#39;app&#39;][&#39;loglevel&#39;]. This could be more human readable. e.g. app -&gt; loglevel

  • Expected custom values are not parsed or validated properly. They're just taken as is.

  • If a whole setting section is missing. The default value is an ordereddict of all the missing nested key/vals within. This isn't human readable and it's definitely not possible to type out a single custom value to represent that whole structure, instead each nested key/val within should be iterated one-by-one.

  • This would all be necessary if we wanted to add a config command to the CLI, but surely YAML is easy enough. (0e43505)

  • fix: implement chunked encoding
  • major project restructuring and renaming
  • send calculated chunk data with job data to celery task
  • create new encode_chunk celery task
  • maintain source aspect ratio, match user set vertical resolution
  • inherit timecode from Resolve clip attributes, no probing file

Still need to implement post-encode concat, moving, cleanup, link. Unsure how to separate standard 'chunkless' encodes with no concat callback and chunked encodes with. May have to have an intermediate worker task that runs chunked encodes on another worker and gathers results asynchronously. (4eaaf02)

  • fix: more package structural improvements
  • merge last changes from main
  • relative imports where possible
  • add app level settings
  • rework logger (previously reinitialised per-module)

BREAKING CHANGES:

  • restructure settings, app-level and worker-level
  • remove unnecessary 'settings' keyword where present
  • remove setting section keyword where present, e.g. "celery_settings" (b9d9a35)
  • fix: major project restructuring

BREAKING CHANGE (7a37143)

  • fix: corrected broken module imports (06d3790)

  • fix: restructured package, renamed files (9e59f86)

  • fix: tidy up unused imports (27935c6)

  • fix: Bug/issue 49 (#59)

  • fix: Start on inaccessible worker in pipx install

  • fix: call Celery & worker module from within venv

  • Adds support for virtual environment isolated installations like pipx. Of course there's no way to test this without committing and installing, so here's hoping!

  • Better cross platform support, since this is shaping up to be the only easy way to start workers in isolated environments. (Also untested. SOZ)

Addresses #49

  • fix: correctly launch worker from within pipx venv

Can confirm that workers are now launchable when installed as an isolated virtualenv, traditional global installation and when run "non-installed" from Poetry.

Addresses #49 (626c892)

  • fix: remove unused imports in app_settings (f544e55)

Refactor

  • refactor: Update version_constraint_key (e4641bb)

  • refactor: Update version_constraint_key (44373ff)

  • refactor: Update version_constraint_key (30b8f71)

  • refactor: Update version_constraint_key (8cbc561)

  • refactor: Comment WIP code for now (b9af9a3)

  • refactor: Update version_constraint_key (683197f)

  • refactor: Incorrect loglevel for git check (9ef909f)

  • refactor: Update version_constraint_key (b382a90)

  • refactor: Update version_constraint_key (d5b0c84)

  • refactor: Update version_constraint_key (82f7fb7)

  • refactor: Extraneous import (989272f)

  • refactor: Update version_constraint_key (c5a4db8)

  • refactor: Tidy up dead code (ea0817f)

  • refactor: demote logfile func with messy sideffects (53901e5)

  • refactor: demote logfile func with messy sideffects (42ca1ec)

  • refactor: Unified logger instead of module-level loggers (8211999)

  • refactor: Update version_constraint_key (ecc76db)

  • refactor(batch): Flat is better than nested (62c55c3)

  • refactor: Update version_constraint_key (d643e5c)

  • refactor: Update version_constraint_key (2682daa)

  • refactor: Update version_constraint_key (e7567ec)

  • refactor: Update version_constraint_key (05547e0)

  • refactor: Update version_constraint_key (52aee81)

  • refactor: Update version_constraint_key (d5ed4e6)

  • refactor: Typer launch > webbrowser (bb4a12e)

  • refactor: Update version_constraint_key (ffc44ca)

  • refactor: Update version_constraint_key (cdbde73)

  • refactor: Update version_constraint_key (31cde43)

  • refactor: Update version_constraint_key (7be82ca)

  • refactor: Update version_constraint_key (f7a61dd)

  • refactor: Update version_constraint_key (1627375)

  • refactor: Update version_constraint_key (517cb5d)

  • refactor: Update version_constraint_key (f2d55e4)

  • refactor: Update version_constraint_key (447ce33)

  • refactor: Update version_constraint_key (e2ad2c8)

  • refactor: Update version_constraint_key (a2f2f74)

  • refactor: Update version_constraint_key (ef737eb)

  • refactor: Update version_constraint_key (65bed95)

  • refactor: Swap Redis PubSub for Celery AsyncResult and custom states (#228)

  • Create draft PR for #224

  • feat(link): Add exception info if all fail link

  • refactor: Group ID as Redis channel ID

  • refactor: Update version_constraint_key

  • refactor: MVP Redis PubSub

  • refactor: Update version_constraint_key

  • refactor: Tidy deeply nested modules

  • refactor: Update version_constraint_key

  • fix: Remove new data flag, recalc every loop

Now just calculating progress and task info every iteration of the loop instead of checking new data flags. It looks like there may be a race condition of some sort causing inaccurate worker numbers.

I might consider thread locks if they work with Redis' pubsub run_in_thread.

  • refactor: Update version_constraint_key

  • refactor: Dropped direct Redis usage altogether

Alright, this is kind of funny. Turns out I've been reinventing the wheel this whole time. Celery's GroupResult contains AsyncResult instances with all the data we need to get active worker count, task completion and task encoding progress (with a custom task state definition).

So:

  • dropped Redis database polling
  • dropped Redis PubSub
  • use unique worker IDs instead of sequential prefix to easily start additional workers at any time
  • refactor: Update version_constraint_key

  • docs: Update README.md

  • build: Export updated requirements.txt

  • refactor: Update version_constraint_key (92f1747)

  • refactor: Update version_constraint_key (bb515fe)

  • refactor: Update version_constraint_key (cfa9e3b)

  • refactor(launch_workers): Change is with literals to '==' (bfce685)

  • refactor: Update version_constraint_key (0bfda1f)

  • refactor: Update version_constraint_key (aa372cd)

  • refactor: Update version_constraint_key (ceb6d9e)

  • refactor: Update version_constraint_key (dea40d6)

  • refactor: Update version_constraint_key (743df9a)

  • refactor: Update version_constraint_key (84250ae)

  • refactor: Update version_constraint_key (9881228)

  • refactor: Update version_constraint_key (f542afe)

  • refactor: Update version_constraint_key (0a23453)

  • refactor: Update version_constraint_key (d214d9a)

  • refactor: Update version_constraint_key (fa00b5a)

  • refactor: Update version-constraint key (b6caa5e)

  • refactor: Update version-constraint key (4026412)

  • refactor: Update version-constraint key (ac43d05)

  • refactor: Update version-constraint key (4545e7e)

  • refactor: Update version-constraint key (6a6e88d)

  • refactor: Update version-constraint key (1aa7bbf)

Style

  • style: Consistent loglevel color (c0d66c4)

  • style: Remove stray print (7f8921b)

Unknown

This reverts commit b90ade1b58e91e2fbf3d80aa25835a10a365e595. (51d05a9)

fix(handlers): handle zero queueable properly (e20ac1d)

  • Feat/issue103 (#107)

  • feat(handlers): Swap TK msgbox to console prompts

Addresses #103

  • Also addressed issue with multiple online Celery worker checks

updates:

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> (cd44050)

Bug/issue 25 (73c0519)

  • Merge branch 'main' into bug/issue-25 (07ec680)

  • Fix settings across modules (fa80b61)

  • Settings validation working, keys ensured to exist (019d9ef)

  • Merge pull request #31 from in03/pre-commit-ci-update-config

[pre-commit.ci] pre-commit autoupdate (9b4c06d)

  • Schema now working, still working on missing keys (8b60199)

  • added quote to numbers in yaml to force int (2fb5bdc)

  • Started progress bars, fixing timecode match issue (5bf51ca)

  • Started on schema validation and missing key check (aa321ef)

  • [pre-commit.ci] pre-commit autoupdate

updates:

ci: [pre-commit.ci] pre-commit autoupdate (466ac93)

updates:

Fixed bug/issue-27 (dbd1927)

  • Fixed bug/issue-27 (67e5485)

  • Fixed purge command (524612a)

  • fixed stray debug print, unregistered task (6ee3635)

  • Merge pull request #24 from in03/bug/issue-21

fixed icecream dependency import error (b77f5e3)

  • fixed icecream dependency import error (7c33b01)

  • Merge pull request #23 from in03/bug/issue-21

Detect offline proxies, updated docstrings (62e7a50)

Merge dev updates to main (617a839)

  • Merge branch 'main' into dev (01c245c)

  • Merge branch 'dev' into main (2db768c)

  • Update README.md (890ca83)

  • Started docs (6c805cb)

  • Added ability to call scripts directly to test (04cbb00)

  • Moved fragile config settings to code (23b6562)

  • Fixed worker glitches, can start standalone (4b08d4e)

  • Updated default_settings Celery worker config (b2b3f9a)

  • Fixed initial settings error if no ./config dir (e97baef)

  • Deleted old docker files (ca6e47c)

  • Restructured package and updated terminology (c933412)

  • Cleanup LAUNCHING + dots in start_workers (1947cac)

  • Fixed 'some_action_taken' undefined var (1b4fad8)

  • Follow XDG Base Directory Specification (684dc56)

  • Merge branch 'main' of https://github.com/in03/Resolve-Proxy-Encoder into main (389bb5e)

  • Fixed missing action taken flag (089eff2)

  • Update README.md (33a1adf)

  • Update README.md (15930b2)

  • Update README.md (0d81e51)

  • Better error handling for PyRemoteObjects (773b03a)

  • Internalised Resolve API import error (6357e09)

  • Added import warning for Resolve API (6670b9c)

  • Fixed start_workers and celery app (3766d38)

  • Fixed loglevel error (dce36de)

  • Fixed Resolve API access error

  • Fixed Resolve API NoneType error
  • Added missing dependency Redis
  • Reworked clunky imports
  • Moved common functions to helpers
  • Settings check on import (ea5cab7)
  • Made into Python package
  • CLI with Typer
  • Using Poetry (4d1f19a)
  • Delete RESOLVE_queue_proxies-old.py (f939587)

  • Merge pull request #8 from in03/dependabot/pip/pywin32-301

Bump pywin32 from 300 to 301 (4ac9697)

  • Delete Link Proxies pseudocode.rtf (35158d6)

  • Bump pywin32 from 300 to 301

Bumps pywin32 from 300 to 301.


updated-dependencies:

  • dependency-name: pywin32 dependency-type: direct:production ...

Signed-off-by: dependabot[bot] <[email protected]> (ad371af)

  • Reverted changes. Got too messy. (3989b31)

  • Revert "Trying to include Settings_Manager"

This reverts commit 497851460a41df706968913819162a39c06eded4. (bf1bae8)

  • Trying to include Settings_Manager (4978514)

  • Fixed linking

  • Implemented old linking method as legacy_link so we can continue developing post-encode method (88d0515)
  • Change serializer
  • Changed serializer to Pickle, not working yet, will fix
  • Passing MediaPoolItem method as object to Celery so we can link only encoded items afterwards instead of searching from scratch (0214cd7)
  • Working on proxy linking logic
  • Began docker auto build support (4e049a1)
  • Fixed virtualenv
  • Cleaned up
  • Added correct shebangs
  • Realised a shared virtualenv over LAN is a terrible idea
  • Added requirements.txt
  • exit_on_seconds function updated
  • Celery launches using default python now. Each worker must be setup using requirements.txt (c6b0187)
  • post-encode proxy linking
  • Automatically link after encode
  • Renamed some files and functions to by more line with Celery's naming conventions
  • All scripts work off virtual env now
  • Setup flower in container, removed local instance from start_worker.bat (5a57c18)
  • Fixed toast

Toast will fail to show if ascii colour byte in text (e59ae19)

  • Receives results

Can now receive job results on host machine (a5bbb57)