diff --git a/README.md b/README.md index 8b98912..e1a04e3 100644 --- a/README.md +++ b/README.md @@ -393,7 +393,7 @@ backend = FalaExecutionBackend("journal.sqlite") summary = backend.execute(request, perform_step) ``` -This is a thin adapter over Fala 0.7.28's public `record_in_process` API: +This is a thin adapter over Fala 0.8.1's public `fala.host.record_in_process` API: `run_id`, `execution_id` (as Fala's `process_id`), `inputs`, `metadata`, and the callback are forwarded unchanged. Fala owns validation, recording, exact-once callback invocation, and return/exception semantics. The caller still creates @@ -423,9 +423,8 @@ pip install "datasource-kit[fastapi]" # FastAPI control-plane router ``` The `[fala]` extra installs [mikolaj92/Fala](https://github.com/mikolaj92/Fala) -from GitHub at the `v0.7.28` tag (`record_in_process`). Fala is not published -to PyPI; the extra carries a PEP 508 git URL so `pip` does not resolve the -unrelated PyPI project named `fala`. +from an HTTPS archive pinned to commit `27c179aee96daf6953ef36d6b1a007214d14a0db` (0.8.1). +The PEP 508 URL avoids git fetch and the unrelated PyPI project named `fala`. ## Minimal Batch Usage diff --git a/pyproject.toml b/pyproject.toml index 27da8f3..c54d8c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,11 +16,7 @@ dependencies = [] datasource-kit = "datasource_kit.cli:main" [project.optional-dependencies] -# Blob/artifact resolution and in-process journal recording only. -# Fala is GitHub-only (name = "fala"); the PEP 508 URL keeps pip off the -# unrelated PyPI project of the same name. Adapter needs record_in_process -# (Fala 0.7.28+). -fala = ["fala @ git+https://github.com/mikolaj92/Fala.git@v0.7.28"] +fala = ["fala @ https://github.com/mikolaj92/Fala/archive/27c179aee96daf6953ef36d6b1a007214d14a0db.tar.gz"] # YAML profile loading only; JSON profiles are the dep-free default. profiles = ["pyyaml>=6.0"] # Optional FastAPI control-plane router; the core stays HTTP-framework-free. @@ -34,9 +30,6 @@ dev = ["pytest>=8.0", "fastapi>=0.141.1", "httpx2>=2.12.0"] [dependency-groups] dev = ["pytest>=8.0", "fastapi>=0.141.1", "httpx2>=2.12.0"] -[tool.uv.sources] -fala = { git = "https://github.com/mikolaj92/Fala", tag = "v0.7.28" } - [build-system] requires = ["hatchling"] build-backend = "hatchling.build" diff --git a/tests/adapters/test_fala_extra_source.py b/tests/adapters/test_fala_extra_source.py index 00ca593..55aaa94 100644 --- a/tests/adapters/test_fala_extra_source.py +++ b/tests/adapters/test_fala_extra_source.py @@ -5,22 +5,21 @@ from typing import Final _ROOT: Final = Path(__file__).resolve().parents[2] -_FALA_GIT: Final = "https://github.com/mikolaj92/Fala" -_FALA_TAG: Final = "v0.7.28" -_FALA_EXTRA: Final = f"fala @ git+{_FALA_GIT}.git@{_FALA_TAG}" +_FALA_ARCHIVE: Final = "https://github.com/mikolaj92/Fala/archive/27c179aee96daf6953ef36d6b1a007214d14a0db.tar.gz" +_FALA_EXTRA: Final = f"fala @ {_FALA_ARCHIVE}" def _pyproject() -> dict[str, object]: return tomllib.loads((_ROOT / "pyproject.toml").read_text(encoding="utf-8")) -def test_fala_extra_installs_mikolaj92_fala_from_git() -> None: +def test_fala_extra_installs_mikolaj92_fala_from_archive() -> None: extras = _pyproject()["project"]["optional-dependencies"]["fala"] assert extras == [_FALA_EXTRA] -def test_uv_sources_pin_fala_to_the_same_git_tag() -> None: - sources = _pyproject()["tool"]["uv"]["sources"]["fala"] +def test_uv_sources_do_not_override_fala_archive() -> None: + sources = _pyproject().get("tool", {}).get("uv", {}).get("sources", {}) - assert sources == {"git": _FALA_GIT, "tag": _FALA_TAG} + assert "fala" not in sources diff --git a/uv.lock b/uv.lock index 5333090..3313321 100644 --- a/uv.lock +++ b/uv.lock @@ -72,7 +72,7 @@ dev = [ [package.metadata] requires-dist = [ - { name = "fala", marker = "extra == 'fala'", git = "https://github.com/mikolaj92/Fala?tag=v0.7.28" }, + { name = "fala", marker = "extra == 'fala'", url = "https://github.com/mikolaj92/Fala/archive/27c179aee96daf6953ef36d6b1a007214d14a0db.tar.gz" }, { name = "fastapi", marker = "extra == 'dev'", specifier = ">=0.141.1" }, { name = "fastapi", marker = "extra == 'fastapi'", specifier = ">=0.141.1" }, { name = "httpx2", marker = "extra == 'dev'", specifier = ">=2.12.0" }, @@ -90,8 +90,13 @@ dev = [ [[package]] name = "fala" -version = "0.7.28" -source = { git = "https://github.com/mikolaj92/Fala?tag=v0.7.28#36b98995f515766b867dd5e43c63799a6892aa48" } +version = "0.8.1" +source = { url = "https://github.com/mikolaj92/Fala/archive/27c179aee96daf6953ef36d6b1a007214d14a0db.tar.gz" } +sdist = { hash = "sha256:328563fd39dd551e6c3e4058741aed3edec0902c51dadb8952485d2c525c94ad" } + +[package.metadata] +requires-dist = [{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0" }] +provides-extras = ["dev"] [[package]] name = "fastapi"