Skip to content

Releases: movio/bramble

v1.3.6

11 Apr 22:15
03264a7
Compare
Choose a tag to compare

What's Changed

  • Add nil pointer check for parent definition in extractSelectionSet by @joshiefu in #139
  • Remove service polling client keep alive by @lucianjon in #144

Full Changelog: v1.3.5...v1.3.6

v1.3.5

07 Apr 03:32
c70fa63
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.3.4...v1.3.5

v1.3.4

17 Feb 21:36
d501dfb
Compare
Choose a tag to compare

What's Changed

  • Improve Bramble timeout support by @joshiefu in #119
  • Handle nullable destinations in results merge of query execution by @pkqk in #123
  • Bump github.com/graph-gophers/graphql-go from 1.2.0 to 1.3.0 in /examples/graph-gophers-service by @dependabot in #118
  • Update gqlgen example deps to latest by @lucianjon in #126
  • Small changes for Movio by @pkqk in #124
  • Add custom http client option to GraphQLClient by @jainpiyush19 in #122

New Contributors

Full Changelog: v1.3.3...v1.3.4

v1.3.3

20 Dec 20:55
cedb672
Compare
Choose a tag to compare

What's Changed

  • Remove unused functions after execution refactor by @lucianjon in #111
  • Fix: broken namespace aliases and mutable selections by @gmac in #108
  • Refactor: interface selections have proper location by @gmac in #107
  • Add handling of ast.Interface to kindToStr by @lucianjon in #114
  • Dynamic boundary argument by @gmac in #115
  • Allow customization of the graph "id" field by @gmac in #116
  • Filter out null boundary results before calling nested child step by @lucianjon in #117

Full Changelog: v1.3.2...v1.3.3

v1.3.2

11 Nov 21:46
9c75195
Compare
Choose a tag to compare

This is another small bug fix release, the change in #105 will mean that the reserved alias (now _bramble__typename) for the bramble injected __typename is less likely to conflict with a user defined alias. Now all reserved aliases begin with _bramble.

What's Changed

  • Fix data race in query execution by @nmaquet in #102
  • Replace mutex with atomic primitives by @nmaquet in #103
  • Fix: merge composite scopes in final selection by @gmac in #104
  • Use _bramble__typename alias for bramble injected __typename by @lucianjon in #105
  • Example of gateway operating in a docker compose environment by @suessflorian in #86

Full Changelog: v1.3.1...v1.3.2

v1.3.1

08 Nov 06:07
Compare
Choose a tag to compare

This is a bug fix release which includes a number of fixes to Bramble's query planner and an issue where Bramble would fall out of sync with services if they went down and back up again.

  • always add __typename to abstract types. by @gmac in #91
  • fix schema syncing issue. by @lucianjon in #95
  • prevent user-defined aliases from breaking federation. by @gmac in #94

Small backwards-compatibility breakage: Bramble now rejects queries where __typename is used to alias a field not named __typename or _bramble_id is used to alias a field not named id.

Full Changelog: v1.3.0...v1.3.1

v1.3.0

03 Nov 21:59
bc9a9b9
Compare
Choose a tag to compare

This is a significant release that contains a new execution pipeline and important fixes to the query planner.

New Execution Pipeline

The code that receives the query plan and executes it step by step, before forming the response has been completely redone. There were enough significant changes we had planned that a rewrite became the simpler approach. While the changes are significant, they are self generally self contained and do not impact the other parts of bramble. The changes are contained in #74. Thanks to @nmaquet, @segfault88, and @suessflorian for the help on these.

Goals for the new pipeline

  • Handle the bugs that were cropping up when marshalling the merged result back into JSON. The previous approach of using the merged execution result to create the JSON was proving problematic when the shape of the results started to diverge from the request document. This was especially apparent when dealing with fragments and where most of the issues were contained. The new approach instead uses the GraphQL request document to guide the creation of the JSON response, which removes an entire class of bugs.
  • Remove any mutable state between the various execution steps. The previous code shared a map[string]interface{} that was passed between the steps and merged into step by step. This is now done by passing the responses down a channel and is then merged as a seperate stage after all the steps have been executed.
  • Deprecate unmaintained code paths.
  • Some general maintainability and readability improvements.

Visible Changes

  • The planner now injects __typename when it encounters fragments, this is to aid in marshalling fragments to JSON.
  • Support for the Node interface federation protocol has been dropped. This was briefly in use internally at Movio before the public release of Bramble.
  • Support for opentracing has been dropped, this was another code path that had been implemented early on but unused since.
  • When using the X-Bramble-Debug: timing header, the execution, merging, and marshalling steps are now shown as seperate values.

Query Planning Fixes

Huge thanks to @gmac for these, they are contained in #85 and #81.

Other Changes

Full Changelog: v1.2.1...v1.3.0

v1.3.0-rc.2

21 Oct 00:54
dbac320
Compare
Choose a tag to compare
v1.3.0-rc.2 Pre-release
Pre-release
  • Add missing dependancies for gqlgen server example
  • Buffer os.Interrupt channel
  • No error on fragment expansion when __typename is not required

v1.3.0-rc.1

01 Oct 01:35
7927df3
Compare
Choose a tag to compare
v1.3.0-rc.1 Pre-release
Pre-release

This release contains the rewritten execution pipeline. This change is mostly invisible, however it should greatly improve reliability when using fragments inside federated queries. It also drops support for the deprecated Node interface boundary field resolving support, as well as opentracing support (due to the lack of usage and maintenance).

v1.2.1

07 Jul 02:55
0e5bf81
Compare
Choose a tag to compare

Meta plugin: make BrambleService a boundary type