Release Notes
1.0.0 Release
A little less than 2 years after the creation of Caliban, I decided it was time for an official 1.0.0 release 🎉
Caliban has been reliable and stable for a long while now, and the few bugs that have been discovered in the recent past were about minor edge cases and immediately fixed. Caliban is currently used at various companies (including mine) and I even saw it mentioned in a few job offers! The public API is not changing much: even the recently added support for Scala 3 didn't cause much public changes (despite important changes under the hood: a new parser and a new derivation mechanism). Most of the changes are now about improving usability and adding support for libraries or GraphQL plug-ins. The documentation is pretty rich and there are a lot of examples available. I think we're in a good shape for a release!
I intend to keep the current process of incrementing the patch version for minor releases that are 100% binary compatible and the minor version for small breaking changes. The major version will be changed if there are changes that requires a non-trivial migration (this is not semantic versioning but I think it is not necessary for a library like Caliban that don't have many libraries depending on it).
Finally, I'd like to thank the 73 contributors who all took a part in making Caliban what it is today. I'm amazed there has been so many of you. If anyone is interested in contributing, reach out to me on Discord and I can guide you through it.
Server
- Added a helper function to manually construct lazy fields #921 by @ghostdogpr
- Fixed description of temporal schemas #925 by @ghostdogpr
- Added a zio-json backend for the Akka HTTP Adapter #819 by @jczuchnowski
Client
Important: There are several changes related to code generation, so it is recommended to re-run the code generation if you upgrade Caliban to this version.
- Added a new module
caliban-client-laminext
for easy usage of Caliban Client with the Laminar Scala.js library. This includes subscriptions support via WebSockets. More details in the docs. #897 by @ghostdogpr - Added an option to drop null values from input objects when building requests #923 by @ghostdogpr
- Added a variant of
toRequest
namedtoRequestWith
that gives access to partial errors and extensions. This replacestoRequestWithExtensions
. Also, partial errors with a non-null response are now handled as a success. #926 by @ghostdogpr - Fixed the generated code when there are arguments that are type aliases #906 by @ghostdogpr
- Prevented name clashes in generated code when an object is named
Field
#918 by @blast-hardcheese - Prevented name clashes in generated code when an object is named
RootQuery
,RootMutation
orRootSubscription
#924 by @ghostdogpr
Tools
- Added support for basic stitching of local and remote schemas. More details in the docs. #896 by @frekw