docs(RFC): add top-level README (#44)

* docs: add top-level README

* security is a thing

* move charter and address feedback

* move charter
This commit is contained in:
Shelley Vohr 2019-03-15 08:08:33 -07:00 коммит произвёл Charles Kerr
Родитель dc8de50c40
Коммит c46cd8cc2b
14 изменённых файлов: 176 добавлений и 98 удалений

Просмотреть файл

@ -1,10 +1,78 @@
# Electron Governance
The Electron governance system is comprised of Working Groups that oversee different aspects of the Electron ecosystem, and an Administrative working group that functions to resolve conflicts between them.
## Upcoming Agendas
## Working Groups
- [Docs & Tooling WG](https://hackmd.io/vGzeV75VTE2CMjHQdOYxiA)
- [Outreach WG](https://hackmd.io/v2xd8N3jSfWB58ZoEs6rag)
- [Releases WG](https://hackmd.io/UulAOzHORt62Hbbptv3Vig)
- [Upgrades WG](https://hackmd.io/46GxW0JYTZO7-xLjqTTWTA)
- [Website WG](https://hackmd.io/1EvunGbDRsmfyrka9XU1wQ)
```ascii
+----------------------------------------------------------------------------+
| Electron Governance |
| Development & Moderation |
| |
| |
| WORKING GROUPS |
| +----------------------+ +----------------------+ +----------------------+ |
| | Docs & Tooling | | Outreach | | Upgrades | |
| +----------------------+ +----------------------+ +----------------------+ |
| +----------------------+ +----------------------+ +----------------------+ |
| | Website | | Community & Safety | | Releases | |
| +----------------------+ +----------------------+ +----------------------+ |
| +----------------------+ |
| | Security | |
| +----------------------+ |
+----------------------------------------------------------------------------+
```
* [Docs & Tooling WG](wg-docs-tools)
* [Overview](wg-docs-tools/README.md)
* [Associated Repositories](wg-docs-tools/repos.md)
* [Meeting Notes](wg-docs-tools/meeting-notes)
* [Outreach WG](wg-outreach)
* [Overview](wg-outreach/README.md)
* [Meeting Notes](wg-outreach/meeting-notes)
* [Releases WG](wg-releases)
* [Overview](wg-releases/README.md)
* [Associated Repositories](wg-releases/repos.md)
* [Meeting Notes](wg-releases/meetig-notes)
* [Upgrades WG](wg-upgrades)
* [Overview](wg-upgrades/README.md)
* [Associated Repositories](wg-upgrades/repos.md)
* [Meeting Notes](wg-upgrades/meeting-notes)
* [Website WG](wg-website)
* [Overview](wg-website/README.md)
* [Associated Repositories](wg-website/repos.md)
* [Meeting Notes](wg-website/meeting-notes)
* [Community & Safety WG](wg-community-safety)
* [Overview](wg-community-safety/README.md)
* [Meeting Notes](wg-community-safety/meeting-notes)
* [Security WG](wg-security)
* [Overview](wg-security/README.md)
* [Meeting Notes](wg-security/meeting-notes)
* [Administrative WG](wg-administrative)
## Definitions
* A _maintainer_ is anyone who plays an active role in governance.
* A _collaborator_ is active in the community, but not in governance.
* A _participant_ is anyone who is a maintainer or collaborator.
* A _working group_ is a group of maintainers that is formed to take responsibility for certain aspects of the Electron project. Normally these groups will meet regularly but in some cases will only meet as required to fulfill their responsibilities.
* A [_chair_](charter/README.md#Leadership) leads a working group.
## Responsibilities
All Working Groups have these core responsibilities:
* They shall decide for themselves, and publicly post, their rules, e.g. how decisions are made, when meetings are held, and who may attend.
* They shall [select](charter/README.md#Leadership-Terms-and-Selection) a chair to [represent](charter/README.md#Leadership-Responsibilities) the group.
* They shall keep meeting notes, including agenda items, discussion points, and outcomes for everyone to review.
* They shall be collaborative and work [in good faith](charter/README.md#Core-Values) with other Working Groups.
See [charter/README.md] for more information.
## Code of Conduct
The Electron organization and all repos therein adhere to the following [Code of Conduct](CODE_OF_CONDUCT.md).
## License
Electron is licensed with an [MIT License](https://github.com/electron/electron/blob/master/LICENSE).

Просмотреть файл

Просмотреть файл

@ -1,18 +1,23 @@
# Interest Groups
Interest groups are a mechanism in Electron governance that allow individuals to provide input into specific categories of Electron development. These groups would provide input into Electron development via the following processes:
* Reviewing [electron/electron](https://github.com/electron/electron) PRs that have relevance to the interest group.
* Creating and commenting on RFCs/Intent To Ship issues related to the interest group.
## Possible Interest Groups
* APIs
* Node/V8
* Node/V8
* New Chromium feature implementation (eg push notifications)
## Membership
Membership into interest groups are open to anyone in the Electron Maintainers group in good standing.
Interest groups will be listed in this repository with a link for maintainers to fill out a form to join an interest group.
## Interest Group PR Workflow
1. When a PR is created, the template for the PR will include a link to the list of interest groups so that the PR creator has a list of group(s) to ask for review from.
2. When a PR affects one or more interest categories the submitter of the PR or a reviewer of a PR assigns the appropriate interest group teams as reviewer(s) for the PR.
3. Members of interest groups will be notified via GitHub notifications when a PR has a reviewer set to the interest group teams that member belongs to.
@ -22,6 +27,7 @@ Interest groups will be listed in this repository with a link for maintainers to
7. The resolution/decision on the PR should be documented in the issue via a GitHub comment.
## Interest Group RFC/Intent To Ship Workflow
1. Any maintainer can create a RFC or Intent To Ship issue in the [electron/electron](https://github.com/electron/electron) repository. These issues would be used to gather input on ideas (RFCs) and feedback on planned implementations (Intent To Ship). When creating a RFC or Intent To Ship issue, the submitter should pick the proper issue template which will include a link to the list of interest groups so that the issue creator has a list of group(s) to ask for input from.
2. Once input has been solicited, it is the responsibility of Interest Group members to provide feedback in these issues. Members of affected Interest Groups who do not provide feedback will be considered to be providing implicit approval of the issue.
3. If there are conflicting opinions on the issue, the maintainers involved should seek to resolve the conflicts within the issue.

Просмотреть файл

@ -11,9 +11,9 @@ Additionally, we want to encourage helpful feedback and meaningful participation
## Goals
* Communicate clearly and effectively
* What the maintainers will work on
* What pull requests will be reviewed for acceptance
* What pull requests *will not* be reviewed for acceptance
* What the maintainers will work on
* What pull requests will be reviewed for acceptance
* What pull requests *will not* be reviewed for acceptance
* Outline exactly what is expected for an issue to meet the "triage bar" so that issues that don't meet the bar can be closed
* Reduce the amount of time and back-and-forth needed to take an issue from being first-opened to `triaged` or closed
* Accept input from the community that helps us deliver meaningful results back to the Atom community

Просмотреть файл

@ -12,7 +12,7 @@ Once their internship concludes, they are welcome to request to join the Working
## Permissions
As a Working Group observer that intern would be granted the access that that working group would grant but only for the duration of their internship and under the strict supervision of the nominating member.
As a Working Group observer that intern would be granted the access that membership in that Working Group grants but only for the duration of their internship and under the strict supervision of the nominating member.
This means they would be granted Full User access on Slack, and GitHub permissions in accordance with members of that Working Group. If their nominating party is the Chair, they would not be granted the extra permissions the Chair may have; only those of primary group members.

Просмотреть файл

@ -10,7 +10,7 @@ If the PR fixes an issue, the PR must mention that issue in the PR body, e.g. [F
## Getting Feedback
Pull Requests whose changes affect end-users should stay open for at least 24 hours. This is to allow for input from all timezones
Pull Requests whose changes affect end-users should stay open for at least **24 hours**. This is to allow for input from all timezones.
Unless other agreements have been made, people should allow 24 hours before pinging folks for review or re-review.
@ -24,10 +24,10 @@ Requesting changes in the service of these goals is strongly encouraged, but alw
## Merging
All PRs should be Squash-and-merged with the exception of Chromium upgrades that should be merged maintaining commit history.
All PRs should be **squash-and-merged** with the exception of Chromium upgrades that should be merged in order to maintain commit history.
## Further Reading
* [Pull Request Etiquette](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)
* [How to raise a good pull request](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)
* [Code review etiquette](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)
* [Pull Request Etiquette](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)
* [How to raise a good pull request](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)
* [Code review etiquette](https://gist.github.com/naupaka/184e2d81e7eb8ae4fe541de02e8081c0)

Просмотреть файл

@ -12,20 +12,20 @@ You can "react" to messages with emoji. Apps and bots can, in turn, [perform ope
Slack allows users to ping everyone present in a channel using three groups: `@here` for all currently active members in a channel, `@channel` for everyone in a channel, and `@everyone` for literally everyone. While we haven't disabled those groups, _do not use them unless absolutely necessary_. Push notifications are the equivalent of texting someone, only use `@`-mentions with exactly the people you _need to reach_.
* Do not use @everyone.
* Do not use @here or @channel in channels with more than 10 users – and only if you want to reach all those people.
* Do not use **@everyone**.
* Do not use **@here** or **@channel** in channels with more than 10 users – and then only if you want to reach all those people.
### Channel Names
Slack uses channels to organize work into "chat rooms". You can read more about Slack channels and [how to use them here](https://slackhq.com/how-to-organize-your-work-life-into-slack-channels). In order to organize channels, we're using _prefixes_. We recommend that you consider using one when creating new channels:
* `announce-`: Announcement channels, not used for general chatter – and excellent for following along.
* `proj-`: Project-specific channels, like `proj-typescript` or `proj-newsletter`.
* `bot-`: Channels used by bots and apps, like `bot-twitter` or `bot-electron-repo`.
* `idea-`: A channel about a project that's not quite a project yet, but worthy of its own channel.
* `wg-`: Channels for governance working groups.
* `event-`: Channels for individual events.
* `app-`: Channels for specific apps, like `app-slack`.
* `announce-`: Announcement channels, not used for general chatter – and excellent for following along.
* `proj-`: Project-specific channels, like `proj-typescript` or `proj-newsletter`.
* `bot-`: Channels used by bots and apps, like `bot-twitter` or `bot-electron-repo`.
* `idea-`: A channel about a project that's not quite a project yet, but worthy of its own channel.
* `wg-`: Channels for governance working groups.
* `event-`: Channels for individual events.
* `app-`: Channels for specific apps, like `app-slack`.
As a general rule, we have channels for each major release line of `electron/electron` - as an example, `5-x-y`.

Просмотреть файл

@ -13,15 +13,14 @@ Oversees removal/bans from community.
| <img src="https://github.com/jkleinsc.png" width=100 alt="@jkleinsc"> | John Kleinschmidt [@jkleinsc](https://github.com/jkleinsc) | Member | EST (Harrisburg) |
| <img src="https://github.com/sofianguy.png" width=100 alt="@sofianguy"> | Sofia Nguy [@sofianguy](https://github.com/sofianguy) | Member | PST (San Francisco) |
## Areas of Responsibility
- Approval of adding and removing Slack Owners / Admins.
- Adding and removing Slack members.
- Non governance members are multi channel guests.
- Dealing with Code of Conduct issues that happen during events, in Slack, and on GitHub.
- Banning GitHub users on repos and issues.
- Helping arbitrate disagreements between contributors.
* Approval of adding and removing Slack Owners / Admins.
* Adding and removing Slack members.
* Non governance members are multi channel guests.
* Dealing with Code of Conduct issues that happen during events, in Slack, and on GitHub.
* Banning GitHub users on repos and issues.
* Helping arbitrate disagreements between contributors.
## Associated Repositories
@ -29,7 +28,7 @@ All repositories under electron org.
## Meeting Schedule
- **Sync Meeting** 60 min Biweekly (every other week) @ 4:00PM GMT on Thursdays
- On an as needed basis
* **Sync Meeting** 60 min Biweekly (every other week) @ 4:00PM GMT on Thursdays
* On an as needed basis
Meeting notes may be viewed in [meeting-notes](meeting-notes).

Просмотреть файл

@ -20,25 +20,25 @@ Oversees externally-focused tooling (e.g. Fiddle, Forge), Electron documentation
These projects are sorted alphabetically, their order does not reflect that any of them are "better" or "more important" than others.
* The documentation across all `electron/*` repositories, primarily focusing on `electron/electron/docs` in the repo and the website
* Tools (Core)
* Devtron
* Docs Linter
* Fiddle
* Quickstart & API Demo repos
* Rebuild
* Spectron
* Typescript Generator
* Update server (update.electronjs.org)
* Windows Installer (`electron-winstaller`)
* rcedit
* Tools (Userland)
* Download
* electron-compile
* electron-installer-*
* Forge
* osx-sign
* Packager
* The documentation across all `electron/*` repositories, primarily focusing on `electron/electron/docs` in the repo and the website
* Tools (Core)
* Devtron
* Docs Linter
* Fiddle
* Quickstart & API Demo repos
* Rebuild
* Spectron
* Typescript Generator
* Update server (update.electronjs.org)
* Windows Installer (`electron-winstaller`)
* rcedit
* Tools (Userland)
* Download
* electron-compile
* electron-installer-*
* Forge
* osx-sign
* Packager
...and all other tools third party community based Electron tools.
@ -46,33 +46,36 @@ These projects are sorted alphabetically, their order does not reflect that any
These repos are sorted alphabetically, their order does not reflect that any of them are "better" or "more important" than others.
- [`electron/devtron`](https://github.com/electron/devtron)
- [`electron/electron-api-demos`](https://github.com/electron/electron-api-demos)
- [`electron/electron-docs-linter`](https://github.com/electron/electron-docs-linter)
- [`electron/electron-quick-start`](https://github.com/electron/electron-quick-start)
- [`electron/electron-rebuild`](https://github.com/electron/electron-rebuild)
- [`electron/electron-typescript-definitions`](https://github.com/electron/electron-typescript-definitions)
- [`electron/fiddle`](https://github.com/electron/fiddle)
- [`electron/node-rcedit`](https://github.com/electron/node-rcedit)
- [`electron/rcedit`](https://github.com/electron/rcedit)
- [`electron/releases`](https://github.com/electron/releases)
- [`electron/spectron`](https://github.com/electron/spectron)
- [`electron/update-electron-app`](https://github.com/electron/update-electron-app)
- [`electron/update.electronjs.org`](https://github.com/electron/update.electronjs.org)
- [`electron/windows-installer`](https://github.com/electron/windows-installer)
### Electron Organization
* [`electron/devtron`](https://github.com/electron/devtron)
* [`electron/electron-api-demos`](https://github.com/electron/electron-api-demos)
* [`electron/electron-docs-linter`](https://github.com/electron/electron-docs-linter)
* [`electron/electron-quick-start`](https://github.com/electron/electron-quick-start)
* [`electron/electron-rebuild`](https://github.com/electron/electron-rebuild)
* [`electron/electron-typescript-definitions`](https://github.com/electron/electron-typescript-definitions)
* [`electron/fiddle`](https://github.com/electron/fiddle)
* [`electron/node-rcedit`](https://github.com/electron/node-rcedit)
* [`electron/rcedit`](https://github.com/electron/rcedit)
* [`electron/releases`](https://github.com/electron/releases)
* [`electron/spectron`](https://github.com/electron/spectron)
* [`electron/update-electron-app`](https://github.com/electron/update-electron-app)
* [`electron/update.electronjs.org`](https://github.com/electron/update.electronjs.org)
* [`electron/windows-installer`](https://github.com/electron/windows-installer)
- [`electron-userland/electron-download`](https://github.com/electron-userland/electron-download)
- [`electron-userland/electron-forge`](https://github.com/electron-userland/electron-forge)
- [`electron-userland/electron-installer-common`](https://github.com/electron-userland/electron-installer-common)
- [`electron-userland/electron-installer-debian`](https://github.com/electron-userland/electron-installer-debian)
- [`electron-userland/electron-installer-dmg`](https://github.com/electron-userland/electron-installer-dmg)
- [`electron-userland/electron-installer-redhat`](https://github.com/electron-userland/electron-installer-redhat)
- [`electron-userland/electron-installer-snap`](https://github.com/electron-userland/electron-installer-snap)
- [`electron-userland/electron-installer-squirrel-windows`](https://github.com/electron-userland/electron-installer-squirrel-windows)
- [`electron-userland/electron-installer-windows`](https://github.com/electron-userland/electron-installer-windows)
- [`electron-userland/electron-installer-zip`](https://github.com/electron-userland/electron-installer-zip)
- [`electron-userland/electron-packager`](https://github.com/electron-userland/electron-packager)
### Electron Userland Organization
* [`electron-userland/electron-download`](https://github.com/electron-userland/electron-download)
* [`electron-userland/electron-forge`](https://github.com/electron-userland/electron-forge)
* [`electron-userland/electron-installer-common`](https://github.com/electron-userland/electron-installer-common)
* [`electron-userland/electron-installer-debian`](https://github.com/electron-userland/electron-installer-debian)
* [`electron-userland/electron-installer-dmg`](https://github.com/electron-userland/electron-installer-dmg)
* [`electron-userland/electron-installer-redhat`](https://github.com/electron-userland/electron-installer-redhat)
* [`electron-userland/electron-installer-snap`](https://github.com/electron-userland/electron-installer-snap)
* [`electron-userland/electron-installer-squirrel-windows`](https://github.com/electron-userland/electron-installer-squirrel-windows)
* [`electron-userland/electron-installer-windows`](https://github.com/electron-userland/electron-installer-windows)
* [`electron-userland/electron-installer-zip`](https://github.com/electron-userland/electron-installer-zip)
* [`electron-userland/electron-packager`](https://github.com/electron-userland/electron-packager)
...and all other repositories that the community would consider maintained by Electron.

Просмотреть файл

@ -14,6 +14,7 @@ Grows the Electron community
| <img src="https://github.com/tonyganch.png" width=100 alt="@tonyganch"> | Tony Ganch [@tonyganch](https://github.com/tonyganch) | Member | CET (Prague) |
## Areas of Responsibility
- Onboarding for new members
- Reaching out to companies
- Developer Evangelism / Developer Relations / Developer Advocate

Просмотреть файл

@ -28,6 +28,7 @@ Oversees all release branches, and tooling to support releases.
See [repos.md](repos.md)
## Rules for Membership
1. Attend three consecutive meetings
2. Request entry into Releases Working Group by asking the current Chair
3. Entry request is voted on at a subsequent meeting, during a portion of the meeting which the requester shall not attend
@ -35,7 +36,7 @@ See [repos.md](repos.md)
## Meeting Schedule
- **Sync Meeting** 45min Weekly @ 4:00PM PST
- **Major Release Cadence Meeting** 1 hour Weekly @ 5:00PM PST
* **Sync Meeting** 45min Weekly @ 4:00PM PST
* **Major Release Cadence Meeting** 1 hour Weekly @ 5:00PM PST
Meeting notes may be viewed in [meeting-notes](meeting-notes).

Просмотреть файл

@ -1,5 +1,4 @@
Security WG Membership & Notifications
===
# Security WG Membership & Notifications
## Membership
@ -16,14 +15,15 @@ Based on that criteria, the WG encourages people whose applications were decline
### Friends and Family
These notifications are limited-information advance warnings that say that a new release is coming and, depending on the sensitivity and availability of invitation, _perhaps_ some of the following:
* affected versions
* affected platforms
* possible mitigations
* affected versions
* affected platforms
* possible mitigations
For example:
> A new security vulnerability has been confirmed that affects Electron 3.0 and above on all platforms. A new release to fix this is expected in the next week.
The intent of these is to help Electron-based apps do short-term planning so that they can get security fixes to their users as soon as possible.
These notifications will be made via a private Slack channel on ElectronHQ. If you'd like to join this channel and are an app developer with a history of working with Electron's maintainers, e.g. as a contributor or as a member of the [App Feedback Program](https://electronjs.org/blog/app-feedback-program), please contact the Security WG.
@ -35,6 +35,7 @@ Public notifications are a wider disclosure of vulnerabilities. Unlike the "Frie
These announcements will typically be made alongside new releases which fix the issue.
Places to look for these announcements:
* `#announce-security` in [ElectronHQ Slack](https://electronjs.org/maintainers/join)
* Electron's [Twitter](https://twitter.com/electronjs) account
* https://electronjs.org/blog
* `#announce-security` in [ElectronHQ Slack](https://electronjs.org/maintainers/join)
* Electron's [Twitter](https://twitter.com/electronjs) account
* https://electronjs.org/blog

Просмотреть файл

@ -14,18 +14,17 @@ Oversees upgrades of upstream dependencies; specifically Chromium and Node.
| <img src="https://github.com/marshallofsound.png" width=100 alt="@marshallofsound"> | Samuel Attard [@MarshallOfSound](https://github.com/marshallofsound) | Member | PST (Vancouver) |
| <img src="https://github.com/codebytere.png" width=100 alt="@codebytere"> | Shelley Vohr [@codebytere](https://github.com/codebytere) | Member | PST (San Francisco) |
## Areas of Responsibility
* Ensuring that Chromium and Node upgrades happen in a timely fashion
* Upgrade-related tooling such as patch scripts, roller-bot
* Advising on maintenance burden of feature support for Chromium features
* When an Electron feature depends on or heavily integrates with Chromium,
* When an Electron feature depends on or heavily integrates with Chromium,
the upgrades working group will be responsible for assessing ongoing
maintenance burden.
* Upstreaming patches
* Adding/dropping dependencies
* e.g. `native_mate`
* e.g. `native_mate`
## Associated Repositories
@ -33,6 +32,6 @@ See [repos.md](repos.md)
## Meeting Schedule
- **Sync Meeting** 60 min weekly @ 16:00 UTC on Tuesdays
* **Sync Meeting** 60 min weekly @ 16:00 UTC on Tuesdays
Meeting notes may be viewed in [meeting-notes](meeting-notes).

Просмотреть файл

@ -20,11 +20,11 @@ Oversees the technical implementation, design, and style of the Electron website
## Associated Repositories
- [`electron/electronjs.org`](https://github.com/electron/electronjs.org)
- [`electron/releases`](https://github.com/electron/releases)
- [`electron/apps`](https://github.com/electron/apps)
- [`electron/i18n`](https://github.com/electron/i18n)
- [`electron/electron-docs-linter`](https://github.com/electron/electron-docs-linter)
* [`electron/electronjs.org`](https://github.com/electron/electronjs.org)
* [`electron/releases`](https://github.com/electron/releases)
* [`electron/apps`](https://github.com/electron/apps)
* [`electron/i18n`](https://github.com/electron/i18n)
* [`electron/electron-docs-linter`](https://github.com/electron/electron-docs-linter)
## Meeting Schedule