\label{doc_decisions_STEPS_md_md_doc_decisions_STEPS}%
\Hypertarget{doc_decisions_STEPS_md_md_doc_decisions_STEPS}%
 This document describes all steps a decision can run through.


\begin{DoxyCode}{0}
\DoxyCodeLine{flowchart LR}
\DoxyCodeLine{  s((Start)) -\/-\/> Drafts -\/-\/> prob(Problem Clear) -\/-\/> alt(Solutions Clear) -\/-\/> review(In Review) -\/-\/ merge -\/-\/> Decided}
\DoxyCodeLine{    -\/-\/ merge -\/-\/> part(Partially Implemented) -\/-\/> Implemented}
\DoxyCodeLine{  \%\% Shortcuts:}
\DoxyCodeLine{  s -\/-\/> Decided}
\DoxyCodeLine{  Drafts -\/-\/ merge -\/-\/> Decided}
\DoxyCodeLine{  prob -\/-\/ merge -\/-\/> Decided}
\DoxyCodeLine{  alt -\/-\/ merge -\/-\/> Decided}
\DoxyCodeLine{  Decided -\/-\/ merge -\/-\/> Implemented}

\end{DoxyCode}


Additionally, decision that are not yet \char`\"{}\+Decided\char`\"{} may be become \char`\"{}\+Drafts\char`\"{}, \char`\"{}\+Rejected\char`\"{} or \char`\"{}\+Postponed\char`\"{} at any point, e.\+g., if the decision author stops working on the decision.

The label {\ttfamily merge} on the edges means that a decision PR must be merged before it can target the next step.

\begin{quote}
The first PR for a decision usually creates the decision in the \char`\"{}\+Drafts\char`\"{} state. If during the reviews of this PR it becomes clear that the decision is further along, can be moved to \char`\"{}\+Problem Clear\char`\"{}, \char`\"{}\+Solutions Clear\char`\"{} or even \char`\"{}\+In Review\char`\"{} before the merge. \end{quote}
Short summary\+:


\begin{DoxyEnumerate}
\item The first PR for a decision is created as \char`\"{}\+Drafts\char`\"{} (recommended!), \char`\"{}\+Problem Clear\char`\"{}, \char`\"{}\+Solutions Clear\char`\"{} or \char`\"{}\+Decided\char`\"{}.
\item A decision PR that wants to merge a decision as \char`\"{}\+Decided\char`\"{} must\+:
\begin{DoxyEnumerate}
\item Only contain changes to one decision.
\item Already start with the decision as \char`\"{}\+Decided\char`\"{}.
\item Already have a clearly stated problem and all the solutions fully explored.
\item Only contain discussions/reviews about deciding between one of the solutions or details thereof.
\item If there is any change in the direction of the decision then the PR cannot be merged as \char`\"{}\+Decided\char`\"{}. The decision must at least be moved back to \char`\"{}\+In Review\char`\"{}.
\end{DoxyEnumerate}
\item After a decision is merged as \char`\"{}\+Decided\char`\"{}, it can be moved to \char`\"{}\+Partially Implemented\char`\"{} or \char`\"{}\+Implemented\char`\"{} by any PR.
\end{DoxyEnumerate}

The rest of the document describes the steps in full details.\hypertarget{doc_decisions_STEPS_md_autotoc_md2506}{}\doxysection{Drafts}\label{doc_decisions_STEPS_md_autotoc_md2506}
\begin{quote}
This step is highly recommended and it is even required if the problem is not yet clear to all the core developers. \end{quote}
The first step is to create a PR with\+:


\begin{DoxyItemize}
\item {\bfseries{one}} decision, where at least the \char`\"{}\+Problem\char`\"{} is filled out and \char`\"{}\+Decision\char`\"{}, \char`\"{}\+Rationale\char`\"{} and \char`\"{}\+Implications\char`\"{} are {\bfseries{not}} yet filled out.
\item optional backlinks from related decisions.
\end{DoxyItemize}

This step is brainstorming for completely new ideas.

\begin{quote}
No agreement about anything is needed to merge decisions in this stage. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2507}{}\doxysection{Problem Clear}\label{doc_decisions_STEPS_md_autotoc_md2507}
This step is very important\+:


\begin{DoxyItemize}
\item it clarifies the importance of the problem, answering\+: Why should we put our time and energy in this problem and not in another problem.
\item it clarifies the scope of the decision.
\item it clarifies relation to other problems.
\end{DoxyItemize}

