aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonardo Arena <rnalrd@gmail.com>2021-11-16 07:38:43 +0000
committerLeonardo Arena <rnalrd@gmail.com>2021-11-16 07:38:43 +0000
commitb42d9d7ea944ede4532b1761590aa0efc13bb304 (patch)
treef8c92a943bfafbcc5e1968eb871c5e35da948b06
parent8df804cae133180cdde6db3f5c92d62f564370f3 (diff)
parent1a2b9eff03558ca62724bf7321b71129911fee41 (diff)
downloadtsc-b42d9d7ea944ede4532b1761590aa0efc13bb304.tar.gz
tsc-b42d9d7ea944ede4532b1761590aa0efc13bb304.tar.bz2
tsc-b42d9d7ea944ede4532b1761590aa0efc13bb304.tar.xz
Merge branch 'workflow' into 'master'
TSC workflow description See merge request alpine/tsc!1
-rw-r--r--workflow.md147
1 files changed, 147 insertions, 0 deletions
diff --git a/workflow.md b/workflow.md
new file mode 100644
index 0000000..4a8ae02
--- /dev/null
+++ b/workflow.md
@@ -0,0 +1,147 @@
+# Technical Steering Committee Workflow
+
+## Introduction
+
+The Alpine Linux Technical Steering Committee (TSC) is responsible for
+
+* setting the technical direction and guidelines for the project
+* approving changes that either
+ * have a significant impact to Alpine Linux users
+ * affect a number of packages, or
+ * are potentially controversial
+* maintaining a technical roadmap
+* coordinating the work delegated to various technical Special Interest Groups
+ (SIGs), and
+* technical matters which are not in the scope of any particular SIG.
+
+The [Alpine Linux Council](https://gitlab.alpinelinux.org/alpine/council)
+appoints the members of the TSC. The TSC defines what SIGs exist, has
+representation in each SIG, and appoints the leader of each SIG.
+
+This document is the authoritative description on how the TSC operates.
+
+## Raising Issues to the Committee
+
+Anyone in the Alpine Linux community can raise an issue to the TSC by creating
+an issue for the [TSC GitLab
+project](https://gitlab.alpinelinux.org/alpine/tsc). The issue will eventually
+be handled in an upcoming TSC meeting.
+
+## Meeting Practices
+
+The TSC convenes every second week to handle the [open
+issues](https://gitlab.alpinelinux.org/alpine/tsc/-/issues). Each meeting is
+scheduled to last 45 minutes and takes place via a video conferencing system.
+The starting time of sequential meetings alternates between Monday at 16:00 and
+Thursday 15:15 UTC. The meetings are not recorded.
+
+Between the meetings, the members are encouraged to comment the open issues in
+GitLab, especially the issues that are on the agenda of the next meeting. In
+this way, the meeting time can be used more effectively.
+
+### Officials and Minutes
+
+Each meeting has two officials: the *Chair* and the *Scribe*.
+
+The selection of the officials is based on weekday-specific schedules. These
+schedules are based on the round-robin method, where the ordering is based on
+the names of the participating members. Each TSC member participates in at
+least one weekday-specific schedule, depending on his availability.
+
+The Scribe of the meeting is selected according to the weekday-specific
+schedule. The Chair of the meeting shall be the member who was to act as the
+Scribe in the previous meeting held on the same weekday according to the
+schedule. When unable to carry out the duties, a selected official shall
+arrange another TSC member as his substitute. If neither the selected official
+nor his substitute shows up, the TSC elects a substitute.
+
+The responsibilities of the Chair include:
+
+* prioritizing and tagging the open issues before the meeting
+* sending out a meeting invitation to the other members by e-mail at least 7
+ days prior to the meeting
+* chairing the meeting
+* organizing a vote if consensus cannot be reached
+* ensuring a common understanding of what was decided after each item handled,
+ and
+* verifying the correctness of the meeting minutes.
+
+The Scribe is responsible for:
+
+* writing the meeting minutes, accurately recording what was decided, including
+ who shall implement the decision
+* pushing the minutes to the [GitLab
+ repository](https://gitlab.alpinelinux.org/alpine/tsc/-/tree/master/minutes)
+ within 3 days of the meeting, and
+* updating the status of the handled issues by writing comments about the TSC's
+ position when necessary.
+
+Members who were present in the meeting may suggest revisions to the minutes by
+opening merge requests. Unless having been resolved earlier, these merge
+requests shall be handled as the first agenda item in the next meeting.
+
+### Quorum and Voting
+
+Each TSC meeting begins by determining if there is a quorum. More than half of
+the appointed members must be present in order to make any decision. Naturally,
+the meeting can be held without a quorum to discuss open issues, but any
+decision must be postponed to the next meeting.
+
+If the Chair knows in advance that there will be no quorum, he is expected to
+cancel the meeting by e-mail. When unable to attend a meeting due to an
+exceptional schedule, a member is expected to notify the Chair at least 3 days
+in advance.
+
+When making decisions, the TSC attempts to achieve a consensus by thoroughly
+discussing the matter. If no consensus can be reached, the Chair organizes a
+vote. The opinion of the majority becomes the TSC's position. When determining
+the majority, the members who refrained from voting are considered absent.
+
+In case of a tie, the issue is escalated to the Council. If all Council members
+participated in the TSC vote, the decision gets immediately made based on their
+votes without a deferral to the next Council meeting.
+
+If there are more than two options to vote for, it is up to the Chair to decide
+whether to use sequential elimination, multi-option voting, two-round system,
+or other procedures. However, no decision can be made without
+
+* the backing of a simple majority of those who cast their votes, or
+* a tie-break by the Council when half of the votes supported the decision.
+
+### Agenda
+
+On the [agenda board](https://gitlab.alpinelinux.org/alpine/tsc/-/boards/697),
+the open issues are arranged into columns according to `agenda` tags. The
+issues in each column are arranged in a priority order such that the topmost
+issue is considered the most important. When prioritizing the issues, the Chair
+pays attention to the importance, the urgency, and the age of the issues.
+
+The issues tagged with `agenda:scheduled` are expected to be handled in the
+next meeting in their priority order. At most 3 items can have this tag
+attached at the same time. At his discretion, the Chair may also request status
+updates on any issue with an `agenda:follow-up` tag. Hence, each meeting
+follows this agenda:
+
+1. Opening of the meeting
+1. Confirming the meeting officials
+1. Determining if a quorum is present
+1. Closing any merge requests related to the last meeting minutes
+1. Status update on selected `agenda:follow-up` issues
+1. First `agenda:scheduled` issue
+1. Second `agenda:scheduled` issue
+1. Third `agenda:scheduled` issue
+1. Closing of the meeting
+
+The `agenda` tags are expected to be up-to-date when the Chair sends out the
+invitation. If there are good reasons, the Chair may revise them afterwards.
+Only in exceptional cases the Chair would revise the agenda less than 3 days
+prior to the meeting.
+
+At least 10 minutes must be reserved for each `agenda:scheduled` item. When one
+item is finished and there is less than 10 minutes time left, the Chair closes
+the meeting, deferring the remaining items to a future meeting.
+
+## Changes to This Workflow
+
+Any proposed change to this document shall be submitted as a merge request,
+which is handled as a TSC agenda item according to the normal procedure.