diff --git a/archivebox/tests/test_api_v1_core_snapshot_snapshot_id.py b/archivebox/tests/test_api_v1_core_snapshot_snapshot_id.py index c543153b..e1fde055 100644 --- a/archivebox/tests/test_api_v1_core_snapshot_snapshot_id.py +++ b/archivebox/tests/test_api_v1_core_snapshot_snapshot_id.py @@ -162,6 +162,8 @@ def test_snapshot_pause_resume_api_cascades_active_archiveresults_and_preserves_ ) assert failed_result.status == ArchiveResult.StatusChoices.FAILED assert failed_result.output_str == "git fetch failed (exit=128)" + install_result = run_archivebox_cmd(["install"], cwd=tmp_path, timeout=600) + assert install_result.returncode == 0, install_result.stderr or install_result.stdout now = timezone.now() Snapshot.objects.filter(pk=snapshot.pk).update( url=blocking_http_server.url, diff --git a/archivebox/tests/test_archive_result_service.py b/archivebox/tests/test_archive_result_service.py index c566f24d..8e0bbec1 100644 --- a/archivebox/tests/test_archive_result_service.py +++ b/archivebox/tests/test_archive_result_service.py @@ -123,8 +123,9 @@ def _run_real_title_crawl(url: str, lib_dir: Path): from archivebox.base_models.models import get_or_create_system_user_pk from archivebox.crawls.models import Crawl from archivebox.core.models import Snapshot - from archivebox.services.runner import CrawlRunner + from archivebox.services.runner import CrawlRunner, run_install + run_install(plugin_names=["title"]) crawl = Crawl.objects.create( urls=url, config={"ABXPKG_LIB_DIR": str(lib_dir), "PLUGINS": "title"}, diff --git a/archivebox/tests/test_cli_extract.py b/archivebox/tests/test_cli_extract.py index 33c11a20..64e1c6b4 100644 --- a/archivebox/tests/test_cli_extract.py +++ b/archivebox/tests/test_cli_extract.py @@ -11,8 +11,16 @@ from archivebox.tests.test_orm_helpers import use_archivebox_db pytestmark = pytest.mark.django_db(transaction=True) -def test_extract_runs_on_existing_snapshots(initialized_archive): +@pytest.fixture +def archive_with_extractors(initialized_archive): + result = run_archivebox_cmd(["install", "wget", "title"], cwd=initialized_archive, timeout=600) + assert result.returncode == 0, result.stderr or result.stdout + return initialized_archive + + +def test_extract_runs_on_existing_snapshots(archive_with_extractors): """Extract runs a requested plugin for an existing snapshot.""" + initialized_archive = archive_with_extractors env = cli_env(PLUGINS="wget,title") create_result = run_archivebox_cmd( @@ -66,8 +74,9 @@ def test_extract_runs_on_existing_snapshots(initialized_archive): assert archiveresults["wget"].output_files["example.com/index.html"]["size"] == wget_path.stat().st_size -def test_extract_preserves_snapshot_count(initialized_archive): +def test_extract_preserves_snapshot_count(archive_with_extractors): """Extract queues work without creating duplicate snapshots.""" + initialized_archive = archive_with_extractors env = cli_env(PLUGINS="wget,title") create_result = run_archivebox_cmd( diff --git a/etc/package.json b/etc/package.json index 673441a1..1b62687a 100644 --- a/etc/package.json +++ b/etc/package.json @@ -1,6 +1,6 @@ { "name": "archivebox", - "version": "0.9.35rc223", + "version": "0.9.35rc224", "repository": "github:ArchiveBox/ArchiveBox", "license": "MIT", "dependencies": { diff --git a/pyproject.toml b/pyproject.toml index e44a37a8..3ef4568e 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "archivebox" -version = "0.9.35rc223" +version = "0.9.35rc224" requires-python = ">=3.13" description = "Self-hosted internet archiving solution." authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}] @@ -83,7 +83,7 @@ dependencies = [ "abxbus", # direct imports only; version constrained by abx-dl -> abx-plugins "abxpkg", # direct imports only; version constrained by abx-dl -> abx-plugins "abx-plugins", # direct imports only; version constrained by abx-dl - "abx-dl==1.12.92", # shared ArchiveBox downloader package + "abx-dl==1.12.93", # shared ArchiveBox downloader package ### UUID7 backport for Python <3.14 "uuid7>=0.1.0; python_version < '3.14'", # provides the uuid_extensions module on Python 3.13 ] @@ -344,7 +344,7 @@ Donate = "https://github.com/ArchiveBox/ArchiveBox/wiki/Donations" [tool.bumpver] -current_version = "v0.9.35rc223" +current_version = "v0.9.35rc224" version_pattern = "vMAJOR.MINOR.PATCH[PYTAGNUM]" commit_message = "bump version {old_version} -> {new_version}" tag_message = "{new_version}" diff --git a/uv.lock b/uv.lock index 995c003a..29095e4c 100644 --- a/uv.lock +++ b/uv.lock @@ -13,18 +13,18 @@ supported-markers = [ ] [options] -exclude-newer = "2026-08-07T23:35:17.734198649Z" +exclude-newer = "2026-08-08T00:12:24.922134Z" exclude-newer-span = "P5D" [options.exclude-newer-package] -abxbus = { timestamp = "2026-08-12T23:35:16.734215373Z", span = "PT1S" } +abxbus = { timestamp = "2026-08-13T00:12:23.922224Z", span = "PT1S" } abx-plugins = "2100-01-01T00:00:00Z" abx-dl = "2100-01-01T00:00:00Z" abxpkg = "2100-01-01T00:00:00Z" [[package]] name = "abx-dl" -version = "1.12.92" +version = "1.12.93" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "abx-plugins", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -39,9 +39,9 @@ dependencies = [ { name = "rich", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "rich-click", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/1d/a75a087d2141bb5f6b8b1085f26a65c4d4e834792d87f44cf06a3efae42f/abx_dl-1.12.92.tar.gz", hash = "sha256:69e23bf1c5e648a9518a3af1d404ded6f6d9dbb366fa18f6ea4202cd694fe653", size = 88006, upload-time = "2026-08-12T23:25:35.609531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/a5/68e2b96c5033a4f29993a44fd4e493734d6252cd523911106f26cb28e341/abx_dl-1.12.93.tar.gz", hash = "sha256:e1982899a81808274d258fa66888ebffcc0ce75d9dc52bbb1ec1000976fb806e", size = 87954, upload-time = "2026-08-13T00:11:02.688Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/95/2d/7d1f578029a8cf53d7a47b9b8fb82649d5cd7eed98db76a35b96861e696f/abx_dl-1.12.92-py3-none-any.whl", hash = "sha256:c294b4f7bc3b0bea97c0ee98e35b8ff55e8e5f0c7daf612558f80cfb605db688", size = 92026, upload-time = "2026-08-12T23:25:34.219560Z" }, + { url = "https://files.pythonhosted.org/packages/73/cd/a13edbaad170fffb929c1c5f77324035dde085832ab282a194fd4e66d6ba/abx_dl-1.12.93-py3-none-any.whl", hash = "sha256:a2245650cccb2609f2c3935d688bd285c56d4a0fc12aba7b06edd85939935a1e", size = 91933, upload-time = "2026-08-13T00:11:03.819Z" }, ] [[package]] @@ -122,7 +122,7 @@ wheels = [ [[package]] name = "archivebox" -version = "0.9.35rc223" +version = "0.9.35rc224" source = { editable = "." } dependencies = [ { name = "abx-dl", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -222,7 +222,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "abx-dl", specifier = "==1.12.92" }, + { name = "abx-dl", specifier = "==1.12.93" }, { name = "abx-plugins" }, { name = "abxbus" }, { name = "abxpkg" },