Decisions will have much smoother further steps if this step is done carefully without prejudice. It is especially important that one shouldn\textquotesingle{}t have a fixed mind-\/set about a preferred solution from the beginning.

\begin{quote}
Everyone must agree that the problem exists and is worth solving so that a decision PR in \char`\"{}\+Problem Clear\char`\"{} 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. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2508}{}\doxysection{Solutions Clear}\label{doc_decisions_STEPS_md_autotoc_md2508}
\begin{quote}
This step is recommended if it is not yet clear to the core developers which solution is the best. \end{quote}
Here you must ensure\+:


\begin{DoxyItemize}
\item problem, constraint and assumptions are well-\/explained and sound
\item links from/to related decisions are created
\item there are several solutions described, each with rationale and implication
\item \char`\"{}\+Decision\char`\"{}, \char`\"{}\+Rationale\char`\"{} and \char`\"{}\+Implications\char`\"{} are {\bfseries{not}} yet filled out
\end{DoxyItemize}

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.

\begin{quote}
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. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2509}{}\doxysection{In Review}\label{doc_decisions_STEPS_md_autotoc_md2509}
Now it is allowed to have the decision from the previous round in the \char`\"{}\+Decision\char`\"{} section. In this step, the last details of the chosen decision get polished\+:


\begin{DoxyItemize}
\item consistency with other decisions
\item links from/to related decisions have been checked
\item \char`\"{}\+Decision\char`\"{}, \char`\"{}\+Rationale\char`\"{} and \char`\"{}\+Implications\char`\"{} are fully filled out
\end{DoxyItemize}

\begin{quote}
Without merges in between, this is the last step reachable for a decision PR that started in \char`\"{}\+Drafts\char`\"{}. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2510}{}\doxysection{Decided}\label{doc_decisions_STEPS_md_autotoc_md2510}
\begin{quote}
This step is mandatory. I.\+e., there must be a dedicated decision PR that puts the decision into \char`\"{}\+Decided\char`\"{}. \end{quote}

\begin{DoxyItemize}
\item \char`\"{}\+Decision\char`\"{}, \char`\"{}\+Rationale\char`\"{} and \char`\"{}\+Implications\char`\"{} are now filled out and fixed according to the reviews
\item decisions of this step usually already have an implementation PR
\end{DoxyItemize}

Decisions that need an update, e.\+g. because assumptions changed, sometimes directly start with the step \char`\"{}\+Decided\char`\"{}.

\begin{quote}
In this step, decision PRs only modify a {\itshape single} decision. Only exceptions like backlinks from other decisions are allowed. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2511}{}\doxysection{Partially Implemented}\label{doc_decisions_STEPS_md_autotoc_md2511}
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 \char`\"{}\+Implication\char`\"{} must clearly say how much of the decision is already implemented.\hypertarget{doc_decisions_STEPS_md_autotoc_md2512}{}\doxysection{Implemented}\label{doc_decisions_STEPS_md_autotoc_md2512}
\begin{quote}
This step is mandatory. I.\+e., there must be a decision PR that puts the decision into \char`\"{}\+Implemented\char`\"{}. \end{quote}

\begin{DoxyItemize}
\item Here the details of the decisions are stripped from the decision and moved to the documentation.
\item The documentation links to the decision.
\item The decision links to the new documentation.
\end{DoxyItemize}

\begin{quote}
In this step, decision PRs only modify a {\itshape single} decision. Here more exceptions are allowed, in particular documentation updates are okay. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2513}{}\doxysection{Postponed}\label{doc_decisions_STEPS_md_autotoc_md2513}
This step is\+:


\begin{DoxyItemize}
\item for decisions that would be useful contributions but there is currently nobody with the time to focus on the problem.
\item a graveyard for neglected decisions, e.\+g., where the decision authors focus on something more important instead.
\end{DoxyItemize}

\begin{quote}
The purpose of this step is to have a clean \char`\"{}\+Drafts\char`\"{} folder. \end{quote}
\hypertarget{doc_decisions_STEPS_md_autotoc_md2514}{}\doxysection{Rejected}\label{doc_decisions_STEPS_md_autotoc_md2514}
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.

\begin{quote}
The purpose of this final step is to have a clean \char`\"{}\+Drafts\char`\"{} folder. \end{quote}
