From 20a9bb36b810469dc1970074d683cde7f5d6da6f Mon Sep 17 00:00:00 2001 From: Javanaut Date: Sun, 21 Jun 2026 12:09:04 +0200 Subject: [PATCH] v.0.4.4 --- README.md | 99 +--------------------------------- docs/history.rst | 123 +++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 6 +++ pyproject.toml | 2 +- src/ffx/constants.py | 2 +- 5 files changed, 132 insertions(+), 100 deletions(-) create mode 100644 docs/history.rst diff --git a/README.md b/README.md index d5c2158..0d69110 100644 --- a/README.md +++ b/README.md @@ -99,101 +99,4 @@ TMDB-backed metadata enrichment requires `TMDB_API_KEY` to be set in the environ ## Version History -### 0.4.3 - -- styled ASS subtitle sources with embedded font attachments are now detected explicitly, keep MKV output, preserve current source font attachments, and reject incompatible sidecar subtitle import -- attachment descriptors are now treated as source-runtime data instead of pattern schema data, so pattern persistence skips them and source-vs-pattern validation ignores them -- inspect differences no longer report planned changes for attachment filename/count drift while still showing attachment streams in the stream table - -### 0.4.2 - -- pattern details now show an inline `Show: ` hint next to the quality field when the pattern itself has no stored quality but the selected show does -- inspect stream tables now show attachment format labels like `TTF` in the codec column and keep attachment language cells blank instead of showing an undefined language -- ffmpeg damaged-MP3 diagnostics now recognize additional corruption lines such as `invalid new backstep`, keeping them grouped under the `warn-corrupt-mpeg-audio` review summary - -### 0.4.1 - -- `convert` now supports `--copy-video` and `--copy-audio` to keep the selected stream type in copy mode without applying the corresponding reencode flags, filters, or formatting options -- ffmpeg conversions now monitor diagnostics while the process is running, retry unset AVI packet timestamps once with `-fflags +genpts`, and stop early when a file should be skipped instead of waiting for the full job to finish -- end-of-run convert summaries now list only ffmpeg findings that still require review, including named remedy identifiers such as `warn-corrupt-mpeg-audio` -- `upgrade` now finishes by reporting the installed FFX version together with the active bundle branch - -### 0.3.1 - -- debug mode screen titles now append the active Textual screen class name, making screen-specific troubleshooting easier during inspect and edit flows -- `--cut` again works as a combined flag/option: omitted disables cutting, bare `--cut` applies the default `60,180`, and explicit duration or `START,DURATION` values stay supported -- H.265 unmux commands no longer force an invalid `-f h265` output format, keeping ffmpeg copy extraction aligned with the required Annex B bitstream filter -- H.264 encoding now falls back from `libx264` to `libopenh264` with a warning when needed, and the test fixtures use the same encoder fallback so the suite remains portable across ffmpeg builds - -### 0.3.0 - -- inspect and edit screens now refresh nested track and pattern changes more reliably, with inspect-mode tables aligned to the target pattern view shown in the differences pane -- metadata editing got a follow-up polish pass with clearer ffmpeg notifications, a shared in-screen log pane, safer apply/reload handling, and expanded cleanup and normalization coverage -- track and asset probing recognize additional codecs, and the modern test suite now covers more metadata-editor, change-set, screen-state, and asset-probe behavior -- Textual now requires version `8.0` or newer to match the UI APIs used by the current screens - -### 0.2.6 - -- DB-free `ffx edit` workflow for in-place metadata editing via temporary-file rewrite -- inspect and edit workflows split into dedicated Textual screens with shared media-workflow support -- Textual tables and row actions now separate raw data from rendered labels to avoid markup leaking into stored metadata -- responsive screen layout pass, `Esc` back handling, sortable show/inspect tables, and improved edit-screen notifications/toggles -- application-wide UTF-8 i18n catalogs with language precedence from CLI over config over system over German default -- metadata normalization extended for localized subtitle titles, ISO language cleanup, and smarter track editor language/title helpers - -### 0.2.5 - -- show-level quality and notes fields -- pattern-over-show-over-default season-shift resolution with dynamic DB migration loading -- migration prompt now reports the upgrade path and creates an in-place DB backup before applying schema changes -- `upgrade --branch ` now fetches remote-only branches before switching -- `unmux` now applies season shifting to subtitle output filenames -- convert now keeps DB-defined target subtitle dispositions authoritative over sidecar filename disposition flags when a pattern definition exists -- focused modern tests added around migrations, unmux, upgrade, and subtitle-disposition import precedence - -### 0.2.4 - -- lightweight CLI commands now stay import-light via lazy runtime loading -- setup/config templating moved to `assets/ffx.json.j2` -- aligned two-step local setup wrappers: `ffx setup` and `ffx configure_workstation` -- combined `ffprobe` payload reuse in `FileProperties` -- configurable crop-detect sampling plus per-process crop result caching -- single-query controller accessors and conditional DB schema bootstrap -- shared screen bootstrap/controller wiring for large detail screens -- configurable default season/episode digit lengths -- digit-aware `rename` and padded `unmux` filename markers - -### 0.2.3 - -- PyPI packaging -- output filename templating -- season shifting -- DB versioning - -### 0.2.2 - -- CLI overrides - -### 0.2.1 - -- signature handling -- tag cleanup -- bugfixes and refactoring - -### 0.2.0 - -- tests -- config file - -### 0.1.3 - -- subtitle file imports - -### 0.1.2 - -- bugfixes - -### 0.1.1 - -- bugfixes -- TMDB show identification +See the [version history](docs/history.rst) for release notes. diff --git a/docs/history.rst b/docs/history.rst new file mode 100644 index 0000000..d3c956f --- /dev/null +++ b/docs/history.rst @@ -0,0 +1,123 @@ +Version History +=============== + +0.4.4 +----- + +- External subtitle imports can now match prefixless sidecar files against the source basename, choose their extension, and confirm partial substitutions. +- Unmux now creates missing output directories with confirmation or the new ``--yes`` option. +- Project documentation is now built with Sphinx and includes installation, usage, development, file-format, and API references. + +0.4.3 +----- + +- Styled ASS subtitle sources with embedded font attachments are now detected explicitly, keep MKV output, preserve current source font attachments, and reject incompatible sidecar subtitle import. +- Attachment descriptors are now treated as source-runtime data instead of pattern schema data, so pattern persistence skips them and source-vs-pattern validation ignores them. +- Inspect differences no longer report planned changes for attachment filename/count drift while still showing attachment streams in the stream table. + +0.4.2 +----- + +- Pattern details now show an inline ``Show: `` hint next to the quality field when the pattern itself has no stored quality but the selected show does. +- Inspect stream tables now show attachment format labels like ``TTF`` in the codec column and keep attachment language cells blank instead of showing an undefined language. +- FFmpeg damaged-MP3 diagnostics now recognize additional corruption lines such as ``invalid new backstep``, keeping them grouped under the ``warn-corrupt-mpeg-audio`` review summary. + +0.4.1 +----- + +- ``convert`` now supports ``--copy-video`` and ``--copy-audio`` to keep the selected stream type in copy mode without applying the corresponding reencode flags, filters, or formatting options. +- FFmpeg conversions now monitor diagnostics while the process is running, retry unset AVI packet timestamps once with ``-fflags +genpts``, and stop early when a file should be skipped instead of waiting for the full job to finish. +- End-of-run convert summaries now list only FFmpeg findings that still require review, including named remedy identifiers such as ``warn-corrupt-mpeg-audio``. +- ``upgrade`` now finishes by reporting the installed FFX version together with the active bundle branch. + +0.3.1 +----- + +- Debug mode screen titles now append the active Textual screen class name, making screen-specific troubleshooting easier during inspect and edit flows. +- ``--cut`` again works as a combined flag/option: omitted disables cutting, bare ``--cut`` applies the default ``60,180``, and explicit duration or ``START,DURATION`` values stay supported. +- H.265 unmux commands no longer force an invalid ``-f h265`` output format, keeping FFmpeg copy extraction aligned with the required Annex B bitstream filter. +- H.264 encoding now falls back from ``libx264`` to ``libopenh264`` with a warning when needed, and the test fixtures use the same encoder fallback so the suite remains portable across FFmpeg builds. + +0.3.0 +----- + +- Inspect and edit screens now refresh nested track and pattern changes more reliably, with inspect-mode tables aligned to the target pattern view shown in the differences pane. +- Metadata editing got a follow-up polish pass with clearer FFmpeg notifications, a shared in-screen log pane, safer apply/reload handling, and expanded cleanup and normalization coverage. +- Track and asset probing recognize additional codecs, and the modern test suite now covers more metadata-editor, change-set, screen-state, and asset-probe behavior. +- Textual now requires version ``8.0`` or newer to match the UI APIs used by the current screens. + +0.2.6 +----- + +- DB-free ``ffx edit`` workflow for in-place metadata editing via temporary-file rewrite. +- Inspect and edit workflows split into dedicated Textual screens with shared media-workflow support. +- Textual tables and row actions now separate raw data from rendered labels to avoid markup leaking into stored metadata. +- Responsive screen layout pass, ``Esc`` back handling, sortable show/inspect tables, and improved edit-screen notifications/toggles. +- Application-wide UTF-8 i18n catalogs with language precedence from CLI over config over system over German default. +- Metadata normalization extended for localized subtitle titles, ISO language cleanup, and smarter track editor language/title helpers. + +0.2.5 +----- + +- Show-level quality and notes fields. +- Pattern-over-show-over-default season-shift resolution with dynamic DB migration loading. +- Migration prompt now reports the upgrade path and creates an in-place DB backup before applying schema changes. +- ``upgrade --branch `` now fetches remote-only branches before switching. +- ``unmux`` now applies season shifting to subtitle output filenames. +- Convert now keeps DB-defined target subtitle dispositions authoritative over sidecar filename disposition flags when a pattern definition exists. +- Focused modern tests added around migrations, unmux, upgrade, and subtitle-disposition import precedence. + +0.2.4 +----- + +- Lightweight CLI commands now stay import-light via lazy runtime loading. +- Setup/config templating moved to ``assets/ffx.json.j2``. +- Aligned two-step local setup wrappers: ``ffx setup`` and ``ffx configure_workstation``. +- Combined ``ffprobe`` payload reuse in ``FileProperties``. +- Configurable crop-detect sampling plus per-process crop result caching. +- Single-query controller accessors and conditional DB schema bootstrap. +- Shared screen bootstrap/controller wiring for large detail screens. +- Configurable default season/episode digit lengths. +- Digit-aware ``rename`` and padded ``unmux`` filename markers. + +0.2.3 +----- + +- PyPI packaging. +- Output filename templating. +- Season shifting. +- DB versioning. + +0.2.2 +----- + +- CLI overrides. + +0.2.1 +----- + +- Signature handling. +- Tag cleanup. +- Bugfixes and refactoring. + +0.2.0 +----- + +- Tests. +- Config file. + +0.1.3 +----- + +- Subtitle file imports. + +0.1.2 +----- + +- Bugfixes. + +0.1.1 +----- + +- Bugfixes. +- TMDB show identification. diff --git a/docs/index.rst b/docs/index.rst index bb60bc9..9cf0229 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,6 +17,12 @@ utility modules. usage file_formats +.. toctree:: + :maxdepth: 1 + :caption: Release Notes + + history + .. toctree:: :maxdepth: 2 :caption: Contributor Guide diff --git a/pyproject.toml b/pyproject.toml index a6eea4d..3fdee87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "ffx" description = "FFX recoding and metadata managing tool" -version = "0.4.3" +version = "0.4.4" license = {file = "LICENSE.md"} dependencies = [ "requests", diff --git a/src/ffx/constants.py b/src/ffx/constants.py index cf735c1..ba77693 100644 --- a/src/ffx/constants.py +++ b/src/ffx/constants.py @@ -1,4 +1,4 @@ -VERSION='0.4.3' +VERSION='0.4.4' DATABASE_VERSION = 3 DEFAULT_QUALITY = 32