diff --git a/axum-core/CHANGELOG.md b/axum-core/CHANGELOG.md index be103bfe..bb860389 100644 --- a/axum-core/CHANGELOG.md +++ b/axum-core/CHANGELOG.md @@ -7,14 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # Unreleased +# 0.5.0 + +## rc.1 + - **breaking:**: `Option` as an extractor now requires `T` to implement the new trait `OptionalFromRequest` (if used as the last extractor) or `OptionalFromRequestParts` (other extractors) ([#2475]) [#2475]: https://github.com/tokio-rs/axum/pull/2475 -# 0.5.0 - ## alpha.1 - **breaking:** Replace `#[async_trait]` with [return-position `impl Trait` in traits][RPITIT] ([#2308]) diff --git a/axum-core/Cargo.toml b/axum-core/Cargo.toml index adfe5b3a..f17c8d9b 100644 --- a/axum-core/Cargo.toml +++ b/axum-core/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-core" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.5.0-alpha.1" # remember to bump the version that axum and axum-extra depend on +version = "0.5.0-rc.1" # remember to bump the version that axum and axum-extra depend on [features] tracing = ["dep:tracing"] diff --git a/axum-extra/CHANGELOG.md b/axum-extra/CHANGELOG.md index 9ab9fc63..c7152a20 100644 --- a/axum-extra/CHANGELOG.md +++ b/axum-extra/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning]. # Unreleased +# 0.10.0 + +## rc.1 + - **breaking:** `Option>` no longer swallows all error conditions, instead rejecting the request in many cases; see its documentation for details ([#2475]) - **changed:** Deprecated `OptionalPath` and `OptionalQuery` ([#2475]) @@ -26,9 +30,7 @@ and this project adheres to [Semantic Versioning]. [#3010]: https://github.com/tokio-rs/axum/pull/3010 [#3047]: https://github.com/tokio-rs/axum/pull/3047 -# 0.10.0 - -# alpha.1 +## alpha.1 - **breaking:** Update to prost 0.13. Used for the `Protobuf` extractor ([#2829]) - **change:** Update minimum rust version to 1.75 ([#2943]) diff --git a/axum-extra/Cargo.toml b/axum-extra/Cargo.toml index 1240d34a..d8f5435f 100644 --- a/axum-extra/Cargo.toml +++ b/axum-extra/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-extra" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.10.0-alpha.1" +version = "0.10.0-rc.1" [features] default = ["tracing"] @@ -42,8 +42,8 @@ typed-header = ["dep:headers"] typed-routing = ["dep:axum-macros", "dep:percent-encoding", "dep:serde_html_form", "dep:form_urlencoded"] [dependencies] -axum = { path = "../axum", version = "0.8.0-alpha.1", default-features = false, features = ["original-uri"] } -axum-core = { path = "../axum-core", version = "0.5.0-alpha.1" } +axum = { path = "../axum", version = "0.8.0-rc.1", default-features = false, features = ["original-uri"] } +axum-core = { path = "../axum-core", version = "0.5.0-rc.1" } bytes = "1.1.0" futures-util = { version = "0.3", default-features = false, features = ["alloc"] } http = "1.0.0" @@ -58,7 +58,7 @@ tower-service = "0.3" # optional dependencies async-stream = { version = "0.3", optional = true } -axum-macros = { path = "../axum-macros", version = "0.5.0-alpha.1", optional = true } +axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true } cookie = { package = "cookie", version = "0.18.0", features = ["percent-encode"], optional = true } fastrand = { version = "2.1.0", optional = true } form_urlencoded = { version = "1.1.0", optional = true } diff --git a/axum-macros/Cargo.toml b/axum-macros/Cargo.toml index 8ba7c099..09ea49d3 100644 --- a/axum-macros/Cargo.toml +++ b/axum-macros/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" name = "axum-macros" readme = "README.md" repository = "https://github.com/tokio-rs/axum" -version = "0.5.0-alpha.1" # remember to also bump the version that axum and axum-extra depends on +version = "0.5.0-rc.1" # remember to also bump the version that axum and axum-extra depends on [features] default = [] diff --git a/axum/CHANGELOG.md b/axum/CHANGELOG.md index a59290af..e896deb3 100644 --- a/axum/CHANGELOG.md +++ b/axum/CHANGELOG.md @@ -7,26 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 # Unreleased +# 0.8.0 + +## rc.1 + +*Note: there are further relevant changes in [axum-core's changelog][core-changelog]* + +- **breaking:** Move `Host` extractor to `axum-extra` ([#2956]) +- **breaking:** Remove `WebSocket::close`. + Users should explicitly send close messages themselves. ([#2974]) +- **breaking:** Make `serve` generic over the listener and IO types ([#2941]) +- **breaking:** Remove `Serve::tcp_nodelay` and `WithGracefulShutdown::tcp_nodelay`. + See `serve::ListenerExt` for an API that let you set arbitrary TCP stream properties. ([#2941]) +- **breaking:** `Option>` and `Option>` no longer swallow all error conditions, + instead rejecting the request in many cases; see their documentation for details ([#2475]) - **fixed:** Skip SSE incompatible chars of `serde_json::RawValue` in `Event::json_data` ([#2992]) - **fixed:** Don't panic when array type is used for path segment ([#3039]) -- **breaking:** Move `Host` extractor to `axum-extra` ([#2956]) +- **fixed:** Avoid setting `content-length` before middleware. + This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897]) - **added:** Add `method_not_allowed_fallback` to set a fallback when a path matches but there is no handler for the given HTTP method ([#2903]) - **added:** Add `NoContent` as a self-described shortcut for `StatusCode::NO_CONTENT` ([#2978]) - **added:** Add support for WebSockets over HTTP/2. They can be enabled by changing `get(ws_endpoint)` handlers to `any(ws_endpoint)` ([#2894]) - **added:** Add `MethodFilter::CONNECT`, `routing::connect[_service]` and `MethodRouter::connect[_service]` ([#2961]) -- **fixed:** Avoid setting `content-length` before middleware. - This allows middleware to add bodies to requests without needing to manually set `content-length` ([#2897]) -- **breaking:** Remove `WebSocket::close`. - Users should explicitly send close messages themselves. ([#2974]) -- **breaking:** `Option>` and `Option>` no longer swallow all error conditions, - instead rejecting the request in many cases; see their documentation for details ([#2475]) - **added:** Extend `FailedToDeserializePathParams::kind` enum with (`ErrorKind::DeserializeError`) This new variant captures both `key`, `value`, and `message` from named path parameters parse errors, instead of only deserialization error message in `ErrorKind::Message`. ([#2720]) -- **breaking:** Make `serve` generic over the listener and IO types ([#2941]) +[core-changelog]: ../axum-core/CHANGELOG.md [#2475]: https://github.com/tokio-rs/axum/pull/2475 [#2897]: https://github.com/tokio-rs/axum/pull/2897 [#2903]: https://github.com/tokio-rs/axum/pull/2903 @@ -40,8 +49,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#3039]: https://github.com/tokio-rs/axum/pull/3039 [#2941]: https://github.com/tokio-rs/axum/pull/2941 -# 0.8.0 - ## alpha.1 - **breaking:** Require `Sync` for all handlers and services added to `Router` diff --git a/axum/Cargo.toml b/axum/Cargo.toml index 043aa606..5d9b0edb 100644 --- a/axum/Cargo.toml +++ b/axum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axum" -version = "0.8.0-alpha.1" # remember to bump the version that axum-extra and axum-macros depend on +version = "0.8.0-rc.1" # remember to bump the version that axum-extra and axum-macros depend on categories = ["asynchronous", "network-programming", "web-programming::http-server"] description = "Web framework that focuses on ergonomics and modularity" edition = "2021" @@ -46,7 +46,7 @@ __private_docs = [ ] [dependencies] -axum-core = { path = "../axum-core", version = "0.5.0-alpha.1" } +axum-core = { path = "../axum-core", version = "0.5.0-rc.1" } bytes = "1.0" futures-util = { version = "0.3", default-features = false, features = ["alloc"] } http = "1.0.0" @@ -66,7 +66,7 @@ tower-layer = "0.3.2" tower-service = "0.3" # optional dependencies -axum-macros = { path = "../axum-macros", version = "0.5.0-alpha.1", optional = true } +axum-macros = { path = "../axum-macros", version = "0.5.0-rc.1", optional = true } base64 = { version = "0.22.1", optional = true } hyper = { version = "1.1.0", optional = true } hyper-util = { version = "0.1.3", features = ["tokio", "server", "service"], optional = true }