Releases: sangria-graphql/sangria
v3.0.0
What's Changed
Modularization
The sangria library was split into different modules:
sangria-ast
: the GraphQL schema ASTsangria-parser
: the GraphQL parsersangria-core
: the schema and the executionsangria-derivation
: the derivation (based on scala macros)
The sangria
library still includes all those modules.
Related PRs:
- document and clean the AST code by @performantdata in #724
- AST separation by @performantdata in #777
- move parser into its own module by @performantdata in #792
- make
ParserConfig.parboiledToSourceMapper
public by @performantdata in #796 - some top-level docs for the parser by @performantdata in #802
- Introduce sangria derivation by @yanns in #844
Performances
The more performant OverlappingFieldsCanBeMerged
is now the default strategy
- new OverlappingFieldsCanBeMerged is default by @yanns in #756
- remove experimental OverlappingFieldsCanBeMerged by @yanns in #764
We also put some effort to reduce the number of allocations:
- avoid allocations by @yanns in #762
- use 'foreach' for side-effects by @yanns in #763
- less allocation in ExecutionPath.add by @yanns in #769
- optimize StringUtil.escapeString by @yanns in #771
- avoid breaking sangria slow logs by @yanns in #774
- use 'cacheKeyReversed' to avoid creating vectors by @yanns in #775
- introduce ExecutionPath.cacheKeyReversedIterator by @yanns in #782
Simplifications
DeliveryScheme
was removed. A parser always returns a Try
.
- remove
DeliveryScheme
by @performantdata in #790
The output of the GraphQL does not contain trailing white spaces anymore:
Deprecation removal
Some deprecations were removed:
- remove deprecated useLegacyCommentDescriptions by @yanns in #757
- remove deprecated useLegacyCommentDescriptions by @yanns in #758
- remove deprecated legacyImplementsInterface by @yanns in #759
- remove deprecated legacyEmptyFields by @yanns in #760
What about Scala 3?
We are in the process of cross-compiling sangria to scala 3: https://github.com/sangria-graphql/sangria/projects/2
But we are still missing some dependencies:
parboiled2
is being used for the parsing, and its porting is in progress: sirthias/parboiled2#280macro-visit
is also quite difficult to port. We have started working on it, and would be happy to receive any help here: sangria-graphql/macro-visit#82
If you are using sangria, we would appreciate if you could help us on this topic.
How to migrate from 2.x to 3.x
To migrate from sangria 2.x, please make sure that you are using the latest version of sangria 2.x.
Then make sure to fix all deprecations. We have tried to give useful warning messages.
After that, upgrading to the 3.x version should work.
Ask for help if you need.
Side note about GraphQL federation
We have now another library that adds Apollo's Federation Specification on top of a provided sangria graphql schema.
New Contributors
Full Changelog: v2.1.4...v3.0.0
v3.0.0-RC8
What’s Changed
- Description with empty line rendering (#852) @yanns
- Introduce sangria derivation (#844) @yanns
- some top-level docs for the parser (#802) @performantdata
Dependency updates
- Update scalafmt-core to 3.4.2 (#851) @scala-steward
- Update sbt to 1.6.2 (#849) @scala-steward
- Update scalafmt-core to 3.4.0 (#848) @scala-steward
- Update scalatest to 3.2.11 (#847) @scala-steward
- Update scalafmt-core to 3.3.3 (#846) @scala-steward
- Update scala-library, scala-reflect to 2.13.8 (#843) @scala-steward
- Update sbt-scoverage to 1.9.3 (#842) @scala-steward
- Update sbt-github-actions to 0.14.2 (#819) @scala-steward
- Update scalafmt-core to 3.3.1 (#841) @scala-steward
- Update sbt to 1.6.1 (#840) @scala-steward
- Update sbt to 1.6.0 (#839) @scala-steward
- Update sbt-scalafmt to 2.4.6 (#836) @scala-steward
- Update scalafmt-core to 3.3.0 (#837) @scala-steward
- Update sbt to 1.5.8 (#833) @scala-steward
- Update sbt to 1.5.7 (#830) @scala-steward
- Update classgraph to 4.8.138 (#829) @scala-steward
- Update sbt to 1.5.6 (#826) @scala-steward
- Update refined to 0.9.28 (#816) @scala-steward
- Update scalafmt-core to 3.2.1 (#820) @scala-steward
- Update sbt-scalafmt to 2.4.5 (#821) @scala-steward
- Update scalafmt-core to 3.1.2 (#805) @scala-steward
Full Changelog: v3.0.0-RC7...v3.0.0-RC8
v3.0.0-RC7
Fix #795
What's Changed
- remove
DeliveryScheme
by @performantdata in #790 - make
ParserConfig.parboiledToSourceMapper
public by @performantdata in #796 - move parser into its own module by @performantdata in #792
Dependency updates
- Update sbt-scalafmt to 2.4.4 by @scala-steward in #799
- fix deprecated scalafmt default dialect by @yanns in #800
- scalafmt 3.1.1 by @yanns in #801
Full Changelog: v3.0.0-RC6...v3.0.0-RC7
v3.0.0-RC6
This release has a know issue: #795
What's Changed
- AST separation by @performantdata in #777
Full Changelog: v3.0.0-RC5...v3.0.0-RC6
v2.1.6
What's Changed
- deprecate & backport for AST separation by @performantdata in #784
Full Changelog: v2.1.5...v2.1.6
v3.0.0-RC5
What's Changed
Full Changelog: v3.0.0-RC4...v3.0.0-RC5
v2.1.5
v3.0.0-RC4
What's Changed
Full Changelog: v3.0.0-RC3...v3.0.0-RC4
v3.0.0-RC3
What's Changed
Full Changelog: v3.0.0-RC2...v3.0.0-RC3
v3.0.0-RC2
This version breaks binary and source compatibility with the 2.x versions.
What's Changed
- remove experimental OverlappingFieldsCanBeMerged by @yanns in #764
- Spelling by @jsoref in #765
- less allocation in ExecutionPath.add by @yanns in #769
- optimize StringUtil.escapeString by @yanns in #771
- Update sangria-marshalling-api to 1.0.7 by @scala-steward in #772, containing several performance improvements: https://github.com/sangria-graphql/sangria-marshalling-api/releases/tag/v1.0.7
New Contributors
Full Changelog: v3.0.0-RC1...v3.0.0-RC2