$darkmode
Elektra 0.10.0
|
This document describes all steps a decision can run through.
Additionally, decision that are not yet "Decided" may be become "Drafts", "Rejected" or "Postponed" at any point, e.g., if the decision author stops working on the decision.
The label merge
on the edges means that a decision PR must be merged before it can target the next step.
The first PR for a decision usually creates the decision in the "Drafts" state. If during the reviews of this PR it becomes clear that the decision is further along, can be moved to "Problem Clear", "Solutions Clear" or even "In Review" before the merge.
Short summary:
The rest of the document describes the steps in full details.
This step is highly recommended and it is even required if the problem is not yet clear to all the core developers.
The first step is to create a PR with:
This step is brainstorming for completely new ideas.
No agreement about anything is needed to merge decisions in this stage.
This step is very important:
Decisions will have much smoother further steps if this step is done carefully without prejudice. It is especially important that one shouldn't have a fixed mind-set about a preferred solution from the beginning.
Everyone must agree that the problem exists and is worth solving so that a decision PR in "Problem Clear" step can be merged. A problem is clear if everyone would be able to describe an experiment or test case that shows if a solution fixes the problem.
This step is recommended if it is not yet clear to the core developers which solution is the best.
Here you must ensure:
Here the decision should not only have one decision but should describe several solutions. For each solution a proposal, rationale and optionally implications should be given.
The solutions are clear if all reviewers understand the given solutions and no reviewer can come up with better solutions. The solution space is clear. I.e. the trade-offs, combinations and pros/cons of the solutions are explored. Decision author and reviewers are satisfied that every useful solution is present in the decision.
Now it is allowed to have the decision from the previous round in the "Decision" section. In this step, the last details of the chosen decision get polished:
Without merges in between, this is the last step reachable for a decision PR that started in "Drafts".
This step is mandatory. I.e., there must be a dedicated decision PR that puts the decision into "Decided".
Decisions that need an update, e.g. because assumptions changed, sometimes directly start with the step "Decided".
In this step, decision PRs only modify a single decision. Only exceptions like backlinks from other decisions are allowed.
We want to avoid this step, ideally PRs fully implement decisions.
Nevertheless, this can be useful for decisions that need to be done for every module like plugin or library. It is for decisions where only a few not-so-important modules are missing and/or issues exist for the remaining pieces.
The "Implication" must clearly say how much of the decision is already implemented.
This step is mandatory. I.e., there must be a decision PR that puts the decision into "Implemented".
In this step, decision PRs only modify a single decision. Here more exceptions are allowed, in particular documentation updates are okay.
This step is:
The purpose of this step is to have a clean "Drafts" folder.
Alternatively, decisions might be rejected (e.g. status quo wins). This step is for decisions for which a consensus exists that the decision should not be taken right now. If circumstances change, the decision may be revisited.
The purpose of this final step is to have a clean "Drafts" folder.