question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

GraphiQL Plugins (2.0.0-beta.0) Meta Issue

See original GitHub issue

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 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)

👷‍♀️ 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 - #1468 - this is essentially the Plugin RFC API
  • Add Monaco to GraphiQL - acao/graphiql/pull/17 - yep you read it! replacing codemirror with monaco, merging it to #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 - #1446
  • Baseline Monaco Mode - #1445 (Demo)
  • LSP 3.0.0-beta 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.

💬 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.

💡 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 - #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)

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:5
  • Comments:10 (8 by maintainers)

github_iconTop GitHub Comments

8reactions
acaocommented, Dec 25, 2020

plugins made 2.0 architecture too complicated for the next major version, and also I’m no longer being paid to work on this monorepo as of this fall, so the roadmap has changed based on my availability.

because I’m one of the only active maintainers for this ecosystem, I mostly only have time for the minimum - maintenance work, advancing new GraphQL features so we can advance the spec, and ensuring the LSP ecosystem supports all GraphQL features fully.

there is a WIP for 2.0 since early this year. it was merged to master branch, then we moved it to a seperate workspace because of performance issues with context. the readme will be updated with more details soon, and I’ve been trying to recruit folks to offer new proposals to finish 2.x and no one has opened a PR. i have a lot more community/devrel work to do. was hoping for hacktober, but at work I was pivoted to work on wordpress plugins well before I could make that deadline.

most of the time I spent being paid to work on this repo, I spent on monaco-graphql which is a requirement for 2.0, supporting graphiql@1.0, and advancing more complete LSP support for 2.0.

Modified Goals for 2.0.0

Instead of plugins, for 2.0, we will just have fantastic components, hooks and state implementation (an SDK so to speak, for advanced custom implementations) and an optional top-level service layer GraphiQL component and middlewares. Hopefully sometime soon I can re-hash all the architectural plans, but at this point, there are too many pressing issues and features to address in this repo outside of the graphiql workspace.

The end goal here is not plugins, but enhanced customizeability and extensibility. Plugins are a way to get there, but powerful user interfaces and consistent configuration patterns can lead to plugin-like capabilities.

Since we already need to rewrite the entire clientside domain model with a new state management tool (yet to be chosen), adding the complexity of an entire plugin API isn’t worth it, when people can just publish react components and libraries that can be imported to new and powerful component props, and thus be passed to monaco, to xstate or redux or whatever state manager, or components to be rendered in various regions. The monaco editor itself covers so so many requested GraphiQL features (that are still open issues) that codemirror just doesn’t have.

Then, this 2.0 SDK will change for 3.0 to some degree, and potentially a plugin service layer will be introduced on top of that.

What you can do now

If you want a full-featured, open source client that uses GraphQL and supports a rich plugin ecosystem now, Altair and Insomnia are both excellent choices for this.

If you want to build your own tool with a plugin ecosystem with react, svelte, vue, plain js, whatever you choose, check out the github api explorer demo we have for monaco-graphql!

2reactions
acaocommented, Dec 17, 2019

there is still so much to add to this! @orta had the great idea of breaking out, which we’ve done with github projects. please sort them alphabetically to see the order of precedence.

in fact, we just closed a project for the first time! (Webpack Takeover). It feels real nice to close a roadmap!

Read more comments on GitHub >

github_iconTop Results From Across the Web

تويتر \ GraphiQL على تويتر: "1) graphiql@1.4.0-rc.1 has been ...
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 graphiql@1.0.0-beta, ......
Read more >
Introduction to Apollo Client - Apollo GraphQL Docs
Apollo Client is a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL.
Read more >
Package List — Spack 0.20.0.dev0 documentation
Versions: 2.0.1, 2.0.0, 1.9.3, 1.9.2; Build Dependencies: java, maven ... with an optimization criteria to obtain a solution to the given package problem....
Read more >
Introduction | Docusaurus
For up-to-date documentation, see the latest version (2.2.0). Introduction ... Docusaurus v2 has been a total rewrite from Docusaurus v1, ...
Read more >
graphql_flutter 5.0.0-beta.1 | Flutter Package - Pub.dev
Metadata. A GraphQL client for Flutter, bringing all the features from a modern GraphQL client to one easy to use package.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Hashnode Post

No results found