From: Tiago Silva
Date: Sat, 6 Sep 2025 10:37:33 +0000 (+0200)
Subject: Update mkdocs information (#2998)
X-Git-Tag: 0.48.0~11
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3676ef85d4cc94f9e84900cc112a2f93423e7a4;p=thirdparty%2Fstarlette.git
Update mkdocs information (#2998)
* Update mkdocs
* Update links to Kludex
---------
Co-authored-by: Tiago Silva
Co-authored-by: Marcelo Trylesinski
---
diff --git a/.github/ISSUE_TEMPLATE/1-issue.md b/.github/ISSUE_TEMPLATE/1-issue.md
index 4c76aeb6..ce7f4f34 100644
--- a/.github/ISSUE_TEMPLATE/1-issue.md
+++ b/.github/ISSUE_TEMPLATE/1-issue.md
@@ -5,7 +5,7 @@ about: Please only raise an issue if you've been advised to do so after discussi
The starting point for issues should usually be a discussion...
-https://github.com/encode/starlette/discussions
+https://github.com/Kludex/starlette/discussions
Possible bugs may be raised as a "Potential Issue" discussion, feature requests may be raised as an "Ideas" discussion. We can then determine if the discussion needs to be escalated into an "Issue" or not.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 76e80635..6294ce85 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,11 +1,11 @@
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false
contact_links:
-- name: Discussions
- url: https://github.com/encode/starlette/discussions
- about: >
- The "Discussions" forum is where you want to start. ð
-- name: Chat
- url: https://discord.gg/SWU73HffbV
- about: >
- Our community chat forum.
+ - name: Discussions
+ url: https://github.com/Kludex/starlette/discussions
+ about: >
+ The "Discussions" forum is where you want to start. ð
+ - name: Chat
+ url: https://discord.gg/SWU73HffbV
+ about: >
+ Our community chat forum.
diff --git a/README.md b/README.md
index 1185cc01..bb769067 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
Starlette is BSD licensed code. Designed & crafted with care.— âï¸ —
+
Starlette is BSD licensed code. Designed & crafted with care.— âï¸ —
[asgi]: https://asgi.readthedocs.io/en/latest/
[httpx]: https://www.python-httpx.org/
diff --git a/docs/contributing.md b/docs/contributing.md
index fcb88e5f..9e928187 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -3,9 +3,9 @@
Thank you for being interested in contributing to Starlette.
There are many ways you can contribute to the project:
-- Try Starlette and [report bugs/issues you find](https://github.com/encode/starlette/issues/new)
-- [Implement new features](https://github.com/encode/starlette/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
-- [Review Pull Requests of others](https://github.com/encode/starlette/pulls)
+- Try Starlette and [report bugs/issues you find](https://github.com/Kludex/starlette/issues/new)
+- [Implement new features](https://github.com/Kludex/starlette/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
+- [Review Pull Requests of others](https://github.com/Kludex/starlette/pulls)
- Write documentation
- Participate in discussions
@@ -14,7 +14,7 @@ There are many ways you can contribute to the project:
Found something that Starlette should support?
Stumbled upon some unexpected behaviour?
-Contributions should generally start out with [a discussion](https://github.com/encode/starlette/discussions).
+Contributions should generally start out with [a discussion](https://github.com/Kludex/starlette/discussions).
Possible bugs may be raised as a "Potential Issue" discussion, feature requests may
be raised as an "Ideas" discussion. We can then determine if the discussion needs
to be escalated into an "Issue" or not, or if we'd consider a pull request.
@@ -34,7 +34,7 @@ that demonstrates the issue.
## Development
To start developing Starlette, create a **fork** of the
-[Starlette repository](https://github.com/encode/starlette) on GitHub.
+[Starlette repository](https://github.com/Kludex/starlette) on GitHub.
Then clone your fork with the following command replacing `YOUR-USERNAME` with
your GitHub username:
@@ -97,7 +97,7 @@ Once you've submitted your pull request, the test suite will automatically run,
If the test suite fails, you'll want to click through to the "Details" link, and try to identify why the test suite failed.
-
+
Here are some common ways the test suite can fail:
@@ -105,7 +105,7 @@ Here are some common ways the test suite can fail:
### Check Job Failed
-
+
This job failing means there is either a code formatting issue or type-annotation issue.
@@ -126,7 +126,7 @@ a variety of reasons like invalid markdown or missing configuration within `mkdo
### Python 3.X Job Failed
-
+
This job failing means the unit tests failed or not all code paths are covered by unit tests.
@@ -148,17 +148,17 @@ Before releasing a new version, create a pull request that includes:
- **An update to the changelog**:
- We follow the format from [keepachangelog](https://keepachangelog.com/en/1.0.0/).
- - [Compare](https://github.com/encode/starlette/compare/) `master` with the tag of the latest release, and list all entries that are of interest to our users:
+ - [Compare](https://github.com/Kludex/starlette/compare/) `master` with the tag of the latest release, and list all entries that are of interest to our users:
- Things that **must** go in the changelog: added, changed, deprecated or removed features, and bug fixes.
- Things that **should not** go in the changelog: changes to documentation, tests or tooling.
- Try sorting entries in descending order of impact / importance.
- Keep it concise and to-the-point. ð¯
- **A version bump**: see `__version__.py`.
-For an example, see [#1600](https://github.com/encode/starlette/pull/1600).
+For an example, see [#1600](https://github.com/Kludex/starlette/pull/1600).
Once the release PR is merged, create a
-[new release](https://github.com/encode/starlette/releases/new) including:
+[new release](https://github.com/Kludex/starlette/releases/new) including:
- Tag version like `0.13.3`.
- Release title `Version 0.13.3`
diff --git a/docs/index.md b/docs/index.md
index b501d6b4..43e50c28 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -6,8 +6,8 @@
⨠The little ASGI framework that shines. â¨
Starlette is BSD licensed code. Designed & crafted with care.— âï¸ —
+
Starlette is BSD licensed code. Designed & crafted with care.— âï¸ —
[asgi]: https://asgi.readthedocs.io/en/latest/
[httpx]: https://www.python-httpx.org/
diff --git a/docs/middleware.md b/docs/middleware.md
index f7cc2393..be9bcfc0 100644
--- a/docs/middleware.md
+++ b/docs/middleware.md
@@ -297,7 +297,7 @@ around explicitly, rather than mutating the middleware instance.
Currently, the `BaseHTTPMiddleware` has some known limitations:
-- Using `BaseHTTPMiddleware` will prevent changes to [`contextvars.ContextVar`](https://docs.python.org/3/library/contextvars.html#contextvars.ContextVar)s from propagating upwards. That is, if you set a value for a `ContextVar` in your endpoint and try to read it from a middleware you will find that the value is not the same value you set in your endpoint (see [this test](https://github.com/encode/starlette/blob/621abc747a6604825190b93467918a0ec6456a24/tests/middleware/test_base.py#L192-L223) for an example of this behavior).
+- Using `BaseHTTPMiddleware` will prevent changes to [`contextvars.ContextVar`](https://docs.python.org/3/library/contextvars.html#contextvars.ContextVar)s from propagating upwards. That is, if you set a value for a `ContextVar` in your endpoint and try to read it from a middleware you will find that the value is not the same value you set in your endpoint (see [this test](https://github.com/Kludex/starlette/blob/621abc747a6604825190b93467918a0ec6456a24/tests/middleware/test_base.py#L192-L223) for an example of this behavior).
To overcome these limitations, use [pure ASGI middleware](#pure-asgi-middleware), as shown below.
@@ -714,7 +714,7 @@ As an example, this would conditionally replace the response body, if an `X-Mock
await self.app(scope, receive, maybe_send_with_mock_content)
```
-See also [`GZipMiddleware`](https://github.com/encode/starlette/blob/9ef1b91c9c043197da6c3f38aa153fd874b95527/starlette/middleware/gzip.py) for a full example implementation that navigates this potential gotcha.
+See also [`GZipMiddleware`](https://github.com/Kludex/starlette/blob/9ef1b91c9c043197da6c3f38aa153fd874b95527/starlette/middleware/gzip.py) for a full example implementation that navigates this potential gotcha.
### Further reading
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 4bbcd9bb..5e5a2b40 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -6,660 +6,660 @@ toc_depth: 2
#### Fixed
-* Use `asyncio.iscoroutinefunction` for Python 3.12 and older [#2984](https://github.com/encode/starlette/pull/2984).
+* Use `asyncio.iscoroutinefunction` for Python 3.12 and older [#2984](https://github.com/Kludex/starlette/pull/2984).
## 0.47.2 (July 20, 2025)
#### Fixed
-* Make `UploadFile` check for future rollover [#2962](https://github.com/encode/starlette/pull/2962).
+* Make `UploadFile` check for future rollover [#2962](https://github.com/Kludex/starlette/pull/2962).
## 0.47.1 (June 21, 2025)
#### Fixed
-* Use `Self` in `TestClient.__enter__` [#2951](https://github.com/encode/starlette/pull/2951).
-* Allow async exception handlers to type-check [#2949](https://github.com/encode/starlette/pull/2949).
+* Use `Self` in `TestClient.__enter__` [#2951](https://github.com/Kludex/starlette/pull/2951).
+* Allow async exception handlers to type-check [#2949](https://github.com/Kludex/starlette/pull/2949).
## 0.47.0 (May 29, 2025)
#### Added
-* Add support for ASGI `pathsend` extension [#2671](https://github.com/encode/starlette/pull/2671).
-* Add `partitioned` attribute to `Response.set_cookie` [#2501](https://github.com/encode/starlette/pull/2501).
+* Add support for ASGI `pathsend` extension [#2671](https://github.com/Kludex/starlette/pull/2671).
+* Add `partitioned` attribute to `Response.set_cookie` [#2501](https://github.com/Kludex/starlette/pull/2501).
#### Changed
* Change `methods` parameter type from `list[str]` to `Collection[str]`
- [#2903](https://github.com/encode/starlette/pull/2903).
+ [#2903](https://github.com/Kludex/starlette/pull/2903).
* Replace `import typing` by `from typing import ...` in the whole codebase
- [#2867](https://github.com/encode/starlette/pull/2867).
+ [#2867](https://github.com/Kludex/starlette/pull/2867).
#### Fixed
* Mark `ExceptionMiddleware.http_exception` as async to prevent thread creation
- [#2922](https://github.com/encode/starlette/pull/2922).
+ [#2922](https://github.com/Kludex/starlette/pull/2922).
## 0.46.2 (April 13, 2025)
#### Fixed
-* Prevents reraising of exception from BaseHttpMiddleware [#2911](https://github.com/encode/starlette/pull/2911).
-* Use correct index on backwards compatible logic in `TemplateResponse` [#2909](https://github.com/encode/starlette/pull/2909).
+* Prevents reraising of exception from BaseHttpMiddleware [#2911](https://github.com/Kludex/starlette/pull/2911).
+* Use correct index on backwards compatible logic in `TemplateResponse` [#2909](https://github.com/Kludex/starlette/pull/2909).
## 0.46.1 (March 8, 2025)
#### Fixed
-* Allow relative directory path when `follow_symlinks=True` [#2896](https://github.com/encode/starlette/pull/2896).
+* Allow relative directory path when `follow_symlinks=True` [#2896](https://github.com/Kludex/starlette/pull/2896).
## 0.46.0 (February 22, 2025)
#### Added
-* `GZipMiddleware`: Make sure `Vary` header is always added if a response can be compressed [#2865](https://github.com/encode/starlette/pull/2865).
+* `GZipMiddleware`: Make sure `Vary` header is always added if a response can be compressed [#2865](https://github.com/Kludex/starlette/pull/2865).
#### Fixed
-* Raise exception from background task on BaseHTTPMiddleware [#2812](https://github.com/encode/starlette/pull/2812).
-* `GZipMiddleware`: Don't compress on server sent events [#2871](https://github.com/encode/starlette/pull/2871).
+* Raise exception from background task on BaseHTTPMiddleware [#2812](https://github.com/Kludex/starlette/pull/2812).
+* `GZipMiddleware`: Don't compress on server sent events [#2871](https://github.com/Kludex/starlette/pull/2871).
#### Changed
-* `MultiPartParser`: Rename `max_file_size` to `spool_max_size` [#2780](https://github.com/encode/starlette/pull/2780).
+* `MultiPartParser`: Rename `max_file_size` to `spool_max_size` [#2780](https://github.com/Kludex/starlette/pull/2780).
#### Deprecated
-* Add deprecated warning to `TestClient(timeout=...)` [#2840](https://github.com/encode/starlette/pull/2840).
+* Add deprecated warning to `TestClient(timeout=...)` [#2840](https://github.com/Kludex/starlette/pull/2840).
## 0.45.3 (January 24, 2025)
#### Fixed
-* Turn directory into string on `lookup_path` on commonpath comparison [#2851](https://github.com/encode/starlette/pull/2851).
+* Turn directory into string on `lookup_path` on commonpath comparison [#2851](https://github.com/Kludex/starlette/pull/2851).
## 0.45.2 (January 4, 2025)
#### Fixed
-* Make `create_memory_object_stream` compatible with old anyio versions once again, and bump anyio minimum version to 3.6.2 [#2833](https://github.com/encode/starlette/pull/2833).
+* Make `create_memory_object_stream` compatible with old anyio versions once again, and bump anyio minimum version to 3.6.2 [#2833](https://github.com/Kludex/starlette/pull/2833).
## 0.45.1 (December 30, 2024)
#### Fixed
-* Close `MemoryObjectReceiveStream` left unclosed upon exception in `BaseHTTPMiddleware` children [#2813](https://github.com/encode/starlette/pull/2813).
-* Collect errors more reliably from the WebSocket logic on the `TestClient` [#2814](https://github.com/encode/starlette/pull/2814).
+* Close `MemoryObjectReceiveStream` left unclosed upon exception in `BaseHTTPMiddleware` children [#2813](https://github.com/Kludex/starlette/pull/2813).
+* Collect errors more reliably from the WebSocket logic on the `TestClient` [#2814](https://github.com/Kludex/starlette/pull/2814).
#### Refactor
-* Use a pair of memory object streams instead of two queues on the `TestClient` [#2829](https://github.com/encode/starlette/pull/2829).
+* Use a pair of memory object streams instead of two queues on the `TestClient` [#2829](https://github.com/Kludex/starlette/pull/2829).
## 0.45.0 (December 29, 2024)
#### Removed
-* Drop Python 3.8 support [#2823](https://github.com/encode/starlette/pull/2823).
-* Remove `ExceptionMiddleware` import proxy from `starlette.exceptions` module [#2826](https://github.com/encode/starlette/pull/2826).
-* Remove deprecated `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` [#2827](https://github.com/encode/starlette/pull/2827).
+* Drop Python 3.8 support [#2823](https://github.com/Kludex/starlette/pull/2823).
+* Remove `ExceptionMiddleware` import proxy from `starlette.exceptions` module [#2826](https://github.com/Kludex/starlette/pull/2826).
+* Remove deprecated `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` [#2827](https://github.com/Kludex/starlette/pull/2827).
## 0.44.0 (December 28, 2024)
#### Added
-* Add `client` parameter to `TestClient` [#2810](https://github.com/encode/starlette/pull/2810).
-* Add `max_part_size` parameter to `Request.form()` [#2815](https://github.com/encode/starlette/pull/2815).
+* Add `client` parameter to `TestClient` [#2810](https://github.com/Kludex/starlette/pull/2810).
+* Add `max_part_size` parameter to `Request.form()` [#2815](https://github.com/Kludex/starlette/pull/2815).
## 0.43.0 (December 25, 2024)
#### Removed
-* Remove deprecated `allow_redirects` argument from `TestClient` [#2808](https://github.com/encode/starlette/pull/2808).
+* Remove deprecated `allow_redirects` argument from `TestClient` [#2808](https://github.com/Kludex/starlette/pull/2808).
#### Added
-* Make UUID path parameter conversion more flexible [#2806](https://github.com/encode/starlette/pull/2806).
+* Make UUID path parameter conversion more flexible [#2806](https://github.com/Kludex/starlette/pull/2806).
## 0.42.0 (December 14, 2024)
#### Added
-* Raise `ClientDisconnect` on `StreamingResponse` [#2732](https://github.com/encode/starlette/pull/2732).
+* Raise `ClientDisconnect` on `StreamingResponse` [#2732](https://github.com/Kludex/starlette/pull/2732).
#### Fixed
-* Use ETag from headers when parsing If-Range in FileResponse [#2761](https://github.com/encode/starlette/pull/2761).
-* Follow directory symlinks in `StaticFiles` when `follow_symlinks=True` [#2711](https://github.com/encode/starlette/pull/2711).
-* Bump minimum `python-multipart` version to `0.0.18` [0ba8395](https://github.com/encode/starlette/commit/0ba83959e609bbd460966f092287df1bbd564cc6).
-* Bump minimum `httpx` version to `0.27.0` [#2773](https://github.com/encode/starlette/pull/2773).
+* Use ETag from headers when parsing If-Range in FileResponse [#2761](https://github.com/Kludex/starlette/pull/2761).
+* Follow directory symlinks in `StaticFiles` when `follow_symlinks=True` [#2711](https://github.com/Kludex/starlette/pull/2711).
+* Bump minimum `python-multipart` version to `0.0.18` [0ba8395](https://github.com/Kludex/starlette/commit/0ba83959e609bbd460966f092287df1bbd564cc6).
+* Bump minimum `httpx` version to `0.27.0` [#2773](https://github.com/Kludex/starlette/pull/2773).
## 0.41.3 (November 18, 2024)
#### Fixed
-* Exclude the query parameters from the `scope[raw_path]` on the `TestClient` [#2716](https://github.com/encode/starlette/pull/2716).
-* Replace `dict` by `Mapping` on `HTTPException.headers` [#2749](https://github.com/encode/starlette/pull/2749).
-* Correct middleware argument passing and improve factory pattern [#2752](https://github.com/encode/starlette/pull/2752).
+* Exclude the query parameters from the `scope[raw_path]` on the `TestClient` [#2716](https://github.com/Kludex/starlette/pull/2716).
+* Replace `dict` by `Mapping` on `HTTPException.headers` [#2749](https://github.com/Kludex/starlette/pull/2749).
+* Correct middleware argument passing and improve factory pattern [#2752](https://github.com/Kludex/starlette/pull/2752).
## 0.41.2 (October 27, 2024)
#### Fixed
-* Revert bump on `python-multipart` on `starlette[full]` extras [#2737](https://github.com/encode/starlette/pull/2737).
+* Revert bump on `python-multipart` on `starlette[full]` extras [#2737](https://github.com/Kludex/starlette/pull/2737).
## 0.41.1 (October 24, 2024)
#### Fixed
-* Bump minimum `python-multipart` version to `0.0.13` [#2734](https://github.com/encode/starlette/pull/2734).
-* Change `python-multipart` import to `python_multipart` [#2733](https://github.com/encode/starlette/pull/2733).
+* Bump minimum `python-multipart` version to `0.0.13` [#2734](https://github.com/Kludex/starlette/pull/2734).
+* Change `python-multipart` import to `python_multipart` [#2733](https://github.com/Kludex/starlette/pull/2733).
## 0.41.0 (October 15, 2024)
#### Added
-- Allow to raise `HTTPException` before `websocket.accept()` [#2725](https://github.com/encode/starlette/pull/2725).
+- Allow to raise `HTTPException` before `websocket.accept()` [#2725](https://github.com/Kludex/starlette/pull/2725).
## 0.40.0 (October 15, 2024)
This release fixes a Denial of service (DoS) via `multipart/form-data` requests.
You can view the full security advisory:
-[GHSA-f96h-pmfr-66vw](https://github.com/encode/starlette/security/advisories/GHSA-f96h-pmfr-66vw)
+[GHSA-f96h-pmfr-66vw](https://github.com/Kludex/starlette/security/advisories/GHSA-f96h-pmfr-66vw)
#### Fixed
- Add `max_part_size` to `MultiPartParser` to limit the size of parts in `multipart/form-data`
- requests [fd038f3](https://github.com/encode/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733).
+ requests [fd038f3](https://github.com/Kludex/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733).
## 0.39.2 (September 29, 2024)
#### Fixed
-- Allow use of `request.url_for` when only "app" scope is available [#2672](https://github.com/encode/starlette/pull/2672).
-- Fix internal type hints to support `python-multipart==0.0.12` [#2708](https://github.com/encode/starlette/pull/2708).
+- Allow use of `request.url_for` when only "app" scope is available [#2672](https://github.com/Kludex/starlette/pull/2672).
+- Fix internal type hints to support `python-multipart==0.0.12` [#2708](https://github.com/Kludex/starlette/pull/2708).
## 0.39.1 (September 25, 2024)
#### Fixed
-- Avoid regex re-compilation in `responses.py` and `schemas.py` [#2700](https://github.com/encode/starlette/pull/2700).
+- Avoid regex re-compilation in `responses.py` and `schemas.py` [#2700](https://github.com/Kludex/starlette/pull/2700).
- Improve performance of `get_route_path` by removing regular expression usage
- [#2701](https://github.com/encode/starlette/pull/2701).
-- Consider `FileResponse.chunk_size` when handling multiple ranges [#2703](https://github.com/encode/starlette/pull/2703).
-- Use `token_hex` for generating multipart boundary strings [#2702](https://github.com/encode/starlette/pull/2702).
+ [#2701](https://github.com/Kludex/starlette/pull/2701).
+- Consider `FileResponse.chunk_size` when handling multiple ranges [#2703](https://github.com/Kludex/starlette/pull/2703).
+- Use `token_hex` for generating multipart boundary strings [#2702](https://github.com/Kludex/starlette/pull/2702).
## 0.39.0 (September 23, 2024)
#### Added
* Add support for [HTTP Range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests) to
- `FileResponse` [#2697](https://github.com/encode/starlette/pull/2697).
+ `FileResponse` [#2697](https://github.com/Kludex/starlette/pull/2697).
## 0.38.6 (September 22, 2024)
#### Fixed
-* Close unclosed `MemoryObjectReceiveStream` in `TestClient` [#2693](https://github.com/encode/starlette/pull/2693).
+* Close unclosed `MemoryObjectReceiveStream` in `TestClient` [#2693](https://github.com/Kludex/starlette/pull/2693).
## 0.38.5 (September 7, 2024)
#### Fixed
-* Schedule `BackgroundTasks` from within `BaseHTTPMiddleware` [#2688](https://github.com/encode/starlette/pull/2688).
+* Schedule `BackgroundTasks` from within `BaseHTTPMiddleware` [#2688](https://github.com/Kludex/starlette/pull/2688).
This behavior was removed in 0.38.3, and is now restored.
## 0.38.4 (September 1, 2024)
#### Fixed
-* Ensure accurate `root_path` removal in `get_route_path` function [#2600](https://github.com/encode/starlette/pull/2600).
+* Ensure accurate `root_path` removal in `get_route_path` function [#2600](https://github.com/Kludex/starlette/pull/2600).
## 0.38.3 (September 1, 2024)
#### Added
-* Support for Python 3.13 [#2662](https://github.com/encode/starlette/pull/2662).
+* Support for Python 3.13 [#2662](https://github.com/Kludex/starlette/pull/2662).
#### Fixed
-* Don't poll for disconnects in `BaseHTTPMiddleware` via `StreamingResponse` [#2620](https://github.com/encode/starlette/pull/2620).
+* Don't poll for disconnects in `BaseHTTPMiddleware` via `StreamingResponse` [#2620](https://github.com/Kludex/starlette/pull/2620).
## 0.38.2 (July 27, 2024)
#### Fixed
-* Not assume all routines have `__name__` on `routing.get_name()` [#2648](https://github.com/encode/starlette/pull/2648).
+* Not assume all routines have `__name__` on `routing.get_name()` [#2648](https://github.com/Kludex/starlette/pull/2648).
## 0.38.1 (July 23, 2024)
#### Removed
-* Revert "Add support for ASGI pathsend extension" [#2649](https://github.com/encode/starlette/pull/2649).
+* Revert "Add support for ASGI pathsend extension" [#2649](https://github.com/Kludex/starlette/pull/2649).
## 0.38.0 (July 20, 2024)
#### Added
-* Allow use of `memoryview` in `StreamingResponse` and `Response` [#2576](https://github.com/encode/starlette/pull/2576)
- and [#2577](https://github.com/encode/starlette/pull/2577).
-* Send 404 instead of 500 when filename requested is too long on `StaticFiles` [#2583](https://github.com/encode/starlette/pull/2583).
+* Allow use of `memoryview` in `StreamingResponse` and `Response` [#2576](https://github.com/Kludex/starlette/pull/2576)
+ and [#2577](https://github.com/Kludex/starlette/pull/2577).
+* Send 404 instead of 500 when filename requested is too long on `StaticFiles` [#2583](https://github.com/Kludex/starlette/pull/2583).
#### Changed
-* Fail fast on invalid `Jinja2Template` instantiation parameters [#2568](https://github.com/encode/starlette/pull/2568).
-* Check endpoint handler is async only once [#2536](https://github.com/encode/starlette/pull/2536).
+* Fail fast on invalid `Jinja2Template` instantiation parameters [#2568](https://github.com/Kludex/starlette/pull/2568).
+* Check endpoint handler is async only once [#2536](https://github.com/Kludex/starlette/pull/2536).
#### Fixed
-* Add proper synchronization to `WebSocketTestSession` [#2597](https://github.com/encode/starlette/pull/2597).
+* Add proper synchronization to `WebSocketTestSession` [#2597](https://github.com/Kludex/starlette/pull/2597).
## 0.37.2 (March 5, 2024)
#### Added
-* Add `bytes` to `_RequestData` type [#2510](https://github.com/encode/starlette/pull/2510).
+* Add `bytes` to `_RequestData` type [#2510](https://github.com/Kludex/starlette/pull/2510).
#### Fixed
-* Revert "Turn `scope["client"]` to `None` on `TestClient` (#2377)" [#2525](https://github.com/encode/starlette/pull/2525).
-* Remove deprecated `app` argument passed to `httpx.Client` on the `TestClient` [#2526](https://github.com/encode/starlette/pull/2526).
+* Revert "Turn `scope["client"]` to `None` on `TestClient` (#2377)" [#2525](https://github.com/Kludex/starlette/pull/2525).
+* Remove deprecated `app` argument passed to `httpx.Client` on the `TestClient` [#2526](https://github.com/Kludex/starlette/pull/2526).
## 0.37.1 (February 9, 2024)
#### Fixed
-* Warn instead of raise for missing env file on `Config` [#2485](https://github.com/encode/starlette/pull/2485).
+* Warn instead of raise for missing env file on `Config` [#2485](https://github.com/Kludex/starlette/pull/2485).
## 0.37.0 (February 5, 2024)
#### Added
-* Support the WebSocket Denial Response ASGI extension [#2041](https://github.com/encode/starlette/pull/2041).
+* Support the WebSocket Denial Response ASGI extension [#2041](https://github.com/Kludex/starlette/pull/2041).
## 0.36.3 (February 4, 2024)
#### Fixed
-* Create `anyio.Event` on async context [#2459](https://github.com/encode/starlette/pull/2459).
+* Create `anyio.Event` on async context [#2459](https://github.com/Kludex/starlette/pull/2459).
## 0.36.2 (February 3, 2024)
#### Fixed
-* Upgrade `python-multipart` to `0.0.7` [13e5c26](http://github.com/encode/starlette/commit/13e5c26a27f4903924624736abd6131b2da80cc5).
-* Avoid duplicate charset on `Content-Type` [#2443](https://github.com/encode/starlette/2443).
+* Upgrade `python-multipart` to `0.0.7` [13e5c26](http://github.com/Kludex/starlette/commit/13e5c26a27f4903924624736abd6131b2da80cc5).
+* Avoid duplicate charset on `Content-Type` [#2443](https://github.com/Kludex/starlette/2443).
## 0.36.1 (January 23, 2024)
#### Fixed
-* Check if "extensions" in scope before checking the extension [#2438](http://github.com/encode/starlette/pull/2438).
+* Check if "extensions" in scope before checking the extension [#2438](http://github.com/Kludex/starlette/pull/2438).
## 0.36.0 (January 22, 2024)
#### Added
-* Add support for ASGI `pathsend` extension [#2435](http://github.com/encode/starlette/pull/2435).
-* Cancel `WebSocketTestSession` on close [#2427](http://github.com/encode/starlette/pull/2427).
-* Raise `WebSocketDisconnect` when `WebSocket.send()` excepts `IOError` [#2425](http://github.com/encode/starlette/pull/2425).
-* Raise `FileNotFoundError` when the `env_file` parameter on `Config` is not valid [#2422](http://github.com/encode/starlette/pull/2422).
+* Add support for ASGI `pathsend` extension [#2435](http://github.com/Kludex/starlette/pull/2435).
+* Cancel `WebSocketTestSession` on close [#2427](http://github.com/Kludex/starlette/pull/2427).
+* Raise `WebSocketDisconnect` when `WebSocket.send()` excepts `IOError` [#2425](http://github.com/Kludex/starlette/pull/2425).
+* Raise `FileNotFoundError` when the `env_file` parameter on `Config` is not valid [#2422](http://github.com/Kludex/starlette/pull/2422).
## 0.35.1 (January 11, 2024)
#### Fixed
-* Stop using the deprecated "method" parameter in `FileResponse` inside of `StaticFiles` [#2406](https://github.com/encode/starlette/pull/2406).
-* Make `typing-extensions` optional again [#2409](https://github.com/encode/starlette/pull/2409).
+* Stop using the deprecated "method" parameter in `FileResponse` inside of `StaticFiles` [#2406](https://github.com/Kludex/starlette/pull/2406).
+* Make `typing-extensions` optional again [#2409](https://github.com/Kludex/starlette/pull/2409).
## 0.35.0 (January 11, 2024)
#### Added
-* Add `*args` to `Middleware` and improve its type hints [#2381](https://github.com/encode/starlette/pull/2381).
+* Add `*args` to `Middleware` and improve its type hints [#2381](https://github.com/Kludex/starlette/pull/2381).
#### Fixed
-* Use `Iterable` instead `Iterator` on `iterate_in_threadpool` [#2362](https://github.com/encode/starlette/pull/2362).
+* Use `Iterable` instead `Iterator` on `iterate_in_threadpool` [#2362](https://github.com/Kludex/starlette/pull/2362).
#### Changes
-* Handle `root_path` to keep compatibility with mounted ASGI applications and WSGI [#2400](https://github.com/encode/starlette/pull/2400).
-* Turn `scope["client"]` to `None` on `TestClient` [#2377](https://github.com/encode/starlette/pull/2377).
+* Handle `root_path` to keep compatibility with mounted ASGI applications and WSGI [#2400](https://github.com/Kludex/starlette/pull/2400).
+* Turn `scope["client"]` to `None` on `TestClient` [#2377](https://github.com/Kludex/starlette/pull/2377).
## 0.34.0 (December 16, 2023)
### Added
-* Use `ParamSpec` for `run_in_threadpool` [#2375](https://github.com/encode/starlette/pull/2375).
-* Add `UploadFile.__repr__` [#2360](https://github.com/encode/starlette/pull/2360).
+* Use `ParamSpec` for `run_in_threadpool` [#2375](https://github.com/Kludex/starlette/pull/2375).
+* Add `UploadFile.__repr__` [#2360](https://github.com/Kludex/starlette/pull/2360).
### Fixed
-* Merge URLs properly on `TestClient` [#2376](https://github.com/encode/starlette/pull/2376).
-* Take weak ETags in consideration on `StaticFiles` [#2334](https://github.com/encode/starlette/pull/2334).
+* Merge URLs properly on `TestClient` [#2376](https://github.com/Kludex/starlette/pull/2376).
+* Take weak ETags in consideration on `StaticFiles` [#2334](https://github.com/Kludex/starlette/pull/2334).
### Deprecated
-* Deprecate `FileResponse(method=...)` parameter [#2366](https://github.com/encode/starlette/pull/2366).
+* Deprecate `FileResponse(method=...)` parameter [#2366](https://github.com/Kludex/starlette/pull/2366).
## 0.33.0 (December 1, 2023)
### Added
-* Add `middleware` per `Route`/`WebSocketRoute` [#2349](https://github.com/encode/starlette/pull/2349).
-* Add `middleware` per `Router` [#2351](https://github.com/encode/starlette/pull/2351).
+* Add `middleware` per `Route`/`WebSocketRoute` [#2349](https://github.com/Kludex/starlette/pull/2349).
+* Add `middleware` per `Router` [#2351](https://github.com/Kludex/starlette/pull/2351).
### Fixed
-* Do not overwrite `"path"` and `"root_path"` scope keys [#2352](https://github.com/encode/starlette/pull/2352).
-* Set `ensure_ascii=False` on `json.dumps()` for `WebSocket.send_json()` [#2341](https://github.com/encode/starlette/pull/2341).
+* Do not overwrite `"path"` and `"root_path"` scope keys [#2352](https://github.com/Kludex/starlette/pull/2352).
+* Set `ensure_ascii=False` on `json.dumps()` for `WebSocket.send_json()` [#2341](https://github.com/Kludex/starlette/pull/2341).
## 0.32.0.post1 (November 5, 2023)
### Fixed
-* Revert mkdocs-material from 9.1.17 to 9.4.7 [#2326](https://github.com/encode/starlette/pull/2326).
+* Revert mkdocs-material from 9.1.17 to 9.4.7 [#2326](https://github.com/Kludex/starlette/pull/2326).
## 0.32.0 (November 4, 2023)
### Added
-* Send `reason` on `WebSocketDisconnect` [#2309](https://github.com/encode/starlette/pull/2309).
-* Add `domain` parameter to `SessionMiddleware` [#2280](https://github.com/encode/starlette/pull/2280).
+* Send `reason` on `WebSocketDisconnect` [#2309](https://github.com/Kludex/starlette/pull/2309).
+* Add `domain` parameter to `SessionMiddleware` [#2280](https://github.com/Kludex/starlette/pull/2280).
### Changed
-* Inherit from `HTMLResponse` instead of `Response` on `_TemplateResponse` [#2274](https://github.com/encode/starlette/pull/2274).
-* Restore the `Response.render` type annotation to its pre-0.31.0 state [#2264](https://github.com/encode/starlette/pull/2264).
+* Inherit from `HTMLResponse` instead of `Response` on `_TemplateResponse` [#2274](https://github.com/Kludex/starlette/pull/2274).
+* Restore the `Response.render` type annotation to its pre-0.31.0 state [#2264](https://github.com/Kludex/starlette/pull/2264).
## 0.31.1 (August 26, 2023)
### Fixed
-* Fix import error when `exceptiongroup` isn't available [#2231](https://github.com/encode/starlette/pull/2231).
-* Set `url_for` global for custom Jinja environments [#2230](https://github.com/encode/starlette/pull/2230).
+* Fix import error when `exceptiongroup` isn't available [#2231](https://github.com/Kludex/starlette/pull/2231).
+* Set `url_for` global for custom Jinja environments [#2230](https://github.com/Kludex/starlette/pull/2230).
## 0.31.0 (July 24, 2023)
### Added
-* Officially support Python 3.12 [#2214](https://github.com/encode/starlette/pull/2214).
-* Support AnyIO 4.0 [#2211](https://github.com/encode/starlette/pull/2211).
-* Strictly type annotate Starlette (strict mode on mypy) [#2180](https://github.com/encode/starlette/pull/2180).
+* Officially support Python 3.12 [#2214](https://github.com/Kludex/starlette/pull/2214).
+* Support AnyIO 4.0 [#2211](https://github.com/Kludex/starlette/pull/2211).
+* Strictly type annotate Starlette (strict mode on mypy) [#2180](https://github.com/Kludex/starlette/pull/2180).
### Fixed
-* Don't group duplicated headers on a single string when using the `TestClient` [#2219](https://github.com/encode/starlette/pull/2219).
+* Don't group duplicated headers on a single string when using the `TestClient` [#2219](https://github.com/Kludex/starlette/pull/2219).
## 0.30.0 (July 13, 2023)
### Removed
-* Drop Python 3.7 support [#2178](https://github.com/encode/starlette/pull/2178).
+* Drop Python 3.7 support [#2178](https://github.com/Kludex/starlette/pull/2178).
## 0.29.0 (July 13, 2023)
### Added
-* Add `follow_redirects` parameter to `TestClient` [#2207](https://github.com/encode/starlette/pull/2207).
-* Add `__str__` to `HTTPException` and `WebSocketException` [#2181](https://github.com/encode/starlette/pull/2181).
-* Warn users when using `lifespan` together with `on_startup`/`on_shutdown` [#2193](https://github.com/encode/starlette/pull/2193).
-* Collect routes from `Host` to generate the OpenAPI schema [#2183](https://github.com/encode/starlette/pull/2183).
-* Add `request` argument to `TemplateResponse` [#2191](https://github.com/encode/starlette/pull/2191).
+* Add `follow_redirects` parameter to `TestClient` [#2207](https://github.com/Kludex/starlette/pull/2207).
+* Add `__str__` to `HTTPException` and `WebSocketException` [#2181](https://github.com/Kludex/starlette/pull/2181).
+* Warn users when using `lifespan` together with `on_startup`/`on_shutdown` [#2193](https://github.com/Kludex/starlette/pull/2193).
+* Collect routes from `Host` to generate the OpenAPI schema [#2183](https://github.com/Kludex/starlette/pull/2183).
+* Add `request` argument to `TemplateResponse` [#2191](https://github.com/Kludex/starlette/pull/2191).
### Fixed
-* Stop `body_stream` in case `more_body=False` on `BaseHTTPMiddleware` [#2194](https://github.com/encode/starlette/pull/2194).
+* Stop `body_stream` in case `more_body=False` on `BaseHTTPMiddleware` [#2194](https://github.com/Kludex/starlette/pull/2194).
## 0.28.0 (June 7, 2023)
### Changed
-* Reuse `Request`'s body buffer for call_next in `BaseHTTPMiddleware` [#1692](https://github.com/encode/starlette/pull/1692).
-* Move exception handling logic to `Route` [#2026](https://github.com/encode/starlette/pull/2026).
+* Reuse `Request`'s body buffer for call_next in `BaseHTTPMiddleware` [#1692](https://github.com/Kludex/starlette/pull/1692).
+* Move exception handling logic to `Route` [#2026](https://github.com/Kludex/starlette/pull/2026).
### Added
-* Add `env` parameter to `Jinja2Templates`, and deprecate `**env_options` [#2159](https://github.com/encode/starlette/pull/2159).
-* Add clear error message when `httpx` is not installed [#2177](https://github.com/encode/starlette/pull/2177).
+* Add `env` parameter to `Jinja2Templates`, and deprecate `**env_options` [#2159](https://github.com/Kludex/starlette/pull/2159).
+* Add clear error message when `httpx` is not installed [#2177](https://github.com/Kludex/starlette/pull/2177).
### Fixed
-* Allow "name" argument on `templates url_for()` [#2127](https://github.com/encode/starlette/pull/2127).
+* Allow "name" argument on `templates url_for()` [#2127](https://github.com/Kludex/starlette/pull/2127).
## 0.27.0 (May 16, 2023)
This release fixes a path traversal vulnerability in `StaticFiles`. You can view the full security advisory:
-https://github.com/encode/starlette/security/advisories/GHSA-v5gw-mw7f-84px
+https://github.com/Kludex/starlette/security/advisories/GHSA-v5gw-mw7f-84px
### Added
-* Minify JSON websocket data via `send_json` https://github.com/encode/starlette/pull/2128
+* Minify JSON websocket data via `send_json` https://github.com/Kludex/starlette/pull/2128
### Fixed
-* Replace `commonprefix` by `commonpath` on `StaticFiles` [1797de4](https://github.com/encode/starlette/commit/1797de464124b090f10cf570441e8292936d63e3).
-* Convert ImportErrors into ModuleNotFoundError [#2135](https://github.com/encode/starlette/pull/2135).
-* Correct the RuntimeError message content in websockets [#2141](https://github.com/encode/starlette/pull/2141).
+* Replace `commonprefix` by `commonpath` on `StaticFiles` [1797de4](https://github.com/Kludex/starlette/commit/1797de464124b090f10cf570441e8292936d63e3).
+* Convert ImportErrors into ModuleNotFoundError [#2135](https://github.com/Kludex/starlette/pull/2135).
+* Correct the RuntimeError message content in websockets [#2141](https://github.com/Kludex/starlette/pull/2141).
## 0.26.1 (March 13, 2023)
### Fixed
-* Fix typing of Lifespan to allow subclasses of Starlette [#2077](https://github.com/encode/starlette/pull/2077).
+* Fix typing of Lifespan to allow subclasses of Starlette [#2077](https://github.com/Kludex/starlette/pull/2077).
## 0.26.0.post1 (March 9, 2023)
### Fixed
-* Replace reference from Events to Lifespan on the mkdocs.yml [#2072](https://github.com/encode/starlette/pull/2072).
+* Replace reference from Events to Lifespan on the mkdocs.yml [#2072](https://github.com/Kludex/starlette/pull/2072).
## 0.26.0 (March 9, 2023)
### Added
-* Support [lifespan state](lifespan.md) [#2060](https://github.com/encode/starlette/pull/2060),
- [#2065](https://github.com/encode/starlette/pull/2065) and [#2064](https://github.com/encode/starlette/pull/2064).
+* Support [lifespan state](lifespan.md) [#2060](https://github.com/Kludex/starlette/pull/2060),
+ [#2065](https://github.com/Kludex/starlette/pull/2065) and [#2064](https://github.com/Kludex/starlette/pull/2064).
### Changed
-* Change `url_for` signature to return a `URL` instance [#1385](https://github.com/encode/starlette/pull/1385).
+* Change `url_for` signature to return a `URL` instance [#1385](https://github.com/Kludex/starlette/pull/1385).
### Fixed
-* Allow "name" argument on `url_for()` and `url_path_for()` [#2050](https://github.com/encode/starlette/pull/2050).
+* Allow "name" argument on `url_for()` and `url_path_for()` [#2050](https://github.com/Kludex/starlette/pull/2050).
### Deprecated
-* Deprecate `on_startup` and `on_shutdown` events [#2070](https://github.com/encode/starlette/pull/2070).
+* Deprecate `on_startup` and `on_shutdown` events [#2070](https://github.com/Kludex/starlette/pull/2070).
## 0.25.0 (February 14, 2023)
### Fix
-* Limit the number of fields and files when parsing `multipart/form-data` on the `MultipartParser` [8c74c2c](https://github.com/encode/starlette/commit/8c74c2c8dba7030154f8af18e016136bea1938fa) and [#2036](https://github.com/encode/starlette/pull/2036).
+* Limit the number of fields and files when parsing `multipart/form-data` on the `MultipartParser` [8c74c2c](https://github.com/Kludex/starlette/commit/8c74c2c8dba7030154f8af18e016136bea1938fa) and [#2036](https://github.com/Kludex/starlette/pull/2036).
## 0.24.0 (February 6, 2023)
### Added
-* Allow `StaticFiles` to follow symlinks [#1683](https://github.com/encode/starlette/pull/1683).
-* Allow `Request.form()` as a context manager [#1903](https://github.com/encode/starlette/pull/1903).
-* Add `size` attribute to `UploadFile` [#1405](https://github.com/encode/starlette/pull/1405).
-* Add `env_prefix` argument to `Config` [#1990](https://github.com/encode/starlette/pull/1990).
-* Add template context processors [#1904](https://github.com/encode/starlette/pull/1904).
-* Support `str` and `datetime` on `expires` parameter on the `Response.set_cookie` method [#1908](https://github.com/encode/starlette/pull/1908).
+* Allow `StaticFiles` to follow symlinks [#1683](https://github.com/Kludex/starlette/pull/1683).
+* Allow `Request.form()` as a context manager [#1903](https://github.com/Kludex/starlette/pull/1903).
+* Add `size` attribute to `UploadFile` [#1405](https://github.com/Kludex/starlette/pull/1405).
+* Add `env_prefix` argument to `Config` [#1990](https://github.com/Kludex/starlette/pull/1990).
+* Add template context processors [#1904](https://github.com/Kludex/starlette/pull/1904).
+* Support `str` and `datetime` on `expires` parameter on the `Response.set_cookie` method [#1908](https://github.com/Kludex/starlette/pull/1908).
### Changed
-* Lazily build the middleware stack [#2017](https://github.com/encode/starlette/pull/2017).
-* Make the `file` argument required on `UploadFile` [#1413](https://github.com/encode/starlette/pull/1413).
-* Use debug extension instead of custom response template extension [#1991](https://github.com/encode/starlette/pull/1991).
+* Lazily build the middleware stack [#2017](https://github.com/Kludex/starlette/pull/2017).
+* Make the `file` argument required on `UploadFile` [#1413](https://github.com/Kludex/starlette/pull/1413).
+* Use debug extension instead of custom response template extension [#1991](https://github.com/Kludex/starlette/pull/1991).
### Fixed
-* Fix url parsing of ipv6 urls on `URL.replace` [#1965](https://github.com/encode/starlette/pull/1965).
+* Fix url parsing of ipv6 urls on `URL.replace` [#1965](https://github.com/Kludex/starlette/pull/1965).
## 0.23.1 (December 9, 2022)
### Fixed
-* Only stop receiving stream on `body_stream` if body is empty on the `BaseHTTPMiddleware` [#1940](https://github.com/encode/starlette/pull/1940).
+* Only stop receiving stream on `body_stream` if body is empty on the `BaseHTTPMiddleware` [#1940](https://github.com/Kludex/starlette/pull/1940).
## 0.23.0 (December 5, 2022)
### Added
-* Add `headers` parameter to the `TestClient` [#1966](https://github.com/encode/starlette/pull/1966).
+* Add `headers` parameter to the `TestClient` [#1966](https://github.com/Kludex/starlette/pull/1966).
### Deprecated
-* Deprecate `Starlette` and `Router` decorators [#1897](https://github.com/encode/starlette/pull/1897).
+* Deprecate `Starlette` and `Router` decorators [#1897](https://github.com/Kludex/starlette/pull/1897).
### Fixed
-* Fix bug on `FloatConvertor` regex [#1973](https://github.com/encode/starlette/pull/1973).
+* Fix bug on `FloatConvertor` regex [#1973](https://github.com/Kludex/starlette/pull/1973).
## 0.22.0 (November 17, 2022)
### Changed
-* Bypass `GZipMiddleware` when response includes `Content-Encoding` [#1901](https://github.com/encode/starlette/pull/1901).
+* Bypass `GZipMiddleware` when response includes `Content-Encoding` [#1901](https://github.com/Kludex/starlette/pull/1901).
### Fixed
-* Remove unneeded `unquote()` from query parameters on the `TestClient` [#1953](https://github.com/encode/starlette/pull/1953).
-* Make sure `MutableHeaders._list` is actually a `list` [#1917](https://github.com/encode/starlette/pull/1917).
-* Import compatibility with the next version of `AnyIO` [#1936](https://github.com/encode/starlette/pull/1936).
+* Remove unneeded `unquote()` from query parameters on the `TestClient` [#1953](https://github.com/Kludex/starlette/pull/1953).
+* Make sure `MutableHeaders._list` is actually a `list` [#1917](https://github.com/Kludex/starlette/pull/1917).
+* Import compatibility with the next version of `AnyIO` [#1936](https://github.com/Kludex/starlette/pull/1936).
## 0.21.0 (September 26, 2022)
This release replaces the underlying HTTP client used on the `TestClient` (`requests` :arrow_right: `httpx`), and as those clients [differ _a bit_ on their API](https://www.python-httpx.org/compatibility/), your test suite will likely break. To make the migration smoother, you can use the [`bump-testclient`](https://github.com/Kludex/bump-testclient) tool.
### Changed
-* Replace `requests` with `httpx` in `TestClient` [#1376](https://github.com/encode/starlette/pull/1376).
+* Replace `requests` with `httpx` in `TestClient` [#1376](https://github.com/Kludex/starlette/pull/1376).
### Added
-* Add `WebSocketException` and support for WebSocket exception handlers [#1263](https://github.com/encode/starlette/pull/1263).
-* Add `middleware` parameter to `Mount` class [#1649](https://github.com/encode/starlette/pull/1649).
-* Officially support Python 3.11 [#1863](https://github.com/encode/starlette/pull/1863).
-* Implement `__repr__` for route classes [#1864](https://github.com/encode/starlette/pull/1864).
+* Add `WebSocketException` and support for WebSocket exception handlers [#1263](https://github.com/Kludex/starlette/pull/1263).
+* Add `middleware` parameter to `Mount` class [#1649](https://github.com/Kludex/starlette/pull/1649).
+* Officially support Python 3.11 [#1863](https://github.com/Kludex/starlette/pull/1863).
+* Implement `__repr__` for route classes [#1864](https://github.com/Kludex/starlette/pull/1864).
### Fixed
-* Fix bug on which `BackgroundTasks` were cancelled when using `BaseHTTPMiddleware` and client disconnected [#1715](https://github.com/encode/starlette/pull/1715).
+* Fix bug on which `BackgroundTasks` were cancelled when using `BaseHTTPMiddleware` and client disconnected [#1715](https://github.com/Kludex/starlette/pull/1715).
## 0.20.4 (June 28, 2022)
### Fixed
-* Remove converter from path when generating OpenAPI schema [#1648](https://github.com/encode/starlette/pull/1648).
+* Remove converter from path when generating OpenAPI schema [#1648](https://github.com/Kludex/starlette/pull/1648).
## 0.20.3 (June 10, 2022)
### Fixed
-* Revert "Allow `StaticFiles` to follow symlinks" [#1681](https://github.com/encode/starlette/pull/1681).
+* Revert "Allow `StaticFiles` to follow symlinks" [#1681](https://github.com/Kludex/starlette/pull/1681).
## 0.20.2 (June 7, 2022)
### Fixed
-* Fix regression on route paths with colons [#1675](https://github.com/encode/starlette/pull/1675).
-* Allow `StaticFiles` to follow symlinks [#1337](https://github.com/encode/starlette/pull/1377).
+* Fix regression on route paths with colons [#1675](https://github.com/Kludex/starlette/pull/1675).
+* Allow `StaticFiles` to follow symlinks [#1337](https://github.com/Kludex/starlette/pull/1377).
## 0.20.1 (May 28, 2022)
### Fixed
-* Improve detection of async callables [#1444](https://github.com/encode/starlette/pull/1444).
-* Send 400 (Bad Request) when `boundary` is missing [#1617](https://github.com/encode/starlette/pull/1617).
-* Send 400 (Bad Request) when missing "name" field on `Content-Disposition` header [#1643](https://github.com/encode/starlette/pull/1643).
-* Do not send empty data to `StreamingResponse` on `BaseHTTPMiddleware` [#1609](https://github.com/encode/starlette/pull/1609).
-* Add `__bool__` dunder for `Secret` [#1625](https://github.com/encode/starlette/pull/1625).
+* Improve detection of async callables [#1444](https://github.com/Kludex/starlette/pull/1444).
+* Send 400 (Bad Request) when `boundary` is missing [#1617](https://github.com/Kludex/starlette/pull/1617).
+* Send 400 (Bad Request) when missing "name" field on `Content-Disposition` header [#1643](https://github.com/Kludex/starlette/pull/1643).
+* Do not send empty data to `StreamingResponse` on `BaseHTTPMiddleware` [#1609](https://github.com/Kludex/starlette/pull/1609).
+* Add `__bool__` dunder for `Secret` [#1625](https://github.com/Kludex/starlette/pull/1625).
## 0.20.0 (May 3, 2022)
### Removed
-* Drop Python 3.6 support [#1357](https://github.com/encode/starlette/pull/1357) and [#1616](https://github.com/encode/starlette/pull/1616).
+* Drop Python 3.6 support [#1357](https://github.com/Kludex/starlette/pull/1357) and [#1616](https://github.com/Kludex/starlette/pull/1616).
## 0.19.1 (April 22, 2022)
### Fixed
-* Fix inference of `Route.name` when created from methods [#1553](https://github.com/encode/starlette/pull/1553).
-* Avoid `TypeError` on `websocket.disconnect` when code is `None` [#1574](https://github.com/encode/starlette/pull/1574).
+* Fix inference of `Route.name` when created from methods [#1553](https://github.com/Kludex/starlette/pull/1553).
+* Avoid `TypeError` on `websocket.disconnect` when code is `None` [#1574](https://github.com/Kludex/starlette/pull/1574).
### Deprecated
-* Deprecate `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` in favor of `WS_1005_NO_STATUS_RCVD` and `WS_1006_ABNORMAL_CLOSURE`, as the previous constants didn't match the [WebSockets specs](https://www.iana.org/assignments/websocket/websocket.xhtml) [#1580](https://github.com/encode/starlette/pull/1580).
+* Deprecate `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` in favor of `WS_1005_NO_STATUS_RCVD` and `WS_1006_ABNORMAL_CLOSURE`, as the previous constants didn't match the [WebSockets specs](https://www.iana.org/assignments/websocket/websocket.xhtml) [#1580](https://github.com/Kludex/starlette/pull/1580).
## 0.19.0 (March 9, 2022)
### Added
-* Error handler will always run, even if the error happens on a background task [#761](https://github.com/encode/starlette/pull/761).
-* Add `headers` parameter to `HTTPException` [#1435](https://github.com/encode/starlette/pull/1435).
-* Internal responses with `405` status code insert an `Allow` header, as described by [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.5) [#1436](https://github.com/encode/starlette/pull/1436).
-* The `content` argument in `JSONResponse` is now required [#1431](https://github.com/encode/starlette/pull/1431).
-* Add custom URL convertor register [#1437](https://github.com/encode/starlette/pull/1437).
-* Add content disposition type parameter to `FileResponse` [#1266](https://github.com/encode/starlette/pull/1266).
-* Add next query param with original request URL in requires decorator [#920](https://github.com/encode/starlette/pull/920).
-* Add `raw_path` to `TestClient` scope [#1445](https://github.com/encode/starlette/pull/1445).
-* Add union operators to `MutableHeaders` [#1240](https://github.com/encode/starlette/pull/1240).
-* Display missing route details on debug page [#1363](https://github.com/encode/starlette/pull/1363).
-* Change `anyio` required version range to `>=3.4.0,<5.0` [#1421](https://github.com/encode/starlette/pull/1421) and [#1460](https://github.com/encode/starlette/pull/1460).
-* Add `typing-extensions>=3.10` requirement - used only on lower versions than Python 3.10 [#1475](https://github.com/encode/starlette/pull/1475).
+* Error handler will always run, even if the error happens on a background task [#761](https://github.com/Kludex/starlette/pull/761).
+* Add `headers` parameter to `HTTPException` [#1435](https://github.com/Kludex/starlette/pull/1435).
+* Internal responses with `405` status code insert an `Allow` header, as described by [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.5) [#1436](https://github.com/Kludex/starlette/pull/1436).
+* The `content` argument in `JSONResponse` is now required [#1431](https://github.com/Kludex/starlette/pull/1431).
+* Add custom URL convertor register [#1437](https://github.com/Kludex/starlette/pull/1437).
+* Add content disposition type parameter to `FileResponse` [#1266](https://github.com/Kludex/starlette/pull/1266).
+* Add next query param with original request URL in requires decorator [#920](https://github.com/Kludex/starlette/pull/920).
+* Add `raw_path` to `TestClient` scope [#1445](https://github.com/Kludex/starlette/pull/1445).
+* Add union operators to `MutableHeaders` [#1240](https://github.com/Kludex/starlette/pull/1240).
+* Display missing route details on debug page [#1363](https://github.com/Kludex/starlette/pull/1363).
+* Change `anyio` required version range to `>=3.4.0,<5.0` [#1421](https://github.com/Kludex/starlette/pull/1421) and [#1460](https://github.com/Kludex/starlette/pull/1460).
+* Add `typing-extensions>=3.10` requirement - used only on lower versions than Python 3.10 [#1475](https://github.com/Kludex/starlette/pull/1475).
### Fixed
-* Prevent `BaseHTTPMiddleware` from hiding errors of `StreamingResponse` and mounted applications [#1459](https://github.com/encode/starlette/pull/1459).
-* `SessionMiddleware` uses an explicit `path=...`, instead of defaulting to the ASGI 'root_path' [#1512](https://github.com/encode/starlette/pull/1512).
-* `Request.client` is now compliant with the ASGI specifications [#1462](https://github.com/encode/starlette/pull/1462).
-* Raise `KeyError` at early stage for missing boundary [#1349](https://github.com/encode/starlette/pull/1349).
+* Prevent `BaseHTTPMiddleware` from hiding errors of `StreamingResponse` and mounted applications [#1459](https://github.com/Kludex/starlette/pull/1459).
+* `SessionMiddleware` uses an explicit `path=...`, instead of defaulting to the ASGI 'root_path' [#1512](https://github.com/Kludex/starlette/pull/1512).
+* `Request.client` is now compliant with the ASGI specifications [#1462](https://github.com/Kludex/starlette/pull/1462).
+* Raise `KeyError` at early stage for missing boundary [#1349](https://github.com/Kludex/starlette/pull/1349).
### Deprecated
-* Deprecate WSGIMiddleware in favor of a2wsgi [#1504](https://github.com/encode/starlette/pull/1504).
-* Deprecate `run_until_first_complete` [#1443](https://github.com/encode/starlette/pull/1443).
+* Deprecate WSGIMiddleware in favor of a2wsgi [#1504](https://github.com/Kludex/starlette/pull/1504).
+* Deprecate `run_until_first_complete` [#1443](https://github.com/Kludex/starlette/pull/1443).
## 0.18.0 (January 23, 2022)
### Added
-* Change default chunk size from 4Kb to 64Kb on `FileResponse` [#1345](https://github.com/encode/starlette/pull/1345).
-* Add support for `functools.partial` in `WebSocketRoute` [#1356](https://github.com/encode/starlette/pull/1356).
-* Add `StaticFiles` packages with directory [#1350](https://github.com/encode/starlette/pull/1350).
-* Allow environment options in `Jinja2Templates` [#1401](https://github.com/encode/starlette/pull/1401).
-* Allow HEAD method on `HttpEndpoint` [#1346](https://github.com/encode/starlette/pull/1346).
-* Accept additional headers on `websocket.accept` message [#1361](https://github.com/encode/starlette/pull/1361) and [#1422](https://github.com/encode/starlette/pull/1422).
-* Add `reason` to `WebSocket` close ASGI event [#1417](https://github.com/encode/starlette/pull/1417).
-* Add headers attribute to `UploadFile` [#1382](https://github.com/encode/starlette/pull/1382).
-* Don't omit `Content-Length` header for `Content-Length: 0` cases [#1395](https://github.com/encode/starlette/pull/1395).
-* Don't set headers for responses with 1xx, 204 and 304 status code [#1397](https://github.com/encode/starlette/pull/1397).
-* `SessionMiddleware.max_age` now accepts `None`, so cookie can last as long as the browser session [#1387](https://github.com/encode/starlette/pull/1387).
+* Change default chunk size from 4Kb to 64Kb on `FileResponse` [#1345](https://github.com/Kludex/starlette/pull/1345).
+* Add support for `functools.partial` in `WebSocketRoute` [#1356](https://github.com/Kludex/starlette/pull/1356).
+* Add `StaticFiles` packages with directory [#1350](https://github.com/Kludex/starlette/pull/1350).
+* Allow environment options in `Jinja2Templates` [#1401](https://github.com/Kludex/starlette/pull/1401).
+* Allow HEAD method on `HttpEndpoint` [#1346](https://github.com/Kludex/starlette/pull/1346).
+* Accept additional headers on `websocket.accept` message [#1361](https://github.com/Kludex/starlette/pull/1361) and [#1422](https://github.com/Kludex/starlette/pull/1422).
+* Add `reason` to `WebSocket` close ASGI event [#1417](https://github.com/Kludex/starlette/pull/1417).
+* Add headers attribute to `UploadFile` [#1382](https://github.com/Kludex/starlette/pull/1382).
+* Don't omit `Content-Length` header for `Content-Length: 0` cases [#1395](https://github.com/Kludex/starlette/pull/1395).
+* Don't set headers for responses with 1xx, 204 and 304 status code [#1397](https://github.com/Kludex/starlette/pull/1397).
+* `SessionMiddleware.max_age` now accepts `None`, so cookie can last as long as the browser session [#1387](https://github.com/Kludex/starlette/pull/1387).
### Fixed
-* Tweak `hashlib.md5()` function on `FileResponse`s ETag generation. The parameter [`usedforsecurity`](https://bugs.python.org/issue9216) flag is set to `False`, if the flag is available on the system. This fixes an error raised on systems with [FIPS](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/FIPS_Mode_-_an_explanation) enabled [#1366](https://github.com/encode/starlette/pull/1366) and [#1410](https://github.com/encode/starlette/pull/1410).
-* Fix `path_params` type on `url_path_for()` method i.e. turn `str` into `Any` [#1341](https://github.com/encode/starlette/pull/1341).
-* `Host` now ignores `port` on routing [#1322](https://github.com/encode/starlette/pull/1322).
+* Tweak `hashlib.md5()` function on `FileResponse`s ETag generation. The parameter [`usedforsecurity`](https://bugs.python.org/issue9216) flag is set to `False`, if the flag is available on the system. This fixes an error raised on systems with [FIPS](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/FIPS_Mode_-_an_explanation) enabled [#1366](https://github.com/Kludex/starlette/pull/1366) and [#1410](https://github.com/Kludex/starlette/pull/1410).
+* Fix `path_params` type on `url_path_for()` method i.e. turn `str` into `Any` [#1341](https://github.com/Kludex/starlette/pull/1341).
+* `Host` now ignores `port` on routing [#1322](https://github.com/Kludex/starlette/pull/1322).
## 0.17.1 (November 17, 2021)
### Fixed
-* Fix `IndexError` in authentication `requires` when wrapped function arguments are distributed between `*args` and `**kwargs` [#1335](https://github.com/encode/starlette/pull/1335).
+* Fix `IndexError` in authentication `requires` when wrapped function arguments are distributed between `*args` and `**kwargs` [#1335](https://github.com/Kludex/starlette/pull/1335).
## 0.17.0 (November 4, 2021)
### Added
-* `Response.delete_cookie` now accepts the same parameters as `Response.set_cookie` [#1228](https://github.com/encode/starlette/pull/1228).
-* Update the `Jinja2Templates` constructor to allow `PathLike` [#1292](https://github.com/encode/starlette/pull/1292).
+* `Response.delete_cookie` now accepts the same parameters as `Response.set_cookie` [#1228](https://github.com/Kludex/starlette/pull/1228).
+* Update the `Jinja2Templates` constructor to allow `PathLike` [#1292](https://github.com/Kludex/starlette/pull/1292).
### Fixed
-* Fix BadSignature exception handling in SessionMiddleware [#1264](https://github.com/encode/starlette/pull/1264).
-* Change `HTTPConnection.__getitem__` return type from `str` to `typing.Any` [#1118](https://github.com/encode/starlette/pull/1118).
-* Change `ImmutableMultiDict.getlist` return type from `typing.List[str]` to `typing.List[typing.Any]` [#1235](https://github.com/encode/starlette/pull/1235).
-* Handle `OSError` exceptions on `StaticFiles` [#1220](https://github.com/encode/starlette/pull/1220).
-* Fix `StaticFiles` 404.html in HTML mode [#1314](https://github.com/encode/starlette/pull/1314).
-* Prevent anyio.ExceptionGroup in error views under a BaseHTTPMiddleware [#1262](https://github.com/encode/starlette/pull/1262).
+* Fix BadSignature exception handling in SessionMiddleware [#1264](https://github.com/Kludex/starlette/pull/1264).
+* Change `HTTPConnection.__getitem__` return type from `str` to `typing.Any` [#1118](https://github.com/Kludex/starlette/pull/1118).
+* Change `ImmutableMultiDict.getlist` return type from `typing.List[str]` to `typing.List[typing.Any]` [#1235](https://github.com/Kludex/starlette/pull/1235).
+* Handle `OSError` exceptions on `StaticFiles` [#1220](https://github.com/Kludex/starlette/pull/1220).
+* Fix `StaticFiles` 404.html in HTML mode [#1314](https://github.com/Kludex/starlette/pull/1314).
+* Prevent anyio.ExceptionGroup in error views under a BaseHTTPMiddleware [#1262](https://github.com/Kludex/starlette/pull/1262).
### Removed
-* Remove GraphQL support [#1198](https://github.com/encode/starlette/pull/1198).
+* Remove GraphQL support [#1198](https://github.com/Kludex/starlette/pull/1198).
## 0.16.0 (July 19, 2021)
### Added
* Added [Encode](https://github.com/sponsors/encode) funding option
- [#1219](https://github.com/encode/starlette/pull/1219)
+ [#1219](https://github.com/Kludex/starlette/pull/1219)
### Fixed
* `starlette.websockets.WebSocket` instances are now hashable and compare by identity
- [#1039](https://github.com/encode/starlette/pull/1039)
+ [#1039](https://github.com/Kludex/starlette/pull/1039)
* A number of fixes related to running task groups in lifespan
- [#1213](https://github.com/encode/starlette/pull/1213),
- [#1227](https://github.com/encode/starlette/pull/1227)
+ [#1213](https://github.com/Kludex/starlette/pull/1213),
+ [#1227](https://github.com/Kludex/starlette/pull/1227)
### Deprecated/removed
* The method `starlette.templates.Jinja2Templates.get_env` was removed
- [#1218](https://github.com/encode/starlette/pull/1218)
+ [#1218](https://github.com/Kludex/starlette/pull/1218)
* The ClassVar `starlette.testclient.TestClient.async_backend` was removed,
the backend is now configured using constructor kwargs
- [#1211](https://github.com/encode/starlette/pull/1211)
+ [#1211](https://github.com/Kludex/starlette/pull/1211)
* Passing an Async Generator Function or a Generator Function to `starlette.routing.Router(lifespan=)` is deprecated. You should wrap your lifespan in `@contextlib.asynccontextmanager`.
- [#1227](https://github.com/encode/starlette/pull/1227)
- [#1110](https://github.com/encode/starlette/pull/1110)
+ [#1227](https://github.com/Kludex/starlette/pull/1227)
+ [#1110](https://github.com/Kludex/starlette/pull/1110)
## 0.15.0 (June 23, 2021)
@@ -670,35 +670,35 @@ changes have occurred. Another significant change with this release is the
### Added
* Starlette now supports [Trio](https://trio.readthedocs.io/en/stable/) as an async runtime via
- AnyIO - [#1157](https://github.com/encode/starlette/pull/1157).
+ AnyIO - [#1157](https://github.com/Kludex/starlette/pull/1157).
* `TestClient.websocket_connect()` now must be used as a context manager.
-* Initial support for Python 3.10 - [#1201](https://github.com/encode/starlette/pull/1201).
+* Initial support for Python 3.10 - [#1201](https://github.com/Kludex/starlette/pull/1201).
* The compression level used in `GZipMiddleware` is now adjustable -
- [#1128](https://github.com/encode/starlette/pull/1128).
+ [#1128](https://github.com/Kludex/starlette/pull/1128).
### Fixed
-* Several fixes to `CORSMiddleware`. See [#1111](https://github.com/encode/starlette/pull/1111),
- [#1112](https://github.com/encode/starlette/pull/1112),
- [#1113](https://github.com/encode/starlette/pull/1113),
- [#1199](https://github.com/encode/starlette/pull/1199).
+* Several fixes to `CORSMiddleware`. See [#1111](https://github.com/Kludex/starlette/pull/1111),
+ [#1112](https://github.com/Kludex/starlette/pull/1112),
+ [#1113](https://github.com/Kludex/starlette/pull/1113),
+ [#1199](https://github.com/Kludex/starlette/pull/1199).
* Improved exception messages in the case of duplicated path parameter names -
- [#1177](https://github.com/encode/starlette/pull/1177).
+ [#1177](https://github.com/Kludex/starlette/pull/1177).
* `RedirectResponse` now uses `quote` instead of `quote_plus` encoding for the `Location` header
to better match the behaviour in other frameworks such as Django -
- [#1164](https://github.com/encode/starlette/pull/1164).
+ [#1164](https://github.com/Kludex/starlette/pull/1164).
* Exception causes are now preserved in more cases -
- [#1158](https://github.com/encode/starlette/pull/1158).
+ [#1158](https://github.com/Kludex/starlette/pull/1158).
* Session cookies now use the ASGI root path in the case of mounted applications -
- [#1147](https://github.com/encode/starlette/pull/1147).
+ [#1147](https://github.com/Kludex/starlette/pull/1147).
* Fixed a cache invalidation bug when static files were deleted in certain circumstances -
- [#1023](https://github.com/encode/starlette/pull/1023).
+ [#1023](https://github.com/Kludex/starlette/pull/1023).
* Improved memory usage of `BaseHTTPMiddleware` when handling large responses -
- [#1012](https://github.com/encode/starlette/issues/1012) fixed via #1157
+ [#1012](https://github.com/Kludex/starlette/issues/1012) fixed via #1157
### Deprecated/removed
* Built-in GraphQL support via the `GraphQLApp` class has been deprecated and will be removed in a
- future release. Please see [#619](https://github.com/encode/starlette/issues/619). GraphQL is not
+ future release. Please see [#619](https://github.com/Kludex/starlette/issues/619). GraphQL is not
supported on Python 3.10.
* The `executor` parameter to `GraphQLApp` was removed. Use `executor_class` instead.
* The `workers` parameter to `WSGIMiddleware` was removed. This hasn't had any effect since
@@ -709,11 +709,11 @@ changes have occurred. Another significant change with this release is the
### Fixed
* Fixed `ServerErrorMiddleware` compatibility with Python 3.9.1/3.8.7 when debug mode is enabled -
- [#1132](https://github.com/encode/starlette/pull/1132).
+ [#1132](https://github.com/Kludex/starlette/pull/1132).
* Fixed unclosed socket `ResourceWarning`s when using the `TestClient` with WebSocket endpoints -
#1132.
* Improved detection of `async` endpoints wrapped in `functools.partial` on Python 3.8+ -
- [#1106](https://github.com/encode/starlette/pull/1106).
+ [#1106](https://github.com/Kludex/starlette/pull/1106).
## 0.14.1 (November 9th, 2020)
@@ -723,7 +723,7 @@ changes have occurred. Another significant change with this release is the
* `UJSONResponse` was removed (this change was intended to be included in 0.14.0). Please see the
[documentation](https://www.starlette.io/responses/#custom-json-serialization) for how to
implement responses using custom JSON serialization -
- [#1074](https://github.com/encode/starlette/pull/1047).
+ [#1074](https://github.com/Kludex/starlette/pull/1047).
## 0.14.0 (November 8th, 2020)
diff --git a/docs/sponsorship.md b/docs/sponsorship.md
index 2b2e635a..2d8ff8f3 100644
--- a/docs/sponsorship.md
+++ b/docs/sponsorship.md
@@ -153,7 +153,7 @@ We currently manage sponsorships *exclusively* through **GitHub Sponsors**. This
We are currently evaluating whether to expand our sponsorship options beyond GitHub Sponsors. If your company would be interested in sponsoring Starlette and Uvicorn but prefers to use a different platform (e.g., Open Collective, direct invoicing), please let us know!
Your feedback is invaluable in helping us make sponsorship as accessible as possible. Share your thoughts by: