shurcooL/graphql

I love this library but it seems unmaintained?

rocktavious opened this issue · 1 comments

Hello Reader,

I love this library. It makes maintaining and even generating graphql clients super easy. While the approach of using structs is not as flexible when you need very specific custom queries as other approaches I do enjoy the type safety and ability to generate the structs programmatically from the graphql schema.

I've been using this library in my production code for over a year now but I've noticed that there have not been any meaningful code changes to this repo since 2018.

There are also plenty of open PRs and Issues with great improvements and suggestions and a handful of questions that need to be documented or closed.

This makes me feel this repo is no longer being maintained and that since i'm relying upon this library in production facing code I need to do 1 of 2 things to protect my interests.

  • Fork this library and start having my organization maintain it ourself
  • Contribute back if the powers that be would actually approve and merge the PRs (which it seems like thats already not the case given 16 open PRs and no new commits since 2018)

I've seen talk of a few other forks out there each with their own features but nothing universal. https://github.com/hasura/go-graphql-client seems to have the most newer features.

Since this library is a core utility to several production products at my company we are willing to take on maintainership.

@dmitshur or @shurcooL - is there something that we can do to help with maintainership? I really don't want to fork this and start maintaining my own as that just fractures the community even more but new features and improvements need to be added to help keep this repo alive and working well. Some of the bigger things to me are:

  • named queries
  • better HTTP client/transport that supports retry and backoff
  • verbose logging of query and response for easier debugging
  • support for subscription
  • native support for easily adding extra headers (functional options)
  • batching multiple queries
  • removal of needing to use base types - https://github.com/shurcooL/graphql/blob/master/scalar.go
  • built in schema -> struct generator to help with quickstarting a client
  • add go.mod / go.sum
  • turning "question" issues answers into documentation
  • more examples of auth options, ways to handle usecases, and a list completed clients

There is lots of work I'd like my team to contribute back with so everyone benefits but if there is no active maintainership here then I'm left to forking :(

cor commented

For me a big one is that there is no support for Hasura's jsonb type.