Skip to content

Commit dc71290

Browse files
JuliaEdomclaude
andcommitted
docs(release): 2.1.0 changelog and src->agentflow_runtime migration guide (audit F-09)
CHANGELOG folds the accumulated Unreleased entries into [2.1.0] with the namespace-migration entry on top; docs/migration/v2.1.md gives consumers the mechanical import rewrite, the shim semantics and the removal window (next major — a deliberate semver tightening of the plan's one-minor-line default, recorded in the P2-6 plan header); STATUS P2-6 now points at the landed phases 1-2 with only Phase 3 (shim drop) remaining. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 1096e2e commit dc71290

4 files changed

Lines changed: 90 additions & 6 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,36 @@
22

33
All notable changes to AgentFlow are documented in this file.
44

5-
## [Unreleased]
5+
## [2.1.0] - 2026-08-23
6+
7+
### Changed — runtime import namespace: `src.*` → `agentflow_runtime.*` (audit F-09 / P2-6 Phase 1-2)
8+
9+
The runtime package now installs and imports as `agentflow_runtime`; the
10+
repository tree moved to the src-layout `src/agentflow_runtime/` (`git mv`,
11+
history preserved). The wheel ships exactly two top-level members: the
12+
`agentflow_runtime` package and a one-file deprecated `src` shim that
13+
aliases every `src.X` import onto the *same module object* as
14+
`agentflow_runtime.X` and emits a `DeprecationWarning` on first import
15+
(`AGENTFLOW_SRC_SHIM_SILENT=1` silences it). Existing consumers keep
16+
working unchanged through this deprecation window; the shim and the `src`
17+
top-level are removed in the next **major** release — migrate imports now
18+
(see `docs/migration/v2.1.md`).
19+
20+
- All first-party surfaces now use `agentflow_runtime.*`: source, tests,
21+
scripts, CI workflows, Makefile, Docker/compose files, helm templates
22+
(uvicorn/`python -m` command lines), the Flink image layout
23+
(`PYTHONPATH=/opt/agentflow/src`), devcontainer, HF-Space image, demo
24+
notebook and the living docs.
25+
- New guards: `tests/unit/test_namespace_policy.py` pins the src-container
26+
layout, the packaging maps and the absence of first-party `src.*`
27+
imports; `scripts/wheel_smoke.py` — wired into the python-compat CI job —
28+
fails the build on any undeclared top-level package in the wheel and
29+
install-smokes the wheel *outside the checkout*, asserting the shim's
30+
DeprecationWarning, its silencing env var and cross-namespace module
31+
identity.
32+
- The byte-pinned golden-soak pack (`scripts/golden_soak/pack/`, immutable
33+
by MANIFEST hash) is the single recorded exception and keeps its
34+
historical `src.*` imports; it executes only inside frozen soak packets.
635

736
### Refactor — control-plane adapters split into capability repositories (audit F-08)
837

‎docs/STATUS.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,11 @@ program.
268268
onboarding/credentials, public production-grade benchmark work, and Codecov
269269
repository activation remain outside those two gates. The pen-test is
270270
already counted in item 1; the npm approval gate is closed.
271-
3. **P2-6 packaging** (breaking) — Phase 0 inventory + defaults done; Phase 1
272-
(tree/`agentflow_runtime` + shim) waits for a release branch:
271+
3. **P2-6 packaging** — Phases 1-2 landed in 2.1.0 (2026-08-23): the runtime
272+
imports as `agentflow_runtime`, first-party code is fully cut over, and
273+
wheels ship a one-file deprecated `src` shim
274+
([migration/v2.1.md](migration/v2.1.md)). Remaining Phase 3 (drop the
275+
shim + `src` top-level) is scheduled for the next **major** release:
273276
[plans/p2-6-runtime-namespace-migration.md](plans/p2-6-runtime-namespace-migration.md).
274277
4. **Flink-runtime dependency bump** — the pinned `apache-flink==2.3.0` job
275278
environment holds a `safety` ignore for a non-fixable transitive `pyarrow`

‎docs/migration/v2.1.md‎

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Migrating to 2.1: `src.*` → `agentflow_runtime.*`
2+
3+
Since **agentflow-runtime 2.1.0** the runtime package installs and imports
4+
as **`agentflow_runtime`**. The generic `src` top-level that earlier wheels
5+
shipped is now a one-file deprecated shim, kept for exactly one deprecation
6+
window and **removed in the next major release**.
7+
8+
## What you need to change
9+
10+
| Before (deprecated) | After |
11+
|---|---|
12+
| `from src.serving.api.main import app` | `from agentflow_runtime.serving.api.main import app` |
13+
| `import src.processing.local_pipeline` | `import agentflow_runtime.processing.local_pipeline` |
14+
| `python -m src.serving.provision --schema` | `python -m agentflow_runtime.serving.provision --schema` |
15+
| `uvicorn src.serving.api.main:app` | `uvicorn agentflow_runtime.serving.api.main:app` |
16+
| `python -m src.processing.bridge_consumer` | `python -m agentflow_runtime.processing.bridge_consumer` |
17+
18+
A mechanical rewrite is safe: every dotted `src.<module>` reference becomes
19+
`agentflow_runtime.<module>` for the runtime's top-level modules
20+
(`constants`, `db_concurrency`, `ingestion`, `logger`, `orchestration`,
21+
`processing`, `quality`, `serving`, `tenancy`, `version`).
22+
23+
## Shim semantics during the deprecation window
24+
25+
- `import src.X` keeps working and yields the **same module object** as
26+
`agentflow_runtime.X` — no double import, `isinstance` checks and module
27+
singletons are unaffected.
28+
- The first `import src` emits a `DeprecationWarning`. Set
29+
`AGENTFLOW_SRC_SHIM_SILENT=1` to silence it while you migrate.
30+
- The wheel's `src/` contains only `__init__.py`; the removal lands in the
31+
next major release, after which `import src` fails.
32+
33+
## Repository layout (for contributors)
34+
35+
- The tree moved to the src-layout `src/agentflow_runtime/…`; `src/` itself
36+
is a plain container directory (no `__init__.py`).
37+
- The shim source lives in `packaging/src_shim/src/__init__.py` and reaches
38+
wheels through the hatch `only-include` + `sources` maps in
39+
`pyproject.toml`.
40+
- Guards: `tests/unit/test_namespace_policy.py` (layout + no first-party
41+
`src.*` imports) and `scripts/wheel_smoke.py` (wheel top-level policy +
42+
install smoke outside the checkout, wired into the python-compat CI job).

‎docs/plans/p2-6-runtime-namespace-migration.md‎

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
# P2-6 — Runtime namespace: `src` → `agentflow_runtime`
22

3-
> Plan + **Phase 0 inventory (done 2026-07-17)**. Do **not** start Phase 1
4-
> (tree move / dual import) until a breaking release window is scheduled.
5-
> Source of the finding: `audit_gpt_11_07_26.md` §P2-6.
3+
> **Phases 1-2 executed 2026-08-23** in the dedicated F-09 session
4+
> (audit_sol.md F-09), shipped as **2.1.0**: src-layout
5+
> `src/agentflow_runtime/`, full first-party cutover, one-file deprecated
6+
> `src` shim in the wheel (`packaging/src_shim/`), wheel smoke outside the
7+
> checkout + top-level policy (`scripts/wheel_smoke.py`, python-compat CI
8+
> job), drift guard `tests/unit/test_namespace_policy.py`. See
9+
> `docs/migration/v2.1.md` and the CHANGELOG 2.1.0 entry.
10+
> **Phase 3 (drop the shim) = next MAJOR release** — a deliberate semver
11+
> tightening of the "one minor line" default recorded below: removing a
12+
> public import surface in a minor would break semver honesty.
13+
>
14+
> Plan + **Phase 0 inventory (done 2026-07-17)** below is historical
15+
> context. Source of the finding: `audit_gpt_11_07_26.md` §P2-6.
616
717
## Problem
818

0 commit comments

Comments
 (0)