Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rally community... #29

Closed
EmergentBehavior opened this issue Oct 26, 2015 · 15 comments
Closed

Rally community... #29

EmergentBehavior opened this issue Oct 26, 2015 · 15 comments
Labels

Comments

@EmergentBehavior
Copy link
Contributor

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
Copy link
Contributor

pyrossh commented Oct 27, 2015

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
Copy link

+1

@sogko
Copy link
Member

sogko commented Oct 28, 2015

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
Copy link
Collaborator

bbuck commented Oct 28, 2015

@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
Copy link
Contributor Author

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

@sogko
Copy link
Member

sogko commented Oct 29, 2015

@EmergentBehavior that's excellent 👍🏻! Thanks!

@EmergentBehavior
Copy link
Contributor Author

@sogko
Copy link
Member

sogko commented Oct 29, 2015

@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:

  • graphql-go == graphql-js
    Server-side implementation of graphql
  • graphql-go-handler == express-graphql
    Middleware to handle GraphQL queries through HTTP requests. It parses GET/POST params and passes them into Graphql(), which returns JSON response.
    You can choose not to use it, but you will end up writing similar code. As to whether it should be merged with graphql-go, I think it could possibly be. Or it could remain separate, just like express-graphql.
    Either way, I'm open to merging it based on the community's decision.
  • graphql-relay-go == graphql-relay-js
    This is a library to construct Relay-compliant servers, which has additional specs for pagination, global IDs and those sort of things. Not needed if you chose to build a pure GraphQL server.

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

  • how to define schemas,
  • probably touches as many GraphQL types as possible
  • especially mutations
    We definitely could use with those.
    Let's see what we could do.

Thanks again! Cheers!

sogko added a commit to sogko/graphql that referenced this issue Oct 29, 2015
Based of io.js and gobot.io guidelines.
@pyrossh
Copy link
Contributor

pyrossh commented Oct 29, 2015

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

@EmergentBehavior
Copy link
Contributor Author

@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
Copy link
Member

sogko commented Nov 5, 2015

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

For inspirations from other implementations:

@sogko sogko added the meta label Nov 6, 2015
@EmergentBehavior
Copy link
Contributor Author

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 :)

chris-ramon pushed a commit that referenced this issue Apr 7, 2016
Based of io.js and gobot.io guidelines.
@ghost
Copy link

ghost commented Jun 21, 2016

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
Copy link
Contributor

kmulvey commented Oct 31, 2016

Keep the dream alive

cc: @logie17

@chris-ramon
Copy link
Member

Thanks a lot guys 🌟 for taking the time to bring interesting ideas, since #32 was merged; let's close this one issue; and continue the conversation on:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants