All Versions
Latest Version
Avg Release Cycle
47 days
Latest Release
132 days ago

Changelog History
Page 2

  • v0.10.1 Changes

    September 25, 2019

    ๐Ÿ›  Fixed

    • โœ… small bug in test client when establishing websockets with ports - #877
  • v0.10.0 Changes

    September 24, 2019

    ๐Ÿ”„ Changed

    • โœ… The test client is now much easier to extend, eg to add custom auth - #861
    • โœ… Directives are now supported on subscription fields. If you already have directives on the fields of Subscription this PR may cause runtime breaks, be sure to test your code. - #871
    • the WebsocketInitFunc now returns context.Context in addition to error, this allows ws authentication to be passed via context to resolvers the same way http header auth is - #870

    โž• Added

    • Added config option to omit_slice_element_pointers which if set to true will generate []Thing instead of []*Thing - #874
    • map[string]interface and interface{} can now be used in more places - #854
    • ๐Ÿ“ฆ Short package names (eg models.User) will now be looked up on the autobind path - #872

    ๐Ÿ›  Fixed

    • ๐Ÿ‘ Better error handling for nil directives - #839
    • ๐Ÿ‘ Better error handling for returning nil from directives - #838 && #819
    • The share button in the graphql playground is back - #862
  • v0.9.3 Changes

    August 16, 2019

    ๐Ÿ›  Fixed

    • Multiple directives on the same field no longer generate errors - #829
  • v0.9.2 Changes

    August 08, 2019

    โž• Added

    • Lots of doc improvements
    • ๐Ÿ‘• More linters - #805

    ๐Ÿ›  Fixed

    • gqlgen init should now work again - #781 #821
    • A keepalive is now sent on init - #820
    • ๐Ÿ windows infinite loop when unable to find a mod file - #822
    • Pointer checks for values returned by directives - #768
    • Missing comments on enums are now passed through to generated models - #780

    ๐Ÿš€ A big Thank You to everyone whos put in the time to make this release possible - @nii236 @pmachan @bugzpodder @flrossetto @andrey1s @Schparky @muesli @oshalygin @dissipative @y15e @zdebra @qhenkart @sunfmin @vvakame @lwc and many more.

  • v0.9.1 Changes

    June 27, 2019

    ๐Ÿ”„ Changed

    • There is a subtle break in argument directives, they used to receive the argument value as obj, but not receive the whole argument bag. The argument value should be fetched by calling next, so if you were relying on this behavior the implementation was incorrect and inconsistent with all other directive implementations.

    โž• Added

    • ๐Ÿ‘ schema file paths now support ** globs - #631
    • ๐Ÿ†• new WebsocketInitFunc hook on websocket connection to allow blocking websockets - #750
    • ๐Ÿ‘ Automatic Persisted Queries (APQ) support - #734
    • ๐Ÿ‘ execution (query) directive support for FIELD, QUERY, MUTATION and SUBSCRIPTION - #744 and #756
    • directives that allow config in schema - #732
    • models can now be automatically bound within a path - #761

    ๐Ÿ›  Fixed

    • ๐Ÿ“ฆ aliased types in external packages are now resolved correctly - #722
    • naming issues when setting resolver name in config - #728
  • v0.9.0 Changes

    May 15, 2019

    ๐Ÿš€ โš ๏ธ โš ๏ธ This release contains changes that require extra care โš ๏ธ โš ๏ธ

    Complexity changes

    โšก๏ธ A bug was preventing complexity funcs from being called, if you are using complexity functions when updating to 0.9 they may start working, and some requests may get blocked.

    โœ… If you dont have a great testsuite to lean on, we suggest turning off complexity and adding request middleware to determine your new high water mark

    handler.RequestMiddleware(func(ctx context.Context, next func(ctx context.Context) []byte) []byte { defer func() { fmt.Println("complexity was", graphql.GetRequestContext(ctx).OperationComplexity) }() return next(ctx) }),

    Enforcing Content-Type

    โœ… gqlgen now only accepts POST requests with multipart/form-data (new!) or application/json, this affect most clients but make sure you do some end to end testing with your clients.

    dep users

    โšก๏ธ You will probably get undefined: packages.NeedName when updating, this is because we have no way to force transitive dependencies to update for dep. You will need to run:

    dep ensure -update

    โšก๏ธ You should probably consider updating to go modules, they are actually pretty great (just make sure you're running at least gqlgen 0.8 first).

    ๐Ÿ”„ Changelog

    ๐Ÿ”„ Changed

    • Content type is now enforced for POST requests - #689
    • Fix complexity funcs had incorrect cases, causing them to NOT RUN - #668
    • IsZero is no longer automatically called on anything except time.Time - #702
    • Pointers are now automatically added for struct fields that are structs to prevent loops - #701
    • Pointers are now automatically added for slices of structs - #710

    ๐Ÿ›  Fixed

    • ๐Ÿ—„ Introspection now correctly filters deprecated - #687
    • More inconsistent cases - #700
    • โœ‚ Removed a data race - #705

    โž• Added

    • ๐Ÿ‘ File uploads are now supported - #655
    • ๐Ÿ”Œ Hard coded templates can now be used in plugins - #673
    • ๐Ÿ†• New Any type can be used the same way as map - #686
    • Mapping to objects onto scalars is now allowed - #706

    ๐ŸŽ Performance

    • โš™ runtime: Collect fields is now faster - #680
    • ๐ŸŽ generate: fixed a large performance regression with go modules and cgo - #707
  • v0.8.3 Changes

    April 03, 2019

    โž• Added

    • ๐Ÿ”Œ Plugins can add their own template funcs - #650

    ๐Ÿ›  Fixed

    • You can now override builtin types again - #652
    • slices (eg []byte) can now be used in custom scalars - #637
  • v0.8.2 Changes

    March 18, 2019

    ๐Ÿ”„ Changed

    • nils returned as [Thing] will return nulls, but only for non required arrays - #619
    • error path will prefer to use the user specified input path - #620
    • โšก๏ธ updated graphql playgroun - #613

    โž• Added

    • Can now determine from field context if that field was a method - #618
    • ๐Ÿ“„ docs for gin - #606
    • ๐Ÿ”ง complexity limit can now be configured per request - #610
    • ๐Ÿ“„ a new gqlgen workshop for our docs - #614

    ๐Ÿ›  Fixed

    • scalars with no explicit implentation will use string marshaling - #605
    • interfaces in unions are no longer wrapped in pointers - #633
    • 0๏ธโƒฃ any type aliasing string will use the default string marshaller - #634
    • complexity root should handle duplicate fields gracefully - #622
    • more initialisim case bugs - #591
    • getting started with dep should run smoothly again - #628
    • directive arguments with custom types - #604
    • ๐Ÿ“œ more parser validation - #611
    • ๐Ÿ“„ a bunch of map[string]interface{} issues, and added docs - #612
    • redeclaring a builtin optional scalar like Time or Map no longer generates an error - #635
  • v0.8.1 Changes

    March 06, 2019

    ๐Ÿ›  Fixed

    • ๐ŸŽ‰ Initialism casing is now much more consistent - #579
    • 0๏ธโƒฃ Default scalar implementation now works again - #575
    • Case mismatches in modelgen causing panics - #583
    • ๐Ÿ—„ Deprecated directive now works again - #580
  • v0.8.0 Changes

    March 04, 2019

    ๐Ÿš€ Another huge release. Lots of changes under the covers as we march on towards 1.0

    ๐Ÿš€ This release requires golang 1.11+

    โž• Added

    • ๐Ÿ‘€ we now support go modules - see the new getting started guide
    • ๐Ÿ‘€ First cut of the new plugin system. model and resolver generation are now plugins and can be replaced if you want. See plugins for more details.
    • ๐Ÿ‘€ There can now be multiple backing go types for a given graphql type. This means we can now support int, int32 and int64 at the same time for Int. You can also use this logic for automatically mapping protobuf timestamps to graphql Time. See config for the new config keys. - #534
    • ๐Ÿ‘Œ Support for directives on arguments and input fields - #460
    • Enums now generate an AllEnum list, so you can easily enumerate all valid values - #486
    • more validation of schemas, less weird errors (hopefully) - #526
    • ๐Ÿ‘ check IsZero on types that support it and convert to nulls on the wire - #540
    • ๐Ÿ‘Œ improved collect fields api and docs - #551

    ๐Ÿ”„ Changed

    • ๐ŸŽ Some small performance improvements - #465
    • we now always return pointers to structs from resovers - #375

    ๐Ÿ›  Fixed

    • some response were not setting the correct content type header - #532 #498
    • some case collision issues - #541
    • panics in weird places should be handled more gracefully - #554
    • Lots and lots of smaller bugs