Skip to content

Possible future package structure #534

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

Closed
smyrick opened this issue Jan 2, 2020 · 6 comments
Closed

Possible future package structure #534

smyrick opened this issue Jan 2, 2020 · 6 comments
Labels
type: enhancement New feature or request

Comments

@smyrick
Copy link
Contributor

smyrick commented Jan 2, 2020

Is your feature request related to a problem? Please describe.
We would like to add more logic to the graphql kotlin library in the future to take advantage of running a full kotlin schema and maybe even sharing some of the core graphql packages with client libraries.

Describe the solution you'd like
We should update the package path of the schema generator and prepare for having new packages

We may also want to update the path of graphql-kotlin-schema-generator to reserve the top level path for other things

Package Name Package Path
graphql-kotlin-schema-generator com.expediagroup.graphql.generator
graphql-kotlin-federation com.expediagroup.graphql.federation
graphql-kotlin-spring-server com.expediagroup.graphql.spring
graphql-kotlin-schema* com.expediagroup.graphql.schema*
graphql-kotlin-server* com.expediagroup.graphql.server*
graphql-kotlin-client* com.expediagroup.graphql.client*

* Future packages

Additional context
We currently have a few issues that we have mentioned extracting more logic from graphql-java to write it in a pure Kotlin implementation

@smyrick smyrick added the type: enhancement New feature or request label Jan 2, 2020
@dariuszkuc
Copy link
Collaborator

Probably would be good to explicitly mention that you are proposing package change only to graphql-kotlin-schema-generator from com.expediagroup.graphql to com.expediagroup.graphql.generator.

federation and spring-server already have right packages*.

*if we decide to provide support for additional servers, maybe spring-server should use package com.expediagroup.graphql.server.x where x is spring/ktor, etc

@smyrick smyrick changed the title Future package structure Possible future package structure Jan 2, 2020
@smyrick
Copy link
Contributor Author

smyrick commented Jan 2, 2020

Yea, I envisioned a simple package of graphql-kotlin-http can be used by both graphql-kotlin-client and graphql-kotlin-server.

And yea if we want to extract things that are not spring specific we can move that to graphql-kotlin-server. As far as us creating graphql-kotlin-server-ktor that may be more of a community effort where they can re-use the existing packages.

@smyrick
Copy link
Contributor Author

smyrick commented Jan 2, 2020

Also we can probably rename the folders and publish the modules separately too.

So we could have folders like

graphql-kotlin
    - schema
        - core/runtime
        - generator
    - federation
    - http
    - client
    - server
        - core
        - spring
        - ktor
    - examples
        - spring
        - federation
        - client

@dariuszkuc
Copy link
Collaborator

Also we can probably rename the folders and publish the modules separately too.

I prefer keeping current explicit names. Since we don't have that many modules atm I think it makes sense to publish them together.

@smyrick
Copy link
Contributor Author

smyrick commented Jan 3, 2020

This could be less relevant if we helped the graphql-java team and split up their library: graphql-java/graphql-java#336

@smyrick smyrick closed this as completed Jan 15, 2020
@smyrick
Copy link
Contributor Author

smyrick commented Jan 15, 2020

Closing for now until we see the need to change existing packages. Going forward we can continue to follow the same pattern we have today

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement New feature or request
Development

No branches or pull requests

2 participants