Skip to content

Commit ca86349

Browse files
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. Co-authored-by: Michael Daniels <[email protected]>
1 parent 0495fa8 commit ca86349

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-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: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Constitution Commentary
2+
3+
This document contains a non-normative, non-binding commentary on the constitution, explaining some subtleties.
4+
5+
## SC Election and Removal procedure
6+
7+
The state machine of the portions of the constitution that govern the composition of the SC (what seats are filled, who is in which seat) is especially complex.
8+
The following flow chart diagrams this state machine:
9+
10+
```mermaid
11+
flowchart TD
12+
Start([Regular SC Governance])
13+
End(["Regular SC Governance (with new members)"])
14+
15+
%% Note that order effects layout, at least informally.
16+
%% Current layout chosen in part because graph renders planar (no edges cross).
17+
18+
%% Regular elections
19+
RegularElec[Regular Election]
20+
21+
Start -->|some terms end| HalfVacation[[3-4 seats to be vacated]] --> RegularElec
22+
RegularElec -->|seats filled for fresh 2-year terms| End
23+
24+
%% Special Elections
25+
SpecialElec[Special Election]
26+
27+
Start -.->|optional, if <7 filled| SpecialElec
28+
SpecialElec -->|winners serve remainder of terms| End
29+
30+
%% Single seat vacation
31+
Removal[Vote for removal for conduct]
32+
OneMoreVacation[[one additional seat vacated immediately]]
33+
Required[Vote for Special Election or dissolution]
34+
AllVacated0[[all seats to be vacated]]
35+
36+
Start -.->|optional| Removal
37+
Start -.->|resignation or other loss| OneMoreVacation
38+
Removal -->|succeeds by supermajority| OneMoreVacation
39+
OneMoreVacation --> VacancyCheck
40+
Removal -->|fails| Start
41+
VacancyCheck{Vacancy count?}
42+
VacancyCheck -->|≥4 filled| Start
43+
VacancyCheck -->|<4 filled| Required
44+
Required -->|all members propose special election| SpecialElec
45+
Required -->|any member proposes dissolution| AllVacated0
46+
AllVacated0 -->|special election wins via vacant seat votes| SpecialElec
47+
48+
%% Dissolution
49+
Dissolution["Vote to dissolve the SC<br/>(vacant seats vote yes)"]
50+
AllVacated1[[all seats to be vacated]]
51+
ElectionType["Vote between election types<br/>(vacant seats vote special)"]
52+
53+
Start -.->|optional| Dissolution
54+
Dissolution -->|succeeds by majority| AllVacated1
55+
AllVacated1 --> ElectionType
56+
Dissolution -->|fails| Start
57+
ElectionType -->|initial wins| InitialElec
58+
ElectionType -->|special wins| SpecialElec
59+
60+
%% Initial Elections
61+
InitialElec[Initial Election]
62+
63+
InitialElec -->|Entirely new SC seated</br>top 4: 2yr terms<br/>bottom 3: 1yr terms| End
64+
```
65+
66+
### Deferred versus immediate loss of members
67+
68+
A no-confidence vote does not immediately dissolve the SC.
69+
It just triggers the election (which presumably cannot be cancelled) at which point all current SC members loose their seats (unless reelected).
70+
By contrast, removal for conduct does immediately remove an SC member.
71+
72+
Voluntary resignations are a grey area.
73+
In the above diagram they are also diagrammed as immediately taking effect, but arguably they could also be deferred until the election when those seats are replaced.
74+
75+
The important part of this distinction is who is a member voting in subsequent votes.
76+
Members removed for conduct do not vote choose the election type (in the no-confidence case) or whether to hold a special election (in the seats-vacated case).
77+
Members not resigning absolutely do vote in both those cases.
78+
Voluntarily-resigning members are a grey area.
79+
80+
### When the SC drops before 4 members
81+
82+
The most subtle part is what happens when the SC drops below 4 members due to "resignation or other less" or removal for conduct.
83+
84+
The constitution states that when less than half of the seats are filled, a special election must occur.
85+
But, presumably, a vote of no-confidence, triggering a full reelection can occur at any time.
86+
Therefore, that can also occur instead at this point, leading indeed to a special election also, but a different sort of special election.
87+
88+
If any SC member proposes a no-confidence vote, the vote will automatically win due to how vacant seats are counted for such votes.
89+
The vacant seats will also automatically cause special election, rather than initial election, to win the subsequent vote for the type of full reelection.
90+
However, vacant seats do not trigger votes, they only vote once a sitting member triggers a vote.
91+
Therefore at this point, no attempt to hold a no confidence vote will end in a special election of just the currently-vacant seats, while any attempt to hold a no-confidence vote will end in a special election for all seats.
92+
93+
Note that both paths above lead to a special election.
94+
As a corollary, it is only possible to follow no-confidence with an initial election when more than half of the SC seats were full prior to the no-confidence vote.

0 commit comments

Comments
 (0)