mirror of
https://github.com/bevyengine/bevy
synced 2024-11-10 07:04:33 +00:00
Add a process for working groups (#13162)
# Objective Coordinating work can be hard, and figuring out how to get started with contributions is always a challenge. We've had great success with informal working groups in the past (primitives, bevy_color, stageless). However, they're not at all discoverable, are hard to keep track of and tend to flood the dev channels that they're in. When their messages are moved to Discord threads, they then get completely scattered and buried. ## Solution We can formalize the working groups in a very process-light way, and give them a discoverable home by using a curated forum channel on Discord. While we'll still need more stringent PR reviews for particularly complex or architectural changes made as part of these initiatives, a broad sign off on the course of action goes a long way to building consensus. By baking that into the process, I think we can avoid a lot of wasted work and relitigation without encouraging mega-PRs or RFCs. --------- Co-authored-by: Alice Cecile <alice.i.cecil@gmail.com> Co-authored-by: Joona Aalto <jondolf.dev@gmail.com>
This commit is contained in:
parent
15687b5062
commit
64c1c65783
1 changed files with 43 additions and 0 deletions
|
@ -226,6 +226,49 @@ Take a look at the sections that follow to pick a route (or five) that appeal to
|
|||
|
||||
If you ever find yourself at a loss for what to do, or in need of mentorship or advice on how to contribute to Bevy, feel free to ask in [Discord] and one of our more experienced community members will be happy to help.
|
||||
|
||||
### Join a working group
|
||||
|
||||
Active initiatives in Bevy are organized into temporary working groups: choosing one of those and asking how to help can be a fantastic way to get up to speed and be immediately useful.
|
||||
|
||||
Working groups are public, open-membership groups that work together to tackle a broad-but-scoped initiative.
|
||||
The work that they do is coordinated in a forum-channel on [Discord](https://discord.gg/bevy), although they also create issues and may use project boards for tangible work that needs to be done.
|
||||
|
||||
There are no special requirements to be a member, and no formal membership list or leadership.
|
||||
Anyone can help, and you should expect to compromise and work together with others to bring a shared vision to life.
|
||||
Working groups are *spaces*, not clubs.
|
||||
|
||||
### Start a working group
|
||||
|
||||
When tackling a complex initiative, friends and allies can make things go much more smoothly.
|
||||
|
||||
To start a working group:
|
||||
|
||||
1. Decide what the working group is going to focus on. This should be tightly focused and achievable!
|
||||
2. Gather at least 3 people including yourself who are willing to be in the working group.
|
||||
3. Ping the `@Maintainer` role on Discord in [#engine-dev](https://discord.com/channels/691052431525675048/692572690833473578) announcing your mutual intent and a one or two sentence description of your plans.
|
||||
|
||||
The maintainers will briefly evaluate the proposal in consultation with the relevant SMEs and give you a thumbs up or down on whether this is something Bevy can and wants to explore right now.
|
||||
You don't need a concrete plan at this stage, just a sensible argument for both "why is this something that could be useful to Bevy" and "why there aren't any serious barriers in implementing this in the near future".
|
||||
If they're in favor, a maintainer will create a forum channel for you and you're off to the races.
|
||||
|
||||
Your initial task is writing up a design doc: laying out the scope of work and general implementation strategy.
|
||||
Here's a [solid example of a design doc](https://github.com/bevyengine/bevy/issues/12365), although feel free to use whatever format works best for your team.
|
||||
|
||||
Once that's ready, get a sign-off on the broad vision and goals from the appropriate SMEs and maintainers.
|
||||
This is the primary review step: maintainers and SMEs should be broadly patient and supportive even if they're skeptical until a proper design doc is in hand to evaluate.
|
||||
|
||||
With a sign-off in hand, post the design doc to [Github Discussions](https://github.com/bevyengine/bevy/discussions) with the [`C-Design-Doc` label](https://github.com/bevyengine/bevy/discussions?discussions_q=is%3Aopen+label%3A%22C-Design+Doc%22) for archival purposes and begin work on implementation.
|
||||
Post PRs that you need review on in your group's forum thread, ask for advice, and share the load.
|
||||
Controversial PRs are still `S-Controversial`, but with a sign-off-in-priniciple, things should go more smoothly.
|
||||
|
||||
If work peters out and the initiative dies, maintainers can wind down working groups (in consultation with SMEs and the working group itself).
|
||||
This is normal and expected: projects fail for all sorts of reasons!
|
||||
However, it's important to both keep the number of working groups relatively small and ensure they're active:
|
||||
they serve a vital role in onboarding new contributors.
|
||||
|
||||
Once your implementation work laid out in your initial design doc is complete, it's time to wind down the working group.
|
||||
Feel free to make another one though to tackle the next step in your grand vision!
|
||||
|
||||
### Battle-testing Bevy
|
||||
|
||||
Ultimately, Bevy is a tool that's designed to help people make cool games.
|
||||
|
|
Loading…
Reference in a new issue