graphql-go / graphql

An implementation of GraphQL for Go / Golang
MIT License
9.88k stars 840 forks source link

Rally community... #29

Closed EmergentBehavior closed 7 years ago

EmergentBehavior commented 8 years ago

Browsing around it looks like the go-graphql landscape is still in its infancy, however graphql-go seems to be one of the more referenced libs out there. I'm looking at using it in my own work and would potentially be happy to start contributing, but it would be helpful to sketch out some a bit more detailed roadmap and near-term goals so potential contributors can see what to focus on.

pyrossh commented 8 years ago

Yeah... We started using it too.. some contributor guidelines will help and maybe some Todos and features complete w.r.t. graphql-js would be good

EcutDavid commented 8 years ago

+1

sogko commented 8 years ago

Thanks @EmergentBehavior for bringing this up 👍🏻

You are right that this area is lacking and requires more attention. (Previously I relied on the TODO list on the README to see how I can contribute but I noticed it's out-of-date currently.)

I can help out with sharing the latest nearest-of-the-nearest-term goals that we definitely need to address

Other longer-term goals

As to the parity of this project vs graphql-js, it was ported from v0.4.3 of graphql-js (July 2015 spec, excluding validator) (specifically commit e556526 ). It's currently behind (latest v0.4.12) but once the package name has been resolved and stable, it'll be easier to get back on track.

But I doubt it'll be a 1-1 port with graphql-js from there on, we'd have to go by the GraphQL spec releases instead. In other words, we'd have to work on our implementation based on October 2015 spec next.

Cheers!

bbuck commented 8 years ago

@sogko For information on unimplemented features as of yet (such as the Validator) is the single source of truth just the spec for GraphQL or do you already have plans you'd like to see done specifically for those features? I'd love to help contribute and just want to make sure that I don't do a lot of work on something in a way different from the plans of this library moving forward.

Also, I know you do a lot of work with this library outside of just this, such as your graphql-go-handler and your Relay specific wrapper for this library. Which are all great things. One thing I found lacking was specifically related to this library (as addressed in the 'Documenation' issue) is to have more examples specifically focusing on basic usage of just this library.

I spent some time with graphql-js after finding graphql-go to define the things I was looking to define before finally coming back here and having the ability to transfer that knowledge into how to do those similar things in Go. Which is great that this could be done, but any examples that get written (including yours), I think would be extremely beneficial if they only used this library to handle the GraphQL pieces. Even if you define it all raw with GraphQL as is and then refactor it using your Relay wrapper for example so at least the understanding of this library is talked about and discussed.

I'm bringing this up not just because of my desire to have seen that but a recent conversation in Gitter (for this repo). I'm referring to this comment from thanhliem89dn specifically (and I share his sentiment, this was my desire as well):

I'm reading todo example from [sogko] https://github.com/sogko/todomvc-relay-go/blob/master/data/schema.go but He used gqlrelay and I just want to use graphql at all

All of these utilities are great to have, but I think a full understanding of this library offers is a better place to start before introducing the other ones.

I got off topic and rambled. I'm sorry.

EmergentBehavior commented 8 years ago

@sogko Thanks for the update. Am going to submit another PR to update the README with this information.

sogko commented 8 years ago

@EmergentBehavior that's excellent 👍🏻! Thanks!

EmergentBehavior commented 8 years ago

Submitted! https://github.com/chris-ramon/graphql-go/pull/32

sogko commented 8 years ago

@bbuck Thanks for the input, appreciate very much 👍🏻

Yes you are right, documentation is really lacking right now, in this project and others in its ecosystem currently. I think once we nail down the package naming, I'll help and do my part in providing better documentation.

I wrote the graphql-relay-go and graphql-go-handler libraries because I was being impatient and wanted to quickly have some form of Relay-compliant server for golang that can actually run lol. I realised that besides graphql-go, there were bits and pieces missing to get it (i.e. Relay-compliant server) to work.

I have yet to put down my motivations on why I wrote those, but to draw parallels with the GraphQL in JS:

Some of the other projects that I contributed do use graphql-go + graphql-go-handler + graphql-relay-go, but they are specifically Relay applications:

Another project that I wrote used only graphql-go + graphql-go-handler, with graphiql for the front-end:

I did wrote a couple of posts on Golang + GraphQL + Relay but again, those are heading into the direction of Relay-specific details.

I do see what you mean there about diving deeper into examples pure GraphQL using graphql-go. Better and in-depth examples on

Thanks again! Cheers!

pyrossh commented 8 years ago

Most of the vital info seems to be shared in these issues I'm gonna be putting them in the Readme

EmergentBehavior commented 8 years ago

@chris-ramon @sogko Not critically important, but now that the package and its sister packages are collected under graphql-go, perhaps we should give the project a logo :). How about this?

graphqlgo

If someone else has actual design chops feel free to update/iterate :)

sogko commented 8 years ago

The gopher strikes again haha! Thanks @EmergentBehavior for kicking this off! Yeah, we definitely a logo for our community 👍🏻

For inspirations from other implementations:

EmergentBehavior commented 8 years ago

graphql-ruby and graphene ones are great. i can help with a front-end website later too once package is a little more stable. Ruby and Python have more elegant base logos though so it's easier to iterate :)

ghost commented 8 years ago

EDIT: I see the contributing guidelines. Still, the ref spec is april 2016

And just a thought for the logo - The python logo looks almost like a G, make it a G. and add an o afterwards.

kmulvey commented 7 years ago

Keep the dream alive

cc: @logie17

chris-ramon commented 7 years ago

Thanks a lot guys :star2: for taking the time to bring interesting ideas, since https://github.com/graphql-go/graphql/pull/32 was merged; let's close this one issue; and continue the conversation on: