From 06ce2d8cea4b77afa8a64b4651bf0c4a6dfc9cc7 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Thu, 13 Aug 2026 15:16:32 -0700 Subject: [PATCH] Avoid unrelated prerelease dependencies in uv installs --- AGENTS.md | 2 +- README.md | 6 +++--- archivebox/tests/test_setup_script.py | 4 ++-- bin/setup.sh | 4 ++-- docs/Configuration.md | 4 ++-- docs/Install.md | 8 ++++---- docs/Setting-up-Authentication.md | 2 +- docs/Upgrading.md | 4 ++-- docs/index.rst | 2 +- skills/archivebox/SKILL.md | 2 +- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index bb1c9258..c2a2889a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,7 +38,7 @@ uv run --project .. archivebox run Recommended CLI install: ```bash -uv tool install --python 3.13 --prerelease allow --upgrade 'git+https://github.com/ArchiveBox/ArchiveBox.git@dev' +uv tool install --python 3.13 --prerelease explicit --upgrade 'git+https://github.com/ArchiveBox/ArchiveBox.git@dev' mkdir -p ~/archivebox/data cd ~/archivebox/data archivebox init --install diff --git a/README.md b/README.md index 5d5667ed..6b9a52ed 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Without active preservation effort, everything on the internet eventually disapp *ArchiveBox is an open source tool that lets organizations & individuals archive both public & private web content while retaining control over their data. It can be used to save copies of bookmarks, preserve evidence for legal cases, backup photos from FB/Insta/Flickr or media from YT/Soundcloud/etc., save research papers, and more...*
-> ➡️ Get ArchiveBox with `uv tool install --python 3.13 --prerelease allow --upgrade archivebox` on [Linux](#quickstart)/[macOS](#quickstart), or via **[Docker](#quickstart)** ⭐️ on any OS. +> ➡️ Get ArchiveBox with `uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10'` on [Linux](#quickstart)/[macOS](#quickstart), or via **[Docker](#quickstart)** ⭐️ on any OS. *Once installed, you can interact with it through the: [Browser Extension](https://github.com/ArchiveBox/archivebox-browser-extension), [CLI](#usage), [self-hosted web interface](https://github.com/ArchiveBox/ArchiveBox/wiki/Publishing-Your-Archive), [Python API](https://github.com/ArchiveBox/ArchiveBox/wiki/Usage#python-shell-usage), or [filesystem](#static-archive-exporting).* @@ -90,7 +90,7 @@ docker run -it -v $PWD:/data archivebox/archivebox:dev install

