Hey all,
Thanks Alex for writing this up.
Using the same tie-break method that we used back in 2017 makes sense to
me. It matches what the bylaws ask for, it is easy for everyone to verify,
and there is a clear precedent. I am happy for us to go ahead with this
approach.
Thanks everyone for helping wrap this up.
Kind regards,
Guus
On Fri, Nov 21, 2025 at 1:15 AM Alexander Gnauck <gnauck(a)gmail.com> wrote:
Hello,
you can find the meeting minutes of our annual board and council
election meeting here:
https://wiki.xmpp.org/web/Meeting-Minutes-2025-11-20
All Council candidates were accepted. The following individuals will
form the XSF council for the 2025/2026 term:
* Dan Caseley
* Daniel Gultsch
* Jérôme Poisson
* Stephen Paul Weber
* Marvin Wißfeld
For the board candidates we have a tie on the 5th position between
Adrien and Arne. Our bylaws state that the fifth candidate will be
chosen with:
RFC 3797: Publicly Verifiable Nominations Committee (NomCom) Random
Selection
The currently elected individuals for position 1-4 are:
* Guus der Kinderen
* Mickaël Rémond
* Ralph Meijer
* Florian Schmaus
I am suggesting that we use similar procedure to what we used in 2017
when we had our last tie. The solution was proposed by Dave Cridland.
Its compliant with our bylaws.
The proposal is the following:
1) As random input source, I propose using the "Main Numbers" from the
Euro Millions draw of next Tuesday (2025-11-25), as announced here:
https://www.euro-millions.com/results
2) Each number will be arranged in ascending order, separated by dots,
and terminated by "./".
3) The resultant string will be hashed according to SHA-256.
4) The tied candidates will be arranged into alphabetic order (note,
in this case this may be by first or last name, it makes no
difference), to produce:
* Adrien Bourmault
* Arne-Bruen Vogelsang
5) These will be numbered from 0. Adrien is 0, and Arne by 1.
6) The decimal representation of the last byte in the hash, modulo the
number of candidates will then be used to select the candidate.
As example, if we take these numbers:
02 - 10 - 14 - 28 - 31
We'd form the string with the numbers ordered of "02.10.14.28.31./"
Which we can hash with:
sha256('02.10.14.28.31./').hexdigest()
Producing a hash (in hex) of
'ad2edee63a88d7b4b6109944b5222a6cce1c3719ac4d41acd0dbf8287465ace0'
The last byte in the hash 'e0' is 224 in dec.
224 mod 2 = 0
This would result in candidate 0 being selected (Adrien).
I have created a small script to create the results with this algo.
It is on GitHub here:
https://gist.github.com/agnauck/8996415c1a91e5b6e1d27cad0367c85b
and you can run it online here:
https://sharplab.io/#gist:8996415c1a91e5b6e1d27cad0367c85b
Alex