Skip to content

Commit 66569b5

Browse files
committed
feat(meetings): add README.md with timings
1 parent 21a321a commit 66569b5

File tree

3 files changed

+121
-0
lines changed

3 files changed

+121
-0
lines changed

.github/meeting.ics

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
BEGIN:VCALENDAR
2+
VERSION:2.0
3+
BEGIN:VEVENT
4+
DTSTAMP:20250729T000000Z
5+
DTSTART:20250804T190000Z
6+
DTEND:20250804T200000Z
7+
RRULE:FREQ=WEEKLY;INTERVAL=4
8+
LOCATION:TBD
9+
END:VEVENT
10+
END:VCALENDAR
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# TODO(@avivkeller): Once Node.js and HackMD finish the meeting generator,
2+
# use it instead.
3+
name: Create Meeting
4+
5+
on:
6+
workflow_dispatch:
7+
schedule:
8+
- cron: '0 3 * * 1' # Every Monday at 03:00 UTC
9+
10+
permissions:
11+
pull-requests: read
12+
issues: write
13+
14+
jobs:
15+
create-meeting:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Check if this is a valid 4-week cycle
19+
id: check
20+
run: |
21+
WEEK=$(date +%U)
22+
OFFSET=30 # 1 week before we start meetings
23+
diff=$(( WEEK - OFFSET ))
24+
mod=$(( (diff % 4 + 4) % 4 ))
25+
if (( mod != 0 )); then
26+
echo "Not a 4th-week-aligned Monday. Skipping."
27+
echo "run=true" >> $GITHUB_OUTPUT
28+
exit 0
29+
else
30+
echo "run=false" >> $GITHUB_OUTPUT
31+
fi
32+
33+
- name: Checkout code
34+
if: steps.check.outputs.run == 'true' || github.event_name == 'workflow_dispatch'
35+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
36+
37+
- name: Create meeting issue
38+
if: steps.check.outputs.run == 'true' || github.event_name == 'workflow_dispatch'
39+
uses: target/create-meeting-issue@b2959d353c7863f7f96f17d42d7618fd57799201
40+
with:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
MEETING_PATH: .github/meeting.ics
43+
TIMEZONES: Etc/UTC
44+
AGENDA_LABEL: web-agenda
45+
ORG_WIDE: true

meetings/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Web Team Meetings
2+
3+
This document outlines the process for the Node.js Web Team meetings.
4+
5+
## Meeting Schedule
6+
7+
The Web Team holds meetings every 4 weeks to discuss and align on key topics related to Node.js web properties. These meetings help move initiatives forward more efficiently than asynchronous communication alone.
8+
9+
For exact dates and times, refer to the [Node.js Calendar](https://nodejs.org/calendar).
10+
11+
In rare cases, a Web Team member may call for an additional meeting outside the regular monthly schedule if there are urgent matters that cannot wait until the next scheduled meeting. All other meeting procedures still apply.
12+
13+
## Meeting Types
14+
15+
We have two types of meetings depending on the content to be discussed:
16+
17+
### 1. Public Meetings
18+
19+
- Recorded or streamed publicly
20+
- Full minutes published in this repository
21+
- For general planning, public PRs, RFCs, etc.
22+
- All members of @nodejs/nodejs-website and @nodejs/web-infra are invited to attend
23+
24+
### 2. Limited Meetings
25+
26+
- Not streamed publicly
27+
- Minutes taken, but only non-sensitive portions are published
28+
- Sensitive portions are logged to a private repository
29+
- For infrastructure topics involving sensitive data (e.g., credentials, access)
30+
31+
The meeting type will be clearly indicated in advance in the meeting announcement.
32+
33+
In exceptional cases where a meeting cannot be known about publicly for security or other sensitive reasons, all standard procedures should still apply, but the meeting and its documentation should be handled entirely through the private repository rather than this public one.
34+
35+
## Meeting Moderation
36+
37+
Each meeting is led by a designated moderator who is responsible for:
38+
39+
- Keeping the discussion on track
40+
- Ensuring all agenda items are covered
41+
- Managing time effectively
42+
- Ensuring meeting notes are taken and shared
43+
- Facilitating decision-making when consensus is needed
44+
45+
For regularly scheduled monthly meetings, the moderator is typically a Web Admin. For exceptional meetings called outside the regular schedule, the Web Team member who called the meeting, or a chosen delegate, serves as the moderator.
46+
47+
## Agenda Items
48+
49+
An issue must be opened in this repository prior to each meeting containing the proposed agenda items. While this issue serves as the foundation for the meeting, the agenda is only finalized at the start of the meeting when all participants have had a chance to propose additional items.
50+
51+
Any community member or contributor can request items to be added to the meeting agenda:
52+
53+
1. Create a GitHub Issue in the nodejs/web-team repository
54+
2. A Collaborator can add the `web-agenda` label to include it in the next meeting
55+
56+
The agenda is not intended to review or approve all patches; that should happen continuously on GitHub and be handled by the larger group of Collaborators.
57+
58+
At the start of each meeting, the moderator will share the agenda with members of the Web Team. Team members can add any items they like to the agenda at the beginning of each meeting. The moderator and the Web Team cannot veto or remove items added to the agenda.
59+
60+
## Meeting Participation
61+
62+
Meeting attendance is optional but encouraged for Web Team members. Any community member or contributor is welcome to observe public meetings.
63+
64+
Members of the Node.js Technical Steering Committee (TSC) and core collaborators are always welcome to attend and participate in public Web Team meetings, unless otherwise stated.
65+
66+
The Web Team may invite persons or representatives from certain projects to participate in a non-voting capacity when their expertise or input would be valuable to the discussion.

0 commit comments

Comments
 (0)