NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #327 by repository stars
Last release 3 days ago
05 Oct 2026
Ships fairly regularly
a new release about every 9 days
Some releases are documented
notes for 26 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
2022 releases · first in 2018
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
f85d59d3 fixed modelgen test schema
<a href="https://github.com/99designs/gqlgen/commit/1f04d38a4441c5de6171400218b9dd25cebb3639"><tt>1f04d38a</tt></a> release v0.17.2
<a href="https://github.com/99designs/gqlgen/commit/87fc5f22e8fbfa28a180cbf0e7008af9f830273e"><tt>87fc5f22</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1961">#1961</a> for Go 1.18 (<a href="https://github.com/99designs/gqlgen/pull/2052">#2052</a>)
<a href="https://github.com/99designs/gqlgen/commit/f85d59d30ae055fd89b79aa3d7e3ca1c7fcaedfa"><tt>f85d59d3</tt></a> fixed modelgen test schema (<a href="https://github.com/99designs/gqlgen/pull/2032">#2032</a>)
<a href="https://github.com/99designs/gqlgen/commit/d873ff8bb9927b302752bd48d7836f2597db558e"><tt>d873ff8b</tt></a> v0.17.1 postrelease bump
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.17.1"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
a493a423 Prepare for new release
<a href="https://github.com/99designs/gqlgen/commit/5ea50aee16088ed414be73ca9a59a90f622c9483"><tt>5ea50aee</tt></a> release v0.17.1
<a href="https://github.com/99designs/gqlgen/commit/a493a4239673c5922281628fc8b94c727398283e"><tt>a493a423</tt></a> Prepare for new release
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/9f520a2897cf42750e7290cbd83de6fdf13f2e75"><tt>9f520a28</tt></a> Update golangci-lint and fix resource leak (<a href="https://github.com/99designs/gqlgen/pull/2024">#2024</a>)</summary>
Fix golangci-lint in CI
Fix resource leak
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/74baaa14c924871d100b56e8103ec27d678c33d0"><tt>74baaa14</tt></a> fixed model gen for multiple implemented type (<a href="https://github.com/99designs/gqlgen/pull/2021">#2021</a>)
<a href="https://github.com/99designs/gqlgen/commit/d31cf6bed5712e4015c286498ede649894e48d01"><tt>d31cf6be</tt></a> v0.17.0 postrelease bump
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.17.0"></a>
Nothing published for this version
Nothing published for this version
082bbff6 Revert "Update quickstart ( #1850 )"
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/082bbff65eaf9931d4637001635d72014033523f"><tt>082bbff6</tt></a> Revert "Update quickstart (<a href="https://github.com/99designs/gqlgen/pull/1850">#1850</a>)" (<a href="https://github.com/99designs/gqlgen/pull/2014">#2014</a>)</summary>
This reverts commit 0ab636144bfc875f86e4d9fd7a2686bc57d5050c.
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/a58411b804f848aa7e2e4547a1ba768f5dfdc8d3"><tt>a58411b8</tt></a> Embed templates instead of inlining them (<a href="https://github.com/99designs/gqlgen/pull/2019">#2019</a>)
<a href="https://github.com/99designs/gqlgen/commit/839b50df1c068e6b17adb27a68a26984ea363bcc"><tt>839b50df</tt></a> Test gqlgen generate in CI (<a href="https://github.com/99designs/gqlgen/pull/2017">#2017</a>)
<a href="https://github.com/99designs/gqlgen/commit/00dc14ad817806840ca4df4a04d7a658f6f38105"><tt>00dc14ad</tt></a> Remove ambient imports (<a href="https://github.com/99designs/gqlgen/pull/2016">#2016</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/45e192ea9fa2af6ed3b16e1a8b5c67276f13d34f"><tt>45e192ea</tt></a> Clean up docs to clarify how to use a particular version (<a href="https://github.com/99designs/gqlgen/pull/2015">#2015</a>) (closes <a href="https://github.com/99designs/gqlgen/issues/1851"> #1851</a>)</summary>
This reverts commit 57a148f6d12572fe585ecfcafafbb7441dbf9cab.
Update getting-started.md
Update getting-started.md
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/5236fb096802dc66ba9d11d096b2c6fa1ad24b14"><tt>5236fb09</tt></a> fix introspection for description to be nullable (<a href="https://github.com/99designs/gqlgen/pull/2008">#2008</a>)</summary>
fixed introspection for description to be nullable
regenerated for integration
regenerated
fixed introspection package
regenerated
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/82fefdb51046ca80506292f25dcb2d636301f865"><tt>82fefdb5</tt></a> support to generate model for intermediate interface (<a href="https://github.com/99designs/gqlgen/pull/1982">#1982</a>)</summary>
support to generate model for intermediate interface
go generate ./... in example
fixed filepath generation
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/3ec8363554ff17e3ffb3e86c58f1ee2d5689e798"><tt>3ec83635</tt></a> Bump ajv from 6.10.2 to 6.12.6 in /integration (<a href="https://github.com/99designs/gqlgen/pull/2007">#2007</a>)</summary>
Bumps ajv from 6.10.2 to 6.12.6.
updated-dependencies:
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/9546de2c825c92318230d21d525791dfa3f0f184"><tt>9546de2c</tt></a> Web Socket initialization message timeout (<a href="https://github.com/99designs/gqlgen/pull/2006">#2006</a>)</summary>
Added an optional timeout to the web socket initialization message read operation.
Added a fail message to a web socket init read timeout test.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/f6ea623003fe8b8f40beb1b545a6dc91a2af0f12"><tt>f6ea6230</tt></a> fixed introspection for schema description and specifiedByhttps://github.com/99designs/gqlgen (<a href="https://github.com/99designs/gqlgen/pull/1986">#1986</a>)</summary>
fixed introspection for schema description and specifiedByURL
updated to the master latest
fixed Description resolver
updated integration go file
fixed codegen tests for the latest gqlparser
updated go mod in example
go generate
skip specifiedBy
regenerate
fixed schema-expected.graphql for the latest
fixed integration test to use latest tools
fixed integration workflow
use v2.4.0
fixed sum
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/f17ca15e1fab4837ebcca99958e1651034e48852"><tt>f17ca15e</tt></a> Fix broken links in docs (<a href="https://github.com/99designs/gqlgen/pull/1983">#1983</a>) (closes <a href="https://github.com/99designs/gqlgen/issues/1734"> #1734</a>)
<a href="https://github.com/99designs/gqlgen/commit/a0c856b72e1e001633388644310a388342d7d0ff"><tt>a0c856b7</tt></a> Added a callback error handling function to the websocket and added tests for it. (<a href="https://github.com/99designs/gqlgen/pull/1975">#1975</a>)
<a href="https://github.com/99designs/gqlgen/commit/cfea9f07627143fd184e8f36448cb501006bc63a"><tt>cfea9f07</tt></a> generate resolvers for input types (<a href="https://github.com/99designs/gqlgen/pull/1950">#1950</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/ffa857ef346e87215bd985b5e84330b0f31afe96"><tt>ffa857ef</tt></a> Websocket i/o timeout fix (<a href="https://github.com/99designs/gqlgen/pull/1973">#1973</a>)</summary>
Renamed "pingMesageType" to "pingMessageType" and refactored websocket_graphqlws.go to look more like websocket_graphql_transport_ws.go for the sake of consistency.
Made the keep-alive messages graphql-ws only, and the ping-pong messages graphql-transport-ws only (and added tests for it).
gofmt
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/d7da5b0d3b3cffa0cdb30fa7dcf16c87d8434e7e"><tt>d7da5b0d</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1958">#1958</a> from 99designs/cleanup-main</summary>
Cleanup main
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/42f32432b068b381d4666a56da50ebf73520831f"><tt>42f32432</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1957">#1957</a> from 99designs/move-init-ci</summary>
Upate init CI step
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/be1647480a2c89bac80c094e0fa7f5ffda7fe602"><tt>be164748</tt></a> Cleanup main
<a href="https://github.com/99designs/gqlgen/commit/8ea290c0854579f7cb6746fb7e51485fda01a6b6"><tt>8ea290c0</tt></a> Upate init CI step
<a href="https://github.com/99designs/gqlgen/commit/56bfb1880603486189025f043d8155beaa9f53d2"><tt>56bfb188</tt></a> Fix 1955: only print message on @key found on interfaces (<a href="https://github.com/99designs/gqlgen/pull/1956">#1956</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/213a085b954945eeaa1fc87f0fedef2c07fe14c1"><tt>213a085b</tt></a> rename "example" dir to "_examples" (<a href="https://github.com/99designs/gqlgen/pull/1734">#1734</a>)</summary>
rename "example" dir to "_examples"
fix lint
Adjust permissions
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/9262b35865e4a8c62749a0bdf4cce075877a8b4f"><tt>9262b358</tt></a> fix: typo in dataloader code sample (<a href="https://github.com/99designs/gqlgen/pull/1954">#1954</a>)</summary>
fix: typo in dataloader code sample
rename k to key for sample to compile
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/06bbca37286edb32db2480db6d200b709ae071a9"><tt>06bbca37</tt></a> docs: migrate dataloaders sample to graph-gophers/dataloader (<a href="https://github.com/99designs/gqlgen/pull/1871">#1871</a>)</summary>
docs: add dataloader sample
finish example
add example
simplify method
replace old example
styling
Update docs/content/reference/dataloaders.md
Update docs/content/reference/dataloaders.md
Update docs/content/reference/dataloaders.md
Update docs/content/reference/dataloaders.md
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/f9fcfa16a13c64ecfb298ad6cf97b3548b7ee0ff"><tt>f9fcfa16</tt></a> Comment out autobind in the sample config file (<a href="https://github.com/99designs/gqlgen/pull/1872">#1872</a>)</summary>
The reason is that many people using it for the first time copy exactly that configuration example and then open the issues to say it doesn't work.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/76a533b8161ad3ee56b721404650697cce808221"><tt>76a533b8</tt></a> Bump gopkg.in/yaml.v2 from 2.2.4 to 2.2.8 (<a href="https://github.com/99designs/gqlgen/pull/1858">#1858</a>)</summary>
Bumps gopkg.in/yaml.v2 from 2.2.4 to 2.2.8.
updated-dependencies:
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/eed4301c7123e329e067600fe25aa1c876c99b8d"><tt>eed4301c</tt></a> Bump node-fetch from 2.6.1 to 2.6.7 in /integration (<a href="https://github.com/99designs/gqlgen/pull/1859">#1859</a>)</summary>
Bumps node-fetch from 2.6.1 to 2.6.7.
updated-dependencies:
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/7f5dce6d9eebe829edf20ba67e5c5019921fa1ee"><tt>7f5dce6d</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1776">#1776</a> : Edit and persist headers in GraphiQL (<a href="https://github.com/99designs/gqlgen/pull/1856">#1856</a>)
<a href="https://github.com/99designs/gqlgen/commit/e0b42f9981825814e9ec7c216d9c393b2486831c"><tt>e0b42f99</tt></a> fix requires directive with nested field when entityResolver directive is used (<a href="https://github.com/99designs/gqlgen/pull/1863">#1863</a>)
<a href="https://github.com/99designs/gqlgen/commit/25c2cdcb12d574e597e8902ab9e2d94b1e5ef974"><tt>25c2cdcb</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1636">#1636</a> by updating gqlparser (<a href="https://github.com/99designs/gqlgen/pull/1857">#1857</a>)
<a href="https://github.com/99designs/gqlgen/commit/c161ab382547948feb9a54e7bf9ff17458b8c3c9"><tt>c161ab38</tt></a> fix <a href="https://github.com/99designs/gqlgen/pull/1770">#1770</a> minor error in getting-started.md (<a href="https://github.com/99designs/gqlgen/pull/1771">#1771</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/57a148f6d12572fe585ecfcafafbb7441dbf9cab"><tt>57a148f6</tt></a> Remove outdated version reference so example is always for latest (<a href="https://github.com/99designs/gqlgen/pull/1851">#1851</a>)</summary>
Also update version reference to next
Update getting-started.md
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/a8eba26dec863c5d34905ab6408f970b4d2abdb5"><tt>a8eba26d</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1777">#1777</a> by updating version constant and adding release checklist (<a href="https://github.com/99designs/gqlgen/pull/1848">#1848</a>)</summary>
</details></dd></dl>
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.16.0"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
b90f9750 Merge branch 'master' of github.com:99designs/gqlgen
<a href="https://github.com/99designs/gqlgen/commit/b90f9750f40583823a3e875d6bbe1538ce50f527"><tt>b90f9750</tt></a> Merge branch 'master' of github.com:99designs/gqlgen
<a href="https://github.com/99designs/gqlgen/commit/99523e44ae67633ecfa714794a209191d3519017"><tt>99523e44</tt></a> Prepare for v0.16.0 release (<a href="https://github.com/99designs/gqlgen/pull/1842">#1842</a>)
<a href="https://github.com/99designs/gqlgen/commit/0563146c6bd7188b2ae187040c5a7f3d17cc9f89"><tt>0563146c</tt></a> Prepare for v0.16.0 release
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/7cefef26f7b714eb9d5be117ba2159d4e40168f3"><tt>7cefef26</tt></a> add PrependPlugin (<a href="https://github.com/99designs/gqlgen/pull/1839">#1839</a>)</summary>
related: https://github.com/99designs/gqlgen/pull/1838
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/972878a04fc8e9065df212b7cdbe934f141d069b"><tt>972878a0</tt></a> Revert "Fix plugin addition (<a href="https://github.com/99designs/gqlgen/pull/1717">#1717</a>)" (<a href="https://github.com/99designs/gqlgen/pull/1838">#1838</a>)</summary>
This reverts commit f591c8f797e35635fb5eb0e4465c77b6a073896b.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/1ed7e050a1f736b7395dd3e61f771d3ddcf80a8d"><tt>1ed7e050</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1832">#1832</a> @requires directive when @entityResolver is used (<a href="https://github.com/99designs/gqlgen/pull/1833">#1833</a>)</summary>
fix requires directive for multipleEntity directive
fix lint
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/fcee4c404f52c2debcb8b8acaa31421804f625ea"><tt>fcee4c40</tt></a> Update README.md (<a href="https://github.com/99designs/gqlgen/pull/1836">#1836</a>)</summary>
Corrected a simple grammar typo.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/3fb5fd9916896d2c084c646093b3cbd634f61121"><tt>3fb5fd99</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1834">#1834</a>: Implement federation correctly (<a href="https://github.com/99designs/gqlgen/pull/1835">#1835</a>)</summary>
Fix federation implementation which does not conform to Apollo Federation subgraph specification
Optimize generated line breaks
Run go generate
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/986650718267770018139713df874a70e1e79e16"><tt>98665071</tt></a> Imporve gqlgen test cases (<a href="https://github.com/99designs/gqlgen/pull/1773">#1773</a>) (closes <a href="https://github.com/99designs/gqlgen/issues/1765"> #1765</a>)</summary>
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/5d904d8782833d85ca6fedb47420237b3258eb66"><tt>5d904d87</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1778">#1778</a> from ipfans/gh-pages-patch</summary>
Bump gqlgen.com version list
</details></dd></dl>
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.15.1"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
7102a36b Prepare for 0.15.1 release
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/2b8f50b3b38b129f56e06c3dadccd0cb8667a741"><tt>2b8f50b3</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1765">#1765</a>: Sometimes module info not exists or not loaded. (<a href="https://github.com/99designs/gqlgen/pull/1767">#1767</a>)</summary>
</details></dd></dl>
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.15.0"></a>
Nothing published for this version
Nothing published for this version
931271a2 Fix #1762 : Reload packages before merging type systems
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/931271a2f3af4cf50de702855d396cde02a3d99f"><tt>931271a2</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1762">#1762</a>: Reload packages before merging type systems (<a href="https://github.com/99designs/gqlgen/pull/1763">#1763</a>)</summary>
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/57664bf0369a843e56f74f4f1951a1808656fe99"><tt>57664bf0</tt></a> Migrate playgrounds to GraphiQL (<a href="https://github.com/99designs/gqlgen/pull/1751">#1751</a>)</summary>
migrate to GraphiQL playground
fix lint
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/b2a832d51d5d67463d35fc1397b7d6133e1d6b43"><tt>b2a832d5</tt></a> Avoid problems with val being undefined in the federation template. (<a href="https://github.com/99designs/gqlgen/pull/1760">#1760</a>)</summary>
val being undefined in the federation template.When running gqlgen over our schema, we were seeing errors like:
assignments/generated/graphql/service.go:300:4: val declared but not used
The generated code looks like this:
func entityResolverNameForMobileNavigation(ctx context.Context, rep map[string]interface{}) (string, error) {
for {
var (
m map[string]interface{}
val interface{}
ok bool
)
m = rep
if _, ok = m["kaid"]; !ok {
break
}
m = rep
if _, ok = m["language"]; !ok {
break
}
return "findMobileNavigationByKaidAndLanguage", nil
}
return "", fmt.Errorf("%w for MobileNavigation", ErrTypeNotFound)
}
Looking at the code, it's pretty clear that this happens when there
are multiple key-fields, but each of them has only one keyField.Field
entry. This is because the old code looked at len(keyFields) to
decide whether to declare the val variable, but looks at
len(keyField.Field) for each keyField to decide whether to use the
val variable.
The easiest solution, and the one I do in this PR, is to just declare
val all the time, and use a null-assignment to quiet the compiler
when it's not used.
run go generate to update generated files
run go generate to update moar generated files
Adding a test for verify that this fixes the issue.
From plugins/federation, run the following command and verify that no errors are produced
go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.yml
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/47015f12e3aa26af251fec67eab50d3388c17efe"><tt>47015f12</tt></a> Added pointer to a solution for no Go files err (<a href="https://github.com/99designs/gqlgen/pull/1747">#1747</a>)</summary>
While following the instructions in this getting started guide I run into this error package github.com/99designs/gqlgen: no Go files which was pretty annoying to fix. Its a golang issue but for people who are unfamiliar with how the go generate command works in vendored projects its a blocker trying to follow the rest of this guide. It will be really nice to at least have a pointer in the guide for people to find a possible solution to the issue while going through the guide. I'm sure many folks have run into this issue given vendoring is now very popular with the latest go releases.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/14cfee7002fb07f3f247b13582fe45959f7133de"><tt>14cfee70</tt></a> Support for multiple @key directives in federation (reworked) (<a href="https://github.com/99designs/gqlgen/pull/1723">#1723</a>)</summary>
Still missing:
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/44beadc1d037a0d46c799c85d88dc71a57f3938b"><tt>44beadc1</tt></a> Fix list coercion when using graphql variables (<a href="https://github.com/99designs/gqlgen/pull/1740">#1740</a>)</summary>
This was broken by an upstream dependency gqlparser coercing variables during validation. this has broken the existing coercion process withing gqlgen
test: add list coercion integration tests
chore: regenerate generated code
test: update expected schema for integration tests
chore: run goimports
chore: regenerate examples
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/bd8938d853e0aade3eab106e35f28d586e355124"><tt>bd8938d8</tt></a> fix: automatically register built-in directive goTag (<a href="https://github.com/99designs/gqlgen/pull/1737">#1737</a>)</summary>
fix: automatically register built-in tag goTag
doc: add directive config documentation
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/497227faf4e43266bf1a8f9ef756b98ef85cfee7"><tt>497227fa</tt></a> Close Websocket Connection on Context close/cancel (<a href="https://github.com/99designs/gqlgen/pull/1728">#1728</a>)</summary>
Added code to the web socket so it closes when the context is cancelled (with an optional close reason).
Added a test.
go fmt
Fix linter issues about the cancel function being thrown away.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/213ecd93c2593a535efc291b065966573d798a5d"><tt>213ecd93</tt></a> Add support for graphql-transport-ws with duplex ping-pong (<a href="https://github.com/99designs/gqlgen/pull/1578">#1578</a>)</summary>
Add support for graphql-transport-ws with duplex ping-pong
Add tests for the duplex ping-pong
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/ae92c83d7f7d14ab3a29016eb71d577e1c66721e"><tt>ae92c83d</tt></a> add federation tests (<a href="https://github.com/99designs/gqlgen/pull/1719">#1719</a>)
<a href="https://github.com/99designs/gqlgen/commit/f591c8f797e35635fb5eb0e4465c77b6a073896b"><tt>f591c8f7</tt></a> Fix plugin addition (<a href="https://github.com/99designs/gqlgen/pull/1717">#1717</a>)
<a href="https://github.com/99designs/gqlgen/commit/8fa6470f9e0eb8d85e90f211a90b0ea38a228f35"><tt>8fa6470f</tt></a> Fix <a href="https://github.com/99designs/gqlgen/pull/1704">#1704</a>: handle @required nested fields as in @key (<a href="https://github.com/99designs/gqlgen/pull/1706">#1706</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/af33b7cd2486d52363ba1ed90e1963ce12c22250"><tt>af33b7cd</tt></a> Cleaning up extra return in federation generated code (<a href="https://github.com/99designs/gqlgen/pull/1713">#1713</a>)</summary>
In PR 1709, I introduced GetMany semantics for resolving federated entities. But I left a couple of extra return statements in the generated code that are not necessary. So Im just cleaning those up here.
Also added go:generate in federation entity resolver tests to make it simpler to test.
To test:
go generate ./... && cd example/ && go generate ./... && cd ..
go test -race ./... && cd example && go test -race ./... && cd ..
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/402a22593f6fe71ff33d805a057de0f331eded5a"><tt>402a2259</tt></a> Optimize performance for binder, imports and packages (Rebased from sbalabanov/master) (<a href="https://github.com/99designs/gqlgen/pull/1711">#1711</a>)</summary>
Cache go.mod resolution for module name search
Optimize binder.FindObject() for performance by eliminating repeatitive constructs
Optimize allocations in packages.Load() function
Optimize binder.FindObject() by indexing object definitions for each loaded package
goimports to fix linting
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/50292e99d5cd0021f9fbec6118e406e4da86505b"><tt>50292e99</tt></a> Resolve multiple federated entities in a single entityResolve call (<a href="https://github.com/99designs/gqlgen/pull/1709">#1709</a>)</summary>
Entity resolver functions can only process one entity at a time. But often we want to resolve all the entities at once so that we can optimize things like database calls. And to do that you need to add you'd need to add batching with abstractions like dataloadgen or batchloader. The drawback here is that the resolver code (the domain logic) gets more complex to implement, test, and debug.
An alternative is to have entity resolvers that can process all the representations in a single call so that domain logic can have access to all the representations up front, which is what Im adding in this PR.
There are a few moving pieces here: 3. When that's configured, the federation plugin will create an entity resolver that will take a list of representations.
Please note that this is very specific to federation and entity resolvers. This does not add support for resolving fields in an entity.
Some of the implementation details worth noting. In order to efficiently process batches of entities, I group them by type so that we can process groups of entities at the same time. The resolution of groups of entities run concurrently in Go routines. If there is only one type, then that's just processed without concurrency. Entities that don't have multiget enabled will still continue to resolve concurrently with Go routines, and entities that have multiget enabled just get the entire list of representations.
The list of representations that are passed to entity resolvers are strongly types, and the type is generated for you.
There are lots of new tests to ensure that there are no regressions and that the new functionality still functions as expected. To test:
plugin/federationgo run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.ymlgo test ./.... Verify they all pass.You can look at the federated code in plugin/federation/testdata/entityresolver/gederated/federation.go
Added InputType in entity to centralize logic for generating types for multiget resolvers.
reformat and regenerate
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/80713b84cf937b203cbd745603809e0d72f1dd84"><tt>80713b84</tt></a> Adding entity resolver tests for errors, entities with different type… (<a href="https://github.com/99designs/gqlgen/pull/1708">#1708</a>)</summary>
The tests in this PR are for ensuring we get the expected errors from entity resolvers, that we also handle resolving entities where the representations are for different types, and that requires directive works correctly.
To run tests:
plugin/federationgo run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.ymlgo test ./.... Verify they all pass.</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/828820afa95e4e66857839cbcbf6584665cef10c"><tt>828820af</tt></a> transport: implement graphql-transport-ws ws sub-protocol (<a href="https://github.com/99designs/gqlgen/pull/1507">#1507</a>)</summary>
websocket: create messageExchanger to handle subprotocol messages
remove unused type
typo in comments
change graphqlwsMessageType type to string
add support for graphql-transport-ws subprotocol
fix chat app example
update example chat app dependencies
improve chat app exmaple to use the recommended ws library
add tests
removed unused const in tests
Update example/chat/readme.md
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/28caa6ce504b4ed206407dcaea8f8418feb91888"><tt>28caa6ce</tt></a> Ignore generated files from test coverage (<a href="https://github.com/99designs/gqlgen/pull/1699">#1699</a>)
<a href="https://github.com/99designs/gqlgen/commit/7ac988dee1187a27bb1290fe25f7b179f6102e42"><tt>7ac988de</tt></a> Fix linting issue
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/01d3c4f8c0b732ee85b919415322fdb190127fac"><tt>01d3c4f8</tt></a> Entity resolver tests (<a href="https://github.com/99designs/gqlgen/pull/1697">#1697</a>)</summary>
Reorganizing the tests in the federation plugin a little bit so make it simpler to add more safely without testdata colliding. This is in anticipation for a follow up PR for adding entity resolver tests.
Run the tests with go test ./plugin/federation/... and verify they all pass. Also verify that the testdata/allthething directory has a generated directory specific to that test.
NOTE: There is a catch all type of test that I moved to the directory allthething. Open to suggestions for a better name! One potential thing to considere here is to split up the tests that use that testdata and break them down into more specific tests. E.g. Add a multikey test in the testdata/entity. For now, Im leaving that as a TODO.
The tests work by sending _entities queries with representation variables directly to the mocked server, which will allow us to test generated federation code end to end. For context, the format of the entity query is something like:
query($representations:[_Any!]!){_entities(representations:$representations){ ...on Hello{secondary} }}
And representations are the list of federated keys for the entities being resovled, and they look like
representations: [{
"__typename": "Hello",
"name": "federated key value 1",
}, {
"__typename": "Hello",
"name": "federated key value 2",
}]
The entity resolver tests are in plugin/federation/federation_entityresolver_test.go and they rely on plugin/federation/testdata/entityresolver.
To run the tests:
go run github.com/99designs/gqlgen --config testdata/entityresolver/gqlgen.ymlgo test ./... or similar</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/b7db36d368c260d90fb5fa6084c295d92c1a001d"><tt>b7db36d3</tt></a> Revert "Support for multiple @key directives in federation (<a href="https://github.com/99designs/gqlgen/pull/1684">#1684</a>)" (<a href="https://github.com/99designs/gqlgen/pull/1698">#1698</a>)</summary>
This reverts commit 47de912f56cd4bd6da9b74929cd67b8881617026.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/47de912f56cd4bd6da9b74929cd67b8881617026"><tt>47de912f</tt></a> Support for multiple @key directives in federation (<a href="https://github.com/99designs/gqlgen/pull/1684">#1684</a>)</summary>
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/59a30919a8d8a9b67972cc7e4dd1e425901f15c2"><tt>59a30919</tt></a> Reimplement goTag using FieldMutateHook (<a href="https://github.com/99designs/gqlgen/pull/1682">#1682</a>)</summary>
This change does not change the logic of goTag, merely reimplements it using a FieldMutateHook and sets it as the default FieldMutateHook for the modelgen plugin.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/37a4e7eefa241dd7e5eeab7bbca56b1677d37daf"><tt>37a4e7ee</tt></a> Rename [@extraTag](https://github.com/extraTag) directive to [@goTag](https://github.com/goTag) and make repeatable (<a href="https://github.com/99designs/gqlgen/pull/1680">#1680</a>)</summary>
Allow Repeatable goTag Directive
Default to field name if none provided
Update Docs
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/87f9e436e922a977b6002bb3070f087641001782"><tt>87f9e436</tt></a> Fix nil pointer dereference when an invalid import is bound to a model (<a href="https://github.com/99designs/gqlgen/pull/1676">#1676</a>)</summary>
Fixes remaining Name field in singlefile test
Fixes nill pointer dereference when an invalid import is bound to a model
Only return error if we failed to find type
Revert "Fixes remaining Name field in singlefile test"
This reverts commit e43ebf7aa80f884afdb3feca90867b1eff593f01.
Totally accidental, sorry!
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/6c65e8f15389e8aad7e20e7ba4a9b3ff4be565d9"><tt>6c65e8f1</tt></a> Update getting-started.md (<a href="https://github.com/99designs/gqlgen/pull/1674">#1674</a>)</summary>
missing an 's' on quoted filename default
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/7db941a56e742dca10cbba1e32d4d09458cdc8ef"><tt>7db941a5</tt></a> Fix 1138: nested fieldset support (<a href="https://github.com/99designs/gqlgen/pull/1669">#1669</a>)</summary>
formatting
update federation schema to latest Apollo spec
also: handle extra spaces in FieldSet upgrade deps in federation integration tests
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/488a31fc12979b825b166cf6f317f4b27ee456a0"><tt>488a31fc</tt></a> ContextMarshaler (<a href="https://github.com/99designs/gqlgen/pull/1652">#1652</a>)</summary>
Add interface and detection for ContextMarshaler
Test error on float marshalling
Revert prettier changes
Rename context test
Only use the erroring float printer
Test that context is passed to marshal functions
Update scalar docs to include the context
Generate the examples
Move ContextMarshaller test code to new followschema
Resolve conflict a little more
Replicate sclar test for singlefile
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/a626d9b47e54e4439976d3ad333dfefe4c2710d6"><tt>a626d9b4</tt></a> Add ICMP to common initialisms (<a href="https://github.com/99designs/gqlgen/pull/1666">#1666</a>)
<a href="https://github.com/99designs/gqlgen/commit/db4b5eb71b4959c3f8b68086b753ec3c01c5b4c9"><tt>db4b5eb7</tt></a> Merge Inline Fragment Nested Interface Fields (<a href="https://github.com/99designs/gqlgen/pull/1663">#1663</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/8b9737179d3ba08405ab6422fb8c4883dd8e720c"><tt>8b973717</tt></a> Update directives doc page (<a href="https://github.com/99designs/gqlgen/pull/1660">#1660</a>)</summary>
Update directives doc page
Add back one beloved piece of jargon
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/1f500016aedcb9bc35eb9964b55730efe966ef5e"><tt>1f500016</tt></a> Add follow-schema layout for exec (<a href="https://github.com/99designs/gqlgen/pull/1309">#1309</a>) (closes <a href="https://github.com/99designs/gqlgen/issues/1265"> #1265</a>)</summary>
When support for writing generated code to a directory instead of a single file is added, ExecConfig will need additional fields that will not be relevant to other users of PackageConfig.
When ExecLayout is set to follow-schema, output generated code to a
directory instead of a single file. Each file in the output directory
will correspond to a single *.graphql schema file (plus a
root!.generated.go file containing top-level definitions that are not
specific to a single schema file).
ExecLayout defaults to single-file, which is the current behavior, so
this new functionality is opt-in.
These layouts expose similar functionality to the ResolverLayouts with
the same name, just applied to exec instead of resolver.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/129783590c9cb8c709a2b0e9cbb7b69f022ee78a"><tt>12978359</tt></a> Update GQLgen test client to work with multipart form data (take 2) (<a href="https://github.com/99designs/gqlgen/pull/1661">#1661</a>)</summary>
Update the GQLgen to support multipart form data, like those present within the fileupload examples.
(cherry picked from commit 101842f73fb79b10c1299bb40506080e08543ec6)
Add a WithFiles GQLgen client option to support the fileupload input
within tests, using the core Golang os package and File type, which
converts os.Files to their appropriate multipart form data within a
request.
application/json Content-Type to supported multipart/form-data(cherry picked from commit 08ef942416c98a2cadf61223308a3ff3c879d1c9)
Update the fileupload test to use the GQLgen test client and WithFiles
option to remove the need for createUploadRequest helper with raw http
posts
Fix setting the Content Type by using the appropriate http package
function to dectect it
(cherry picked from commit 5e573d51440eba9d457adb4186772577b28ef085)
(cherry picked from commit 6dfa3cbe0647138e80a59a0c1d55dd9c900f96f2)
WithFiles optionUpdate the file upload tests to use the GQL test client and its
WithFiles option to remove the need for a custom raw HTTP post request
builder createUploadRequest.
Also update WithFiles option to group & map identical files; e.g.
{ "0": ["variables.req.0.file", "variables.req.1.file"] }
(cherry picked from commit 486d9f1b2b200701f9ce6b386736a633547c1441)
WithFiles does not add duplicates to multipart form data(cherry picked from commit 0c2364d8495553051d97ab805618b006fcd9eddb)
WithFiles tests(cherry picked from commit ba10b5b1c52a74e63e825ee57c235254e8821e0d)
Fix a problem with how strict the test's expected response was for tests with files in their request, since it always expected a strict order of files input that is somewhat random or dependent on what OS it is running the test on and/or race condition
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/7435403cf94ce8147fdd9d473a5469d63e7e5b38"><tt>7435403c</tt></a> Adds RootFieldInterceptor to extension interfaces (<a href="https://github.com/99designs/gqlgen/pull/1647">#1647</a>)</summary>
Adds RootFieldInterceptor to extension interfaces
Regenerates example folder
Re-generate after changes
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/658195b79d8c9072a90419ce3ddccda4e430ebf0"><tt>658195b7</tt></a> Revert "Update GQLgen test client to work with multipart form data (<a href="https://github.com/99designs/gqlgen/pull/1418">#1418</a>)" (<a href="https://github.com/99designs/gqlgen/pull/1659">#1659</a>)</summary>
This reverts commit 1318f12792e86c76a2cdff9132ebac5b3e30e148.
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/41c867658a9eacf94b3c682121b03727e18940d5"><tt>41c86765</tt></a> Revert 1595 (<a href="https://github.com/99designs/gqlgen/pull/1658">#1658</a>)
<a href="https://github.com/99designs/gqlgen/commit/8359f9749e6fd54be20325ff6aafb05503124238"><tt>8359f974</tt></a> Allow custom websocket upgrader (<a href="https://github.com/99designs/gqlgen/pull/1595">#1595</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/1318f12792e86c76a2cdff9132ebac5b3e30e148"><tt>1318f127</tt></a> Update GQLgen test client to work with multipart form data (<a href="https://github.com/99designs/gqlgen/pull/1418">#1418</a>)</summary>
Update the GQLgen to support multipart form data, like those present within the fileupload examples.
Add a WithFiles GQLgen client option to support the fileupload input
within tests, using the core Golang os package and File type, which
converts os.Files to their appropriate multipart form data within a
request.
application/json Content-Type to supported multipart/form-dataUpdate the fileupload test to use the GQLgen test client and WithFiles
option to remove the need for createUploadRequest helper with raw http
posts
Fix setting the Content Type by using the appropriate http package
function to dectect it
Update WithFiles option test with multipart Reader
Update file upload tests WithFiles option
Update the file upload tests to use the GQL test client and its
WithFiles option to remove the need for a custom raw HTTP post request
builder createUploadRequest.
Also update WithFiles option to group & map identical files; e.g.
{ "0": ["variables.req.0.file", "variables.req.1.file"] }
Make sure WithFiles does not add duplicates to multipart form data
Fix use of byte vs string in WithFiles tests
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/f6c35be2128d8d0ec6c0c0d63bc0f135292ab5fe"><tt>f6c35be2</tt></a> Add ReplacePlugin option to replace a specific plugin (<a href="https://github.com/99designs/gqlgen/pull/1657">#1657</a>)</summary>
Add Helper Option for replacing plugins
Update recipe to use ReplacePlugin instead of NoPlugin and AddPlugin
fix linting issue on comment
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/f8c46600aa005be4d62e52ca6f4a0467480c58c2"><tt>f8c46600</tt></a> fix double indirect bug (<a href="https://github.com/99designs/gqlgen/pull/1604">#1604</a>) (closes <a href="https://github.com/99designs/gqlgen/issues/1587"> #1587</a>)</summary>
invalid code generated
update code generation for pointer-to-pointer updating
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/629c91a2dff9982a5c469f25e8076ab7737e167a"><tt>629c91a2</tt></a> remove extra WithOperationContext call (<a href="https://github.com/99designs/gqlgen/pull/1641">#1641</a>)
<a href="https://github.com/99designs/gqlgen/commit/35199c49ab02648b518d5653ee25eac3e3627602"><tt>35199c49</tt></a> codegen: ensure Elem present before using (<a href="https://github.com/99designs/gqlgen/pull/1317">#1317</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/bfea93cdf3594edf0924e5ecd251eea09a1d35cb"><tt>bfea93cd</tt></a> Reload config packages after generating models (<a href="https://github.com/99designs/gqlgen/pull/1491">#1491</a>)</summary>
If models are generated in a package that has already been loaded, and
that package refers to another package that has already been loaded, we
can find ourselves in a position where it appears that a GQL union is
not satisfied.
For example, if we have:
union Subject = User
with this gqlgen.yml in github.com/wendorf/gqlgen-error/gql:
schema:
- schema.graphql
exec:
filename: generated.go
model:
filename: models_gen.go
models:
User:
model: github.com/wendorf/gqlgen-error/gql.User
Subject:
model: github.com/wendorf/gqlgen-error/models.Subject
Note that our User model is in the github.com/wendorf/gqlgen-error.gql package, and our models_gen.go will be generated in that same package.
When we try to run gqlgen, we get this error:
merging type systems failed: unable to bind to interface: github.com/wendorf/gqlgen-error/gql.User does not satisfy the interface github.com/wendorf/gqlgen-error/models.Subject
Digging deeper, it's because we use types.Implements in codegen/interface.go, which does a shallow object comparison. Because the type has been reloaded, it refers to a different interface type object than the one we're comparing against, and get a false negative.
By clearing the package cache and repopulating it, the whole package cache is generated at the same time, and comparisons across packages work.
To see a demo of this, check out https://github.com/wendorf/gqlgen-error and try the following:
go generate ./... to see
that it worksgo generate ./...
to see that it works again. This branch adds a go.mod replace
directive to use the gqlgen code in this PR.The demo starts at v0.10.2 since it is the last release without this problem. https://github.com/99designs/gqlgen/pull/1020 introduces the code that fails in this scenario.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/9e0817cdc7428ea9f3a1542faaca72ce9c5f317c"><tt>9e0817cd</tt></a> Add graphql schema aware field level hook to modelgen (<a href="https://github.com/99designs/gqlgen/pull/1650">#1650</a>)</summary>
Currently, the only mechanism for extending the model generation is to use a BuildMutateHook at the end of the model generation process. This can be quite limiting as the hook only has scope of the model build and not the graphql schema which has been parsed.
This change adds a hook at the end of the field creation process which provides access to the parsed graphql type definition and field definition. This allows for more flexibility for example adding additional tags to the model based off custom directives
Add recipe for using the modelgen FieldMutateHook
fix goimport linting issue in models_test
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/af2ac061db4e08616cecff2ed74649465ee5fc20"><tt>af2ac061</tt></a> handling unconventional naming used in type names (<a href="https://github.com/99designs/gqlgen/pull/1549">#1549</a>)</summary>
handling unconventional naming used in type names
Fix merge resolution mistake
Fix merge resolution mistake
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/393f755421ae42d207655984dbe6b8b990440384"><tt>393f7554</tt></a> add extraTag directive (<a href="https://github.com/99designs/gqlgen/pull/1173">#1173</a>)
<a href="https://github.com/99designs/gqlgen/commit/fd1bd7c9b3b3804ce1b90b786cd3fb9281918882"><tt>fd1bd7c9</tt></a> adding support for sending extension with gqlgen client (<a href="https://github.com/99designs/gqlgen/pull/1633">#1633</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/589a774290cfaf8f39d6099650e930c6f10cd670"><tt>589a7742</tt></a> Enable lowercase type names in GraphQL schema to properly render (<a href="https://github.com/99designs/gqlgen/pull/1359">#1359</a>)</summary>
The difficulty with lowercased type names is that in go code any lowercased name is not exported. This change makes the names title case for go code while preserving the proper case when interacting with the GraphQL schema.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/7081dedb0efc6ed650118c7fce65ca3bdb33b8de"><tt>7081dedb</tt></a> Bump tmpl from 1.0.4 to 1.0.5 in /integration (<a href="https://github.com/99designs/gqlgen/pull/1627">#1627</a>)</summary>
Bumps tmpl from 1.0.4 to 1.0.5.
updated-dependencies:
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/5287e4e5f30548d233f58111d128787c673c7f01"><tt>5287e4e5</tt></a> Add QR and KVK to common initialisms (<a href="https://github.com/99designs/gqlgen/pull/1419">#1419</a>)</summary>
Add QR and KVK to common initialisms
Update templates.go
Sort commonInitialisms
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/f9df1a46601a23df87d364b33cc9c5564d77edd8"><tt>f9df1a46</tt></a> Update time format for Time scalar (<a href="https://github.com/99designs/gqlgen/pull/1648">#1648</a>)</summary>
Use more precise time format
update test
update docs
Apply suggestions from code review
Update scalars.md
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/77c757f0cf9f18de02f3b9e6a235a51dd2c75259"><tt>77c757f0</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1640">#1640</a> from minus7/master</summary>
Fix example run instructions
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/e60dc7af373aeca15f48df234c1cb90d4909db5d"><tt>e60dc7af</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1619">#1619</a> from Khan/benkraft.mod-tidy-stdout</summary>
Forward go mod tidy stdout/stderr
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/0c63f1d10f508f528037c94c5cdb9f29af890098"><tt>0c63f1d1</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1515">#1515</a> from OpenSourceProjects/time</summary>
Marshaling & Unmarshaling time return initial value
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/a3d9e8ce9689533ab8c3ab4b3b4cd22df3cbfa03"><tt>a3d9e8ce</tt></a> Remove redundant favicon (<a href="https://github.com/99designs/gqlgen/pull/1638">#1638</a>)
<a href="https://github.com/99designs/gqlgen/commit/210c1aa6edf8b34d6e2f35e8c66b3d404cf7e8eb"><tt>210c1aa6</tt></a> Appropriately Handle Falsy Default Field Values (<a href="https://github.com/99designs/gqlgen/pull/1623">#1623</a>)
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/47ce074a3c30a981bbeef8f3465fca4330aba783"><tt>47ce074a</tt></a> Fix example run instructions (closes <a href="https://github.com/99designs/gqlgen/issues/1607"> #1607</a>)</summary>
Making ./example a separate Go module [1] broke the go run invocations
listed in a few example readmes [2]. Using relative paths from the
respective example directory should be clear enough.
[2]: example/todo/server/server.go:10:2: no required module provides package github.com/99designs/gqlgen/example/todo; to add it: go get github.com/99designs/gqlgen/example/todo
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/d999828375978c666728167f75a208fd727b4b15"><tt>d9998283</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1628">#1628</a> from robertmarsal/patch-1</summary>
Fix typo in the getting-started docs
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/2f6919ff74dd165d58c0c2039e3fb1fc1f72b598"><tt>2f6919ff</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1624">#1624</a> from FlymeDllVa/master</summary>
Update disabling Introspection
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/c53bc0e53cacb9f9930ec3125388b85820241a27"><tt>c53bc0e5</tt></a> Update disabling Introspection
<a href="https://github.com/99designs/gqlgen/commit/880cd73dbe0d602168639a7d3f59638473a4a91c"><tt>880cd73d</tt></a> Update README.md
<a href="https://github.com/99designs/gqlgen/commit/eec81df05e18dd9ac977b5a661964df212bf4627"><tt>eec81df0</tt></a> Update README.md
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/43b56cbaf3f1de1d1ad379055ab1de157592cf38"><tt>43b56cba</tt></a> Forward go mod tidy stdout/stderr</summary>
This is a command that can fail (in my case I think for stupid reasons in a hell of my own construction, but nonetheless). Right now we just get
$ go run github.com/Khan/webapp/dev/cmd/gqlgen
tidy failed: go mod tidy failed: exit status 1
exit status 3
which is not the most informative. Now, instead, we'll forward its output to our own stdout/stderr rather than devnull.
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/ce7a8ee469108e1c2dd62511249199312b32729a"><tt>ce7a8ee4</tt></a> Fix link in docs
<a href="https://github.com/99designs/gqlgen/commit/488cf7e8180e653c7a085c137d14734c5897393b"><tt>488cf7e8</tt></a> Update docs/content/getting-started.md
<a href="https://github.com/99designs/gqlgen/commit/73809f6912ed01c8ea18dbb5d7ea98e803ddb9c7"><tt>73809f69</tt></a> Update getting started
<a href="https://github.com/99designs/gqlgen/commit/b938e55811966ef5ff96cc911597327af92c493c"><tt>b938e558</tt></a> Update README.md
<a href="https://github.com/99designs/gqlgen/commit/cacd49a6d0421093bdb67d17551ea0323ceb438a"><tt>cacd49a6</tt></a> Update README.md
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/7d549d6476853a33aaacab76c3d954bed9d6f0cd"><tt>7d549d64</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1617">#1617</a> from 99designs/update-docs-for-go1.17</summary>
Update docs for getting started
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/5c52f27c49d65d97a05bba14fc12ce8873d2b959"><tt>5c52f27c</tt></a> Update docs for getting started
<a href="https://github.com/99designs/gqlgen/commit/41d6926f38922cd0a01d93f30ac8702d9f9bcf48"><tt>41d6926f</tt></a> Replace gitter with discord in contributing.md
<a href="https://github.com/99designs/gqlgen/commit/24d4edcf128f7fa327d97fd85d087fef2e230943"><tt>24d4edcf</tt></a> Update README.md
<a href="https://github.com/99designs/gqlgen/commit/2272e05bc00cc9f38e6d3179a8981651812acbba"><tt>2272e05b</tt></a> Update README.md
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/ef4d4a38a229a485bec4f111a1112b47c638382e"><tt>ef4d4a38</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1614">#1614</a> from 99designs/go-1.16</summary>
Also test against 1.16
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/473f0671b5d9c3a0bb9afe6c2de2b4f10d9eeef6"><tt>473f0671</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1613">#1613</a> from 99designs/bump-non-module-deps</summary>
Clean up non-module deps
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/bf9b34aae2eb079913aacbb75fa8b3dff7c45c32"><tt>bf9b34aa</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1612">#1612</a> from 99designs/update-linter</summary>
Update golangci linter
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/85e7a4a0aae4c80c8522350d17400184fac48882"><tt>85e7a4a0</tt></a> Linting fixes
<a href="https://github.com/99designs/gqlgen/commit/777dabde381c1c4b1b6bb0316658f65cce22c654"><tt>777dabde</tt></a> Update the linter
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/85dd47bb8ca9547ebc3530f441aab8a99e16b5a7"><tt>85dd47bb</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1607">#1607</a> from 99designs/example-module</summary>
[POC/RFC] Split examples into separate go module
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/890f5f66fb2059ccd760bb7dd708b04166ed274d"><tt>890f5f66</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1610">#1610</a> from 99designs/go-1.17</summary>
Update to go 1.17
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/9162c53fc32471c96d874764b47bf71f0c493fce"><tt>9162c53f</tt></a> Fix newlines in error messages
<a href="https://github.com/99designs/gqlgen/commit/f67a5b2611ca89dfb0ffd3dd4c72cebb8f2532ef"><tt>f67a5b26</tt></a> Update github.com/urfave/cli/v2
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/1116ea6cdc1f3c66af5e214365af7ed67d464a52"><tt>1116ea6c</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1608">#1608</a> from jjmengze/patch-1</summary>
fix Options response header
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/71e5784352a3c6d7b91bf9f2307fcebc959ab8b0"><tt>71e57843</tt></a> Simplify init
<a href="https://github.com/99designs/gqlgen/commit/a8903ca2aca700217fe29c2b8c262b6ee45959fb"><tt>a8903ca2</tt></a> Wrap errors
<a href="https://github.com/99designs/gqlgen/commit/a644175b8f80ba1fbc220799b4cd9ce257ccc7ac"><tt>a644175b</tt></a> Update error checks for go 1.17
<a href="https://github.com/99designs/gqlgen/commit/c6b9f2926b14c0367ffb82db4e2c250c4fc7aab2"><tt>c6b9f292</tt></a> go mod tidy
<a href="https://github.com/99designs/gqlgen/commit/1c63cfff8f2943d2ab3316f850b89bba83548c05"><tt>1c63cfff</tt></a> Add missing model package file
<a href="https://github.com/99designs/gqlgen/commit/59da23feb5e135b3c2c0ce976b0214643147e85c"><tt>59da23fe</tt></a> Create a temporary file on init so go recognises the directory as a package
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/682a7d662bd2491213c45b8556461533cee56997"><tt>682a7d66</tt></a> fix Options response header</summary>
operatee the header of ResponseWriter should before WriteHeader called
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/ed8054b054c4e7dae1c2ad12d86a8d4d26c194e9"><tt>ed8054b0</tt></a> Update to a post-release version
<a href="https://github.com/99designs/gqlgen/commit/5216db5849eb5298722ee233cc98fa1e85db3237"><tt>5216db58</tt></a> Fix TestAutobinding test failure by checking the module
<a href="https://github.com/99designs/gqlgen/commit/90c5eb59b0fde89eb0c42e5b9c5ad276a8335f8f"><tt>90c5eb59</tt></a> go generate
<a href="https://github.com/99designs/gqlgen/commit/402f44950b4694a3a5fd65d3225e06ccd76fbf9d"><tt>402f4495</tt></a> go fmt
<a href="https://github.com/99designs/gqlgen/commit/10bb1ef262af49031c3d5224eb094586e6fd8083"><tt>10bb1ef2</tt></a> Go mod tidy
<a href="https://github.com/99designs/gqlgen/commit/ed210385722431111b8842ec7da7b42051b77d91"><tt>ed210385</tt></a> Update to go 1.17
<a href="https://github.com/99designs/gqlgen/commit/5c7acc1bc8198ed57a38867ae0c452987da91911"><tt>5c7acc1b</tt></a> Fix imports
<a href="https://github.com/99designs/gqlgen/commit/d747387036fb300fc384fa6f17a76f6547dc6a1b"><tt>d7473870</tt></a> Update plugin/servergen/server.go
<a href="https://github.com/99designs/gqlgen/commit/a6c6de6b73741caa1ac02cf8adea79afcd4ed78b"><tt>a6c6de6b</tt></a> Update plugin/resolvergen/resolver.go
<a href="https://github.com/99designs/gqlgen/commit/de7d19c812bed562d2841c6c08fb080d706195d1"><tt>de7d19c8</tt></a> Update codegen/config/config_test.go
<a href="https://github.com/99designs/gqlgen/commit/60d80d4aee61337793d2cade8a7ab35c2892613a"><tt>60d80d4a</tt></a> Update cmd/gen.go
<a href="https://github.com/99designs/gqlgen/commit/a991e3e73ec4d624f6b23124d83198ce51af8ae3"><tt>a991e3e7</tt></a> Update errors to use go1.13 semantics
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/8f179be920401bf993630693b0586cfc51dbdd04"><tt>8f179be9</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1581">#1581</a> from tsh96/master</summary>
Bypass complexity limit on __Schema queries.
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/5048f9927e54828b07ea47cd79d1b30b3858d320"><tt>5048f992</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1525">#1525</a> from Code-Hex/fix/support-input-object</summary>
support input object directive
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/1e2b303a8cc8a596fc24cb79b560c33bec2c9ad6"><tt>1e2b303a</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1526">#1526</a> from epulze/fix/allow-more-types</summary>
allow more than 10 different import sources with types
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/e7df3e5c7d33dd485ec928c4be07f421423c722b"><tt>e7df3e5c</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1405">#1405</a> from alexsn/subsciption-complete-on-panic</summary>
subscriptions: send complete message on resolver panic
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/06e4fe8810d14649a5b6e2f9c1482eff28c86ddb"><tt>06e4fe88</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1529">#1529</a> from mathieupost/master</summary>
Return type loading errors in config.Binder.FindObject
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/a557c90cd741f808f4065e9846b0c59ba1d29f9b"><tt>a557c90c</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1340">#1340</a> from bickyeric/master</summary>
serialize ID just like String
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/522cab59d1ecb9813610013a60596da2edf91f33"><tt>522cab59</tt></a> Merge pull request <a href="https://github.com/99designs/gqlgen/pull/1285">#1285</a> from Khan/benkraft.federation</summary>
Resolve requests for federation entities in parallel
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/5adb73bbba5375f07cd21d1fe498c6a252b6f933"><tt>5adb73bb</tt></a> add bypass __schema field test case
<a href="https://github.com/99designs/gqlgen/commit/54cef3ddcdd3c5e106f8347ccd8afd9bbb8bdb44"><tt>54cef3dd</tt></a> Bypass complexity limit on __Schema queries.
<a href="https://github.com/99designs/gqlgen/commit/f0ccab79549f184b1225dbc946d703400673aa5b"><tt>f0ccab79</tt></a> Return type loading errors in config.Binder.FindObject
<a href="https://github.com/99designs/gqlgen/commit/91b54787166e1dd26e2f95493e02a43130950105"><tt>91b54787</tt></a> generated go code
<a href="https://github.com/99designs/gqlgen/commit/1efc152e4f9399a908620d1d4c1198b9662cb181"><tt>1efc152e</tt></a> supported INPUT_OBJECT directive
<a href="https://github.com/99designs/gqlgen/commit/e82b401ddd97fe807a5066d3702b391ec317a358"><tt>e82b401d</tt></a> allow more than 10 different import sources with types
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/481a4e44cbc114382dee087feb9cf18c15907d4a"><tt>481a4e44</tt></a> Marshaling & Unmarshaling time return initial value</summary>
There was a lack of symmetry that would prevent times for being symmetrical. That is because time.Parse actually parses an RFC3339Nano implicitly, thereby allowing nanosecond resolution on unmarshaling a time. Therefore we now marshal into nanoseconds, getting more information into GraphQL times when querying for a time, and restoring the symmetry
</details></dd></dl>
<dl><dd><details><summary><a href="https://github.com/99designs/gqlgen/commit/956531936e9a7a0d9012c246153531a9bcf3c7bd"><tt>95653193</tt></a> Resolve requests for federation entities in parallel (closes <a href="https://github.com/99designs/gqlgen/issues/1278"> #1278</a>)</summary>
In apollo federation, we may be asked for data about a list of entities. These can typically be resolved in parallel, just as with sibling fields in ordinary GraphQL queries. Now we do!
I also changed the behavior such that if one lookup fails, we don't cancel the others. This is more consistent with the behavior of other resolvers, and is more natural now that they execute in parallel. This, plus panic handling, required a little refactoring.
The examples probably give the clearest picture of the changes. (And the
clearest test; the changed functionality is already exercised by
integration-test.js as watching the test server logs will attest.)
</details></dd></dl>
<a href="https://github.com/99designs/gqlgen/commit/f00e2c3f3d70a58ae85ab05d5f2b8adf543a306d"><tt>f00e2c3f</tt></a> subscriptions: send complete message on resolver panic
<a href="https://github.com/99designs/gqlgen/commit/fa371b9bb76e478dabc649564e1f465c45057f72"><tt>fa371b9b</tt></a> serialize ID just like String
<!-- end of Commits --> <!-- end of Else -->
<!-- end of If NoteGroups --> <a name="v0.14.0"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →