Skip to content

Conversation

@infinisil
Copy link
Member

Resolve an accidental ambiguity in the constitution left in by the NCA. This PR needs 5/7 supermajority approval from the @NixOS/steering to be merged. @NixOS/nix-constitutional-assembly can attest the records and that this change was intended.

Without this PR, there is an ambiguity as to how candidates can be disqualified from the election:

  • This part says:

    Disqualifications of candidates in an election requires supermajority among the currently serving SC members.

  • While this part says:

    [...], the SC can prevent a nominee from becoming a candidate by unanimity (among the currently serving non-running members of the SC) [...]

Looking into the public and private logs of the NCA, it's clear that we intended for it to be a supermajority among the currently serving SC members:

  • 2024-08-30: In the first constitution draft it was consistently unanimity among non-running SC members.

  • 2024-09-08: An issue was brought up while collecting feedback on the first draft and then internally brought up1:

    Disqualifications of candidates in an election requires unanimity among the currently serving non-running members.

    What if there aren't any non-running members?
    Or what if there's just one?

    Notably this can happen because arbitrarily many SC members can resign before an election.

  • 2024-09-09: The NCA had a meeting with all 7 members present, where we discussed1 ways of resolving this issue. We ended up agreeing on

    Disqualifications of candidates in an election requires supermajority among the currently serving SC members.

    Some of the supporting reasons were:

    • [later inferred] At least the "non-running" clause has to be removed for it to be well-defined.
    • A reason this was originally specified as a unanimity1 is because only at most 3-4 people could be "non-running", and a supermajority is the same as unanimity for 3 people.
    • Unanimity among a large groups almost never happens, supermajority should be enough for 7 people.
    • The decision to prevent somebody from running is similar to kicking somebody off the SC, which also needs a supermajority.

    The constitution draft was correspondingly updated, but apparently in only one of the two necessary places.

This commit resolves this ambiguity by also updating the other place to match what the NCA last agreed on.

This ambiguity had no impact so far, because we've only had the first election, during which nobody had the power to disqualify any candidates fulfilling the criteria.

Footnotes

  1. Link only accessible to NCA members 2 3

Without this commit, there is an ambiguity as to how candidates can be
disqualified from the election:
- [This part](https://github.com/NixOS/org/blob/bd3ca5a88af0745645ce013b348ef4d9f4ca7410/doc/constitution.md?plain=1#L96) says:
  > Disqualifications of candidates in an election requires supermajority among the currently serving SC members.
- While [this part](https://github.com/NixOS/org/blob/bd3ca5a88af0745645ce013b348ef4d9f4ca7410/doc/constitution.md?plain=1#L154) says:
  > [...], the SC can prevent a nominee from becoming a candidate by unanimity (among the currently serving non-running members of the SC) [...]

Looking into the public and private logs of the NCA, it's clear that we
intended for it to be a supermajority among the currently serving SC members version:
- 2024-08-30: In the [first constitution
  draft](https://discourse.nixos.org/t/nix-governance-constitution-draft-for-feedback/51373)
  it was consistently unanimity among non-running SC members.
- 2024-09-08: An issue was brought up while collecting feedback on the
  first draft and then [internally brought up](https://nixpkgs.zulipchat.com/#narrow/near/468622244) (link only accessible to NCA members):

  > > Disqualifications of candidates in an election requires unanimity among the currently serving non-running members.
  >
  > What if there aren't any non-running members?
  > Or what if there's just one?

  Notably this can happen because arbitrarily many SC members can resign
  before an election.

- 2024-09-09: The NCA had a meeting with all 7 members present, where we [discussed](https://github.com/nix-constitutional-assembly-2024/internal/blob/main/meetings/2024-09-09.md#httpsgithubcomnix-constitutional-assembly-2024internalpull94) (link only accessible to NCA members) ways of resolving this issue. We ended up agreeing on
  > Disqualifications of candidates in an election requires supermajority among the currently serving SC members.

  Some of the supporting reasons were:
  - [later inferred] At least the "non-running" clause has to be removed for it to be well-defined.
  - A reason this was [originally specified as a
    unanimity](nix-constitutional-assembly-2024/internal#57)
    (link only accessible to NCA members) is because only at most 3-4
    people could be "non-running", and a supermajority is the same as
    unanimity for 3 people.
  - Unanimity among a large groups almost never happens, supermajority
    should be enough for 7 people.
  - The decision to prevent somebody from running is similar to kicking
    somebody off the SC, which also needs a supermajority.

  The constitution draft was [correspondingly updated](NixOS/nix-constitutional-assembly@f089b00), but apparently in only one of the two necessary places.

This commit resolves this ambiguity by also updating the other place to
match what the NCA last agreed on.

This ambiguity had no impact so far, because we've only had the first
election, during which nobody could be disqualified.
@infinisil infinisil requested a review from a team as a code owner June 15, 2025 23:45
@sarahnovotny
Copy link

can confirm @NixOS/nix-constitutional-assembly intentions here.

@infinisil
Copy link
Member Author

Thanks, I'll merge this given that 5/7 SC members now approved this :)

@infinisil infinisil merged commit 33d5ec6 into main Jun 27, 2025
2 checks passed
@infinisil infinisil deleted the constitution-patch branch June 27, 2025 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants