juniper/changelog/0.9.0.md

96 lines
2.8 KiB
Markdown
Raw Normal View History

2017-12-03 11:33:01 -06:00
## [0.9.0] 2017-12-03
2017-12-03 08:05:20 -06:00
## Changes
This is the first release in a long time.
Quite a few changes have accumulated since `0.8.1`, including multiple breaking
changes.
### Custom derive & macros
Juniper has gained custom derive implementations for input objects, objects and
enums.
* `#[derive(GraphQLInputObject)]`
* `#[derive(GraphQLEnum)]`
* `#[derive(GraphQLObject)]`
The `graphql_enum!` and `graphql_input_object!` macros did not provide any more
benefits, so they have been removed!
All functionality is now covered by custom derive.
Check the [docs](https://graphql-rust.github.io) to find out more.
### Web framework integrations - Iron & Rocket
The iron and rocket integrations were removed from the main crate, and are now
available via the [juniper_iron](https://crates.io/crates/juniper_iron) and
[juniper_rocket](https://crates.io/crates/juniper_rocket) crates.
2017-12-03 11:33:01 -06:00
### FieldError rewrite (custom data)
2017-12-03 08:05:20 -06:00
The `FieldError` type now supports custom data with the `Value` type from
serde_json. Use this to populate the `data` field in returned errors.
2017-12-03 11:33:01 -06:00
This also means that try! and `?` now work in resolvers, which is quite nice.
Also, the `ResultExt` extension and the `jtry!` macro were removed, since they
are redundant now!
2017-12-03 08:05:20 -06:00
### Dynamic Schemas
Juniper has gained support for dynamic schemas, thanks to @srijs.
That also means the type of `RootNode` has changed to include a lifetime.
The repository was restructured to a multi crate workspace to enable several new
features like custom_derive and an extracted parser.
#[#66](https://github.com/graphql-rust/juniper/pull/66)
### Data Type Integrations
Integrations with multiple popular crates was added to make working with them
easier.
* uuid
* url
* chrono
### Field Order
To better comply with the specification, order of requested fields is
now preserved.
[#82](https://github.com/graphql-rust/juniper/issues/82
### From/ToInputValue
The `::from` and `::to` methods in `From/ToInputValue` were renamed to
`from/to_input_value()` to not conflict with other methods.
[#90](https://github.com/graphql-rust/juniper/pull/90)
### Other changes
* Several small performance improvements
* Use [fnv](https://github.com/servo/rust-fnv) hash map for better performance
## Contributors
A big shoutout to the many contributors for this version, sorted alphabetically.
* Cameron Eldridge <cameldridge+git@gmail.com>
* Christian Legnitto <christian@legnitto.com>
* Jacob Haslehurst <jacob@haslehurst.net>
* Jane Keibler <wanderingelf14@gmail.com>
* Magnus Hallin <mhallin@fastmail.com>
* rushmorem <rushmore@webenchanter.com>
* Rushmore Mushambi <rushmore@webenchanter.com>
* Sagie Gur-Ari <sagiegurari@gmail.com>
* Sam Rijs <srijs@airpost.net>
* Stanko Krtalić <stanko.krtalic@gmail.com>
* theduke <chris@theduke.at>
* thomas-jeepe <penguinSoccer@outlook.com>