-
Notifications
You must be signed in to change notification settings - Fork 583
Closed
Milestone
Description
This page is synced automatically from The Guild's Notion
Notion page URL: https://www.notion.so/Roadmap-232f99f86aa34383bac5d72e53aa24b7
At The Guild we’ve decided to work as much as we can in public, that’s why we are opening the roadmaps for all of our projects.
The goals for this are:
- So you will know what we are working on, what we see as a higher priority, and know what to expect from our projects in the future
- So you can share your opinions and thoughts about what we do and influence our decisions
- So you can join us and contribute to our efforts!
v3 - Released!
The progress of version 3 is tracked on branch v3
. Canary releases will be released from that branch. Once the branch becomes stable it will be merged into master
and we will release the stable version 3 to npm.
- Setup alpha/canary publishing from v3 branch #1421
- Improved plugin system #1348
- Officially drop Node 12 support 👌 #1349
- Make graphql-tools dependencies tree-shakable #1305
- Make
@graphql-yoga/subscriptions
export tree-shakable #1350 - Single package for all #1375
- feat: single package #1471
- Redis EventTarget for PubSub #1297
- feat: more cleaner GraphQL Engine envelop#1488
- V3 envelop#1487
- Stop using
graphql-js
executor in favor of our own custom executor #1352 - Remove useLazyLoadedSchema envelop#1483
- Deprecate '.start' and '.stop' methods for common package #1374
- move endpoint configuration out of createServer constructor #1103
- Better landing page for the default Node Server #1353
- chore(deps): update dependency bob-the-bundler to v3 #1345
- Broken Sveltekit on master #1378
- ExtendableEvent.waitUntil API for Service Worker Environments #1538
- New Relic: add error for agent not being found envelop#1457
- Drop
GraphQLYogaError
#1473 - Persisted Queries Plugin #1137
- feat(persisted-operations): ability to support different specifications #1610
- feat: apq branding #1479
- Response Cache plugin with small changes for better type-safety #1359
- 0.4.14 error - uncaughtException: TypeError: Cannot read property 'get' of undefined ardatan/whatwg-node#54
- Refactor
endpoint
handling #1455 - fix(masked-errors): Use the custom error formatter for the errors thrown when building the context and the subscription envelop#1456
- Error Masking for Yoga hooks & Respect result processor in case of an error #1521
- Result Processors should be capable of handling both AsyncIterable <JSON> and JSON payloads #1504
- Provide a way of setting the schema to be used within the onRequest hook #1491
- test: context error masking #1604
- test: add failing test for parse and validation error handling #1601
- unexpected context errors are swallowed #1585
- Calling yoga.fetch with an invalid URL causes error code 200 #1487
- Create URL instance once and pass it through onRequest #1486
- Use CustomEvent instead of Event #1485
- Use a separate Event API polyfill package #1484
- Support federated trace data (v3) #1607
- https://github.com/n1ru4l/envelop/milestone/1
- Result Processors should be capable of handling both AsyncIterable <JSON> and JSON payloads #1504
- migrate to
pnpm
#1906 - Better dependency update handling of the
examples/defer-stream
#1391 - Extract Fetch API Node adapter code to WHATWG Node repository #1357
- Documentation
- Update website urls to make v3 the default
- If you are using old version, have a banner on the top that clearly says you are not using the latest docs with a link to the latest version
- New website #1341
- Add versioning to the docs #1356
- update README.md #1087
- Migrations from other alternatives
- Improve Apollo Migration docs and FAQ
- Existing Features
- Unknown directive \"@defer\ and @stream #1373
- Add simple typescript example #1398
- document the logger #1195
- Docs on debug logging config #1108
- Add documentation on many ways to load the schema definition #1291
- How to set the server timeout #644
- Docs for validation and parsing cache are missing #1141
- Does not support healthcheck endpoints such as
/graphql/health
#958
- Integrations
- Document debugging #1545
- Docs for validation and parsing cache are missing #1544
- docs: Fix bad redis import #1554
- Add a who is using GraphQL Yoga Page to docs #1397
- Create our own EventSource implementation based on fetch #1390
- New Relic: add error for agent not being found envelop#1457
- Restructure/Cleanup tests #1526
- E2E and Integration Tests (NOT Dotan)
- Integration test for cloudflare worker esm server #1312
- Integration Tests for netlify-edge #1515
- e2e testing: docker environment #1015
- e2e testing: fix AWS lambda deployment issues #1016
- E2E tests for all examples
- Integration Tests for hackernews #1514
- Integration Tests for graphql-ws #1513
- Integration Tests for graphql-config #1512
- Integration Tests for generic-auth #1511
- Integration Tests for file-upload-nexus #1510
- Integration Tests for file-upload-nextjs-pothos #1509
- Integration Tests for file-upload example #1508
- Integration Tests for the error-handling example #1507
- Integration Tests for deno example #1506
- Integration Tests for Apollo Federation Example #1505
- Official Bun support
- Bump Fetch and Server Adapter packages for Bun Compatibility #1347
- Examples
- Documentation
- Integration Test
- use guild shared config for ESlint #1894
- Urql exchange package #1381
- Apollo Client Link package #1380
- Integrate graphql-http, refactor and comply with spec (v3) #1589
- Upgrade to GraphiQL v2 #1679
- [v3] Rename
graphiql.defaultQuery
tographiql.defaultDocumentString
#2038 - [v3] Defer/Stream Source is not canceled #2036
- [v3] CodeSandbox is missing @types/node dependency #2035
- Thin Client Integration packages #2066
- docs: update context #2063
- log unexpected errors in the server console by default #1584
- Jest Failing After Upgrade #1588
- usePreventMutationViaGET default plugin breaks mutations via WS #1704
- My graphiql Yoga enviorment is lagging and not responsive #1976
- graphql/yoga-server/docs/features/sofa-api #2015
- [v3] Defer/Stream Content-Type assertions #2079
- feat: log level via config #2085
- test: cleanup defer/stream source that never publishes a source :) #2083
v3.x
- Attach AbortSignal to context by default 🤔 #2207
- @graphql-tools/executor-http incompatability with yoga.fetch #2173
- fix: graphiql enable schema description, default headers #2172
- Supporting exactOptionalPropertyTypes #2111
- [disable introspection] based on authorization headers #2188
- @graphql-yoga/render-graphiql: still request to other domain while it is recommended for offline usage #2443
- Documentation
- Document typing the GraphQL Context #2204
- dedicated client documentation (urql, relay, apollo) #2186
- [response-cache] document path for using SDL directive annotations for caching #2187
- Update Yoga to v3 on Pothos GraphQL documentation #1783
- Block Google from indexing old versions of the docs
- Remove all references to
graphql-yoga@three
- Update GraphQL Modules to the new updated Subscriptions recipe https://the-guild.dev/graphql/modules/docs/advanced/subscriptions
- How to get number of active subscriptions? #2210
- SSE keep alive ping #2095
- [v3] Bypass GraphQL endpoint checking #2132
- Relay Client Network Layer Recipe #2129
- Update documentation about federation #1973
- Update server framework comparison benchmarks #2096
- [v3] graphql-yoga module should not export
useMaskedErrors
#2039 - [v3] Persisted operations - how can I customize the not found error #2047
- [v3] Persisted Operations
ExtractPersistedOperationId
type #2045 - Upgrading all-important Untitled, Untitled, https://github.com/urigo/graphql-mesh, https://github.com/charlypoly/graphql-yoga-nestjs
- Create a bundle size benchmark that reflect true size #2140
- Communicate which TypeScript versions we support and test on those #1395
- Improve context and typings envelop#1566
- Generic JWT plugin #1921
- Get rid of all non-MIT/unlicensed dependencies #1587
- ETag/If-None-Match plugin #2080
- CSRF prevention by requiring a custom header in GET requests #2157
- Documentation
- [v3] document dynamic schema based on incoming request (headers) #1886
- Document Error Status Code behavior (500 for unexpected errors etc) #1838
- Document the need of
graphqlEndpoint
- Plugin System
- Migration from others
- Graphql-shield not working properly with graphql-yoga and graphql-modules. #1321
- apollographql studio how to used ? #1036
- Write a GraphQL Helix to Yoga migration guide
- Integration with other platforms
- Tutorial roadmap
- Tutorial Follow-Up Tasks #916
- [tutorial] screenshot uses require instead of import #1140
- [tutorial] Deploy Yoga to Cloud Run #1153
- [tutorial] deploy yoga to fargate #1155
- graphql/yoga-server/tutorial/basic/03-graphql-server #949
- graphql/yoga-server/tutorial/basic/10-filtering-and-pagination #1252 (comment)
- graphql/yoga-server/tutorial/basic/07-connecting-server-and-database #1091
- Rewrite Envelop plugins as Yoga plugins if they'd be better with Yoga hooks #1732
- API reference #2216
- Sentry plugin
- GraphiQL improvements
- Add GrpahiQL code exporter and create some useful snippets
- comments are 3 different colors #1893
- GraphiQL theme should respect
prefers-color-scheme
#1072 - Poll interval or refetch on search GQL schema in GraphIQL #1161
- GraphiQL Schema polling #1536
- GraphIQL pop up field description cropped #1162
- GraphiQL headers are not reused in new GIQL tab #1163
- Increment Delivery (defer & stream)
- Switch between showing the merged results and single results in the execution result view
- GraphQL Helix Strategy and messaging #1351
-
npx
command for creating templates bootstrap like Next.jscreate-yoga
#1354 - feat(response-cache): add response-cache-upstash envelop#1404
- Start GraphQL server maintainers’ working group
- Create @
live
RFC on the repo - Fragment Modularity Support
Things that might go into v3:
Making Envelop Schema Agnostic
### Reasons to do that
- To improve Conductor execution and performance through Mesh
- Remote executor and avoid wrapping a clean executor function
- To remove the coupling to specific GraphQL schema implementation (resolvers)
- Any other alternative executing strategies that don't follow the default GraphQL-JS execution algorithm
- Resolvers are just one way of implementing the schema, some execution engines might not use it (Benjie’s stuff, GraphQL-Tools executor, Federation)
### Technical Path
1. Drop `onResolverCalled` from `envelop` API
2. Drop `onSchemaChange` , `setSchema` APIs
1. @ardatan should this be `onExecuteFnChnage` instead? some plugins like `useExtendedValidation` might need to things like build `TypeInfo` (and we wish to make sure it happens once, because of performance)
2. Should we introduce an alternative Envelop API for wrapping the `execute` function?
3. Make sure all plugins that needs access to the schema implements the schema access through `execute` function arguments (this should be the recommended way of dealing with the schema)
NexZhu, takashimamorino, cometkim, dotansimha, ardatan and 9 moreNexZhu, takashimamorino, cometkim, ardatan, elitan and 4 moreardatan, dotansimha, dimaMachina, saihaj, NexZhu and 7 moren1ru4l, NexZhu, takashimamorino, cometkim, dotansimha and 7 moreYassinEldeeb
Metadata
Metadata
Assignees
Labels
No labels