Skip to content

Commit 8868db5

Browse files
committed
Prepare v1.0.0rc1
1 parent 3b10211 commit 8868db5

File tree

7 files changed

+45
-7
lines changed

7 files changed

+45
-7
lines changed

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,25 @@ All notable changes to FastOpenAPI are documented in this file.
44

55
FastOpenAPI follows the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.
66

7+
## [1.0.0rc1] - 2026-03-11
8+
9+
### Added
10+
11+
- **Multi-body parameter support** following FastAPI semantics: multiple body parameters are automatically embedded by name, `Body(embed=True)` supported for single parameters
12+
13+
### Fixed
14+
15+
- **GET + Pydantic model** now correctly reads query params instead of body at runtime
16+
- **Aiohttp multipart** reader no longer consumed twice — form fields and files parsed in a single pass with caching
17+
- **Falcon async router** binary/text responses now use proper content-type branching (was forcing `response.media` for all)
18+
- **Async DI resolver** no longer holds `threading.Lock` across `await` — removed unnecessary lock since async is single-threaded per event loop
19+
- **Tornado cookies** now extracted as strings instead of `Morsel` objects
20+
- **204 responses** now preserve custom headers from tuple returns and `Response` objects
21+
- **OpenAPI schema** invalidated after `add_route`/`include_router` — no more stale schema if accessed before all routes are registered
22+
- **JSON array in request body** returns 422 instead of 500 when endpoint expects a single Pydantic model
23+
- DI cache reliability improvements
24+
- Error hierarchy backward compatibility fixes
25+
726
## [1.0.0b1] - 2026-02-09
827

928
### Added

docs/community/changelog.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,25 @@ All notable changes to FastOpenAPI are documented in this file.
44

55
FastOpenAPI follows the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.
66

7+
## [1.0.0rc1] - 2026-03-11
8+
9+
### Added
10+
11+
- **Multi-body parameter support** following FastAPI semantics: multiple body parameters are automatically embedded by name, `Body(embed=True)` supported for single parameters
12+
13+
### Fixed
14+
15+
- **GET + Pydantic model** now correctly reads query params instead of body at runtime
16+
- **Aiohttp multipart** reader no longer consumed twice — form fields and files parsed in a single pass with caching
17+
- **Falcon async router** binary/text responses now use proper content-type branching (was forcing `response.media` for all)
18+
- **Async DI resolver** no longer holds `threading.Lock` across `await` — removed unnecessary lock since async is single-threaded per event loop
19+
- **Tornado cookies** now extracted as strings instead of `Morsel` objects
20+
- **204 responses** now preserve custom headers from tuple returns and `Response` objects
21+
- **OpenAPI schema** invalidated after `add_route`/`include_router` — no more stale schema if accessed before all routes are registered
22+
- **JSON array in request body** returns 422 instead of 500 when endpoint expects a single Pydantic model
23+
- DI cache reliability improvements
24+
- Error hierarchy backward compatibility fixes
25+
726
## [1.0.0b1] - 2026-02-09
827

928
### Added

docs/community/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ These cover a wide range of popular Python frameworks. The architecture allows a
3636
**A:** Yes, FastOpenAPI provides a FastAPI-like dependency injection system (inspired by FastAPI, but not a complete replica). You can use `Depends(func)` for regular dependencies, `Security(func, scopes=[...])` for security dependencies, and `SecurityScopes` for scope injection. The DI system supports recursive resolution, request-scoped caching, circular dependency detection, async dependencies, and generator (yield) dependencies with cleanup. Background tasks and middleware injection are not provided — use your framework's built-in mechanisms for those.
3737

3838
#### **Q: How stable is FastOpenAPI for production use?**
39-
**A:** FastOpenAPI is currently in **beta (1.0.0b1)**. Core features (routing, validation, DI, security, OpenAPI generation) are in place and actively tested across 8 frameworks. You should pin a version in production to avoid unexpected breaking changes on upgrade. It's recommended to write tests around critical API functionality in your project to catch any integration issues. The core of using Pydantic for validation is robust, and generating docs is read-only for your app, so the risk is manageable if you test your API.
39+
**A:** FastOpenAPI is currently a **release candidate (1.0.0rc1)**. Core features (routing, validation, DI, security, OpenAPI generation) are in place and actively tested across 8 frameworks. You should pin a version in production to avoid unexpected breaking changes on upgrade. It's recommended to write tests around critical API functionality in your project to catch any integration issues. The core of using Pydantic for validation is robust, and generating docs is read-only for your app, so the risk is manageable if you test your API.
4040

4141
#### **Q: How can I contribute or report an issue?**
4242
**A:** We welcome contributions! Check out the **Contributing** section of this documentation for guidelines. You can open issues on the GitHub repository for bugs, feature requests, or questions. If you have code to contribute, please fork the repo and open a Pull Request. Improving documentation, adding examples, and writing tests are also great ways to help.

docs/getting_started/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ import fastopenapi
115115
print(fastopenapi.__version__)
116116
```
117117

118-
You should see the version number (e.g., `1.0.0b1`).
118+
You should see the version number (e.g., `1.0.0rc1`).
119119

120120
## Upgrading
121121

docs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
!!! warning "Beta Release — v1.0.0b1"
2-
You are viewing the documentation for **v1.0.0b1** (beta). The API is stable, but minor changes may occur before the final release. The last stable version is available [here](https://fastopenapi.fatalyst.dev/0.7/).
1+
!!! warning "Release Candidate — v1.0.0rc1"
2+
You are viewing the documentation for **v1.0.0rc1** (release candidate). The API is stable, but minor changes may occur before the final release. The last stable version is available [here](https://fastopenapi.fatalyst.dev/0.7/).
33

44
# FastOpenAPI
55

@@ -138,7 +138,7 @@ async def upload_file(file: FileUpload = File(...)):
138138

139139
## Project Status
140140

141-
FastOpenAPI is currently in **beta** (version 1.0.0b1). The API is stable, but minor changes may occur before the 1.0.0 release. We welcome feedback and contributions to help improve the library.
141+
FastOpenAPI is currently a **release candidate** (version 1.0.0rc1). The API is stable, but minor changes may occur before the 1.0.0 release. We welcome feedback and contributions to help improve the library.
142142

143143
## Quick Example
144144

fastopenapi/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.0.0b1"
1+
__version__ = "1.0.0rc1"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "fastopenapi"
3-
version = "1.0.0b1"
3+
version = "1.0.0rc1"
44
description = "FastOpenAPI is a library for generating and integrating OpenAPI schemas using Pydantic v2 and various frameworks (AioHttp, Django, Falcon, Flask, Quart, Sanic, Starlette, Tornado)."
55
authors = [
66
{name = "Nikita Ryzhenkov", email = "nikita.ryzhenkoff@gmail.com"}

0 commit comments

Comments
 (0)