Skip to content

Update stewardship guildelines and process #7867

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 10, 2025
Merged
8 changes: 4 additions & 4 deletions .github/ISSUE_TEMPLATE/2-found-a-bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ body:
- label: Math
- label: Typography
- label: Utilities
- label: p5.strands
- label: WebGL
- label: Build process
- label: Unit testing
- label: Internationalization
- label: Friendly errors
- label: DevOps, Build process, Unit testing
- label: Internationalization (i18n)
- label: Friendly Errors
- label: Other (specify if possible)
- type: input
attributes:
Expand Down
10 changes: 8 additions & 2 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,17 @@
- '\[[xX]\]\s*Utilities'
"Area:WebGL":
- '\[[xX]\]\s*WebGL'
"Internationalization":
- '\[[xX]\]\s*Internationalization'
"DevOps":
- '\[[xX]\]\s*Build Process'
"DevOps":
- '\[[xX]\]\s*Unit Testing'
"Build Process":
- '\[[xX]\]\s*Build Process'
"Unit Testing":
- '\[[xX]\]\s*Unit Testing'
"Internationalization":
- '\[[xX]\]\s*Internationalization'
"Friendly Errors":
- '\[[xX]\]\s*Friendly Errors'
"p5.strands":
- '\[[xX]\]\s*p5.strands'
33 changes: 33 additions & 0 deletions .github/workflows/stewards-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Update Steward Table in README

on:
push:
branches: [main]
paths:
- stewards.yml

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: npm install js-yaml

- name: Run table generator
run: node utils/stewards-table.js

- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
commit-message: "Update README table from stewards.yml"
branch: update-readme-table
title: 'chore: update README table from stewards.yml'
body: 'This PR updates the README.md table to refelct changes in stewards.yml.'
add: README.md
44 changes: 23 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,27 +86,29 @@ Lead/Mentor Alumni
* [@qianqianye](https://github.com/qianqianye) - p5.js Lead,2021-present (on leave)
* [@outofambit](https://github.com/outofambit) - p5.js Co-Lead 2021-22, Mentor 2022-2023
* [@mcturner1995](https://github.com/mcturner1995) - p5.js Lead 2020

| Area | Steward(s) |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| Overall | [@ksen0](https://github.com/ksen0) |
| [Accessibility](https://github.com/processing/p5.js/tree/main/src/accessibility) | [@calebfoss](https://github.com/calebfoss), [@cosmicbhejafry](https://github.com/cosmicbhejafry), [@apoorva-a98](https://github.com/apoorva-a98), [@tedkmburu](https://github.com/tedkmburu), [@Zarkv](https://github.com/Zarkv), [@SkylerW99](https://github.com/SkylerW99), [@itsjoopark](https://github.com/itsjoopark), [@hannahvy](https://github.com/hannahvy), [@nhasalajoshi](https://github.com/nhasalajoshi)|
| [Color](https://github.com/processing/p5.js/tree/main/src/color) | [@paulaxisabel](https://github.com/paulaxisabel), [@SoundaryaKoutharapu](https://github.com/SoundaryaKoutharapu), [@mrbrack](https://github.com/mrbrack), [@TJ723](https://github.com/TJ723), [@Zarkv](https://github.com/Zarkv), [@SkylerW99](https://github.com/SkylerW99), [@ramya202000](https://github.com/ramya202000), [@hannahvy](https://github.com/hannahvy), [@robin-haxx](https://github.com/robin-haxx), [@hiddenenigma](https://github.com/hiddenenigma) |
| [Core](https://github.com/processing/p5.js/tree/main/src/core)/Environment/Rendering | [@limzykenneth](https://github.com/limzykenneth), [@davepagurek](https://github.com/davepagurek), [@ChihYungChang](https://github.com/ChihYungChang), [@teragramgius](https://github.com/teragramgius), [@tuminzee](https://github.com/tuminzee), [@Zarkv](https://github.com/Zarkv), [@robin-haxx](https://github.com/robin-haxx), [@Gaurav-1306](https://github.com/Gaurav-1306) |
| [Data](https://github.com/processing/p5.js/tree/main/src/data) | [@angelabelle](https://github.com/angelabelle), [@shahankhatch](https://github.com/shahankhatch), [@TanviKumar](https://github.com/TanviKumar), [@SkylerW99](https://github.com/SkylerW99), [@nhasalajoshi](https://github.com/nhasalajoshi) |
| [DOM](https://github.com/processing/p5.js/tree/main/src/dom) | [@SarveshLimaye](https://github.com/SarveshLimaye), [@SoundaryaKoutharapu](https://github.com/SoundaryaKoutharapu), [@ramya202000](https://github.com/ramya202000), [@BamaCharanChhandogi](https://github.com/BamaCharanChhandogi), [@Obi-Engine10](https://github.com/Obi-Engine10), [@MarceloGoncalves](https://github.com/MarceloGoncalves), [@hiddenenigma](https://github.com/hiddenenigma) |
| [Events](https://github.com/processing/p5.js/tree/main/src/events) | [@limzykenneth](https://github.com/limzykenneth), [@richardegil](https://github.com/richardegil), [@angelabelle](https://github.com/angelabelle), [@littlejacinthe](https://github.com/littlejacinthe), [@TanviKumar](https://github.com/TanviKumar), [@tuminzee](https://github.com/tuminzee) |
| [Image](https://github.com/processing/p5.js/tree/main/src/image) | [@cgusb](https://github.com/cgusb), [@albertomancia](https://github.com/albertomancia), [@ramya202000](https://github.com/ramya202000), [@hannahvy](https://github.com/hannahvy), [@robin-haxx](https://github.com/robin-haxx)|
| [IO](https://github.com/processing/p5.js/tree/main/src/io) | [@limzykenneth](https://github.com/limzykenneth), [@Pritam1136](https://github.com/Pritam1136), [@shahankhatch](https://github.com/shahankhatch), [@TanviKumar](https://github.com/TanviKumar), [@jeanetteandrews](https://github.com/jeanetteandrews)|
| [Math](https://github.com/processing/p5.js/tree/main/src/math) | [@limzykenneth](https://github.com/limzykenneth), [@ericnlchen](https://github.com/ericnlchen), [@ChihYungChang](https://github.com/ChihYungChang), [@bsubbaraman](https://github.com/bsubbaraman), [@albertomancia](https://github.com/albertomancia), [@JazerUCSB](https://github.com/JazerUCSB), [@tedkmburu](https://github.com/tedkmburu), [@perminder-17](https://github.com/perminder-17), [@Obi-Engine10](https://github.com/Obi-Engine10), [@jeanetteandrews](https://github.com/jeanetteandrews) |
| [Typography](https://github.com/processing/p5.js/tree/main/src/typography) | [@dhowe](https://github.com/dhowe), [@paulaxisabel](https://github.com/paulaxisabel), [@SarveshLimaye](https://github.com/SarveshLimaye), [@SkylerW99](https://github.com/SkylerW99), [@BamaCharanChhandogi](https://github.com/BamaCharanChhandogi), [@Obi-Engine10](https://github.com/Obi-Engine10), [@hannahvy](https://github.com/hannahvy), [@singshris](https://github.com/singshris), [@hiddenenigma](https://github.com/hiddenenigma) |
| [Utilities](https://github.com/processing/p5.js/tree/main/src/utilities) | [@limzykenneth](https://github.com/limzykenneth), [@glopzel](https://github.com/glopzel) |
| [WebGL](https://github.com/processing/p5.js/tree/main/src/webgl) | [@davepagurek](https://github.com/davepagurek), [@aferriss](https://github.com/aferriss), [@aceslowman](https://github.com/aceslowman), [@ShenpaiSharma](https://github.com/ShenpaiSharma), [@ChihYungChang](https://github.com/ChihYungChang), [@teragramgius](https://github.com/teragramgius), [@JazerUCSB](https://github.com/JazerUCSB), [@richardegil](https://github.com/richardegil), [@itsjoopark](https://github.com/itsjoopark), [@Gaurav-1306](https://github.com/Gaurav-1306), [@jeanetteandrews](https://github.com/jeanetteandrews) |
| [Internalization](https://github.com/processing/p5.js/blob/main/src/core/internationalization.js) | [@limzykenneth](https://github.com/limzykenneth) |
| [Friendly Errors](https://github.com/processing/p5.js/tree/main/src/core/friendly_errors) | [@richardegil](https://github.com/richardegil), [@itsjoopark](https://github.com/itsjoopark), [@hannahvy](https://github.com/hannahvy), [@bisabi-01](https://github.com/bisabi-01), [@singshris](https://github.com/singshris) |
| [Contributor Docs](https://github.com/processing/p5.js/tree/main/contributor_docs) |[@limzykenneth](https://github.com/limzykenneth), [@asukaminato0721](https://github.com/asukaminato0721), [@SoundaryaKoutharapu](https://github.com/SoundaryaKoutharapu), [@richardegil](https://github.com/richardegil), [@hannahvy](https://github.com/hannahvy), [@bayomayo](https://github.com/bayomayo) |
| [p5.sound](https://github.com/processing/p5.sound.js) |[@miguellacorte](https://github.com/miguellacorte), [@JazerUCSB](https://github.com/JazerUCSB), [@angelabelle](https://github.com/angelabelle), [@littlejacinthe](https://github.com/littlejacinthe), [@hannahvy](https://github.com/hannahvy), [@glopzel](https://github.com/glopzel), [@singshris](https://github.com/singshris), [@jeanetteandrews](https://github.com/jeanetteandrews) |
| Build Process/Unit Testing | [@limzykenneth](https://github.com/limzykenneth) |


<!-- STEWARDS-LIST:START - Do not remove or modify this section -->
| Area | Steward(s) |
|------|-------------|
| Maintainers | [@davepagurek](https://github.com/davepagurek), [@ksen0](https://github.com/ksen0), [@limzykenneth](https://github.com/limzykenneth), [@perminder-17](https://github.com/perminder-17), [@qianqianye](https://github.com/qianqianye) |
| Accessibility | [@calebfoss](https://github.com/calebfoss) |
| Color | [@limzykenneth](https://github.com/limzykenneth) |
| Core | [@davepagurek](https://github.com/davepagurek) |
| DevOps | [@Vaivaswat2244](https://github.com/Vaivaswat2244), [@error-four-o-four](https://github.com/error-four-o-four), [@limzykenneth](https://github.com/limzykenneth), [@lirenjie95](https://github.com/lirenjie95) |
| Documentation | [@VANSH3104](https://github.com/VANSH3104), [@limzykenneth](https://github.com/limzykenneth), [@perminder-17](https://github.com/perminder-17) |
| Friendly Errors | [@IITM-Jay](https://github.com/IITM-Jay) |
| Graphics (p5.strands) | [@lukeplowden](https://github.com/lukeplowden) |
| Graphics (WebGL) | [@aferriss](https://github.com/aferriss), [@davepagurek](https://github.com/davepagurek), [@lukeplowden](https://github.com/lukeplowden), [@perminder-17](https://github.com/perminder-17) |
| i18n (hi) | [@Divyansh013](https://github.com/Divyansh013), [@takshittt](https://github.com/takshittt) |
| i18n (zh) | [@limzykenneth](https://github.com/limzykenneth), [@lirenjie95](https://github.com/lirenjie95) |
| Math | [@GregStanton](https://github.com/GregStanton), [@holomorfo](https://github.com/holomorfo) |
| p5.js-website | [@clairep94](https://github.com/clairep94), [@ksen0](https://github.com/ksen0) |
| p5.sound.js | [@ogbabydiesal](https://github.com/ogbabydiesal) |
| Shapes | [@GregStanton](https://github.com/GregStanton) |
| Typography | [@dhowe](https://github.com/dhowe) |
| WebGL | [@RandomGamingDev](https://github.com/RandomGamingDev) |
<!-- STEWARDS-LIST:END -->

## Contributors

Expand Down
64 changes: 63 additions & 1 deletion contributor_docs/steward_guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

# Steward Guidelines

Whether you have just joined us as a steward, are a seasoned maintainer of p5.js, or are somewhere in between, this guide contains information as well as tips and tricks that will help you effectively contribute to p5.js. Most of what is written here are guidelines unless otherwise stated, which means you can adapt the practices shown here to suit your workflow.
Whether you are new to p5.js contribution, are already active on the p5.js GitHub repositories, or are somewhere in between, you'll find what you need in this guide to p5.js stewardship. If you are not sure what to expect from stewards, or if you are considering how to volunteer or get started as a steward, read on!


## Table of Contents

- [Stewardship](#stewardship)
- [Community Care](#community-care)
- [Areas](#areas)
- [Becoming a Steward](#becoming-a-steward)
- [Getting Started with Stewardship](#getting-started-with-stewardship)
- [Issues](#issues)
- [Bug report](#bug-report)
- [Feature request](#feature-request)
Expand All @@ -28,6 +33,63 @@ Whether you have just joined us as a steward, are a seasoned maintainer of p5.js

---

## Stewardship

### Community Care

An open source ethos includes [accessibility, education, collaboration, transparency, and agency](https://www.opensourceethos.net/). To live and practice these values while we write code together needs a lot of community care. These are the community care practices that are part of our definition of stewardship:

1. Welcoming new contributors to GitHub through **friendly comments** and helpful **code reviews**
2. Helping to **facilitate feature discussions** and resolve technical disagreements. For example, this means making connections to other past discussion, or offering input from prior relevant experience. Suggesting features or working on them is contribution, rather than stewardship.
3. Participating in releases of the p5.js software through **supporting** bug fixing and feature completion. For example, this means guiding other contributors and reviewing their PRs. Fixing bugs is contribution, rather than stewardship.

The rest of these guidelines provide some tips and tricks that will help you effectively contribute to p5.js, and to helpfully guide others' contributions. Most of what is written here are guidelines unless otherwise stated, which means you can adapt the practices shown here to suit your workflow.

Everyone is invited to help steward the community when they can! We are happy to see contributors welcome new contributors, review others' code, and provide API design feedback. There are also some concrete roles:

1. Contributors are able to make Issues, PRs, Comments, and Code Reviews.
2. Maintainers are also able to merge PRs and admin other parts of the codebase.

Stewards can also be contributors: they can make Issues and PRs as contributors, while they also take on responsibility, when they are stewarding a particular area, to comment on issues and do code reviews, especially when tagged by other contributors to help with discussion and review.

As a contributor, you can check the current stewards in the p5.js repository's README file and tag relevant stewards - but please be mindful of our contributor guidelines, which emphasize patience and mindfulness that most of the technical work on an open-source project is volunteer.

As a steward, we hope that you regularly chime in on code reviews on Issues or PRs that you did not make, if they are in your area and if you are able to provide helpful guidance!

### Areas

There are different areas of work that stewards can be responsible for. These areas match the GitHub Labels in most cases, with a couple of exceptions. Below is the list of areas.

- **Accessibility**: This area specifically refers to digital and web accessibility, including, for example, screen reader support via API like `describe(..)` as well as accessibility support on the reference website
- **Core**: Refers to core p5.js API, including rendering and environment
- **DevOps**: Refers to build process, unit testing, and other aspects of the development experience
- **Documentation**: Includes both reference in the core codebase that is exposed on the website, the contributor docs, and other website content
- i18n (Internationalization / **Translation**): Includes reviewing translations, particularly for `es`, `hi`, `ko`, `zh`
- **Graphics**: Contains subareas of WebGL and [p5.strands](https://beta.p5js.org/tutorials/intro-to-p5-strands/)
- **Color**: Includes Color, ColorMode, accessibility improvements around color usage
- **Typography**: Refers to all topics on handling text and font
- **Math**: Includes both external Math API and internal performance improvements
- **Shapes**: Includes working with custom shapes in both 1.11.x and 2.x versions of p5.js
- **Maintainers**: This group can merge PRs
- **p5.sound.js**: The [new p5.sound.js](https://github.com/processing/p5.sound.js) add-on library
- **p5.js-website**: Non-content aspects of the [reference website](https://p5js.org/) - for example, its structure, automations, technical improvements and so on.

These focus areas may change over time depending on the needs of the project - so if you are going through the process of applying to be a steward, you are welcome to proposals new areas!

### Becoming a Steward

There are two ways to become a steward:

1. _Nomination_ by maintainers or other stewards, such as in conversation over Discord, Discourse, or GitHub.
2. _Application_ by creating a PR to update `stewards.yml` with your GitHub @ and proposed areas. Please keep in mind each area should have 1-3 stewards. We are always looking for **translation stewards**! Once you make your application PR, other maintainers or stewards may ask for additional supporting material, like making a PR related to the areas you're interested in, or participating in some related discussion.

To remain a steward, you must contribute as a steward to at least 1 of the 2 most recent minor releases (e.g., 2.1.0 or 1.11.0 - when the middle number changes). These are not as frequent as patches (e.g., 2.0.3 to 2.0.4 - when the rightmost number changes), and in practice this means that stewards are expected to be active every 4-6 months or so, supporting other contributors through discussion or code review - not necessarily writing code. To step down from stewardship, you can make a PR to remove yourself from `stewards.yml`. You are always welcome to take a pause and reapply in the future!

### Getting Started with Stewardship

1. Keep this guideline handy as a reference - how to help with new issues, bugs, and features. For example, the "Feature request" section includes tips on how to use the the p5.js [access statement](access.md) as a steward.
2. When helping to answer technical questions or review, try to apply the Processing Foundation [guideline on answering questions](https://discourse.processing.org/t/guidelines-answering-questions/2145) - these can be especially helpful for giving constructive technical feedback.
3. Join the [p5.js Discord](https://discord.com/invite/SHQ8dH25r9) - in the `#contribute-to-p5` you're welcome to ask any questions you have about this process - or suggest how it can be improved!

## Issues

Expand Down
84 changes: 84 additions & 0 deletions stewards.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
aferriss:
- Graphics:
- WebGL

calebfoss:
- Accessibility

davepagurek:
- Core
- Maintainers
- Graphics:
- WebGL

dhowe:
- Typography

qianqianye:
- Maintainers

ogbabydiesal:
- p5.sound.js

limzykenneth:
- Maintainers
- DevOps
- Documentation
- Color
- i18n:
- zh

perminder-17:
- Graphics:
- WebGL
- Documentation
- Maintainers

lukeplowden:
- Graphics:
- WebGL
- p5.strands

ksen0:
- Maintainers
- p5.js-website

Divyansh013:
- i18n:
- hi

GregStanton:
- Math
- Shapes

holomorfo:
- Math

lirenjie95:
- i18n:
- zh
- DevOps

IITM-Jay:
- Friendly Errors

Vaivaswat2244:
- DevOps

RandomGamingDev:
- WebGL

VANSH3104:
- Documentation

error-four-o-four:
- DevOps

takshittt:
- i18n:
- hi

clairep94:
- p5.js-website


Loading