From b11b23e529b45462c43adc992903ed210397d8d2 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 23 Feb 2026 16:27:05 -0700 Subject: [PATCH] chore(release): bump version to 3.1.0 --- .gitignore | 1 + CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ pyproject.toml | 2 +- unshackle/core/__init__.py | 2 +- uv.lock | 2 +- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 36a3190..e63e7bd 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ unshackle/PRDs/ temp/ logs/ services/ +/.[^/]*/ # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 3129b5c..3862c08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,31 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm This changelog is automatically generated using [git-cliff](https://git-cliff.org). +## [3.1.0] - 2026-02-23 + +### Features + +- *hybrid*: Add L5 active area and dynamic L6 luminance metadata +- *debug*: Add JSONL debug logging to decryption, muxing, and all downloaders +- *debug*: Log binary tool versions at session start +- *dl*: Add --repack flag to insert REPACK tag in output filenames +- *core*: Add TrackRequest system for multi-codec/multi-range support + +### Bug Fixes + +- *n_m3u8dl_re*: Pass all content keys for DualKey DRM decryption +- *hybrid*: Skip bitrate filter for DV tracks in HYBRID mode +- *attachment*: Sanitize filenames with illegal Windows characters +- *hybrid*: Accept HDR10+ tracks as valid base layer for HYBRID mode +- *dl*: Allow selection of audio tracks for 'all' languages in addition to 'best' +- *dl*: Overwrite existing files on re-download and use atomic replace +- *dl*: Handle cross-device moves when temp and downloads differ + +### Changes + +- *hybrid*: Replace log.info with console status and add JSONL debug logging +- *dl*: Remove legacy multi-fetch loop for unmigrated services + ## [3.0.0] - 2026-02-15 ### Features @@ -103,6 +128,10 @@ This changelog is automatically generated using [git-cliff](https://git-cliff.or - *api*: Remove remote services +### Chore + +- *release*: [**breaking**] Bump version to 3.0.0 + ## [2.3.0] - 2026-01-18 ### Features @@ -482,6 +511,7 @@ This changelog is automatically generated using [git-cliff](https://git-cliff.or - Reorganize Planned Features section in README for clarity - Improve track selection logic in dl.py +[3.1.0]: https://github.com/unshackle-dl/unshackle/compare/3.0.0..3.1.0 [3.0.0]: https://github.com/unshackle-dl/unshackle/compare/2.3.0..3.0.0 [2.3.0]: https://github.com/unshackle-dl/unshackle/compare/2.2.0..2.3.0 [2.2.0]: https://github.com/unshackle-dl/unshackle/compare/2.1.0..2.2.0 diff --git a/pyproject.toml b/pyproject.toml index 9713a71..f60d503 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "unshackle" -version = "3.0.0" +version = "3.1.0" description = "Modular Movie, TV, and Music Archival Software." authors = [{ name = "unshackle team" }] requires-python = ">=3.10,<3.13" diff --git a/unshackle/core/__init__.py b/unshackle/core/__init__.py index 528787c..f5f41e5 100644 --- a/unshackle/core/__init__.py +++ b/unshackle/core/__init__.py @@ -1 +1 @@ -__version__ = "3.0.0" +__version__ = "3.1.0" diff --git a/uv.lock b/uv.lock index af97b6b..25ca049 100644 --- a/uv.lock +++ b/uv.lock @@ -1627,7 +1627,7 @@ wheels = [ [[package]] name = "unshackle" -version = "3.0.0" +version = "3.1.0" source = { editable = "." } dependencies = [ { name = "aiohttp" },