# Option C: Or install it with uv (see Quickstart below for apt, brew, and more) -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' mkdir -p ~/archivebox/data && cd ~/archivebox/data archivebox init archivebox install @@ -264,7 +264,7 @@ See "Against curl | sh as a
  • Install uv on your system (if not already installed).
  • Install the ArchiveBox package using uv. -
    uv tool install --python 3.13 --prerelease allow --upgrade archivebox
    +
    uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10'
     archivebox version
     
    See the Install: Bare Metal Wiki for full install instructions for each OS... diff --git a/archivebox/tests/test_setup_script.py b/archivebox/tests/test_setup_script.py index de1ec2ed..cd6cda87 100644 --- a/archivebox/tests/test_setup_script.py +++ b/archivebox/tests/test_setup_script.py @@ -38,8 +38,8 @@ def test_setup_script_bootstraps_locked_abxpkg_version(): install_function = script.partition("install_archivebox_with_uv() {")[2].partition("\n}")[0] assert 'ABXPKG_PACKAGE="${ABXPKG_PACKAGE:-abxpkg==1.12.62}"' in script - assert 'ARCHIVEBOX_PACKAGE="${ARCHIVEBOX_PACKAGE:-archivebox}"' in script - assert '--prerelease allow --upgrade "$ARCHIVEBOX_PACKAGE"' in install_function + assert 'ARCHIVEBOX_PACKAGE="${ARCHIVEBOX_PACKAGE:-archivebox>=0.9.0rc0,<0.10}"' in script + assert '--prerelease explicit --upgrade "$ARCHIVEBOX_PACKAGE"' in install_function assert "fix_root_install_ownership" in prepare_function assert "resolve_setup_binary git env,brew,apt true" not in install_function diff --git a/bin/setup.sh b/bin/setup.sh index a94d2c6b..de934e19 100755 --- a/bin/setup.sh +++ b/bin/setup.sh @@ -78,7 +78,7 @@ fi ARCHIVEBOX_BRANCH="${ARCHIVEBOX_BRANCH:-dev}" ARCHIVEBOX_IMAGE="${ARCHIVEBOX_IMAGE:-archivebox/archivebox:dev}" ARCHIVEBOX_PYTHON="${ARCHIVEBOX_PYTHON:-3.13}" -ARCHIVEBOX_PACKAGE="${ARCHIVEBOX_PACKAGE:-archivebox}" +ARCHIVEBOX_PACKAGE="${ARCHIVEBOX_PACKAGE:-archivebox>=0.9.0rc0,<0.10}" ARCHIVEBOX_PLATFORM="${ARCHIVEBOX_PLATFORM:-}" ARCHIVEBOX_COMPOSE_URL="${ARCHIVEBOX_COMPOSE_URL:-https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/${ARCHIVEBOX_BRANCH}/docker-compose.yml}" ABXPKG_PACKAGE="${ABXPKG_PACKAGE:-abxpkg==1.12.62}" @@ -301,7 +301,7 @@ resolve_setup_curl() { install_archivebox_with_uv() { echo echo "[+] Installing ArchiveBox python tool using uv from $ARCHIVEBOX_PACKAGE..." - "$UV_BINARY" --no-config tool install --python "$ARCHIVEBOX_PYTHON" --prerelease allow --upgrade "$ARCHIVEBOX_PACKAGE" + "$UV_BINARY" --no-config tool install --python "$ARCHIVEBOX_PYTHON" --prerelease explicit --upgrade "$ARCHIVEBOX_PACKAGE" uv_tool_bin_dir="$("$UV_BINARY" --no-config tool dir --bin)" ARCHIVEBOX_BINARY="$uv_tool_bin_dir/archivebox" diff --git a/docs/Configuration.md b/docs/Configuration.md index be65d464..1c38d530 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -476,7 +476,7 @@ URL users are redirected to after logging out. The default `/` keeps users on Ar ### LDAP Settings -*Options for LDAP / Active Directory authentication via [django-auth-ldap](https://github.com/django-auth-ldap/django-auth-ldap). Requires `uv tool install --python 3.13 --prerelease allow --upgrade 'archivebox[ldap]'` (which also pulls in the system `libldap` / `libsasl` headers).* +*Options for LDAP / Active Directory authentication via [django-auth-ldap](https://github.com/django-auth-ldap/django-auth-ldap). Requires `uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox[ldap]>=0.9.0rc0,<0.10'` (which also pulls in the system `libldap` / `libsasl` headers).* --- #### `LDAP_ENABLED` @@ -485,7 +485,7 @@ URL users are redirected to after logging out. The default `/` keeps users on Ar Master switch for LDAP authentication. When `True`, ArchiveBox loads the `django-auth-ldap` backend and validates that `LDAP_SERVER_URI`, `LDAP_BIND_DN`, `LDAP_BIND_PASSWORD`, and `LDAP_USER_BASE` are all set — startup fails fast otherwise. ```bash -uv tool install --python 3.13 --prerelease allow --upgrade 'archivebox[ldap]' +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox[ldap]>=0.9.0rc0,<0.10' ``` Then set these configuration values: diff --git a/docs/Install.md b/docs/Install.md index 9040bd54..00363e81 100644 --- a/docs/Install.md +++ b/docs/Install.md @@ -129,7 +129,7 @@ Or use Homebrew to install `uv`, then install ArchiveBox with `uv`: ```bash brew install uv -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' ``` @@ -161,7 +161,7 @@ Alternatively, install with `uv`: ```bash curl -LsSf https://astral.sh/uv/install.sh | sh source "$HOME/.local/bin/env" -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' ``` Or install with [Homebrew on Linux](https://docs.brew.sh/Homebrew-on-Linux). Run Homebrew as your normal non-root user; Homebrew does not support `sudo brew` or root installs. @@ -180,7 +180,7 @@ If you are not using the apt package above, install ArchiveBox with `uv`. ```bash # get the dev version of ArchiveBox -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' # if the optional ldap extra must compile locally on Debian/Ubuntu, install its headers and retry # sudo apt install build-essential libldap2-dev libsasl2-dev @@ -266,7 +266,7 @@ Upgrade ArchiveBox itself first; `archivebox install` will then re-resolve compa ```bash # get the dev version of ArchiveBox -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' # run init inside any data directories to migrate the index to the latest version cd ~/archivebox/data diff --git a/docs/Setting-up-Authentication.md b/docs/Setting-up-Authentication.md index 14ddc244..0d412165 100644 --- a/docs/Setting-up-Authentication.md +++ b/docs/Setting-up-Authentication.md @@ -84,7 +84,7 @@ LOGOUT_REDIRECT_URL=https://auth.yourcompany.example.com/after/logout First, install the `ldap` add-on to use this feature (not needed for Docker Archivebox). ```bash -uv tool install --python 3.13 --prerelease allow --upgrade 'archivebox[ldap]' +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox[ldap]>=0.9.0rc0,<0.10' ``` Then set these configuration values to finish configuring LDAP: diff --git a/docs/Upgrading.md b/docs/Upgrading.md index 58a4f9c9..6c09abbf 100644 --- a/docs/Upgrading.md +++ b/docs/Upgrading.md @@ -8,7 +8,7 @@ cd ~/archivebox tar -czf "archivebox-data-$(date +%s).tar.gz" data/ # Update ArchiveBox using the package manager you originally installed it with -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' # or: sudo apt update && sudo apt install --only-upgrade archivebox # or: brew update && brew upgrade archivebox @@ -117,7 +117,7 @@ Package manager releases take a lot of effort to maintain ([contributions welcom cd ~/archivebox/data # or wherever your data folder is # upgrade ArchiveBox using the package manager you originally used to install it -uv tool install --python 3.13 --prerelease allow --upgrade archivebox +uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' ``` Or, for apt: diff --git a/docs/index.rst b/docs/index.rst index 321f9d7e..6aa0f28f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -23,7 +23,7 @@ ArchiveBox .. code-block:: bash mkdir my-archive; cd my-archive/ - uv tool install --python 3.13 --prerelease allow --upgrade archivebox + uv tool install --python 3.13 --prerelease explicit --upgrade 'archivebox>=0.9.0rc0,<0.10' archivebox init archivebox install diff --git a/skills/archivebox/SKILL.md b/skills/archivebox/SKILL.md index 5717e067..651d5634 100644 --- a/skills/archivebox/SKILL.md +++ b/skills/archivebox/SKILL.md @@ -34,7 +34,7 @@ uv run --project .. archivebox install Recommended CLI install: ```bash -uv tool install --python 3.13 --prerelease allow --upgrade 'git+https://github.com/ArchiveBox/ArchiveBox.git@dev' +uv tool install --python 3.13 --prerelease explicit --upgrade 'git+https://github.com/ArchiveBox/ArchiveBox.git@dev' mkdir -p ~/archivebox/data cd ~/archivebox/data archivebox init