From 7ecaa7feabc2d7061bd61af78de3b64fdea00280 Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Sat, 18 May 2024 22:37:40 +0100 Subject: [PATCH] Revert unintentional change in behaviour when combining `default` and `required` attributes (#293) Never add a field with the `default` attribute to a schema's `required` properties --- CHANGELOG.md | 6 ++++++ Cargo.lock | 4 ++-- schemars/Cargo.toml | 4 ++-- schemars/src/_private.rs | 2 +- schemars_derive/Cargo.toml | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a686f085..915084e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [0.8.20] - 2024-05-18 + +### Fixed: + +- Revert unintentional change in behaviour when combining `default` and `required` attributes (https://github.com/GREsau/schemars/issues/292) + ## [0.8.19] - 2024-05-06 ### Fixed: diff --git a/Cargo.lock b/Cargo.lock index 516f9798..1422e76f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -318,7 +318,7 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "schemars" -version = "0.8.19" +version = "0.8.20" dependencies = [ "arrayvec 0.5.2", "arrayvec 0.7.4", @@ -347,7 +347,7 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.19" +version = "0.8.20" dependencies = [ "pretty_assertions", "proc-macro2", diff --git a/schemars/Cargo.toml b/schemars/Cargo.toml index 579e8c04..4501205e 100644 --- a/schemars/Cargo.toml +++ b/schemars/Cargo.toml @@ -3,7 +3,7 @@ name = "schemars" description = "Generate JSON Schemas from Rust code" homepage = "https://graham.cool/schemars/" repository = "https://github.com/GREsau/schemars" -version = "0.8.19" +version = "0.8.20" authors = ["Graham Esau "] edition = "2021" license = "MIT" @@ -14,7 +14,7 @@ build = "build.rs" rust-version = "1.60" [dependencies] -schemars_derive = { version = "=0.8.19", optional = true, path = "../schemars_derive" } +schemars_derive = { version = "=0.8.20", optional = true, path = "../schemars_derive" } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0.25" dyn-clone = "1.0" diff --git a/schemars/src/_private.rs b/schemars/src/_private.rs index c61ffc15..657244b1 100644 --- a/schemars/src/_private.rs +++ b/schemars/src/_private.rs @@ -131,7 +131,7 @@ pub fn insert_object_property( schema: Schema, ) { obj.properties.insert(key.to_owned(), schema); - if required || !(has_default || T::_schemars_private_is_option()) { + if !has_default && (required || !T::_schemars_private_is_option()) { obj.required.insert(key.to_owned()); } } diff --git a/schemars_derive/Cargo.toml b/schemars_derive/Cargo.toml index 996c0515..abdfe9af 100644 --- a/schemars_derive/Cargo.toml +++ b/schemars_derive/Cargo.toml @@ -3,7 +3,7 @@ name = "schemars_derive" description = "Macros for #[derive(JsonSchema)], for use with schemars" homepage = "https://graham.cool/schemars/" repository = "https://github.com/GREsau/schemars" -version = "0.8.19" +version = "0.8.20" authors = ["Graham Esau "] edition = "2021" license = "MIT"