From 5de6f94eb280f1fdd337e81654939f3248b4363c Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Sat, 25 Jun 2022 12:54:26 +0200 Subject: [PATCH] Release 0.4.0 --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ dxr/Cargo.toml | 12 ++++++------ dxr_client/Cargo.toml | 5 ++--- dxr_client/README.md | 2 +- dxr_derive/Cargo.toml | 2 +- dxr_server/Cargo.toml | 5 ++--- dxr_server_axum/Cargo.toml | 7 +++---- dxr_shared/Cargo.toml | 3 +-- 8 files changed, 44 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da15e40..9d4780c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,31 @@ +## Release 0.4.0 + +**Changed**: + +- moved implementations of XML-RPC clients, servers, and the axum server support into separate + crates, available as optional features of the top-level `dxr` crate +- moved to more powerful cargo feature syntax for optional and conditional dependencies +- server: refactored method call `Handler` trait to allow the handler function to be `async` + +**Fixed**: + +- `methodResponse` must apparently always contain exactly one value +- `methodParameters` contain an array of parameters that contain values, not a parameter that + is an array of values + +Both these fixes required minor changes to the public API, which is why they cannot be backported +to the 0.3.x branch. + +**Added**: + +- implemented of `FromDXR` for fixed-size arrays +- implemented support for struct fields that are fixed-size arrays in the derive macros + +**Updated dependencies**: + +- updated `axum` version from 0.4 to 0.5 +- updated `quick_xml` version from 0.22 to 0.23 + ## Release 0.3.1 Fixed: diff --git a/dxr/Cargo.toml b/dxr/Cargo.toml index 8199f0a..56bc147 100644 --- a/dxr/Cargo.toml +++ b/dxr/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr" description = "Declarative XML-RPC" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" @@ -49,11 +49,11 @@ path = "tests/echo_one.rs" required-features = ["derive", "client", "server", "server-axum", "i8", "nil"] [dependencies] -dxr_shared = { path = "../dxr_shared", version = "0.4.0-dev" } -dxr_derive = { path = "../dxr_derive", version = "0.4.0-dev", optional = true } -dxr_client = { path = "../dxr_client", version = "0.4.0-dev", optional = true } -dxr_server = { path = "../dxr_server", version = "0.4.0-dev", optional = true } -dxr_server_axum = { path = "../dxr_server_axum", version = "0.4.0-dev", optional = true } +dxr_shared = { path = "../dxr_shared", version = "0.4.0" } +dxr_derive = { path = "../dxr_derive", version = "0.4.0", optional = true } +dxr_client = { path = "../dxr_client", version = "0.4.0", optional = true } +dxr_server = { path = "../dxr_server", version = "0.4.0", optional = true } +dxr_server_axum = { path = "../dxr_server_axum", version = "0.4.0", optional = true } [dev-dependencies] # used for example binaries and integration tests diff --git a/dxr_client/Cargo.toml b/dxr_client/Cargo.toml index 56b3917..19f645a 100644 --- a/dxr_client/Cargo.toml +++ b/dxr_client/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr_client" description = "Declarative XML-RPC (client implementation)" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" @@ -11,11 +11,10 @@ authors = ["Fabio Valentini "] categories = ["network-programming", "web-programming::http-client", "encoding"] keywords = ["XML-RPC", "client"] repository = "https://github.com/ironthree/dxr" -exclude = ["/wip/"] [dependencies] anyhow = "1.0.53" -dxr_shared = { path = "../dxr_shared", version = "0.4.0-dev" } +dxr_shared = { path = "../dxr_shared", version = "0.4.0" } http = "0.2.6" log = "0.4.13" quick-xml = { version = "0.23" , features = ["serialize"] } diff --git a/dxr_client/README.md b/dxr_client/README.md index 9d05204..babe28f 100644 --- a/dxr_client/README.md +++ b/dxr_client/README.md @@ -7,7 +7,7 @@ The dxr project provides crates for writing XML-RPC API clients and servers in Rust. -This crate contains an implementation of an `async` XML-RPC client using `reqwest`. The client +This crate contains an implementation of an `async` XML-RPC client using `reqwest`. The client functionality is re-exported from the `dxr` crate when the `client` feature is enabled, so this crate should be considered an internal implementation detail, and never be imported or used directly. diff --git a/dxr_derive/Cargo.toml b/dxr_derive/Cargo.toml index f65a693..8e54279 100644 --- a/dxr_derive/Cargo.toml +++ b/dxr_derive/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr_derive" description = "Implementation details of DXR (derive macros)" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" diff --git a/dxr_server/Cargo.toml b/dxr_server/Cargo.toml index f342b55..a100e4a 100644 --- a/dxr_server/Cargo.toml +++ b/dxr_server/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr_server" description = "Declarative XML-RPC (server implementation)" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" @@ -11,11 +11,10 @@ authors = ["Fabio Valentini "] categories = ["network-programming", "web-programming::http-client", "encoding"] keywords = ["XML-RPC", "server"] repository = "https://github.com/ironthree/dxr" -exclude = ["/wip/"] [dependencies] async-trait = "0.1.53" -dxr_shared = { path = "../dxr_shared", version = "0.4.0-dev" } +dxr_shared = { path = "../dxr_shared", version = "0.4.0" } http = "0.2.6" quick-xml = { version = "0.23" , features = ["serialize"] } diff --git a/dxr_server_axum/Cargo.toml b/dxr_server_axum/Cargo.toml index 1205d96..7a7b67d 100644 --- a/dxr_server_axum/Cargo.toml +++ b/dxr_server_axum/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr_server_axum" description = "Declarative XML-RPC (axum server implementation)" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" @@ -11,13 +11,12 @@ authors = ["Fabio Valentini "] categories = ["network-programming", "web-programming::http-client", "encoding"] keywords = ["XML-RPC", "server"] repository = "https://github.com/ironthree/dxr" -exclude = ["/wip/"] [dependencies] anyhow = "1.0.53" axum = "0.5.4" -dxr_shared = { path = "../dxr_shared", version = "0.4.0-dev" } -dxr_server = { path = "../dxr_server", version = "0.4.0-dev" } +dxr_shared = { path = "../dxr_shared", version = "0.4.0" } +dxr_server = { path = "../dxr_server", version = "0.4.0" } tokio = { version = "1.14", features = ["sync"] } [dev-dependencies] diff --git a/dxr_shared/Cargo.toml b/dxr_shared/Cargo.toml index 8f0f6dc..dce6788 100644 --- a/dxr_shared/Cargo.toml +++ b/dxr_shared/Cargo.toml @@ -3,7 +3,7 @@ name = "dxr_shared" description = "Declarative XML-RPC (implementation details)" license = "MIT OR Apache-2.0" -version = "0.4.0-dev" +version = "0.4.0" edition = "2021" rust-version = "1.60.0" @@ -11,7 +11,6 @@ authors = ["Fabio Valentini "] categories = ["network-programming", "encoding"] keywords = ["XML-RPC"] repository = "https://github.com/ironthree/dxr" -exclude = ["/wip/"] [dependencies] base64 = "0.13"