Skip to content

Commit a435697

Browse files
authored
Goal Issue Template (#2360)
1 parent 4b57b9e commit a435697

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

content/learn/contribute/project-information/project-goals.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ Goals are tracked on the [Project Goals Board](https://github.com/orgs/bevyengin
1818
- Goals are expressed as [Issues with the `C-Goal` label](https://github.com/bevyengine/bevy/issues?q=is%3Aissue%20label%3AC-Goal) in the main [Bevy GitHub Repo](https://github.com/bevyengine/bevy/).
1919
- Goals can be large, but they need a defined completion criteria.
2020
- Goals can have "sub-Goals", which are expressed as "sub-issues" on GitHub
21-
- For something large like a "Bevy Editor" Goal, consider breaking it into smaller pieces (ex: Editor UI Widgets, Core Editor App Framework, Scene Editor, Editor Inspector, etc). The pieces should _still_ be Goal-like ... avoid dictating implementation details. Also avoid trying to plan out large "goal trees" in advance. "Expand" the tree lazily, as the need arises and you understand more.
21+
- For something large like a "Bevy Editor" Goal, consider breaking it into smaller pieces (ex: Editor UI Widgets, Core Editor App Framework, Scene Editor, Editor Inspector, etc). The pieces should _still_ be Goal-like ... avoid dictating implementation details.
22+
- Avoid trying to plan out large "sub-goal trees" in advance. "Expand" the tree lazily, as the need arises and you understand more. Generally only do this _after_ a **Goal** has been Postponed or Approved.
2223
- It is critical to define completion criteria for larger Goals with sub-Goals, to avoid Goals that live forever. A Goal is _not_ an **Area**.
2324
- Goals can organically change over time. If we learn something new and it makes sense to break up a Goal into multiple Goals, add sub-Goals, or reframe the Goal ... do it!
2425
- Goals inherently require _collaboration_ to bring them to completion. They are never the work of a single individual. At the very least, there is someone coming up with a design / implementation, and one or more **SME** verifying the design / implementation.
25-
- Goals have a short, functional name, as it would be communicated to the public. This is a market-able "feature name", like "PBR Renderer", "Relationships", etc. Avoid using things like "initial" or "MVP" in the name, as this is implied.
2626
- Goals are inherently `X-Needs-SME`, so they should be given that label.
2727
- Anything that needs a Goal, but doesn't currently have one should be labeled with `C-Needs-Goal`.
28+
- Goals are only created by **SMEs** and **Maintainers**. The intent behind this restriction is that Goals are a "public facing" / marketing thing, so phrasing and framing is important. Every new Goal gets added to the Proposed goal column on the public Project Goals board. Going through SMEs + Maintainers ensures redundancies are avoided, noise is kept to a minimum, consistency is enforced, templates are used, framing / public image / marketing is taken into account, etc. This is just as true for closed Goals, which exist to be a nice consolidated list of things the project definitely doesn't want to do.
2829

2930
## When does an Issue or PR need a Goal?
3031

@@ -90,3 +91,30 @@ The SMEs staffing a Goal should be listed in the Goal's description.
9091
8. If the Goal is Inactive (Approved), and there is enough commitment and support from the community to form a **Working Group**, it moves into the Active (Approved) state.
9192
9. The **Project Lead** adjusts the priorities of the Goals (expressed via the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) order), based on the needs of the project.
9293
10. When a Goal is completed, the issue is closed out. A GitHub Project Workflow moves it into the Done status.
94+
95+
## Goal Issue Template
96+
97+
Only SMEs and Maintainers should create new Goals (see rationale in the "What is a Goal?" section above)! If that is you, copy this template when creating a new Goal. We put this template here, rather than adding it as a GitHub issue template, because we don't want normal users creating Goals.
98+
99+
1. Name the Goal. This should be a short, functional name, as it would be communicated to the public. This is a market-able "feature name", like "PBR Renderer", "Relationships", etc. Avoid using things like "initial" or "MVP" in the name, as this is implied.
100+
2. Add the `C-Goal` and `X-Needs-SME` labels.
101+
3. Paste in the markdown template below.
102+
4. Fill in the template.
103+
104+
```md
105+
## Goal Description
106+
107+
In roughly one paragraph, describe from a high level _what_ this Goal is. Provide just enough to describe to the public and contributors _what_ the bounds of the Goal are. Leave the "why" and "how" to the future **Design Documents**. Avoid dictating implementation or design details whenever possible.
108+
109+
## Goal Status
110+
111+
This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.
112+
113+
- **Staffing SMEs**: Not yet staffed
114+
- **Working Group Link**: Working Group not yet formed
115+
- **Design Documents**: Design documents not yet written
116+
```
117+
118+
- If / when a Goal is approved and SMEs agree to "staff" the Goal, add them to the **Staffing SMEs** list.
119+
- If / when a Goal becomes "active" and a Working Group is formed, fill in the **Working Group Link** with the Working Group thread on the Bevy Discord.
120+
- If / when design documents are authored by the Working Group, link to them in the **Design Documents**.

0 commit comments

Comments
 (0)