From 040344dedc2c5eeaa7caadd788fd84f28c67d63f Mon Sep 17 00:00:00 2001 From: Kilerd Chan Date: Sat, 1 Aug 2026 09:34:50 +0000 Subject: [PATCH] chore(release): 0.4.0 Bumps all three crates and the internal dependency ranges to 0.4.0, plus the README and the examples that pin a version. 0.4 completes Tiers 0-2 of the maturation roadmap (#41): the framework shell (config, errors, state, tasks, messager) is trustworthy, and the OpenAPI output covers components/$ref, error responses, spec customization, field metadata, validation-driven constraints and header/cookie parameters. Co-Authored-By: Claude Opus 4.8 --- README.md | 4 ++-- examples/basic/Cargo.toml | 2 +- examples/configuration/Cargo.toml | 2 +- examples/message/Cargo.toml | 2 +- examples/openapi/Cargo.toml | 2 +- examples/task/Cargo.toml | 2 +- gotcha/Cargo.toml | 8 ++++---- gotcha/src/lib.rs | 2 +- gotcha_core/Cargo.toml | 4 ++-- gotcha_macro/Cargo.toml | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7a6e8f3..e691c90 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Add Gotcha to your `Cargo.toml`: ```toml [dependencies] -gotcha = "0.3" +gotcha = "0.4" tokio = { version = "1", features = ["macros", "rt-multi-thread"] } serde = { version = "1", features = ["derive"] } ``` @@ -119,7 +119,7 @@ Enable additional features as needed: ```toml [dependencies] -gotcha = { version = "0.3", features = ["openapi", "prometheus", "cors", "static_files", "task"] } +gotcha = { version = "0.4", features = ["openapi", "prometheus", "cors", "static_files", "task"] } ``` Available features: diff --git a/examples/basic/Cargo.toml b/examples/basic/Cargo.toml index 6e02f87..9d6b6bb 100644 --- a/examples/basic/Cargo.toml +++ b/examples/basic/Cargo.toml @@ -6,6 +6,6 @@ version = "0.1.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gotcha = {version="0.3", path = "../../gotcha"} +gotcha = {version="0.4", path = "../../gotcha"} tokio = {version = "1", features = ["macros", 'rt-multi-thread']} serde = {version="1", features=["derive"]} \ No newline at end of file diff --git a/examples/configuration/Cargo.toml b/examples/configuration/Cargo.toml index ff77746..efc0baf 100644 --- a/examples/configuration/Cargo.toml +++ b/examples/configuration/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gotcha = {version="0.3", path = "../../gotcha", features = ["http1"]} +gotcha = {version="0.4", path = "../../gotcha", features = ["http1"]} serde = {version="1", features=["derive"]} serde_json = "1" tokio = {version = "1", features = ["macros", 'rt-multi-thread', 'fs']} diff --git a/examples/message/Cargo.toml b/examples/message/Cargo.toml index 2f026c9..bba518a 100644 --- a/examples/message/Cargo.toml +++ b/examples/message/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gotcha = {version="0.3", path = "../../gotcha"} +gotcha = {version="0.4", path = "../../gotcha"} tokio = {version = "1", features = ["macros", 'rt-multi-thread']} serde = {version="1", features=["derive"]} \ No newline at end of file diff --git a/examples/openapi/Cargo.toml b/examples/openapi/Cargo.toml index cb7dac3..e842f9d 100644 --- a/examples/openapi/Cargo.toml +++ b/examples/openapi/Cargo.toml @@ -6,7 +6,7 @@ version = "0.1.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gotcha = {version="0.3", path = "../../gotcha", features = ["openapi", "http1"]} +gotcha = {version="0.4", path = "../../gotcha", features = ["openapi", "http1"]} # Required because `#[derive(Schematic)]` expands to `::gotcha_core::` paths. gotcha_core = { path = "../../gotcha_core" } tokio = {version = "1", features = ["macros", 'rt-multi-thread']} diff --git a/examples/task/Cargo.toml b/examples/task/Cargo.toml index 90d2b5c..559ef9a 100644 --- a/examples/task/Cargo.toml +++ b/examples/task/Cargo.toml @@ -6,6 +6,6 @@ version = "0.1.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -gotcha = {version="0.3", path = "../../gotcha", features = ["task", "http1"]} +gotcha = {version="0.4", path = "../../gotcha", features = ["task", "http1"]} tokio = {version = "1", features = ["macros", 'rt-multi-thread']} serde = {version="1", features=["derive"]} \ No newline at end of file diff --git a/gotcha/Cargo.toml b/gotcha/Cargo.toml index 6b98f45..00555f2 100644 --- a/gotcha/Cargo.toml +++ b/gotcha/Cargo.toml @@ -2,7 +2,7 @@ name = "gotcha" description = "Enhanced web framework built on top of Axum with OpenAPI, metrics, and configuration management" edition = "2021" -version = "0.3.0" +version = "0.4.0" license = "MIT" repository = "https://github.com/Kilerd/gotcha/" # Symlinked to the repository README so the crate documentation and the landing page are the same @@ -35,8 +35,8 @@ task = ["dep:cron", "tokio/time"] [dependencies] async-trait = "0.1.60" -gotcha_macro = { version = "0.3", path = "../gotcha_macro" } -gotcha_core = { version = "0.3", path = "../gotcha_core", optional = true } +gotcha_macro = { version = "0.4", path = "../gotcha_macro" } +gotcha_core = { version = "0.4", path = "../gotcha_core", optional = true } serde = {version = "1", features = ["derive"]} # `rt` is needed by the message system, which is always available (it gated nothing but a # 160-line module and this one tokio feature). @@ -76,7 +76,7 @@ trybuild = "1.0" assert-json-diff = "2" # Non-optional so trybuild-generated test crates (which derive Schematic and thus # emit `::gotcha_core::` paths) have gotcha_core in their extern prelude. -gotcha_core = { version = "0.3", path = "../gotcha_core" } +gotcha_core = { version = "0.4", path = "../gotcha_core" } # So `#[tokio::main]` doc examples compile (the lib's own tokio dep is minimal). tokio = { version = "1", features = ["macros", "rt-multi-thread"] } futures-core = "0.3.33" diff --git a/gotcha/src/lib.rs b/gotcha/src/lib.rs index 72b9c6e..c201571 100644 --- a/gotcha/src/lib.rs +++ b/gotcha/src/lib.rs @@ -10,7 +10,7 @@ pub use async_trait::async_trait; /// WebSocket upgrade and the socket itself. The frame type stays behind `ws::Message`, since -/// [`Message`](crate::Message) is already the message-system trait. +/// [`Message`] is already the message-system trait. pub use axum::extract::ws::{self, WebSocket, WebSocketUpgrade}; use axum::extract::FromRef; pub use axum::extract::{Extension, Form, Json, Multipart, Path, Query, State}; diff --git a/gotcha_core/Cargo.toml b/gotcha_core/Cargo.toml index 5e4cb17..54e1a85 100644 --- a/gotcha_core/Cargo.toml +++ b/gotcha_core/Cargo.toml @@ -2,7 +2,7 @@ name = "gotcha_core" description = "Lightweight schema core (Schematic trait + data-type impls) for the Gotcha web framework" edition = "2021" -version = "0.3.0" +version = "0.4.0" license = "MIT" repository = "https://github.com/Kilerd/gotcha/" @@ -23,7 +23,7 @@ doctest = true axum = ["dep:axum", "dep:axum-extra", "dep:regex", "dep:either"] [dependencies] -gotcha_macro = { version = "0.3", path = "../gotcha_macro" } +gotcha_macro = { version = "0.4", path = "../gotcha_macro" } oas = "0.1" axum = { version = "0.8", default-features = false, features = ["json", "query", "multipart"], optional = true } # `TypedHeader` lives here since axum 0.7; the impl must be in this crate because that is where diff --git a/gotcha_macro/Cargo.toml b/gotcha_macro/Cargo.toml index e872bbd..4dcb569 100644 --- a/gotcha_macro/Cargo.toml +++ b/gotcha_macro/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "gotcha_macro" description = "gotcha web framework macro" -version = "0.3.0" +version = "0.4.0" edition = "2021" license = "MIT"