Description
This is a meta-issue for the GraphiQL IDE plugins effort, towards the GraphQL 2.0.0 beta milestone
(Note: this was previously marked as [email protected]
, however we decided that [email protected]
should be the last officially stable release before merging all of these breaking changes)
👷♀️ 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
- React Context Refactor - feat: [RFC] Rewrite for monaco editor, react context and the beginnings of the redesign #1468 - this is essentially the Plugin RFC API
- Add Monaco to GraphiQL - feat: introduce monaco editor to GraphiQL acao/graphiql#17 - yep you read it! replacing codemirror with monaco, merging it to feat: [RFC] Rewrite for monaco editor, react context and the beginnings of the redesign #1468 when it's ready!
- 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!
🗺️ 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 - GraphiQL 2.0.0 beta Roadmap (monaco, redesign and plugin API!) #1446
- Baseline Monaco Mode - Create a useable GraphQL Monaco Mode and Example #1445 (Demo)
- LSP 3.0.0-beta Roadmap - GraphQL LanguageService 3.0.0 Roadmap #1447
📋 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 - organize requested features into core/contrib/etc, proof out new ones as cards that become issues
- Webpack Takeover - replace browserify with webpack, modernize babel, add esm exports, and more!
- Convert to Typescript - completed except codemirror mode, which will not be used for this effort.
- GraphiQL Context API Refactor (in progress): replace state implementation with context or another state management system, introduce replacement/new API interfaces.
- Monaco GraphQL first release (in progress): create a monaco mode that satisifies most baseline criteria, and change/refactor LSP as necessary
- Component Library and Layout Ecosystem
- Complete Plugin API Spec - need to add to this! A catch-all project for discussion/RFCs/spec proposals
💬 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 - Discussion: The interface for a graphiql plugin #829 - Plugin API interface discussion
- Redesign for Plugins - Discussion: Re-design for Plugins #978 - new full-fledged UX Design re-work via @orta!
- Editor and Documentation Accessibility - Discussion: Editor and Documentation Accessibility #954 - essential that new redesign is accessibility first, and that
[email protected]
stable is as accessible as it's dependencies allow.
💡 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 (NotionHQ document) - open for comment! This will be reviewed at the April GraphiQL working group meeting.
- API Breakages - Proposal: Breaking GraphiQL APIs & New APIs 💥 -> 🚀 #1165 - Proposed API breakages, many of which are already present in
[email protected]
- 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)