9bdf8cf379
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Kai Ren <tyranron@gmail.com>
11 KiB
11 KiB
juniper
changelog
All user visible changes to juniper
crate will be documented in this file. This project uses Semantic Versioning 2.0.0.
0.17.0 · 2024-04-?? (unreleased)
BC Breaks
- Upgraded
chrono-tz
crate integration to 0.9 version. (#1252)
Changed
- Updated GraphiQL to 3.2.3 version. (#1260)
0.16.1 · 2024-04-04
Changed
0.16.0 · 2024-03-20
BC Breaks
- October 2021 GraphQL spec: (#1000)
- Forbade
__typename
field onsubscription
operations. (#1001) - Supported
isRepeatable
field on directives. (#1003) - Supported
__Schema.description
,__Type.specifiedByURL
and__Directive.isRepeatable
fields in introspection. (#1003) - Supported directives on variables definitions. (#1005)
- Forbade
- Replaced
Visitor
associated type withDeserializeOwned
requirement inScalarValue
trait. (#985) #[graphql_object]
and#[graphql_subscription]
expansions now preserve definedimpl
blocks "as is" and reuse defined methods in opaque way. (#971)- Renamed
rename = "<policy>"
attribute argument torename_all = "<policy>"
(followingserde
style). (#971) - Upgraded
bson
crate integration to 2.0 version. (#979) - Upgraded [
uuid
crate] integration to 1.0 version. (#1057) - Upgraded
chrono-tz
crate integration to 0.8 version. (#1119) - Upgraded
bigdecimal
crate integration to 0.4 version. (#1176) - Made
FromInputValue
trait methods fallible to allow post-validation. (#987) - Redesigned
#[graphql_interface]
macro: (#1009)- Removed support for
dyn
attribute argument (interface values as trait objects). - Removed support for
downcast
attribute argument (custom resolution into implementer types). - Removed support for
async
trait methods (not required anymore). - Removed necessity of writing
impl Trait for Type
blocks (interfaces are implemented just by matching their fields now). (#113) - Forbade default implementations of non-ignored trait methods.
- Supported coercion of additional
null
able arguments and return sub-typing on implementer. - Supported
rename_all = "<policy>"
attribute argument influencing all its fields and their arguments. (#971) - Supported interfaces implementing other interfaces. (#1028)
- Removed support for
- Split
#[derive(GraphQLScalarValue)]
macro into: - Redesigned
#[graphql_scalar]
macro: (#1014)- Changed
from_input_value()
return type fromOption
toResult
. (#987) - Mirrored new
#[derive(GraphQLScalar)]
macro. - Supported usage on type aliases in case
#[derive(GraphQLScalar)]
isn't applicable because of orphan rules.
- Changed
- Renamed
ScalarValue::as_boolean
method toScalarValue::as_bool
. (#1025) - Reworked
chrono
crate integration GraphQL scalars according to graphql-scalars.dev specs: (#1010)- Disabled
chrono
Cargo feature by default. - Removed
scalar-naivetime
Cargo feature.
- Disabled
- Removed lifetime parameter from
ParseError
,GraphlQLError
,GraphQLBatchRequest
andGraphQLRequest
. (#1081, #528) - Upgraded GraphiQL to 3.1.1 version (requires new
graphql-transport-ws
GraphQL over WebSocket Protocol integration on server, seejuniper_warp/examples/subscription.rs
). (#1188, #1193, #1246) - Abstracted
Spanning::start
andSpanning::end
fields into separate structSpan
. (#1207, #1208) - Removed
graphql-parser-integration
andgraphql-parser
Cargo features by merging them intoschema-language
Cargo feature. (#1237) - Renamed
RootNode::as_schema_language()
method asRootNode::as_sdl()
. (#1237) - Renamed
RootNode::as_parser_document()
method asRootNode::as_document()
. (#1237) - Reworked look-ahead machinery: (#1212)
- Turned from eagerly-evaluated into lazy-evaluated:
- Made
LookAheadValue::List
to contain new iterableLookAheadList
type. - Made
LookAheadValue::Object
to contain new iterableLookAheadObject
type.
- Made
- Removed
LookAheadMethods
trait and redundantConcreteLookAheadSelection
type, making all APIs accessible as inherent methods onLookAheadSelection
andLookAheadChildren
decoupled types:- Moved
LookAheadMethods::child_names()
toLookAheadChildren::names()
. - Moved
LookAheadMethods::has_children()
toLookAheadChildren::is_empty()
. - Moved
LookAheadMethods::select_child()
toLookAheadChildren::select()
. - Moved
LookAheadSelection::for_explicit_type()
toLookAheadSelection::children_for_explicit_type()
. - Made
LookAheadSelection::arguments()
returning iterator overLookAheadArgument
. - Made
LookAheadSelection::children()
returningLookAheadChildren
.
- Moved
- Added
Span
toArguments
andLookAheadArguments
. (#1206, #1209)
- Turned from eagerly-evaluated into lazy-evaluated:
- Disabled
bson
,url
,uuid
andschema-language
Cargo features by default. (#1230)
Added
- Usage of Rust arrays as GraphQL lists. (#966, #918)
From
implementations forInputValue
mirroring the ones forValue
and better support forOption
handling. (#996)null
in addition toNone
for creatingValue::Null
ingraphql_value!
macro (followingserde_json::json!
style). (#996)graphql_input_value!
andgraphql_vars!
macros. (#996)time
crate integration behindtime
Cargo feature. (#1006)#[derive(GraphQLInterface)]
macro allowing using structs as GraphQL interfaces. (#1026)bigdecimal
crate integration behindbigdecimal
Cargo feature. (#1060)- [
rust_decimal
crate] integration behindrust_decimal
Cargo feature. (#1060) js
Cargo feature enablingjs-sys
andwasm-bindgen
support forwasm32-unknown-unknown
target. (#1118, #1147)LookAheadMethods::applies_for()
method. (#1138, #1145)LookAheadMethods::field_original_name()
andLookAheadMethods::field_alias()
methods. (#1199)anyhow
crate integration behindanyhow
andbacktrace
Cargo features. (#1215, #988)RootNode::disable_introspection()
applying additionalvalidation::rules::disable_introspection
, andRootNode::enable_introspection()
reverting it. (#1227, #456)Clone
andPartialEq
implementations forGraphQLResponse
. (#1228, #103)
Changed
- Made
GraphQLRequest
fields public. (#750) - Relaxed object safety requirement for
GraphQLValue
andGraphQLValueAsync
traits. (ba1ed85b) - Updated GraphQL Playground to 1.7.28 version. (#1190)
- Improve validation errors for input values. (#811, #693)
Fixed
- Unsupported spreading GraphQL interface fragments on unions and other interfaces. (#965, #798)
- Unsupported expressions in
graphql_value!
macro. (#996, #503) - Incorrect GraphQL list coercion rules:
null
cannot be coerced to an[Int!]!
or[Int]!
. (#1004) - All procedural macros expansion inside
macro_rules!
. (#1054, #1051) - Incorrect input value coercion with defaults. (#1080, #1073)
- Incorrect error when explicit
null
provided fornull
able list input parameter. (#1086, #1085) - Stack overflow on nested GraphQL fragments. (CVE-2022-31173)
- Unstable definitions order in schema generated by
RootNode::as_sdl()
. (#1237, #1134) - Unstable definitions order in schema generated by
introspect()
or other introspection queries. (#1239, #1134)
Previous releases
See old CHANGELOG.