From b87b80de88fd15de76bb466ace3c037eddb0bee4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 21:36:38 +0000 Subject: [PATCH 1/4] docs: add Release Operator policy Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Quf1aMvhdMWg8sJJsG6nZJ --- wg-infra/policy/leaving-governance.md | 3 ++ wg-releases/release-operator-policy.md | 46 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 wg-releases/release-operator-policy.md diff --git a/wg-infra/policy/leaving-governance.md b/wg-infra/policy/leaving-governance.md index a34340ec6..28efabe65 100644 --- a/wg-infra/policy/leaving-governance.md +++ b/wg-infra/policy/leaving-governance.md @@ -25,3 +25,6 @@ This documents the process of leaving Electron Governance. A contributor is no l * See [details on GSuite permissions](./access/gsuite.md). 7. Remove the former member from the [Electron organization](https://github.com/electron/) on GitHub. + +8. Remove the former member from the `release-operators` team in the [.permissions repo](https://github.com/electron/.permissions/), if they are a member. + * This revokes their ability to perform management actions on Sudowoodo. diff --git a/wg-releases/release-operator-policy.md b/wg-releases/release-operator-policy.md new file mode 100644 index 000000000..40fba7450 --- /dev/null +++ b/wg-releases/release-operator-policy.md @@ -0,0 +1,46 @@ +## Release Operator Policy + +A **Release Operator** is a member of Electron governance who is authorized to perform management actions on [Sudowoodo](sudowoodo.md): manually queueing releases, retrying steps, cancelling or cleaning up steps, and creating release branches. + +Entering the npm 2FA/OTP code during a release is **not** gated by this policy — any member of the Releases Working Group may do that, unchanged. + +### Prerequisites + +A Release Operator must be an active member of Electron governance, i.e. a member of at least one Working Group. + +### Granting + +1. Any member of the Releases Working Group may nominate a governance member (including themselves) to become a Release Operator. +2. Approval requires a super-majority vote of the Releases Working Group: at least 2/3 of the full sitting membership must vote in favor. + * A reasonable effort must be made to collect votes asynchronously from members who cannot attend the meeting, per the [Charter](../charter/README.md). +3. The vote and its outcome are recorded in the Releases Working Group [meeting notes](meeting-notes). + +### Revoking + +Release Operator status is revoked: + +1. Automatically, when the member leaves Electron governance. +2. Together with removal from the Releases Working Group under the existing [WG Removal Policy](README.md#wg-removal-policy), unless the Working Group explicitly votes to retain it. +3. At any time, by the same 2/3 super-majority vote of the full sitting membership. No cause is required — this is a risk-mitigation lever, not a judgement. + +### Enforcement + +The set of Release Operators is mirrored as the `release-operators` GitHub team, managed in [electron/.permissions](https://github.com/electron/.permissions). Sudowoodo resolves that team to gate management actions. + +After any grant or revoke vote, the team must be updated within 7 days and verified via `/sudowoodo-trainers` in Slack. + +### Initial Membership + +As a grandfather clause, the people holding the management-action privilege at adoption — members of both the Releases Working Group and `mergers` at the time this policy merges — are the initial Release Operators, ratified by the merging of the pull request that introduced this document: + +* [@ckerr](https://github.com/ckerr) +* [@codebytere](https://github.com/codebytere) +* [@dsanders11](https://github.com/dsanders11) +* [@georgexu99](https://github.com/georgexu99) +* [@jkleinsc](https://github.com/jkleinsc) +* [@MarshallOfSound](https://github.com/MarshallOfSound) +* [@VerteDinde](https://github.com/VerteDinde) + +### Audit + +Quarterly, the Releases Working Group Chair compares `/sudowoodo-trainers` (and the `release-operators` team) against the grants recorded in meeting notes, and records the result in the meeting notes. Discrepancies are corrected to match the recorded grants and investigated. From 561e4a7768edf8a8f13f37d41f0d78951600c3d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 21:39:37 +0000 Subject: [PATCH 2/4] fix: correct grandfathered operator list to current privilege holders Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Quf1aMvhdMWg8sJJsG6nZJ --- wg-releases/release-operator-policy.md | 1 - 1 file changed, 1 deletion(-) diff --git a/wg-releases/release-operator-policy.md b/wg-releases/release-operator-policy.md index 40fba7450..825b8f614 100644 --- a/wg-releases/release-operator-policy.md +++ b/wg-releases/release-operator-policy.md @@ -36,7 +36,6 @@ As a grandfather clause, the people holding the management-action privilege at a * [@ckerr](https://github.com/ckerr) * [@codebytere](https://github.com/codebytere) * [@dsanders11](https://github.com/dsanders11) -* [@georgexu99](https://github.com/georgexu99) * [@jkleinsc](https://github.com/jkleinsc) * [@MarshallOfSound](https://github.com/MarshallOfSound) * [@VerteDinde](https://github.com/VerteDinde) From 004fe60ce20551fad793d23f5933886e9a099514 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 22:13:26 +0000 Subject: [PATCH 3/4] docs: revise wording per Releases WG feedback Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Quf1aMvhdMWg8sJJsG6nZJ --- wg-releases/release-operator-policy.md | 43 +++++++++++++------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/wg-releases/release-operator-policy.md b/wg-releases/release-operator-policy.md index 825b8f614..446a06741 100644 --- a/wg-releases/release-operator-policy.md +++ b/wg-releases/release-operator-policy.md @@ -1,37 +1,40 @@ -## Release Operator Policy +# Release Operators -A **Release Operator** is a member of Electron governance who is authorized to perform management actions on [Sudowoodo](sudowoodo.md): manually queueing releases, retrying steps, cancelling or cleaning up steps, and creating release branches. +A Release Operator is a member of Electron governance who is authorized to perform management actions on [Sudowoodo](sudowoodo.md): manually queueing releases, retrying steps, cancelling or cleaning up steps, and creating release branches. -Entering the npm 2FA/OTP code during a release is **not** gated by this policy — any member of the Releases Working Group may do that, unchanged. +Entering the npm 2FA/OTP code during a release is not gated by this policy. Any member of the Releases Working Group may continue to do that, unchanged. -### Prerequisites +## Prerequisites -A Release Operator must be an active member of Electron governance, i.e. a member of at least one Working Group. +A Release Operator shall be an active member of Electron governance, meaning a member of at least one Working Group. -### Granting +## Granting -1. Any member of the Releases Working Group may nominate a governance member (including themselves) to become a Release Operator. -2. Approval requires a super-majority vote of the Releases Working Group: at least 2/3 of the full sitting membership must vote in favor. - * A reasonable effort must be made to collect votes asynchronously from members who cannot attend the meeting, per the [Charter](../charter/README.md). -3. The vote and its outcome are recorded in the Releases Working Group [meeting notes](meeting-notes). +Any member of the Releases Working Group may nominate a governance member (including themselves) to become a Release Operator. -### Revoking +Approval requires a super-majority vote of the Releases Working Group: at least 2/3 of the full sitting membership must vote in favor. A reasonable effort should be made to collect votes asynchronously from members who cannot attend the meeting, per the [Charter](../charter/README.md). + +The vote and its outcome shall be recorded in the Releases Working Group [meeting notes](meeting-notes). + +## Revoking Release Operator status is revoked: -1. Automatically, when the member leaves Electron governance. -2. Together with removal from the Releases Working Group under the existing [WG Removal Policy](README.md#wg-removal-policy), unless the Working Group explicitly votes to retain it. -3. At any time, by the same 2/3 super-majority vote of the full sitting membership. No cause is required — this is a risk-mitigation lever, not a judgement. +* Automatically, when the member leaves Electron governance. +* Together with removal from the Releases Working Group under the existing [WG Removal Policy](README.md#wg-removal-policy), unless the Working Group explicitly votes to retain it. +* At any time, by the same 2/3 super-majority vote of the full sitting membership. No cause is required; this is a risk-mitigation lever, not a judgement. + +In response to suspected account compromise, misuse, or another security concern, any member of the [Infrastructure WG](../wg-infra/README.md) may immediately remove a Release Operator from the `release-operators` team, revoking their Sudowoodo access. The removal takes effect immediately and shall be reported to the Releases Working Group within 24 hours. The Releases Working Group then either ratifies the removal or reinstates the member via the normal vote. -### Enforcement +## Enforcement The set of Release Operators is mirrored as the `release-operators` GitHub team, managed in [electron/.permissions](https://github.com/electron/.permissions). Sudowoodo resolves that team to gate management actions. -After any grant or revoke vote, the team must be updated within 7 days and verified via `/sudowoodo-trainers` in Slack. +After any grant or revoke vote, the team shall be updated within 7 days and verified by running `/sudowoodo-trainers` in Slack. -### Initial Membership +## Initial Membership -As a grandfather clause, the people holding the management-action privilege at adoption — members of both the Releases Working Group and `mergers` at the time this policy merges — are the initial Release Operators, ratified by the merging of the pull request that introduced this document: +The people holding the management-action privilege when this policy was adopted — members of both the Releases Working Group and `mergers` at the time this document merged — are grandfathered in as the initial Release Operators, ratified by the merging of the pull request that introduced this document: * [@ckerr](https://github.com/ckerr) * [@codebytere](https://github.com/codebytere) @@ -39,7 +42,3 @@ As a grandfather clause, the people holding the management-action privilege at a * [@jkleinsc](https://github.com/jkleinsc) * [@MarshallOfSound](https://github.com/MarshallOfSound) * [@VerteDinde](https://github.com/VerteDinde) - -### Audit - -Quarterly, the Releases Working Group Chair compares `/sudowoodo-trainers` (and the `release-operators` team) against the grants recorded in meeting notes, and records the result in the meeting notes. Discrepancies are corrected to match the recorded grants and investigated. From eea13136f95ed57f37793f596816192cf11f577a Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 22:28:37 +0000 Subject: [PATCH 4/4] docs: describe nomination trust signals, disallow self-nomination Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Quf1aMvhdMWg8sJJsG6nZJ --- wg-releases/release-operator-policy.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/wg-releases/release-operator-policy.md b/wg-releases/release-operator-policy.md index 446a06741..0f163816d 100644 --- a/wg-releases/release-operator-policy.md +++ b/wg-releases/release-operator-policy.md @@ -10,12 +10,22 @@ A Release Operator shall be an active member of Electron governance, meaning a m ## Granting -Any member of the Releases Working Group may nominate a governance member (including themselves) to become a Release Operator. +Any member of the Releases Working Group may nominate a governance member to become a Release Operator. Members shall not nominate themselves; a nomination shall be made by a member of the Releases Working Group other than the nominee. Approval requires a super-majority vote of the Releases Working Group: at least 2/3 of the full sitting membership must vote in favor. A reasonable effort should be made to collect votes asynchronously from members who cannot attend the meeting, per the [Charter](../charter/README.md). The vote and its outcome shall be recorded in the Releases Working Group [meeting notes](meeting-notes). +## Evaluating a nomination + +Release Operator status is a grant of trust, not a reward for activity. When voting on a nomination, members of the Releases Working Group should weigh whether the nominee is a known and trusted actor within the Electron ecosystem. Signals that support a nomination include: + +* A long track record of sustained contribution to Electron. +* Being personally known to maintainers, including having met members of the Working Group in person. +* Having their Electron work backed by a corporate entity that shares responsibility for their actions. + +These are signals, not requirements: none is individually necessary, and no combination guarantees approval. The vote remains a judgement of trust by the Working Group. + ## Revoking Release Operator status is revoked: