Skip to content

Request for clarification about project's goals #383

Closed
@nagledb

Description

@nagledb

In Feature Request: Directive Visitors / Resolvers, @vladar states:

We follow graphql-js reference implementation which doesn't provide such tools at the moment.

Over at the nuwave/lighthouse project, in New GraphQL implementation, @vladar states:

I am not against competition even though I think it would be much better for the PHP GraphQL community to have a single base library to avoid community fragmentation.

But since you guys never tried to reach me out to discuss this, competition is fine too %) But I'd like it to be fair. So please when you criticise other people's work - at least give some links so that we could improve. I am talking about this part:

I've heard that people have had trouble implementing features like Schema Decorators on top of webonyx/graphql-php

In the first, you say you want to follow the graphql-js reference implementation and appear to cite that as a reason for why you don't want to add additional features. But then in the second, you say you want this to be the single graphql library the community forms around and suggest that you're open to areas for improvement. The thing that really stands out to me is that the features in question are very similar between the two threads: one is discussing directives including schema directives, whereas the other references schema decorators which are functionally very similar to schema directives.

I think both goals are reasonable. It's very reasonable to focus on following the reference implementation. It's also very reasonable to want the community to invest in a single GraphQL implementation and expand it to meet people's needs. But those two goals are fundamentally in conflict. I don't think you can do both effectively. (I think Apollo is pretty good proof that the reference implementation doesn't adequately meet people's needs.)

Could you please clarify which of the two goals is going to be your primary focus going forward?

I apologize if it seems like a pushy question, but it's an important decision-making point for me. If you intend to continue adhering strictly to the reference implementation, then that tells me I shouldn't bother making feature requests (or pull requests) that are inconsistent with the reference implementation. It also tells me that maybe I should seriously consider another library if it provides features I need that I feel this library is lacking (case in point, easy support for custom directives). And given the discussion in that thread on the Lighthouse project, I doubt I'm the only one who would find the clarification valuable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions