diff --git a/README.md b/README.md index f988855..b94f452 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ backends and the optional session transports ship as extras: | Extra | Install | Pulls in | Needed for | |-------|---------|----------|------------| | `redis` | `uv add "fastapi-cachex[redis]"` | `redis[hiredis]`, `orjson` | `AsyncRedisCacheBackend` | -| `memcached` | `uv add "fastapi-cachex[memcached]"` | `pymemcache` | `MemcachedBackend` (the older `memcache` name still works until 0.4.0) | +| `memcached` | `uv add "fastapi-cachex[memcached]"` | `pymemcache` | `MemcachedBackend` | | `jwt` | `uv add "fastapi-cachex[jwt]"` | `PyJWT` | `SessionConfig(token_format="jwt")` | Extras combine: `uv add "fastapi-cachex[redis,jwt]"`. diff --git a/changelog.d/202.removed.md b/changelog.d/202.removed.md new file mode 100644 index 0000000..d71dbe6 --- /dev/null +++ b/changelog.d/202.removed.md @@ -0,0 +1,5 @@ +**The deprecated `memcache` extra is removed; install `fastapi-cachex[memcached]`.** +The failure is quiet: pip and uv only warn about an unknown extra, so +`fastapi-cachex[memcache]` still installs, but without `pymemcache`, and +`MemcachedBackend` raises when it is constructed. Replace `[memcache]` with +`[memcached]` in your requirements. diff --git a/docs/BACKENDS.md b/docs/BACKENDS.md index 9248752..f985e76 100644 --- a/docs/BACKENDS.md +++ b/docs/BACKENDS.md @@ -164,9 +164,10 @@ after about 0.25 s. The costs: ## Memcached Install the extra with `uv add "fastapi-cachex[memcached]"`. Before 0.3.8 it was -called `memcache`; that name still works but is deprecated and will be removed in -0.4.0. An unknown extra only produces a warning at install time, so after 0.4.0 -`fastapi-cachex[memcache]` would install without `pymemcache`. +called `memcache`; 0.4.0 removed that name. An unknown extra only produces a +warning at install time, so `fastapi-cachex[memcache]` installs without +`pymemcache` and `MemcachedBackend` raises when it is constructed. See +[Migrating to 0.4.0](MIGRATING_0_4.md#memcache-extra). ```python from fastapi_cachex.backends import MemcachedBackend diff --git a/i18n/zh-TW/docs/BACKENDS.md b/i18n/zh-TW/docs/BACKENDS.md index c5ecc19..3ba0f93 100644 --- a/i18n/zh-TW/docs/BACKENDS.md +++ b/i18n/zh-TW/docs/BACKENDS.md @@ -113,7 +113,7 @@ BackendProxy.set(backend) ## Memcached {#memcached} -以 `uv add "fastapi-cachex[memcached]"` 安裝此 extra。0.3.8 以前這個 extra 名為 `memcache`;舊名稱仍可使用但已棄用,將於 0.4.0 移除。安裝時遇到不存在的 extra 只會顯示警告,因此 0.4.0 之後 `fastapi-cachex[memcache]` 會裝好套件但不含 `pymemcache`。 +以 `uv add "fastapi-cachex[memcached]"` 安裝此 extra。0.3.8 以前這個 extra 名為 `memcache`,0.4.0 已移除這個名稱。安裝時遇到不存在的 extra 只會顯示警告,因此 `fastapi-cachex[memcache]` 會裝好套件但不含 `pymemcache`,建構 `MemcachedBackend` 時才會拋出錯誤。請參閱[遷移至 0.4.0](MIGRATING_0_4.md#memcache-extra)。 ```python from fastapi_cachex.backends import MemcachedBackend diff --git a/i18n/zh-TW/docs/index.md b/i18n/zh-TW/docs/index.md index db9e012..92f8bc2 100644 --- a/i18n/zh-TW/docs/index.md +++ b/i18n/zh-TW/docs/index.md @@ -37,7 +37,7 @@ uv add fastapi-cachex | Extra | 安裝 | 帶入套件 | 用途 | |-------|------|---------|------| | `redis` | `uv add "fastapi-cachex[redis]"` | `redis[hiredis]`、`orjson` | `AsyncRedisCacheBackend` | -| `memcached` | `uv add "fastapi-cachex[memcached]"` | `pymemcache` | `MemcachedBackend`(舊名稱 `memcache` 在 0.4.0 之前仍可使用) | +| `memcached` | `uv add "fastapi-cachex[memcached]"` | `pymemcache` | `MemcachedBackend` | | `jwt` | `uv add "fastapi-cachex[jwt]"` | `PyJWT` | `SessionConfig(token_format="jwt")` | Extra 可以組合:`uv add "fastapi-cachex[redis,jwt]"`。 diff --git a/pyproject.toml b/pyproject.toml index bcbf69b..1e66825 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,8 +70,6 @@ docs = [ [project.optional-dependencies] memcached = ["pymemcache>=4.0.0"] -# Deprecated alias of `memcached`, removed in 0.4.0 (#202). -memcache = ["pymemcache>=4.0.0"] redis = ["redis[hiredis]>=5.3.0", "orjson>=3.4.7"] jwt = ["PyJWT>=2.9.0"] diff --git a/uv.lock b/uv.lock index f4bfce4..9c76989 100644 --- a/uv.lock +++ b/uv.lock @@ -520,9 +520,6 @@ dependencies = [ jwt = [ { name = "pyjwt" }, ] -memcache = [ - { name = "pymemcache" }, -] memcached = [ { name = "pymemcache" }, ] @@ -564,12 +561,11 @@ requires-dist = [ { name = "orjson", marker = "extra == 'redis'", specifier = ">=3.4.7" }, { name = "pydantic", specifier = ">=2.7.0" }, { name = "pyjwt", marker = "extra == 'jwt'", specifier = ">=2.9.0" }, - { name = "pymemcache", marker = "extra == 'memcache'", specifier = ">=4.0.0" }, { name = "pymemcache", marker = "extra == 'memcached'", specifier = ">=4.0.0" }, { name = "redis", extras = ["hiredis"], marker = "extra == 'redis'", specifier = ">=5.3.0" }, { name = "starlette", specifier = ">=1.0.0" }, ] -provides-extras = ["memcached", "memcache", "redis", "jwt"] +provides-extras = ["memcached", "redis", "jwt"] [package.metadata.requires-dev] dev = [