Skip to content

Commit 326e5d9

Browse files
authored
Initial commit
0 parents  commit 326e5d9

File tree

12 files changed

+442
-0
lines changed

12 files changed

+442
-0
lines changed

.github/ISSUE_TEMPLATE/action-item.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
name: Meeting Action Item
3+
about: Template for action items recommended during subcommittee meetings.
4+
labels: "Action item :clapper:"
5+
---
6+
7+
<!-- description -->
8+
9+
- assignee(s): <!-- @mention, @mention -->
10+
- source: <!-- link to meeting notes -->
11+
12+
---
13+
14+
_Note: Action Item issues are reviewed and closed during Working Group
15+
meetings._
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Meeting Agenda or Attendance
3+
about:
4+
Template for adding agenda or attendance to an upcoming subcommittee meeting.
5+
labels: "Agenda :hand:"
6+
---
7+
8+
<!--
9+
10+
Before attending a GraphQL Working Group meeting, please check the following:
11+
12+
- You (or your organization) has signed the Specification Membership Agreement.
13+
https://github.com/graphql/foundation
14+
15+
- You have read the participation guidelines and intend on contributing to the discussion. To respect meeting size, attendees should be relevant to the agenda. Recordings and notes will be posted after the meeting.
16+
https://github.com/graphql/graphql-wg#participation-guidelines
17+
18+
- Agenda items must include:
19+
- Relevant links (RFC, issues, PRs)
20+
- Champion's name
21+
- Expected time to discuss
22+
23+
-->
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Agenda auto-merge
2+
3+
# First, enable branch protections, and in particular ensure the EasyCLA check is required.
4+
# Then, uncomment the next 3 lines:
5+
#on:
6+
# pull_request_target:
7+
# types: [synchronize, opened, reopened]
8+
9+
permissions:
10+
contents: write
11+
pull-requests: read
12+
checks: read
13+
14+
jobs:
15+
validate-and-merge:
16+
if: ${{ github.event.pull_request.base.ref == 'main' }}
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
# SECURITY: it's critical we do not check out the source pull request!
21+
- name: Checkout the main branch
22+
uses: actions/checkout@v3
23+
with:
24+
ref: main
25+
26+
# We need wgutils to be installed
27+
- run: yarn install
28+
29+
- name: Wait for checks to pass
30+
env:
31+
GH_TOKEN: ${{ github.token }}
32+
run: |
33+
# Give 15 seconds for any checks to register
34+
sleep 15
35+
36+
# Wait for checks to pass
37+
gh pr checks ${{ github.event.pull_request.number }} --fail-fast --watch --required 2>&1 || true
38+
# Now get the result in JSON
39+
CHECKS_OUTPUT="$(gh pr checks ${{ github.event.pull_request.number }} --required --json bucket --jq 'map(.bucket == "pass") | all' 2>&1 || true)"
40+
41+
if echo "$CHECKS_OUTPUT" | grep -q "no required checks reported"; then
42+
echo "Not required: $CHECKS_OUTPUT"
43+
elif [[ "$CHECKS_OUTPUT" == "true" ]]; then
44+
echo "$CHECKS_OUTPUT"
45+
else
46+
echo "PR state failed? $CHECKS_OUTPUT"
47+
exit 1
48+
fi
49+
50+
- name: Automerge if wgutils approves
51+
env:
52+
GH_TOKEN: ${{ github.token }}
53+
run: |
54+
if yarn wgutils can-automerge "${{ github.event.pull_request.number }}" "${{ github.event.pull_request.head.sha }}"; then
55+
gh pr merge "${{ github.event.pull_request.number }}" --squash --auto --match-head-commit "${{ github.event.pull_request.head.sha }}"
56+
fi

.gitignore

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
*.swp
2+
*~
3+
.*.haste_cache.*
4+
.DS_Store
5+
npm-debug.log
6+
/build
7+
/public
8+
/gh-pages
9+
/node_modules
10+
yarn.lock
11+
package-lock.json

.prettierignore

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
*.swp
2+
*~
3+
.*.haste_cache.*
4+
.DS_Store
5+
npm-debug.log
6+
/build
7+
/changelogs
8+
/out
9+
/gh-pages
10+
/node_modules
11+
/package.json

