Skip to content

Commit 59ae8e9

Browse files
committed
Run linter
Signed-off-by: Sergio Herrera <627709+seherv@users.noreply.github.com>
1 parent f7725b5 commit 59ae8e9

2 files changed

Lines changed: 22 additions & 8 deletions

File tree

RELEASE.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,25 @@ A single tag (`v*`) triggers the release of the core SDK only:
1010

1111
**The previously-separate distributions**`dapr-ext-fastapi`, `dapr-ext-grpc`,
1212
`dapr-ext-langgraph`, `dapr-ext-strands`, `dapr-ext-workflow`, `flask-dapr`
13-
are **no longer published**. Republishing them as `dapr-ext-name` shims that
14-
depend on `dapr[name]` was considered but rejected: any shim that doesn't carry
15-
the actual extension code creates a `RECORD` ownership conflict with the legacy
16-
versions in existing user environments, and `pip uninstall` of a legacy package would
17-
delete files that core `dapr` now provides.
13+
are **no longer published**.
14+
15+
The design constraint was keeping `from dapr.ext.X import ...` stable across
16+
the upgrade, so the cost lands once in pip during migration rather than
17+
forever in every existing codebase that already imports those paths.
18+
19+
The price: legacy dists on disk now claim the same files core `dapr` ships,
20+
and pip has no cross-dist ownership awareness. `pip uninstall <legacy>` walks
21+
the legacy RECORD and deletes `dapr/ext/<name>/*.py` from disk, leaving a
22+
silently broken install: `pip show dapr` reports 1.19 installed, but
23+
`from dapr.ext.<name> import ...` raises `ModuleNotFoundError`. The recipe
24+
below uses `--force-reinstall --no-deps dapr` to rewrite those files after
25+
the legacy uninstall removes them.
26+
27+
Republishing the legacy distributions as `dapr-ext-name` shims depending on
28+
`dapr[name]` was considered and rejected: any shim that doesn't ship the
29+
actual files leaves the legacy version's RECORD on disk in existing
30+
environments, so the same uninstall failure mode remains. They would also
31+
add a per-extension release artifact to maintain in perpetuity.
1832

1933
Existing installs must migrate explicitly:
2034

dapr/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
# the environment in.
1818
#
1919
# 1. Legacy `dapr-ext-*` or `flask-dapr` dist still installed alongside
20-
# core dapr.
20+
# core dapr.
2121
# Pre-1.19 each extension was its own dist owning files under
22-
# `dapr/ext/<name>/`, the new core wheel ships those same files.
23-
# pip has no cross-dist ownership awareness, so `pip uninstall <legacy>`
22+
# `dapr/ext/<name>/`, the new core wheel ships those same files.
23+
# pip has no cross-dist ownership awareness, so `pip uninstall <legacy>`
2424
# walks the legacy RECORD and deletes `dapr/ext/<name>/*.py` from disk. End
2525
# state: `pip show dapr` reports OK, but `from dapr.ext.<name> import ...`
2626
# raises ModuleNotFoundError.

0 commit comments

Comments
 (0)