From 629e14ddb1bedcedb54b0969fa1f1bba5b2f3b1f Mon Sep 17 00:00:00 2001 From: Adam Hernandez Date: Fri, 28 Aug 2026 19:22:43 -0700 Subject: [PATCH 1/2] chore(release): prepare LibGen 1.0.0 and Anna's Archive 1.0.2 --- README.md | 8 +++----- providers/annas_archive/pyproject.toml | 4 ++-- providers/libgen/pyproject.toml | 2 +- tests/unit/test_container_contract.py | 12 ++++++++++++ tests/unit/test_provider_release_metadata.py | 12 ++++++------ 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ffef562..4e96000 100644 --- a/README.md +++ b/README.md @@ -247,11 +247,9 @@ either registry; both names resolve to the same signed digest. | Provider | GHCR | Docker Hub | | --- | --- | --- | -| GetComics | `ghcr.io/pullboxapp/pullbox-provider-getcomics:1.0.0` | `docker.io/pullbox/pullbox-provider-getcomics:1.0.0` | -| Anna's Archive | `ghcr.io/pullboxapp/pullbox-provider-annas-archive:1.0.0` | `docker.io/pullbox/pullbox-provider-annas-archive:1.0.0` | - -LibGen image publication is intentionally omitted from this table until its -independent release gate is approved and a numbered provider release exists. +| GetComics | `ghcr.io/pullboxapp/pullbox-provider-getcomics:1.0.2` | `docker.io/pullbox/pullbox-provider-getcomics:1.0.2` | +| Anna's Archive | `ghcr.io/pullboxapp/pullbox-provider-annas-archive:1.0.2` | `docker.io/pullbox/pullbox-provider-annas-archive:1.0.2` | +| LibGen | `ghcr.io/pullboxapp/pullbox-provider-libgen:1.0.0` | `docker.io/pullbox/pullbox-provider-libgen:1.0.0` | Pin a numbered version or the immutable digest in production. `latest` tracks only the newest stable provider release; prerelease and manual `edge` builds do diff --git a/providers/annas_archive/pyproject.toml b/providers/annas_archive/pyproject.toml index e14f08f..94ee00b 100644 --- a/providers/annas_archive/pyproject.toml +++ b/providers/annas_archive/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "hatchling.build" [project] name = "pullbox-provider-annas-archive" -version = "1.0.1" +version = "1.0.2" description = "Optional Anna's Archive discovery provider for Pullbox" requires-python = ">=3.12" license = "GPL-3.0-or-later" dependencies = [ "pullbox-direct-provider-contract==1.0.0", - "pullbox-provider-libgen==0.1.0", + "pullbox-provider-libgen==1.0.0", "uvicorn>=0.34,<1", ] diff --git a/providers/libgen/pyproject.toml b/providers/libgen/pyproject.toml index 20923f0..4211bc4 100644 --- a/providers/libgen/pyproject.toml +++ b/providers/libgen/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "pullbox-provider-libgen" -version = "0.1.0" +version = "1.0.0" description = "Optional LibGen discovery provider for Pullbox" requires-python = ">=3.12" license = "GPL-3.0-or-later" diff --git a/tests/unit/test_container_contract.py b/tests/unit/test_container_contract.py index 71aa0a8..1c375d4 100644 --- a/tests/unit/test_container_contract.py +++ b/tests/unit/test_container_contract.py @@ -1,5 +1,6 @@ from __future__ import annotations +import tomllib from pathlib import Path import yaml @@ -17,6 +18,8 @@ } SOURCE_COMPOSE_FILE = ROOT / "docker" / "compose.providers-test.yml" SOURCE_SMOKE_SCRIPT = ROOT / "docker" / "provider_smoke.py" +ANNAS_PROJECT = ROOT / "providers" / "annas_archive" / "pyproject.toml" +LIBGEN_PROJECT = ROOT / "providers" / "libgen" / "pyproject.toml" ALL_RUNTIME_DOCKERFILES = { DOCKERFILE, ROOT / "docker" / "Dockerfile.provider-smoke", @@ -24,6 +27,15 @@ } +def test_annas_archive_pins_the_bundled_libgen_version() -> None: + with ANNAS_PROJECT.open("rb") as project_file: + annas_project = tomllib.load(project_file) + with LIBGEN_PROJECT.open("rb") as project_file: + libgen_version = tomllib.load(project_file)["project"]["version"] + + assert f"pullbox-provider-libgen=={libgen_version}" in annas_project["project"]["dependencies"] + + def test_runtime_uses_pinned_python_314_and_non_root_identity() -> None: dockerfile = DOCKERFILE.read_text(encoding="utf-8") diff --git a/tests/unit/test_provider_release_metadata.py b/tests/unit/test_provider_release_metadata.py index dadda71..a31ba5a 100644 --- a/tests/unit/test_provider_release_metadata.py +++ b/tests/unit/test_provider_release_metadata.py @@ -47,12 +47,12 @@ def test_tag_release_maps_getcomics_to_both_registry_names() -> None: def test_tag_release_maps_annas_archive_to_both_registry_names() -> None: release = _load_module().resolve_release( repository_owner="pullboxapp", - tag="annas-archive-v1.0.1", + tag="annas-archive-v1.0.2", ) assert release.provider == "annas-archive" - assert release.version == "1.0.1" - assert release.release_tag == "annas-archive-v1.0.1" + assert release.version == "1.0.2" + assert release.release_tag == "annas-archive-v1.0.2" assert release.is_release is True assert release.is_prerelease is False assert release.dockerfile == "docker/Dockerfile.annas-archive" @@ -63,12 +63,12 @@ def test_tag_release_maps_annas_archive_to_both_registry_names() -> None: def test_tag_release_maps_libgen_to_both_registry_names() -> None: release = _load_module().resolve_release( repository_owner="pullboxapp", - tag="libgen-v0.1.0", + tag="libgen-v1.0.0", ) assert release.provider == "libgen" - assert release.version == "0.1.0" - assert release.release_tag == "libgen-v0.1.0" + assert release.version == "1.0.0" + assert release.release_tag == "libgen-v1.0.0" assert release.is_release is True assert release.is_prerelease is False assert release.dockerfile == "docker/Dockerfile.libgen" From 9e72587d2f357efd0f29449a294d386a1dabad7f Mon Sep 17 00:00:00 2001 From: Adam Hernandez <31273212+DeusExTaco@users.noreply.github.com> Date: Fri, 28 Aug 2026 19:28:08 -0700 Subject: [PATCH 2/2] docs: retain only verified provider image tags --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e96000..12e9471 100644 --- a/README.md +++ b/README.md @@ -248,8 +248,10 @@ either registry; both names resolve to the same signed digest. | Provider | GHCR | Docker Hub | | --- | --- | --- | | GetComics | `ghcr.io/pullboxapp/pullbox-provider-getcomics:1.0.2` | `docker.io/pullbox/pullbox-provider-getcomics:1.0.2` | -| Anna's Archive | `ghcr.io/pullboxapp/pullbox-provider-annas-archive:1.0.2` | `docker.io/pullbox/pullbox-provider-annas-archive:1.0.2` | -| LibGen | `ghcr.io/pullboxapp/pullbox-provider-libgen:1.0.0` | `docker.io/pullbox/pullbox-provider-libgen:1.0.0` | +| Anna's Archive | `ghcr.io/pullboxapp/pullbox-provider-annas-archive:1.0.1` | `docker.io/pullbox/pullbox-provider-annas-archive:1.0.1` | + +LibGen image publication is intentionally omitted from this table until its +independent release gate is approved and a numbered provider release exists. Pin a numbered version or the immutable digest in production. `latest` tracks only the newest stable provider release; prerelease and manual `edge` builds do