Skip to content

bip-0002: allow anyone to inactivate, not reject #1012

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions bip-0002.mediawiki
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ Each BIP must begin with an RFC 822 style header preamble. The headers must appe
* Comments-Summary: <summary tone>
Comments-URI: <links to wiki page for comments>
Status: <Draft | Active | Proposed | Deferred | Rejected |
Withdrawn | Final | Replaced | Obsolete>
Inactive | Withdrawn | Final | Replaced | Obsolete>
Type: <Standards Track | Informational | Process>
Created: <date created on, in ISO 8601 (yyyy-mm-dd) format>
License: <abbreviation for approved license(s)>
Expand Down Expand Up @@ -190,7 +190,9 @@ The BIP editor may also change the status to Deferred when no progress is being

A BIP may only change status from Draft (or Rejected) to Proposed, when the author deems it is complete, has a working implementation (where applicable), and has community plans to progress it to the Final status.

BIPs should be changed from Draft or Proposed status, to Rejected status, upon request by any person, if they have not made progress in three years. Such a BIP may be changed to Draft status if the champion provides revisions that meaningfully address public criticism of the proposal, or to Proposed status if it meets the criteria required as described in the previous paragraph.
BIPs should be changed from Draft or Proposed status, to Inactive status, upon request by any person, if they have not made progress in three years, or to Rejected status, if there is outstanding public criticism and the champion has not made revisions that meaningfully address said criticism. A champion may choose to Reject their own proposal at any time.

Such a BIP may be changed to Draft status if any progress is made or if the champion provides revisions that meaningfully address public criticism of the proposal, or to Proposed status if it meets the criteria required as described above.

An Proposed BIP may progress to Final only when specific criteria reflecting real-world adoption has occurred. This is different for each BIP depending on the nature of its proposed changes, which will be expanded on below. Evaluation of this status change should be objectively verifiable, and/or be discussed on the development mailing list.

Expand Down
Binary file modified bip-0002/process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
72 changes: 72 additions & 0 deletions bip-0002/process.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc,backgrounds}
%\usepackage[active,tightpage]{preview}

\begin{document}

\begin{tikzpicture}[>=latex]

\tikzstyle{state} = [draw, very thick, fill=white, rectangle, minimum height=3em, minimum width=7em, node distance=5em, font={\sffamily\bfseries}]
\tikzstyle{stateEdgePortion} = [black,thick];
\tikzstyle{stateEdge} = [stateEdgePortion,->];
\tikzstyle{edgeLabel} = [pos=0.5, text centered, font={\sffamily\small}];

\node[state, name=draft] {DRAFT};
\node[state, name=inactive, below of=draft, yshift=-15em] {INACTIVE};
\node[state, name=proposed, right of=draft, xshift=4em] {PROPOSED};
\node[state, name=deferred, below of=proposed] {DEFERRED};
\node[state, name=rejected, below of=deferred] {REJECTED};
\node[state, name=withdrawn, below of=rejected] {WITHDRAWN};
\node[state, name=final, right of=proposed, xshift=4em] {FINAL};
\node[state, name=replaced, right of=rejected, xshift=4em] {REPLACED};
\node[state, name=obsolete, right of=final, xshift=4em] {OBSOLETE};

% Drafts can become inactive, and inactive states can go back to drafts
\draw[<->] ($(draft.south) + (-1em,0)$)
edge[stateEdge] ($(inactive.north) + (-1em,0)$);

% Drafts can become proposed
\draw ($(draft.east)$)
edge[stateEdge] ($(proposed.west)$);

% Drafts can become withdrawn, and withdrawn can go back to being drafts
\coordinate (draftWithdrawnA) at ($(withdrawn.west -| draft.south) + (-0.5em,0)$);
\draw (draftWithdrawnA) edge[stateEdge] ($(draft.south) + (-0.5em,0)$);
\draw (draftWithdrawnA) edge[stateEdge] ($(withdrawn.west)$);

% Drafts can become rejected, and rejected can go back to being drafts
\coordinate (draftRejectedA) at ($(rejected.west -| draft.south)$);
\draw (draftRejectedA) edge[stateEdge] ($(draft.south)$);
\draw (draftRejectedA) edge[stateEdge] ($(rejected.west)$);

% Drafts can become deferred, and deferred can go back to being drafts
\coordinate (draftDeferredA) at ($(deferred.west -| draft.south) + (0.5em,0)$);
\draw (draftDeferredA) edge[stateEdge] ($(draft.south) + (0.5em,0)$);
\draw (draftDeferredA) edge[stateEdge] ($(deferred.west)$);

% Proposed can become final/active
\draw ($(proposed.east)$)
edge[stateEdge] ($(final.west)$);

% Final/active can become obsolete
\draw ($(final.east)$)
edge[stateEdge] ($(obsolete.west)$);

% Final/active can also become replaced
\draw ($(final.south)$)
edge[stateEdge] ($(replaced.north)$);

% Proposed can become inactive, and inactive can return to proposed
\coordinate (proposedInactiveA) at ($(proposed.north) + (0,1em)$);
\coordinate (proposedInactiveB) at ($(proposed.north -| draft.west) + (-2em,1em)$);
\coordinate (proposedInactiveC) at ($(inactive.west) + (-2em,0)$);
\draw (proposedInactiveA) edge[stateEdge] (proposed.north);
\draw (proposedInactiveA) edge[stateEdgePortion] (proposedInactiveB);
\draw (proposedInactiveB) edge[stateEdgePortion] (proposedInactiveC);
\draw (proposedInactiveC) edge[stateEdge] ($(inactive.west)$);

\end{tikzpicture}

\end{document}