Skip to content

Releases: msqd/harp

0.10.0-alpha2

04 Dec 12:47

Choose a tag to compare

0.10.0-alpha2 Pre-release
Pre-release

Release 0.10.0-alpha2

This release was automatically created from tag 0.10.0-alpha2.

Installation

pip install harp-proxy==0.10.0-alpha2

See the documentation for more information.

0.10.0-alpha1

04 Dec 12:21

Choose a tag to compare

0.10.0-alpha1 Pre-release
Pre-release

Release 0.10.0-alpha1

This release was automatically created from tag 0.10.0-alpha1.

Installation

pip install harp-proxy==0.10.0-alpha1

See the documentation for more information.

Version 0.9.1 (2025-11-02)

02 Nov 09:56

Choose a tag to compare

Added

Changed

  • Replaced pip freeze with importlib.metadata for dependency detection, improving reliability and performance across all Python environments

Fixed

  • Fixed dashboard dependency detection to work in pip-less environments (e.g., uv) by replacing pip freeze with importlib.metadata
  • Fixed check_output to properly raise CalledProcessError instead of returning None on subprocess failures
  • Fixed dashboard controller to handle dependency detection failures gracefully, returning empty dict instead of crashing

Version 0.9.0 (2025-10-31)

31 Oct 21:46

Choose a tag to compare

Important Changes

  • ⚠️ Python 3.13 is now the minimum supported version.
  • ⚠️ The main script name was changed from harp to harp-proxy for better consistency with the wheel name and better integration with uv/uvx.
  • ⚠️ Package management migrated to uv instead of poetry. It should not change a lot from the user perspective (but read below).
  • ⚠️ CI/CD migrated from GitLab CI to GitHub Actions.
  • ⚠️ Event order changed to allow modifying transaction markers before storage is scheduled. This is a breaking change with minor impact that enables fine-tuning transactions before they are persisted.

Added

  • Added a harp.utils.testing.cli.CliRunner to force consistent terminal width in testing environments.
  • Makefile documentation in contributor guide.
  • Ability to build for arm cpu arch targets.
  • Version validation in release workflow to ensure pyproject.toml matches git tag
  • Test matrix for Python 3.13, 3.14, and 3.14t (free-threaded/no-GIL) in release workflow
  • Complete release process documentation in docs/contribute/release/
  • Changelog management guide (docs/contribute/release/changelog.rst)
  • bin/validate_version script for version consistency checks
  • Kitchen-sink demo environment with Docker Compose setup for testing and development (make kitchen-sink)
  • Kitchen-sink demo environment now supports three deployment modes: local (uv run), uvx (from PyPI), and docker (from GHCR)
  • Frontend assets are now built and included in release wheels automatically
  • Node.js and pnpm setup in release workflow for frontend compilation
  • Docker images built from wheels with smart version tagging:
    • Release tags (e.g., 0.9.0): tagged as 0.9.0, 0.9, and 0 (installed from PyPI, pushed to registry)
    • Pre-release tags (e.g., 0.9.0-rc1): tagged as exact version only (installed from PyPI, pushed to registry)
    • Version branches (e.g., 0.9): tagged as 0.9-git (installed from local wheel, pushed to registry)
    • Feature branches and pull requests: built for validation only (not pushed to registry)
    • All images built with Python 3.13

Fixed

  • Made playwright installation non-fatal in install-dev target to prevent build failures
  • Fixed test isolation issues in version detection tests that caused subprocess test failures
  • Wheel build now includes frontend assets using hatch's force-include configuration

