From f1febe7e43742ca2db09d56880ecd3342d4da7b4 Mon Sep 17 00:00:00 2001 From: imSp4rky Date: Tue, 26 May 2026 10:54:14 -0600 Subject: [PATCH] chore(release): bump version to 5.1.0 --- CHANGELOG.md | 88 ++++++++++++++++++++++++++++++-------- pyproject.toml | 2 +- unshackle/core/__init__.py | 2 +- uv.lock | 2 +- 4 files changed, 72 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5e7bfd..1010cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,56 @@ 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). +## [5.1.0] - 2026-05-26 + +### Features + +- *ip-info*: Consolidate IP lookup, add ipinfo.io token support +- *dl*: Cache content keys in-memory to skip duplicate license requests +- *mux*: Add muxing.default_language to override default track per type +- *hls*: Detect DV-composite tracks and restore signaling post-mux +- *video*: Normalize SPS VUI to match manifest-derived range +- *api*: Sync /api/download with dl CLI flags and add serve.* defaults +- *vaults*: Tolerate vault failures during key get/add +- *tracks*: Configurable audio codec priority for tie-breaking +- *dl*: Live countdown for --slow delay +- *dl*: Gate s_lang/a_lang miss behind --best-available +- *dl*: Add real bitrate probing (-rvb/-rab) +- *import*: Reconstruct downloads from an --export sidecar + +### Bug Fixes + +- *manifests*: Clean stale .!dev resume markers before merge +- *sanitize*: Preserve parentheses, strip unidecode bracket artifacts +- *tracks*: Honor --worst in hybrid range selection +- *dl*: Re-pick DV/HDR10 when HYBRID falls back under best_available +- *proxies/nordvpn*: Use *.proxy.nordvpn.com for HTTPS proxy +- *template_formatter*: Preserve dash separator around empty conditional +- *dl*: Prefer Atmos in -l best/all language selection +- *title*: Detect Atmos across all audio tracks for filename template +- *title*: Use original-language audio for filename metadata +- *service*: Render request_input prompt via rich console +- *titles*: Normalize odd resolutions in filename quality token +- *api*: Propagate Click default=None through service instantiation +- *api*: Load real CDM for service init in list/session/download flows +- *vaults*: Enable WAL on SQLite vault to fix concurrent locks +- *hybrid*: Correct static L6 source and reset stale L5 active area +- *cli*: Report broken command/service loads once and cleanly + +### Documentation + +- Update docs to match current codebase +- *output*: Document muxing.default_language override + +### Changes + +- *routes, subtitle, track*: Improve code readability by formatting list structures +- *hybrid*: Extract dovi_tool and run_step helpers + +### Maintenance + +- *pre-commit*: Update hook versions in .pre-commit-config.yaml + ## [5.0.0] - 2026-05-04 ### Features @@ -73,7 +123,6 @@ This changelog is automatically generated using [git-cliff](https://git-cliff.or ### Maintenance -- *gitignore*: Ignore binary files in unshackle/binaries/ - Update version to 5.0.0 ## [4.0.0] - 2026-03-17 @@ -624,21 +673,22 @@ 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 -[5.0.0]: https://github.com/unshackle-dl/unshackle-dev/compare/4.0.0..5.0.0 -[4.0.0]: https://github.com/unshackle-dl/unshackle-dev/compare/3.0.0..4.0.0 -[3.0.0]: https://github.com/unshackle-dl/unshackle-dev/compare/2.3.0..3.0.0 -[2.3.0]: https://github.com/unshackle-dl/unshackle-dev/compare/2.2.0..2.3.0 -[2.2.0]: https://github.com/unshackle-dl/unshackle-dev/compare/2.1.0..2.2.0 -[2.1.0]: https://github.com/unshackle-dl/unshackle-dev/compare/2.0.0..2.1.0 -[2.0.0]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.8..2.0.0 -[1.4.8]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.7..1.4.8 -[1.4.7]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.6..1.4.7 -[1.4.6]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.5..1.4.6 -[1.4.5]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.4..1.4.5 -[1.4.4]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.2..1.4.4 -[1.4.2]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.1..1.4.2 -[1.4.1]: https://github.com/unshackle-dl/unshackle-dev/compare/1.4.0..1.4.1 -[1.4.0]: https://github.com/unshackle-dl/unshackle-dev/compare/1.3.0..1.4.0 -[1.3.0]: https://github.com/unshackle-dl/unshackle-dev/compare/1.2.0..1.3.0 -[1.2.0]: https://github.com/unshackle-dl/unshackle-dev/compare/1.1.0..1.2.0 -[1.1.0]: https://github.com/unshackle-dl/unshackle-dev/compare/1.0.1..1.1.0 +[5.1.0]: https://github.com/unshackle-dl/unshackle/compare/5.0.0..5.1.0 +[5.0.0]: https://github.com/unshackle-dl/unshackle/compare/4.0.0..5.0.0 +[4.0.0]: https://github.com/unshackle-dl/unshackle/compare/3.0.0..4.0.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 +[2.1.0]: https://github.com/unshackle-dl/unshackle/compare/2.0.0..2.1.0 +[2.0.0]: https://github.com/unshackle-dl/unshackle/compare/1.4.8..2.0.0 +[1.4.8]: https://github.com/unshackle-dl/unshackle/compare/1.4.7..1.4.8 +[1.4.7]: https://github.com/unshackle-dl/unshackle/compare/1.4.6..1.4.7 +[1.4.6]: https://github.com/unshackle-dl/unshackle/compare/1.4.5..1.4.6 +[1.4.5]: https://github.com/unshackle-dl/unshackle/compare/1.4.4..1.4.5 +[1.4.4]: https://github.com/unshackle-dl/unshackle/compare/1.4.2..1.4.4 +[1.4.2]: https://github.com/unshackle-dl/unshackle/compare/1.4.1..1.4.2 +[1.4.1]: https://github.com/unshackle-dl/unshackle/compare/1.4.0..1.4.1 +[1.4.0]: https://github.com/unshackle-dl/unshackle/compare/1.3.0..1.4.0 +[1.3.0]: https://github.com/unshackle-dl/unshackle/compare/1.2.0..1.3.0 +[1.2.0]: https://github.com/unshackle-dl/unshackle/compare/1.1.0..1.2.0 +[1.1.0]: https://github.com/unshackle-dl/unshackle/compare/1.0.1..1.1.0 diff --git a/pyproject.toml b/pyproject.toml index 2ebd3dd..65f4c77 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "unshackle" -version = "5.0.0" +version = "5.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 ba7be38..0d72820 100644 --- a/unshackle/core/__init__.py +++ b/unshackle/core/__init__.py @@ -1 +1 @@ -__version__ = "5.0.0" +__version__ = "5.1.0" diff --git a/uv.lock b/uv.lock index 73dcde0..420dc1c 100644 --- a/uv.lock +++ b/uv.lock @@ -1748,7 +1748,7 @@ wheels = [ [[package]] name = "unshackle" -version = "5.0.0" +version = "5.1.0" source = { editable = "." } dependencies = [ { name = "aiohttp" },