Skip to content

Commit c25106b

Browse files
dhruvkbAetherUnboundobulat
authored
Document existing project automations and plan implementation of new ones (#3042)
Co-authored-by: Madison Swain-Bowden <bowdenm@spu.edu> Co-authored-by: Olga Bulat <obulat@gmail.com>
1 parent 8126af2 commit c25106b

File tree

9 files changed

+591
-0
lines changed

9 files changed

+591
-0
lines changed

documentation/meta/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
github_contribution_practices
77
dev_flow
88
maintainer_tasks
9+
project_boards/index
910
ci_cd/index
1011
decision_making/index
1112
documentation/index
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Discussion project: Openverse Discussions
2+
3+
The [Openverse Discussions](https://github.com/orgs/WordPress/projects/79)
4+
project board tracks project proposals and implementation plans through their
5+
lifecycle, as they move from pending to accepted. This board tracks issues and
6+
pull requests so it has workflows for both kinds of events.
7+
8+
## Event automations
9+
10+
### PR is created
11+
12+
If a new PR is created with either of the following labels, it is automatically
13+
added to the project board.
14+
15+
- 🧭 project: implementation plan
16+
- 🧭 project: proposal
17+
18+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/79/workflows/8235206)
19+
20+
### Issue/PR is added to the project
21+
22+
The status of this issue/PR will be set to "Pending proposal" and thus, it will
23+
be included under the "Pending proposal" column.
24+
25+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/79/workflows/7503192)
26+
27+
### Issue/PR is closed/merged
28+
29+
If an issue/PR is closed, it moves into the "Accepted" column. This is not
30+
affected by whether the issue was closed as resolved or as discarded or if the
31+
PR was merged or closed without merge.
32+
33+
- [Built-in workflow (closed)](https://github.com/orgs/WordPress/projects/79/workflows/7304449)
34+
- [Built-in workflow (merged)](https://github.com/orgs/WordPress/projects/79/workflows/7304450)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Project boards
2+
3+
Openverse project management consists of four project boards,
4+
[one for issues](https://github.com/orgs/WordPress/projects/75),
5+
[one for PRs](https://github.com/orgs/WordPress/projects/98),
6+
[one for project threads](https://github.com/orgs/WordPress/projects/70) and
7+
[one for discussions](https://github.com/orgs/WordPress/projects/79).
8+
9+
Issues and PRs are added to these boards and move across columns based on their
10+
status. Automations to move these cards can be broadly classified into two
11+
types:
12+
13+
- automations built into the GitHub Projects UI
14+
- custom automations run as GitHub Actions workflows
15+
16+
Read on to know more about these boards and the automations that apply to them.
17+
18+
```{toctree}
19+
:titlesonly:
20+
21+
issues
22+
prs
23+
projects
24+
discussions
25+
```
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Issues project: Openverse Backlog
2+
3+
The [Openverse Backlog](https://github.com/orgs/WordPress/projects/75) project
4+
board tracks all issues through their lifecycle, as they move from creation to
5+
completion. This board does not track any pull requests, so all workflows for
6+
this board are tied to events occurring for issues.
7+
8+
## Event automations
9+
10+
### Issue is created
11+
12+
If a new issue is created in the
13+
[`WordPress/openverse`](https://github.com/WordPress/openverse/) repository, it
14+
is automatically added to the project board provided it does not contain any
15+
label with the text "project".
16+
17+
```{note}
18+
This workflow also sets the Priority custom field in the issue so that we can
19+
create a kanban-board view based on priority.
20+
```
21+
22+
- [Custom workflow](https://github.com/WordPress/openverse/blob/main/.github/workflows/new_issues.yml)
23+
24+
### Issue is closed
25+
26+
If an issue is closed, it moves into the "✅ Done" column. This is not affected
27+
by whether it was closed as resolved or as discarded.
28+
29+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/75/workflows/6899392)
30+
31+
### Issue is reopened
32+
33+
If a previously closed issue is reopened, it goes back to the "📋 Backlog"
34+
column. That is because it will need to be re-prioritized alongside other
35+
ongoing work and moved to "📅 To do" when it can be worked on again.
36+
37+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/75/workflows/8193212)
38+
39+
### Issue is added to the project
40+
41+
The status of this issue will be set to "📋 Backlog" and thus, it will be
42+
included under the "📋 Backlog" column.
43+
44+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/75/workflows/6899490)
45+
46+
### Issue is closed and inactive
47+
48+
If an issue is closed, and has not been updated in 8 days, it will automatically
49+
be archived from the project board. This ensures that the board is cleared in
50+
time for the weekly development chat.
51+
52+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/75/workflows/8222891)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Project project: Openverse Project Tracker
2+
3+
The [Openverse Project Tracker](https://github.com/orgs/WordPress/projects/70)
4+
project board tracks project tickets through their lifecycle, as they move from
5+
not being started to being successful.
6+
7+
Project threads are issues, so all workflows for this board are tied to events
8+
occurring for issues, however the issue status has slightly different
9+
interpretation when the issue is a project thread.
10+
11+
## Event automations
12+
13+
### Thread is created
14+
15+
If a new issue is created with the label "🧭 project: thread", it is
16+
automatically added to the project tracker project board.
17+
18+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/70/workflows/6730708)
19+
20+
### Thread is closed
21+
22+
If a project thread is closed, it moves into the "Shipped" column. These
23+
projects are considered shipped but not successful (yet).
24+
25+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/70/workflows/6373102)
26+
27+
### Thread is added to the project
28+
29+
The status of the project thread will be "Not Started" and thus, it will be
30+
included under the "Not Started" column.
31+
32+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/70/workflows/6730724)
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# PR project: Openverse PRs
2+
3+
The [Openverse PRs](https://github.com/orgs/WordPress/projects/98) project board
4+
tracks all PRs through their lifecycle, as they move from creation to merge (or
5+
closure). This board does not track any issues, so all workflows for this board
6+
are tied to events occurring for pull requests.
7+
8+
```{note}
9+
GitHub treats PRs as a subcategory of issues, all issue related automations have
10+
PR counterparts but not vice versa.
11+
```
12+
13+
```{caution}
14+
The PRs board is currently private. It may be made public in the future.
15+
```
16+
17+
## Event automations
18+
19+
### PR is created
20+
21+
If a new PR is created, it is automatically added to the project board. PRs from
22+
the infrastructure repository are also added to the board.
23+
24+
- [Built-in workflow (monorepo)](https://github.com/orgs/WordPress/projects/98/workflows/8656692)
25+
- [Built-in workflow (infra)](https://github.com/orgs/WordPress/projects/98/workflows/8674459)
26+
27+
### PR is closed or merged
28+
29+
If a PR is closed or merged, it moves into the "Merged" column. Understandably,
30+
this is slightly misleading for PRs that were closed unmerged.
31+
32+
- [Built-in workflow (closed)](https://github.com/orgs/WordPress/projects/98/workflows/8656664)
33+
- [Built-in workflow (merged)](https://github.com/orgs/WordPress/projects/98/workflows/8656665)
34+
35+
### PR is reopened
36+
37+
If a previously closed, but unmerged, PR is reopened, it goes back to the "Needs
38+
Review" column, even if had been reviewed before being closed.
39+
40+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/98/workflows/8674442)
41+
42+
### PR is added to the project
43+
44+
The status of this PR will be set to "Needs review" and thus, it will be
45+
included under the "Needs review" column. This is not affected by whether the PR
46+
is actually ready or in a draft state.
47+
48+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/98/workflows/8674448)
49+
50+
### PR is closed and inactive
51+
52+
If a PR is closed (includes merged) and has not been updated in two weeks, it
53+
will automatically be archived from the project board. This is different from
54+
the archival threshold of the issues board (8 days).
55+
56+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/98/workflows/8674454)
57+
58+
### PR has required approvals
59+
60+
If a PR has the required number of approvals, it moves into the "Approved"
61+
column. PRs with fewer approvals than the merge requirement are not affected.
62+
63+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/98/workflows/8674451)
64+
65+
### PR has requested changes
66+
67+
If a PR was reviewed with change requests, it moves into the "Changes requested"
68+
column. Even one change request qualifies the PR for this automation.
69+
70+
- [Built-in workflow](https://github.com/orgs/WordPress/projects/98/workflows/8674445)
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# 2023-09-13 Project proposal: Project board improvements
2+
3+
**Author**: @dhruvkb
4+
5+
## Reviewers
6+
7+
- [x] @AetherUnbound
8+
- [x] @obulat
9+
10+
## Project summary
11+
12+
The end-goal of this project is to have a comprehensive set of boards where one
13+
can track all aspects of work being done in Openverse. This includes issues, PRs
14+
and project discussions. These boards should have lots of different views, for
15+
different purposes, and these views should be standardised and documented.
16+
17+
Each of these projects should be highly automated, where minimal effort is
18+
needed to keep these boards synced to reality. Most human actions should be
19+
complemented by automations that can sync the effects of the event to the board.
20+
These should be a combination of built-in and custom workflows, where custom
21+
workflows are consistent, well-tested and maintainable.
22+
23+
## Goals
24+
25+
This project should do both of the following things:
26+
27+
- enhance our productivity by reducing a lot of work required to keep these
28+
projects up to date
29+
- increase our accountability by helping us stay on top of our work and also
30+
being aware of what others in the team are working on
31+
32+
## Requirements and success
33+
34+
The following are requirements & success criteria for the project automations:
35+
36+
- all issues and PRs are automatically added to the relevant project boards
37+
- all cards are in the right columns as per their status
38+
- rarely, if ever, do we need to manually move cards to the right columns
39+
(except for moving cards from "📋 Backlog" to "📅 To do" to prioritise them)
40+
- all custom automations are in a single place and are easy to maintain
41+
- all automations are documented
42+
43+
The following are requirements & success criteria for the project views:
44+
45+
- views are created based on clear utility in helping maintainers track work
46+
- views are clearly labelled, and it's known which view to use for what purpose
47+
- all views, and their utilities, are documented
48+
49+
## Participants
50+
51+
The boards are primarily an internal tool for maintainers and to some extent, an
52+
external tools for contributors (to find potential inroads to contribute) and
53+
project leadership (to gauge activity and progress).
54+
55+
### Expectation for maintainers
56+
57+
- Knowing what issues everyone, including themselves, is working on at a given
58+
time.
59+
- Having a clear idea of what issues need to be worked on after the current
60+
issues on hand are resolved.
61+
- Being able to find critical or high priority issues that haven't been
62+
addressed.
63+
- Knowing the status of their own PRs.
64+
- Identifying PRs that require additional reviews.
65+
66+
### Expectation for contributors
67+
68+
- Finding help wanted or good first issues that are not already assigned or
69+
being worked on by someone else.
70+
- Knowing that their PRs will be noticed, reviewed and merged in a timely
71+
manner.
72+
73+
### Expectation for project leadership
74+
75+
- While project leadership are not directly concerned with the day-to-day issues
76+
and PRs, they should be able to see a steady movement of cards from
77+
left-to-right.
78+
- The project discussion boards are more relevant to the leadership.
79+
80+
## Miscellaneous
81+
82+
This project should not have any components related to infrastructure, a11y or
83+
marketing as it is internal. Several new workflows will be defined which will be
84+
executed on GitHub Actions.
85+
86+
## Required implementation plans
87+
88+
The following implementation plans would be required:
89+
90+
1. improvements to existing, restoration of previous and creation of new
91+
automations
92+
([plan](/projects/proposals/project_improvement/20230914-implementation_plan_project_automations.md))
93+
2. documentation of existing and creation of new useful views for project boards
94+
(plan)
95+
3. discussion of ideas related to the project and discussion boards as that has
96+
not been covered in #1.

0 commit comments

Comments
 (0)