Skip to content

Commit 76e49dd

Browse files
committed
Create commentary (including flowchart) about constitution
As the complex flowchart hopefully makes clear, I think the constitution is more complicated than it might first appear, especially after recent changes. This commentary is supposed to make all this explicit.
1 parent 0495fa8 commit 76e49dd

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
/doc/values.md @NixOS/steering
2929
/doc/vault.md @Mic92 @mweinelt @zimbatm
3030
/doc/constitution.md @NixOS/steering
31+
/doc/constitution-commentary.md @NixOS/steering
3132
/doc/nixpkgs-core.md @NixOS/nixpkgs-core
3233
/doc/nixpkgs-committers.md @NickCao @jtojnar @winterqt @NixOS/nixpkgs-core
3334
/doc/calendar.md @edolstra @tomberek @fricklerhandwerk

doc/constitution-commentary.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Constitution Commentary
2+
3+
This document contains a non-normative, non-binding commentary on the constitution, explaining some subtleties.
4+
5+
## SC Election, Removal, and Dissolution procedure
6+
7+
The state machine of these portions of the constitution is especially complex.
8+
9+
These interactions are of special note:
10+
11+
- When less than half of the seats are filled, if any SC member proposes a no confidence vote, the vote will automatically win due to how vacant seats are counted for dissolution votes.
12+
However if the SC does not hold such vote, and is thus unanimous in choosing to hold a special election for the currently-vacant seats only instead, such a special election will proceed.
13+
14+
- It is only possible to follow a dissolution with an initial election when more than half of the SC seats were full prior to dissolution.
15+
16+
- Vacant seats not triggering a dissolution vote makes it possible for the vacancy procedure for when less than half of the seats are filled to resolve the situation without dissolution.
17+
18+
- After a removal has occurred, it is possible to hold a special election to fill the vacant seat.
19+
20+
The following flow chart diagrams the procedure, hopfully making these interactions explicit:
21+
22+
```mermaid
23+
flowchart TD
24+
Start([Regular SC Governance])
25+
End(["Regular SC Governance (with new members)"])
26+
27+
%% Note that order effects layout, at least informally.
28+
%% Current layout chosen in part because graph renders planar (no edges cross).
29+
30+
%% Regular elections
31+
RegularElec[Regular Election]
32+
33+
Start -->|some terms end| HalfVacation[[3-4 seats to be vacated]] --> RegularElec
34+
RegularElec -->|seats filled for fresh 2-year terms| End
35+
36+
%% Special Elections
37+
SpecialElec[Special Election]
38+
39+
Start -.->|optional, if <7 filled| SpecialElec
40+
SpecialElec -->|winners serve remainder of terms| End
41+
42+
%% Single seat vacation
43+
Removal[Vote for removal for conduct]
44+
OneMoreVacation[[one additional seat vacated immediately]]
45+
Required[Vote for Special Election or dissolution]
46+
AllVacated0[[all seats to be vacated]]
47+
48+
Start -.->|optional| Removal
49+
Start -.->|resignation or other loss| OneMoreVacation
50+
Removal -->|succeeds by supermajority| OneMoreVacation
51+
OneMoreVacation --> VacancyCheck
52+
Removal -->|fails| Start
53+
VacancyCheck{Vacancy count?}
54+
VacancyCheck -->|≥4 filled| Start
55+
VacancyCheck -->|<4 filled| Required
56+
Required -->|all members propose special election| SpecialElec
57+
Required -->|any member proposition dissolution| AllVacated0
58+
AllVacated0 -->|special election wins via vacant seat votes| SpecialElec
59+
60+
%% Dissolution
61+
Dissolution[Vote to dissolve the SC<br/>vacant seats vote yes]
62+
AllVacated1[[all seats to be vacated]]
63+
ElectionType[Vote between election types<br/>vacant seats vote special]
64+
65+
Start -.->|optional| Dissolution
66+
Dissolution -->|succeeds by majority| AllVacated1
67+
AllVacated1 --> ElectionType
68+
Dissolution -->|fails| Start
69+
ElectionType -->|initial wins| InitialElec
70+
ElectionType -->|special wins| SpecialElec
71+
72+
%% Initial Elections
73+
InitialElec[Initial Election]
74+
75+
InitialElec -->|Entirely new SC seated</br>top 4: 2yr terms<br/>bottom 3: 1yr terms| End
76+
```

0 commit comments

Comments
 (0)