README.md

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Working Group Template
2+
3+
This repository contains a template for creating working groups under the
4+
GraphQL Foundation. To use this template you should:
5+
6+
- create a new repository from it
7+
- remove this front-matter
8+
- customize the text in this README
9+
- fill out `(NAME)` in [notes/README.md](notes/README.md)
10+
- fill out `wg.config.js` with details about the WG's schedule
11+
- `name` / `repoUrl` - update with the name and URL of your WG
12+
- `videoConferenceDetails`: ask @Benjie to generate a new series of (recorded) Zoom meetings, then update the URL and password (do NOT change the spacing, it will break the markdown)
13+
- `liveNotesUrl`: create a blank Google document with the same title as the
14+
WG, make it publicly editable, copy instructions from the main GraphQL WG
15+
live notes
16+
- `nth`, `weekday`, `time` - when will your WG be? (e.g. 4th Thursday at 10:30am-12am would be `nth: 4, weekday: "Th", time: "10:30-12:00"`)
17+
- generate your first month's agenda `yarn && yarn gen-agenda YYYY MM` (replacing YYYY MM with the meeting's year and month, e.g. `2025 01`)
18+
- let @Benjie know the first meeting is scheduled and ask for the GraphQL Foundation calendar to be updated
19+
- (optional) ask @Benjie or a TSC member to enable agenda auto-merge:
20+
- set up branch protections on `main`, specifically requiring `EasyCLA` to pass (may require a PR to be raised to trigger EasyCLA the first time?)
21+
- uncomment the block at the top of `.github/workflows/wgutils-automerge.yml`
22+
23+
In this README, items that need replacing are ALLCAPS and surrounded by
24+
parenthesis. We've attempted to make as much of the text as possible generic so
25+
that little customization will be needed.
26+
27+
---
28+
29+
# GraphQL (NAME) Working Group
30+
31+
This working group is a subcommittee of the
32+
[GraphQL Working Group](https://github.com/graphql/graphql-wg) with the
33+
following primary purpose:
34+
35+
> (MISSION STATEMENT)
36+
37+
Anyone in the public GraphQL community may attend a meeting of this
38+
subcommittee, provided they first sign the
39+
[Specification Membership Agreement](https://github.com/graphql/graphql-wg/tree/main/membership)
40+
or belong to an organization which has signed.
41+
42+
This repository holds [agendas](./agendas) and [notes](./notes) for all meetings
43+
past and upcoming as well as [shared RFC documents](./rfcs). Anyone may edit an
44+
upcoming event's agenda to _attend_ or _propose an agenda item_.
45+
46+
All meetings occur via video conference, however participating company offices
47+
are welcome to host guests.
48+
49+
Meetings are typically scheduled (DETAILS OF MEETING SCHEDULE). Check the
50+
[agendas](./agendas) for the exact date and time of upcoming meetings.
51+
52+
Keep track of future upcoming meetings by subscribing to the
53+
[Google Calendar](https://calendar.google.com/calendar?cid=bGludXhmb3VuZGF0aW9uLm9yZ19pazc5dDl1dWoycDMyaTNyMjAzZGd2NW1vOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t)
54+
or
55+
[ical file](https://calendar.google.com/calendar/ical/linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com/public/basic.ics).
56+
(maintained in UTC because time zones are hard).
57+
58+
### Joining a meeting?
59+
60+
To request participation in an upcoming meeting, please send a pull request by
61+
editing the relevant [meeting agenda](./agendas).
62+
63+
### Want to help us keep up?
64+
65+
We're always looking for volunteers to help take notes from the meetings, the
66+
results of which are shared in [`notes/`](./notes). If you're interested in
67+
taking notes, sign up for a meeting in [`agendas/`](./agendas) and indicate that
68+
you're willing to be a note taker.
69+
70+
## Participation guidelines
71+
72+
Meetings with many participants, especially over video, can easily get hard to
73+
follow or run off course. When we talk about issues we care about, it's easy to
74+
get into heated debate. In order to respect everyone's time, and arrive to
75+
worthwhile outcomes, this subcommittee follows the
76+
["Participation guidelines" in the GraphQL Working Group](https://github.com/graphql/graphql-wg/blob/main/README.md#participation-guidelines);
77+
a summary of which is:
78+
79+
- Participate
80+
- Don't talk too much
81+
- Volunteer to take notes
82+
- Have an outcome in mind
83+
- Contribute
84+
- Choose your battles
85+
- Champion alternatives
86+
- Block progress as a last resort
87+
- Be patient and persistent
88+
89+
## Contributing to this repo
90+
91+
This repository is managed by EasyCLA. Project participants must sign the free
92+
([GraphQL Specification Membership agreement](https://preview-spec-membership.graphql.org)
93+
before making a contribution. You only need to do this one time, and it can be
94+
signed by
95+
[individual contributors](http://individual-spec-membership.graphql.org/) or
96+
their [employers](http://corporate-spec-membership.graphql.org/).
97+
98+
To initiate the signature process please open a PR against this repo. The
99+
EasyCLA bot will block the merge if we still need a membership agreement from
100+
you.
101+
102+
You can find
103+
[detailed information here](https://github.com/graphql/graphql-wg/tree/main/membership).
104+
If you have issues, please email
105+
106+
107+
### Commit access
108+
109+
Commit access is granted to this repo to members of the
110+
[GraphQL TSC](./GraphQL-TSC.md) and some regular attendees of subcommittee
111+
meetings. To request commit access, please reach out to a TSC member.
112+
113+
## Generating agendas
114+
115+
To create the agenda files for a given month YYYY/MM, run the following command:
116+
117+
```
118+
yarn && yarn gen-agenda YYYY MM
119+
```

agendas/README.md

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Agendas
2+
3+
An agenda contains details of when a subcommittee meeting occurs, how to access
4+
it, who will be attending and what the topics to be covered are.
5+
6+
Agendas files are always named in `YYYY-MM-DD.md` format, and should be located
7+
in a folder representing the year.
8+
9+
To request participation in an upcoming meeting, please send a pull request by
10+
editing the relevant meeting agenda.
11+
12+
After a meeting, notes should be uploaded to the reciprocal file in
13+
[the notes folder](../notes).
14+
15+
Meetings are recorded, and they can be viewed on the GraphQL Foundation's
16+
YouTube channel:
17+
18+
https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/videos
19+
20+
There may or may not be a playlist specifically for this subcommittee; if there
21+
is one it can be found here:
22+
23+
https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/playlists

cspell.yml

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
language: en-US
2+
ignoreRegExpList:
3+
# Posessives
4+
- /[a-z]{2,}'s/
5+
words:
6+
# Terms of art
7+
- endianness
8+
- interoperation
9+
- monospace
10+
- openwebfoundation
11+
- parallelization
12+
- structs
13+
- subselection
14+
# Software
15+
- ical
16+
# Fictional characters / examples

notes/README.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
## Notes for all past subcommittee meetings are kept here.
2+
3+
Interested in
4+
[taking notes](https://github.com/graphql/graphql-wg#volunteer-to-take-notes)
5+
for a meeting? Sign up for the next session!
6+
7+
Notes files mirror the file structure of the agendas; namely they should be in
8+
`YYYY/YYYY-MM-DD.md` files to match the date that the meeting took place.
9+
10+
All notes files should begin with the following format:
11+
12+
```md
13+
# GraphQL (NAME) WG Notes - <Month> <Year>
14+
15+
**Watch the replay:**
16+
[GraphQL Working Group Meetings on YouTube](https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/videos)
17+
18+
## Agenda
19+
20+
<Copy of agenda section in agenda file>
21+
```
22+
23+
When adding notes: use H2 (`##`) to indicate new topics, use bullet points to
24+
track discussion, try and keep track of who said each thing, and keep in mind
25+
this is not a transcription - everything is assumed to be
26+
paraphrased/simplified. When inserting meta-notes (notes on the notes), use
27+
curly braces to avoid conflicts with markdown - e.g. `{inaudible}`,
28+
`{could not keep up with discussion}`, or `{time - 22:03}`
29+
30+
It's beneficial to insert timestamps periodically throughout the notes as it
31+
allows for easier lookup of the discussion in the video on YouTube.
32+
33+
Actions should be recorded in the following format:
34+
35+
```
36+
- <Speaker>: **ACTION - <assignee>**: <assignment>
37+
```
38+
39+
For example:
40+
41+
- Lee: **ACTION - Benjie** Write an implementation in GraphQL.js
42+
43+
Sometimes ACTIONS are inferred rather than explicit, try and write down the
44+
inferred action as best you can - it's okay to omit the speaker, the critical
45+
thing is to have an assignee and a brief description of the assignment.
46+
47+
Sometimes actions are on everyone; in these cases `**ACTION - everyone**` is
48+
appropriate, but when filing the action item it should be assigned on GitHub to
49+
the champion for that topic.

package.json

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "graphql-subcommittee",
3+
"private": true,
4+
"license": "OWFa-1.0",
5+
"scripts": {
6+
"gen-agenda": "wgutils agenda gen"
7+
"test:spellcheck": "cspell \"**/*.md\"",
8+
"format": "prettier --write \"**/*.{md,yml,yaml,json}\"",
9+
"format:check": "prettier --check \"**/*.{md,yml,yaml,json}\""
10+
},
11+
"devDependencies": {
12+
"cspell": "5.9.1",
13+
"prettier": "^2.6.2"
14+
},
15+
"prettier": {
16+
"proseWrap": "always"
17+
},
18+
"dependencies": {
19+
"wgutils": "^1.2.4"
20+
}
21+
}

rfcs/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# RFC (request for comments) Working Documents
2+
3+
The files found here are collaborative notes exploring various proposals for advancing this subcommittee. Documents included in this directory imply no specific approval or support nor are any proposals required to create a document here.
4+
5+
## Disclaimers
6+
7+
* Documents included in this directory imply no specific approval or support for inclusion in the GraphQL spec or other GraphQL projects.
8+
* Documents here may be historical or out of date.
9+
* An RFC may be active without being documented here; there is no requirement to add RFCs here.
10+
11+
## Contributing
12+
13+
Pull requests are encouraged. New documents and other non-destructive changes may be merged with a low degree of scrutiny and minimal review.
14+
15+
That said, please follow these suggestions:
16+
17+
* New proposals should be presented in a [working group meeting](../agendas). Submitting a document here is not sufficient or required to introduce a new proposal.
18+
* Favor documents which define a problem and explore a solution space rather than propose a specific change. The intent of documents found here are to help ask and answer questions to build confidence and advance an RFC.

0 commit comments

Comments
 (0)