The Election Committee announces the second Steering Committee election

One year has passed since the Nix community voted in the very first Nix Steering Committee. As some of their terms are coming to an end, the community must once again cast their ballots to form the next SC.

Call to action

Who can vote?

The constitution defines a process for automatic voter eligibility based on the number of commits and merge actions in merged PRs opened by a person in any of the projects inside the NixOS GitHub organisation.

  • The minimal number of commits for automatic eligibility is 25
  • The minimal number of merges for automatic eligibility is 1
  • The eligibility window is the past 4 years from and to 1 Aug (see table below for exact dates)

Who can run?

Nominees and endorsers must themselves be eligible voters.

How to request an exception

People who have contributed to the official projects in a verifiable and substantial[1] way may send us an email at elections@nixos.org.

  • Provide references to contributions
  • Specify which email address you wish to use for voting

A non-exhaustive list of examples of contributions:

  • participation in official teams
  • infrastructure maintenance
  • organisation of official events
  • maintenance of official third-party accounts (e.g. social media)
  • significant contribution to important PRs under overall PR authorship of other users

Differences from previous election

Mandatory voting registration

In response to feedback from last year, we got rid of automatic repurposing of emails collected for other purposes (e.g. maintainer list entries).

All automatically eligible voters need to add the email they wish to use to the eligible voter list:
https://github.com/NixOS/SC-election-2025/edit/main/eligible.csv

This can be any email, it does not need to correspond to their commits or maintainer entry.
If using a temporary email address, please be prepared to keep it alive at least until 2026-01-01 in case of technical issues.

:warning: You will only be able to vote if you have added an email.

If for whatever reason an automatically eligible voter can not open this PR using the corresponding GitHub account, please send us an email at elections@nixos.org.

Different vote tallying system

We will use OpaVote for vote tallying in addition to voting.

We will use STV in order to fulfill the requirement of proportional-representation considerations, and we have chosen Meek STV as the specific version.

Allowing questions to candidates before the candidate list is finalised

We are opening candidate nominations and submission of questions at the same time.

You may ask questions before all the candidates have been confirmed.

You may mention specific candidate(s) in your question at any time after they have accepted their nomination. You don’t have to wait for any other step to be complete.

Conflict of interest (CoI) handling

The constitution disallows multiple people sharing the same CoI holding a seat on the SC immediately after the election.

As the constitution does not forbid two candidates from sharing the same CoI, we may need to re-tally the votes until a group without shared CoIs is found.

To allow verifiable re-tallying, we will make the anonymised list of ballots public. We reserve the right to use a local open-source Meek STV implementation in the case that re-tallying is necessary.

Campaigning

Election campaigning in official spaces is only allowed in applications and candidate Q&A - and in accordance to their format.

Campaigning in any other official spaces, or not following the appropriate format, will be considered off-topic and removed.

The EC and the moderation team have agreed to continue this practice from last year’s election.

Timeline

Description Start date End date
Contribution window 2021-08-01T00:00:01 UTC 2025-08-01T00:00:01 UTC
Candidate self-nominations, nominations, acceptances, and endorsements 2025-09-14 2025-09-30
Submission of questions from eligible voters to candidates 2025-09-14 2025-10-03
Exception requests 2025-09-14 2025-10-11
Candidates’ answers to the questions 2025-09-14 2025-10-11
Voter registration 2025-09-14 2025-10-14
Voting 2025-10-15 2025-11-01

  1. The constitution defines substantial contributions as roughly corresponding to at least 25 commits ā†©ļøŽ

19 Likes

I’m disappointed to see that same-day voter registration isn’t possible. While I understand that people didn’t like emails being repurposed last year, I feel that the new system will lead to unintentional voter suppression. Is it possible to extend the registration period further?

9 Likes

Yeah this seems like an artificial constraint put on for no good reason to be honest.
I would also suggest maybe putting this as a banner in the nixos.org website? (EDIT: I open an issue on GitHub raising the issue :3)
Add voter-registration banner for upcoming Nix SC election Ā· Issue #1842 Ā· NixOS/nixos-homepage Ā· GitHub

3 Likes

Looked at the OpaVote docs and it does want the emails in advance.

Are voters going to be notified of the need to register, e.g. through GitHub mentions?

12 Likes

Last year we allowed setting emails up to the day before: GitHub - NixOS/SC-election-2024: 2024 Election for the Steering Committee

And we didn’t run into any issues with that. So I don’t see why this needs to be changed

4 Likes

Maybe we should re-think this, if not for this year, then for next year. Maintainer entries now require github handles, which means we don’t really need emails in there for maintainer purposes. Thus, we could announce that these email addresses will be used for voting as well - and everyone who disagrees will be asked to remove their addresses from the list instead.

7 Likes

Technically, we also require maintainer entries to maintain at least one package, while eligible voters are not obligated to do this. And some people do use maintainer emails to say something useful about the package.

I think the correct solution would be to just have a separate potential-voters.csv which has the problem that EC doesn’t exist to do it in good time, and SC did not decide to review the election and do changes on its own in advance.

It would be nice if it’s not required to register to vote every year (or at least, if that remains necessary, a less high-effort way of doing that than making a github PR against a thousand-line long CSV). However, I would greatly appreciate it if the public maintainer emails weren’t necessarily implicitly used for voting – I get a large amount of spam to my (unique) nixpkgs maintainer email, and I suspect there’s a solid chance I will one day start dropping mail sent to it and wouldn’t be surprised if others already do the same.

A one-time ā€œplease sign me up for all future elections I’m eligible for, here is an email address you can store privately for this purposeā€ form would work fine for me, for example.

4 Likes

Also how is the outreach efforts to communities outside of NA and the EU. For example China? I know we have a lot of contributors from China and from other places as well how are we communicating that this election is happening?

3 Likes

Oh right, this was my bad, fixed now.

We’ve tweaked the timeline a bit to allow voter registration up to the day of the election. We will need a few hours to validate all the data before we populate OpaVote, but other than that, there is no more gap between voter registration and voting.

6 Likes

I’ve notified some of my friends but it’s gonna be hard for the message to disseminate to everyone.

Also, my 2Ā¢ - at least 10+ voters would NOT have been notified should I not personally tell them about this. This should be pinned in the Nixpkgs repo at least since otherwise unless you’re active in Discourse or other third-party Nix-related spaces, there’s no way ever you’ll get to know that you need to register manually register by forking the repo, editing the CSV file and then opening a PR. Not only is this mechanism very undiscoverable, it’s also awful to use even with the merge bot. (Try doing all that with e.g. the mobile app which doesn’t allow you to search for a specific field in the CSV. I had to grab my laptop and do it there.)

I’m gonna be a bit pessimistic here and say that voter turnout may be 20% at best compared to last year, in spite of many more contributors (like yours truly) being technically eligible to vote. I hope it’s not too late to change the mechanism here. If that couldn’t be changed, at least make a more user-friendly UI for it: my idea would be a web interface that allows you to sign in via GitHub OAuth where, after you’ve logged in, allows the app to automatically create a PR under your account and with your provided email, which will then be auto-merged by the bot.

10 Likes