diff --git a/src/pages/_meta.tsx b/src/pages/_meta.tsx index 20083b625b..1ba427e4ad 100644 --- a/src/pages/_meta.tsx +++ b/src/pages/_meta.tsx @@ -24,7 +24,7 @@ export default { events: { title: "Events & Meetups" }, contribute: { title: "Contribute to GraphQL", - href: "/community/contribute/essential-links", + href: "/community/contribute/governance", }, foundation: { title: "Foundation" }, }, diff --git a/src/pages/community/contribute/_meta.ts b/src/pages/community/contribute/_meta.ts index 624a6f29d4..84a4eaba8c 100644 --- a/src/pages/community/contribute/_meta.ts +++ b/src/pages/community/contribute/_meta.ts @@ -1,9 +1,9 @@ export default { - "essential-links": "", - grant: "Community Grant Program", - development: "Participating in Development", governance: "GraphQL Project Governance", "how-graphql-is-developed": "", - "project-resources": "", "project-meetings": "", + development: "Participating in Development", + grant: "Community Grant Program", + "essential-links": "", + "project-resources": "", } diff --git a/src/pages/community/contribute/development.mdx b/src/pages/community/contribute/development.mdx index 64cdd2af3f..c4b02ccec0 100644 --- a/src/pages/community/contribute/development.mdx +++ b/src/pages/community/contribute/development.mdx @@ -1,17 +1,75 @@ +import { Cards } from "../../../components/cards" + # Participating in Development GraphQL is developed in the open, through [GitHub](https://github.com/graphql) and working group meetings that are open for anyone to attend (so long as they are covered under the [free membership agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership)). In addition, anybody is welcome to view the [recordings of our meetings on YouTube](https://youtube.graphql.org) -## First steps - -If you want to get involved in GraphQL, add yourself to the meeting agenda for one of our [working groups or implementations](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#about-the-graphql-specification-project), sign the document if you haven't already, and show up! Or, if you prefer, just open a PR against our projects as this will also initiate the spec membership signature process. - -We welcome your participation! - ## Getting up to speed -All of our work [happens in the open](https://github.com/graphql). In addition, we record our workgroups' meetings on [YouTube](https://youtube.graphql.org). If you are interested in quickly getting up to speed on what's happening in a working group, the meeting minutes and [replays](https://youtube.graphql.org) are a great place to begin. +All of our work [happens in the open](https://github.com/graphql). In addition, we record our workgroups' meetings on [YouTube](https://youtube.graphql.org). If you are interested in quickly getting up to speed on what's happening in a working group, the [meeting minutes](https://github.com/graphql/graphql-wg/tree/main/notes) and [replays](https://youtube.graphql.org) are a great place to begin. ## Asking questions The best place to ask a development-related question is in a working group meeting, or by opening a GitHub issue. Please note that if you have an implementation question, you may get a faster answer by [asking in one of the channels more geared toward users](/community/resources/official-channels/). + + +## GraphQL projects and implementations + + + +If you want to get involved in GraphQL, add yourself to the meeting agenda for one of our [working groups or implementations](https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#about-the-graphql-specification-project), sign the document if you haven't already, and show up! Or, if you prefer, just open a PR against our projects as this will also initiate the spec membership signature process. + +We welcome your participation! diff --git a/src/pages/community/contribute/how-graphql-is-developed.mdx b/src/pages/community/contribute/how-graphql-is-developed.mdx index 210b471a7d..f3c735e813 100644 --- a/src/pages/community/contribute/how-graphql-is-developed.mdx +++ b/src/pages/community/contribute/how-graphql-is-developed.mdx @@ -9,7 +9,7 @@ import { At its core, the GraphQL project is organized around the [specification](https://spec.graphql.org), with a wide variety of supporting implementations and tools. -GraphQL has an active and mutually beneficial relationship with its many implementations. The GraphQL specification is continuously evolving under the care of the [GraphQL Working Group](https://github.com/graphql/graphql-wg), which consists of GraphQL spec experts, contributors to public [reference implementations](/code), and implementers. At any given time, GraphQL specification updates are a combination of anticipatory planning with documentation of patterns and behaviors that are already proven in production, sometimes at very large scale. +GraphQL has an active and mutually beneficial relationship with its many implementations. The GraphQL specification is continuously evolving under the care of the [GraphQL Working Group](https://github.com/graphql/graphql-wg), which consists of GraphQL spec experts, contributors to public [reference implementations](/community/contribute/development/#graphql-projects-and-implementations), and implementers. At any given time, GraphQL specification updates are a combination of anticipatory planning with documentation of patterns and behaviors that are already proven in production, sometimes at very large scale. ## Working Groups @@ -18,7 +18,7 @@ The GraphQL specification, sub-specifications, and official reference implementa
### The GraphQL Working Group - The [GraphQL Working Group](https://github.com/graphql/graphql-wg) is the main group that plans and implements changes to the [GraphQL specification](https://spec.graphql.org). It meets actively and is the default place for discussion for topics which do not have a separate breakout working group (breakout working groups include the [Input Union WG](https://github.com/graphql/graphql-spec/blob/main/rfcs/InputUnion.md) and the [GraphQL-over-HTTP WG](https://github.com/graphql/graphql-over-http)). + The [GraphQL Working Group](https://github.com/graphql/graphql-wg) is the main group that plans and implements changes to the [GraphQL specification](https://spec.graphql.org). It meets actively and is the default place for discussion for topics which do not have a separate breakout working group (breakout working groups include the [Composite Schemas WG](https://github.com/graphql/composite-schemas-wg/) and the [GraphQL-over-HTTP WG](https://github.com/graphql/graphql-over-http), see [GraphQL subcommittee meetings](/community/contribute/project-meetings/#graphql-subcommittee-meetings) for more). **IMPORTANT:** Your PR against the agenda **must** be merged before you can attend. If the EasyCLA bot says you are not covered, you need to follow the links in the bot's comment to sign the [GraphQL Specification Membership agreement](https://github.com/graphql/graphql-wg/tree/HEAD/membership) before you can attend. -If you have questions about this process, please ask [operations@graphql.org](mailto:operations@graphql.org). - ## GraphQL Working Group / TSC meeting The [GraphQL Working Group](https://github.com/graphql/graphql-wg) meets on the first Thursday of each month. When there are topics to address, the [GraphQL Technical Steering Committee (TSC)](https://github.com/graphql/graphql-wg/blob/HEAD/GraphQL-TSC.md) may meet briefly prior to the start of the Working Group meeting. @@ -24,8 +39,110 @@ The goal of the working group meeting is to discuss current work and future plan To join, add yourself to an [upcoming meeting agenda](https://github.com/graphql/graphql-wg/tree/HEAD/agendas). -## GraphQL.js Working Group meeting +## GraphQL subcommittee meetings + + + +## How to join a meeting + +If you have questions about this process, please ask [operations@graphql.org](mailto:operations@graphql.org). + + +### Make a pull request to the EasyCLA repository + +The GraphQL Specification Membership agreement is managed by a neutral GitHub repository where you can open a pull request and initiate the EasyCLA signing process. All pull requests will be closed periodically. You only need to do this one time, and it can be signed by individual contributors or their employers. + +You can read about the full process, including details about whether to sign as an individual or under an organization, [at the EasyCLA GitHub repository](https://github.com/graphql/graphql-wg/tree/main/membership). + +1. Begin by pressing the edit button in the top right corner of the "README" file + +![Edit button](./images/development/Step1-1.png) + +2. When prompted, create a fork of the project by pressing the green "Fork this repository" button + +![Fork button](./images/development/Step1-2.png) + +3. Make a small change to the README file, it doesn't matter what the change is as it won't be merged into the file +4. Press "Commit changes" + +![Make a commit](./images/development/Step1-4.png) + +5. Confirm your change by pressing "Propose changes", you can use the default commit message +6. This opens a comparison page where you can check your change and press "Create pull request" + +![Create pull request](./images/development/Step1-6.png) + +7. Now it's time to make your pull request. You can change the title and add to the body of the message if you like, then press "Create pull request" +8. After a minute, an automated comment will appear underneath your pull request from "linux-foundation-easycla bot" asking you to sign the EasyCLA + +### Sign the EasyCLA + +1. Press "Click here to be authorized" in the message the EasyCLA bot left on your pull request + +![Click the link to be authorized](./images/development/Step2-1.png) + +2. You'll be asked to grant the Linux Foundation bot some permissions to work with your GitHub account; press "Authorize LF-Engineering" +3. You will be redirected to the EasyCLA platform. Here, you need to choose whether to proceed as an individual or on behalf of your company. If you choose corporate, you may need to contact your company's CLA manager. You'll also be able to read the document before signing it, by pressing "Download PDF" +4. After choosing which way to proceed, the document will be generated with DocuSign, ready for you to sign electronically. When you have filled in the required fields, press "Finish" +5. You will be redirected back to your pull request, and after a few minutes the EasyCLA bot will show that you have signed the agreement + +![EasyCLA recognizes the signed CLA](./images/development/Step2-5.png) + +### Add yourself to the list of attendees + +1. Find your [chosen working group above](#graphql-working-group--tsc-meeting) and find its next agenda by browsing to agendas -> year -> month in the central pane of the GitHub webpage +2. Press the Edit button in the top right corner of the agenda file, and when prompted create a fork by pressing the "Fork this repository" button +3. The file is written in markdown and is generally easy to read. Scroll down to `## Attendees`. Add your information following the format of the other attendees in the list. You can preview your change in a rich text format by pressing "Preview" in the top left of the editing pane + +![Create pull request to the agenda](./images/development/Step3-3.png) -The [GraphQL.js working group](https://github.com/graphql/graphql-js-wg) meets the second Tuesday of each month. The goal is to plan development work and resolve issues with [GraphQL.js](https://github.com/graphql/graphql-js). +4. If applicable, add an agenda item under the `## Agenda` heading, make sure you add your item to the end of the list and add an estimated duration of discussion +5. Press "Commit changes", fill in the details of your changes in the popup, and then press "Propose changes" +6. Now you can review your changes and create your pull request to the agenda by pressing "Create pull request" +7. If you successfully signed the EasyCLA, you will pass the Easy CLA check and your pull request may be automatically merged if you pass the automatic checks. +8. If you don't pass the automatic checks, don't worry, reach out on the [community Discord](https://discord.graphql.org/) or request a [TSC member](https://github.com/graphql/graphql-wg/blob/HEAD/GraphQL-TSC.md#tsc-membership) as a reviewer of your pull request. -To join, add yourself to an [upcoming meeting agenda](https://github.com/graphql/graphql-js-wg/tree/HEAD/agendas). +