Skip to content

Commit 56c5cc8

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 56c5cc8

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-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: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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+
%% Regular elections
28+
Start -->|some terms end| HalfVacation[[3-4 seats to be vacated]] --> RegularElec[Regular Election] -->|seats filled for fresh 2-year terms| End
29+
%% Single seat vacation
30+
Start -.->|optional| Removal
31+
Start -.->|resignation or other loss| OneMoreVacation
32+
Removal[Vote for removal for conduct] -->|succeeds by supermajority| OneMoreVacation
33+
OneMoreVacation[[one additional seat vacated immediately]] --> VacancyCheck
34+
Removal -->|fails| Start
35+
VacancyCheck{Vacancy count?}
36+
VacancyCheck -->|≥4 filled| Start
37+
VacancyCheck -->|<4 filled| Required[Vote for Special Election or dissolution]
38+
Required -->|all members propose special election| SpecialElec
39+
Required -->|any member proposition dissolution| AllVacated1[[all seats to be vacated]] -->|special election wins via vacant seat votes| SpecialElec
40+
%% Dissolution
41+
Start -.->|optional| Dissolution
42+
Dissolution[Vote to dissolve the SC<br/>vacant seats vote yes] -->|succeeds by majority| AllVacated0[[all seats to be vacated]]
43+
AllVacated0 --> ElectionType[Vote between election types<br/>vacant seats vote special]
44+
Dissolution -->|fails| Start
45+
ElectionType -->|initial wins| InitialElec
46+
ElectionType -->|special wins| SpecialElec
47+
%% Special Elections
48+
Start -.->|optional, if <7 filled| SpecialElec
49+
SpecialElec[Special Election] -->|winners serve remainder of terms| End
50+
%% Initial Elections
51+
InitialElec[Initial Election] -->|Entirely new SC seated</br>top 4: 2yr terms<br/>bottom 3: 1yr terms| End
52+
```

0 commit comments

Comments
 (0)