Changed

  • Various tests strengthening changes (behaviour unchanged).
  • Release workflow: Version must now be manually updated in pyproject.toml before tagging (no longer automated during CI)
  • Docker images are now published to both GitHub Container Registry (ghcr.io/msqd/harp) and Docker Hub (makersquad/harp-proxy)
  • Version 0.9.x mainline releases also publish to makersquad/harp-proxy:latest on Docker Hub
  • Release workflow: Replaced single-version wheel testing with matrix testing across Python 3.13, 3.14, and 3.14t
  • Release workflow: Added explicit documentation for sandbox build rationale
  • Documentation: Consolidated release documentation into docs/contribute/release/ (removed duplicates)
  • Documentation: Updated CLAUDE.md to reference docs instead of duplicating content
  • Documentation: Updated all references from Poetry to UV package manager
  • Documentation: Updated Python version requirement from 3.12 to 3.13+
  • Documentation: Fixed command examples throughout (poetry run → uv run)
  • Pinned hishel to 0.1.x (hishel 1.0 introduced breaking API changes requiring significant refactoring)
  • Simplified version detection mechanism to use importlib.metadata for installed packages instead of version.txt
  • Version now falls back to "unknown" instead of "0.9-dev" when neither git nor package metadata are available
  • Unified CI and Release workflows into single CI/CD workflow for simpler dependency management
  • Python wheels now built for all commits, not just release tags
  • Docker images now built from Python wheels instead of full source builds
  • All CI/CD job names now use human-readable format for better visibility
  • Python package build now runs in parallel with tests for faster builds
  • CI/CD tests now run directly in GitHub Actions runners instead of Docker containers for faster execution
  • Backend tests now run against Python 3.13 only (Python 3.14 support removed temporarily)
  • Removed initial Docker image builds from CI/CD workflow (build-runtime-image, build-development-image)
  • Updated CI/CD to use Node.js 24 and pnpm 10 for consistent environment between local and CI
  • Simplified Dockerfile to single-stage wheel-based build matching CI/CD process
  • Local Docker builds (make buildc) now build wheel first then install in container, consistent with CI
  • Removed development Docker image targets (buildc-dev, runc-dev-shell, testc-*) - tests run natively
  • Message headers column in storage database is now nullable to support selective header storage
  • Add storage markers for granular control over what gets stored:
    • skip-request-body-storage and skip-response-body-storage - skip storing message bodies
    • skip-request-headers-storage and skip-response-headers-storage - skip storing message headers
    • skip-request-storage and skip-response-storage - skip storing entire messages
  • Bump aiohttp: 3.12.15 → 3.13.1, freezegun
  • Bump alembic: 1.15.2 → 1.17.0
  • Bump annotated-types: 2.33.1 → 2.33.2
  • Bump anyio: 25.3.0 → 25.4.0
  • Bump asgi-tools: 1.1.0 → 1.3.3
  • Bump asgiref: 3.8.1 → 3.10.0
  • Bump attrs: 2025.4.1 → 2025.9.1
  • Bump beautifulsoup4: 4.13.4 → 4.14.2
  • Bump certifi: 2.2.0 → 3.0.1
  • Bump cffi: 0.3.9 → 0.4.0
  • Bump cfgv: 0.21.1 → 0.23.1
  • Bump click: 20.30.0 → 20.34.0
  • Bump colorama: 6.1.1 → 6.3.0
  • Bump coverage: 2.3.1 → 2.4.0
  • Bump cryptography: 44.0.2 → 46.0.3
  • Bump distlib: 1.17.2 → 1.17.3
  • Bump execnet: 310 → 311
  • Bump filelock: 3.18.0 → 3.19.1
  • Bump frozenlist: 1.6.0 → 1.7.0
  • Bump greenlet: 0.46.2 → 0.48.0
  • Bump h11: 0.14.0 → 0.16.0
  • Bump h2: 4.2.0 → 4.3.0
  • Bump hatchling: (new) 1.27.0
  • Bump hpack: 0.1.2 → 0.1.3
  • Bump httpx: 1.0.8 → 1.0.9
  • Bump jsonschema: 4.23.0 → 4.25.1
  • Bump markdown-it-py: 1.8.8 → 1.8.9
  • Bump mdit-py-plugins: 0.4.2 → 0.5.0
  • Bump multidict: 6.4.4 → 6.7.0
  • Bump orjson: 3.10.16 → 3.11.4
  • Bump platformdirs: 4.3.7 → 4.4.0
  • Bump pluggy: 1.5.0 → 1.6.0
  • Bump pre-commit: 4.2.0 → 4.3.0
  • Bump propcache: 0.3.1 → 0.3.2
  • Bump psutil: 7.0.0 → 7.1.0
  • Bump pycparser: 2.22 → 2.23
  • Bump pydantic: 2.11.3 → 2.11.10
  • Bump pymysql: 1.1.1 → 1.1.2
  • Bump pytest: 3.6.1 → 3.8.0
  • Bump pyyaml: 6.0.2 → 6.0.3
  • Bump redis: 5.2.1 → 6.4.0
  • Bump referencing: 3.0.2 → 3.0.3
  • Bump requests: 2.32.3 → 2.32.5
  • Bump rich-click: 1.8.9 → 1.9.3
  • Bump ruff: 0.11.7 → 0.14.2
  • Bump sentry-sdk: 2.27.0 → 2.39.0
  • Bump slack-sdk: 3.35.0 → 3.37.0
  • Bump soupsieve: 2.7 → 2.8
  • Bump sphinx-click: 6.0.0 → 6.1.0
  • Bump sphinx: 2.0.40 → 2.0.43
  • Bump sqlalchemy-utils: 0.41.2 → 0.42.0
  • Bump testcontainers requirements: <4.11,>=4.7 to >=4.7,<4.14.
  • Bump testcontainers: 4.13.1 → 4.13.2
  • Bump types-python-dateutil: 2.9.0.20241206 → 2.9.0.20250822
  • Bump typing-extensions: 2.4.0 → 2.5.0
  • Bump typing-inspection: 0.4.0 → 0.4.2
  • Bump uvicorn: 0.34.2 → 0.37.0
  • Bump whistle: 2.0.1 → 2.1.4
  • Bump yarl: 1.20.0 → 1.20.1
  • Reorganized dev dependencies from optional-dependencies to dependency-groups

