graphql / graphql/graphiql

GraphiQL Plugins (2.0.0-beta.0) Meta Issue

Open
#983 13 comments 5 reactions 2 assignees Assigned to @orta View on GitHub
accessibility graphiql graphql-language-service monaco-graphql
Dominant language
TypeScript
Stars
16.9k
Forks
1.9k
Avg merge
22h 45m
Merged PRs (30d)
70

Description

This is a meta-issue for the GraphiQL IDE plugins effort, towards the [GraphQL 2.0.0 beta milestone](https://github.com/graphql/graphiql/milestone/1)

(Note: this was previously marked as` graphiql@1.0.0-beta`, however we decided that `graphiql@1.0.0` should be the last officially stable release **before** merging all of these breaking changes)

## :construction_worker_woman: Work In Progress

Preceding initiatives that already have merged or in-progress PR(s)
(will try to keep this updated, but projects listed here are your best bet)

Get involved or ask questions via our [discord channel](https://discord.gg/fHje6QG)

- [x] **React Context Refactor** - #1468 - this is essentially the Plugin RFC API
- [x] **Add Monaco to GraphiQL** - acao/graphiql/pull/17 - yep you read it! replacing codemirror with monaco, merging it to #1468 when it's ready!
- [x] **New GraphiQL Components/Theme/Layout System** - @walaura did some excellent work setting up new components and a system for themeing and layout, if anyone wants to help her advance this effort they are more than welcome! See `packages/graphiql/src/new-components` for more details and readmes. Will add more proposal spec for components to add soon!

## :world_map: Dependent Roadmaps
These are roadmaps that will see to the introduction of a stable plugin API for GraphiQL 2.0.0. All of these are in progress.

See the visual roadmap here! https://miro.com/app/board/o9J_ktmGZck=/

- **GraphiQL 2.0.0-beta Roadmap** - #1446
- **Baseline Monaco Mode** - #1445 ([Demo](https://deploy-preview-1459--graphiql-test.netlify.com/monaco))
- **LSP 3.0.0-beta Roadmap** - #1447

## :clipboard: Github Projects
These are where most of the work is organized. Issues and cards that often become issues. An issue might belong to two projects.

- [**Feature Roundup**](https://github.com/graphql/graphiql/projects/10) - organize requested features into core/contrib/etc, proof out new ones as cards that become issues
- [x] [Webpack Takeover](https://github.com/graphql/graphiql/projects/7) - replace browserify with webpack, modernize babel, add esm exports, and more!
- [x] [**Convert to Typescript**](https://github.com/graphql/graphiql/projects/9) - completed except codemirror mode, which will not be used for this effort.
- [x] [**GraphiQL Context API Refactor**](https://github.com/graphql/graphiql/projects/4) (**in progress**): replace state implementation with context or another state management system, introduce replacement/new API interfaces.
- [x] [**Monaco GraphQL first release**](https://github.com/graphql/graphiql/projects/14) (**in progress**): create a monaco mode that satisifies most baseline criteria, and change/refactor LSP as necessary
- [x] [**Component Library and Layout Ecosystem**](https://github.com/graphql/graphiql/projects/11)
- [ ] [**Complete Plugin API Spec**](https://github.com/graphql/graphiql/projects/12) - need to add to this! A catch-all project for discussion/RFCs/spec proposals

## :speech_balloon: Discussions
These discussions will need to be turn into proposals/RFCs. In the case of the first discussion, it could lead to dozens of RFCs.

- **Interface for a GraphiQL plugin** - #829 - Plugin API interface discussion
- **Redesign for Plugins** - #978 - new full-fledged UX Design re-work via @orta!
- **Editor and Documentation Accessibility** - #954 - essential that new redesign is accessibility first, and that `graphiql@2.0.0` stable is as accessible as it's dependencies allow.

## :bulb: Proposals
These proposals need to be advanced, as well as any issue labelled `potential plugin` needs to either be closed and associated with a proposal, or turned into a full proposal/RFC.

- [**Working Plugin API Proposal**](https://www.notion.so/GraphiQL-Plugins-Proposal-Working-Draft-22bf76c9ead4400483b4827afe2b4976) (NotionHQ document) - open for comment! This will be reviewed at the April GraphiQL working group meeting.
- **API Breakages** - #1165 - Proposed API breakages, many of which are already present in `graphiql@2.0.0-alpha.2`
- **Your proposals!** - Please provide PRs and issues, and we will track them with the GraphiQL Plugin Spec project. Templates coming soon.

Note: Projects prefixed with ! are for organizing purposes, where the lanes don't represent states (such as features roundup)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.