github ghostdogpr/caliban v1.0.0

latest releases: v2.9.0, v2.8.1, v2.8.0...
3 years ago

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

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 named toRequestWith that gives access to partial errors and extensions. This replaces toRequestWithExtensions. 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 or RootSubscription #924 by @ghostdogpr

Tools

  • Added support for basic stitching of local and remote schemas. More details in the docs. #896 by @frekw

Don't miss a new caliban release

NewReleases is sending notifications on new releases.