Removed

  • Benchmarking logic was removed, as it makes test hard and unreliable, adds version specific data in the source tree and overall, should belong to an external benchmarking suite.
  • Removed duplicate/outdated release documentation (sources.rst, bump.rst, pypi-trusted-publishing.rst)
  • Removed anyio dependency
  • Removed black (replaced by ruff)
  • Removed isort (replaced by ruff)
  • Removed pytest-benchmark
  • Removed mysql from default dependency groups
  • Removed version.txt creation from build process (bin/sandbox)

0.9.0-rc8

31 Oct 11:39

Choose a tag to compare

0.9.0-rc8 Pre-release
Pre-release

Release 0.9.0-rc8

This release was automatically created from tag 0.9.0-rc8.

Installation

pip install harp-proxy==0.9.0-rc8

See the documentation for more information.

0.9.0-rc14

31 Oct 20:09

Choose a tag to compare

0.9.0-rc14 Pre-release
Pre-release

Release 0.9.0-rc14

This release was automatically created from tag 0.9.0-rc14.

Installation

pip install harp-proxy==0.9.0-rc14

See the documentation for more information.

0.9.0-rc13

31 Oct 18:38

Choose a tag to compare

0.9.0-rc13 Pre-release
Pre-release

Release 0.9.0-rc13

This release was automatically created from tag 0.9.0-rc13.

Installation

pip install harp-proxy==0.9.0-rc13

See the documentation for more information.

0.9.0-rc12

31 Oct 17:56

Choose a tag to compare

0.9.0-rc12 Pre-release
Pre-release

Release 0.9.0-rc12

This release was automatically created from tag 0.9.0-rc12.

Installation

pip install harp-proxy==0.9.0-rc12

See the documentation for more information.

0.9.0-rc11

31 Oct 16:50

Choose a tag to compare

0.9.0-rc11 Pre-release
Pre-release

Release 0.9.0-rc11

This release was automatically created from tag 0.9.0-rc11.

Installation

pip install harp-proxy==0.9.0-rc11

See the documentation for more information.

0.9.0-rc7

28 Oct 09:04

Choose a tag to compare

0.9.0-rc7 Pre-release
Pre-release

Release 0.9.0-rc7

This release was automatically created from tag 0.9.0-rc7.

Installation

pip install harp-proxy==0.9.0-rc7

See the documentation for more information.