Commit 1b30734c for xz
commit 1b30734c9c08a3f628574d172f1a6034277a2163
Author: Lasse Collin <lasse.collin@tukaani.org>
Date: Tue Nov 25 13:55:35 2025 +0200
Change the sorting order in THANKS
In short, sort the names with this command (-k1,1 isn't needed because
the lines with names start with " -"):
LC_ALL=en_US.UTF-8 sort -k2,2 -k3,3 -k4,4 -k5,5
When THANKS was created, I wrote the names as "First Last" and attempted
to keep them sorted by last name / surname / family name. This works
with many names in THANKS, but it becomes complicated with names that
don't fit that pattern. For example, names that are written as
"Last First" can be manually sorted by family name, but only if one
knows which part of the name is the family name.[*] And of course,
the concept of first/last name doesn't apply to all names.
[*] xz had a co-maintainer who could help me with such names,
but fortunately he isn't working on the project anymore.
Adding the names in chronological order could have worked too, although
if something is contributed by multiple people, one would still have to
decide how to sort the names within the batch. Another downside would
be that if THANKS is updated in more than one work-in-progress branch,
merge conflicts would occur more often.
Don't attempt to sort by last name. Let's be happy that people tend to
provide names that can be expressed in a reasonable number of printable
Unicode characters. In practice, people have been even nicer: if the
native language doesn't use a Latin script alphabet, people often provide
a transliterated name (only or in addition to the original spelling),
which is very much appreciated by those who don't know the native script.
Treat the names as opaque strings or space-separated strings for sorting
purposes. This means that most names will now be sorted by first name.
There still are many choices how to sort:
(1) LC_ALL=en_US.UTF-8 sort
The project is in English, so this may sound like a logical choice.
However, spaces have a lower weight than letters, which results in
this order:
- A Ba
- Ab C
- A Bc
- A Bd
(2) LC_ALL=en_US.UTF-8 sort -k2,2
This first sorts by the first word and then by the rest of the
string. It's -k2,2 instead of -k1,1 to skip the leading dash.
- A Ba
- A Bc
- A Bd
- Ab C
I like this more than (1). One could add -k3,3 -k4,4 -k5,5 ... too.
With current THANKS it makes no difference but it might some day.
NOTE: The ordering in en_US.UTF-8 can differ between libc versions
and operating systems. Luckily it's not a big deal in THANKS.
(3) LC_ALL=en_US.UTF-8 sort -f -k2,2
Passing -f (--ignore-case) to sort affects sorting of single-byte
characters but not multibyte characters (GNU coreutils 9.9):
No -f With -f LC_ALL=C
Aa A.A A.A
A.A Aa Aa
Ää Ää Ä.Ä
Ä.Ä Ä.Ä Ää
In GNU coreutils, the THANKS file is sorted using "sort -f -k1,1".
There is also a basic check that the en_US.UTF-8 locale is
behaving as expected.
(4) LC_ALL=C sort
This sorts by byte order which in UTF-8 is the same as Unicode
code point order. With the strings in (1) and (2), this produces
the same result as in (2). The difference in (3) can be seen above.
The results differ from en_US.UTF-8 when a name component starts
with a lower case ASCII letter (like "von" or "de"). Worse, any
non-ASCII characters sort after ASCII chars. These properties might
look weird in English language text, although it's good to remember
that en_US.UTF-8 sorting can appear weird too if one's native
language isn't English.
The choice between (2) and (4) was difficult but I went with (2).
;-)
diff --git a/THANKS b/THANKS
index 0191224f..b6f3088b 100644
--- a/THANKS
+++ b/THANKS
@@ -3,241 +3,241 @@ Thanks
======
Some people have helped more, some less, but nevertheless everyone's help
-has been important. :-) In alphabetical order:
- - Mark Adler
- - Victoria Alexia
- - Kian-Meng Ang
- - H. Peter Anvin
- - Jeff Bastian
- - Nelson H. F. Beebe
- - Karl Beldan
- - Karl Berry
- - Anders F. Björklund
- - Emmanuel Blot
- - Melanie Blower
+has been important. :-)
+ - Adam Borowski
+ - Adam Walling
+ - Adrien Nader
+ - Agostino Sarubbo
- Alexander Bluhm
- - Martin Blumenstingl
+ - Alexander M. Greenham
+ - Alexander Neumann
+ - Alexandre Sauvé
+ - Alexey Tourbin
+ - Anders F. Björklund
+ - Andraž 'ruskie' Levstik
+ - Andre Noll
+ - Andreas K. Hüttel
+ - Andreas Schwab
+ - Andreas Zieringer
+ - Andrej Skenderija
+ - Andres Freund
+ - Andrew Dudman
+ - Andrew Murray
+ - Antoine Cœur
+ - Anton Kochkov
+ - Antonio Diaz Diaz
+ - Arkadiusz Miskiewicz
+ - Asgeir Storesund Nilsen
+ - Aziz Chaudhry
+ - Bela Lubkin
- Ben Boeckel
- - Jakub Bogusz
- - Adam Borowski
- - Maarten Bosmans
- - Roel Bouckaert
- - Lukas Braune
- Benjamin Buch
- - Trent W. Buck
- - Kevin R. Bulgrien
- - James Buren
- - David Burklund
- - Frank Busse
- - Daniel Mealha Cabrita
- - Milo Casagrande
+ - Benno Schulenberg
+ - Bernhard Reutner-Fischer
+ - Bert Wesarg
+ - Bhargava Shastry
+ - Bill Glessner
+ - Bjarni Ingi Gislason
+ - Boud Roukema
+ - Brad Smith
+ - Bruce Stark
+ - Cary Lewis
+ - Charles Wilson
+ - Chenxi Mao
+ - Chien Wong
+ - Chris Donawa
+ - Chris McCrohan
+ - Christian Hesse
+ - Christian Kujau
+ - Christian von Roques
+ - Christian Weisgerber
+ - Christoph Junghans
+ - Collin Funk
+ - Conley Moorhous
+ - Cristian Rodríguez
- Cristiano Ceglia
- - Marek Černocký
- - Tomer Chachamu
- - Aziz Chaudhry
- - Vitaly Chikunov
- - Antoine Cœur
+ - Dan Shechter
+ - Dan Stromberg
+ - Dan Weiss
+ - Daniel Leonard
+ - Daniel Mealha Cabrita
+ - Daniel Packard
+ - Daniel Richard G.
+ - David Burklund
+ - Denis Excoffier
+ - Derwin McGeary
+ - Dexter Castor Döpping
+ - Diederik de Haas
+ - Diego Elio Pettenò
+ - Dimitri Papadopoulos Orfanos
+ - Dirk Müller
+ - Douglas Thor
+ - Ed Maste
+ - Elbert Pol
+ - Eli Schwartz
- Elijah Almeida Coimbra
+ - Émilie Labbé
+ - Emmanuel Blot
+ - Eric Lindblad
+ - Eric S. Raymond
+ - Étienne Mollier
+ - Evan Nemerson
+ - Fangrui Song
- Felix Collin
- - Ryan Colyer
- - Marcus Comstedt
- - Vincent Cruz
+ - Filip Palian
+ - Firas Khalil Khana
+ - François Etcheverry
+ - Frank Busse
+ - Frank Prochnow
+ - Fredrik Wikstrom
- Gabi Davar
- - Ron Desmond
- - Antonio Diaz Diaz
+ - Gabriela Gutierrez
+ - Gilles Espinasse
+ - Gregory Margo
+ - Guillaume Outters
+ - Guiorgy Potskhishvili
+ - H. Peter Anvin
+ - Hajin Jang
+ - Hans Jansen
+ - Harri K. Koskinen
+ - Hin-Tak Leung
+ - H.J. Lu
+ - Hongbo Ni
+ - Igor Pavlov
- İhsan Doğan
- - Chris Donawa
- - Andrew Dudman
- - Markus Duft
+ - Ilya Kurdyukov
+ - Iouri Kharon
- İsmail Dönmez
- - Dexter Castor Döpping
- - Paul Eggert
- - Robert Elz
- - Gilles Espinasse
- - François Etcheverry
- - Denis Excoffier
- - Vincent Fazio
- - Michael Felt
- - Sean Fenian
- - Michael Fox
- - Andres Freund
- - Mike Frysinger
- - Collin Funk
- - Daniel Richard G.
- - Tomasz Gajc
- - Bjarni Ingi Gislason
- - John Paul Adrian Glaubitz
- - Bill Glessner
- - Matthew Good
- - Michał Górny
- - Jason Gorski
- - Alexander M. Greenham
- - Juan Manuel Guerrero
- - Gabriela Gutierrez
- - Diederik de Haas
+ - Ivan A. Melnikov
+ - Jakub Bogusz
+ - James Buren
+ - James M Leddy
+ - Jan Kratochvil
- Jan Terje Hansen
- - Tobias Lahrmann Hansen
+ - Jason Gorski
+ - Jeff Bastian
+ - Jeffrey Walton
+ - Jeroen Roovers
+ - Jim Meyering
+ - Jim Wilcoxson
- Joachim Henke
- - Lizandro Heredia
- - Christian Hesse
- - Andreas K. Hüttel
- - Vincenzo Innocente
- - Peter Ivanov
- - Nicholas Jackson
- - Sam James
- - Hajin Jang
- - Hans Jansen
+ - John Paul Adrian Glaubitz
+ - Jonathan Nieder
+ - Jonathan Stott
+ - Joona Kannisto
- Jouk Jansen
+ - Juan Manuel Guerrero
+ - Jukka Salmi
+ - Julien Marrec
- Jun I Jin
- - Richard W.M. Jones
- - Simon Josefsson
- - Christoph Junghans
- - Kiyoshi Kanazawa
- - Joona Kannisto
- - Per Øyvind Karlsen
- - Firas Khalil Khana
- - Iouri Kharon
+ - Kai Pastor
+ - Karl Beldan
+ - Karl Berry
+ - Keith Patton
+ - Kelvin Lee
+ - Kevin R. Bulgrien
+ - Kian-Meng Ang
- Kim Jinyeong
- - Thomas Klausner
- - Richard Koch
- - Anton Kochkov
- Kirill A. Korinsky
- - Harri K. Koskinen
- - Ville Koskinen
- - Sergey Kosukhin
- - Marcin Kowalczyk
- - Jan Kratochvil
- - Christian Kujau
- - Stephan Kulow
- - Ilya Kurdyukov
- - Émilie Labbé
- - Peter Lawler
- - James M Leddy
- - Kelvin Lee
- - Vincent Lefevre
- - Daniel Leonard
- - Hin-Tak Leung
- - Andraž 'ruskie' Levstik
- - Cary Lewis
- - Wim Lewis
- - Xin Li
- - Yifeng Li
- - Eric Lindblad
+ - Kiyoshi Kanazawa
+ - Lars Wirzenius
+ - Lizandro Heredia
+ - Loganaden Velvindron
- Lorenzo De Liso
- - H.J. Lu
- - Bela Lubkin
- - Chenxi Mao
- - Gregory Margo
- - Julien Marrec
- - Pierre-Yves Martin
- - Ed Maste
+ - Lukas Braune
+ - Maarten Bosmans
+ - Maksym Vatsyk
+ - Marcin Kowalczyk
+ - Marcus Comstedt
+ - Marcus Tillmanns
+ - Marek Černocký
+ - Mark Adler
+ - Mark Wielaard
+ - Markus Duft
+ - Markus Rickert
+ - Martin Blumenstingl
- Martin Matuška
- - Scott McAllister
- - Chris McCrohan
- - Derwin McGeary
- - Ivan A. Melnikov
- - Jim Meyering
- - Arkadiusz Miskiewicz
+ - Martin Storsjö
+ - Martin Väth
+ - Mathieu Vachon
+ - Matthew Good
+ - Matthieu Rakotojaona
+ - Melanie Blower
+ - Michael Felt
+ - Michael Fox
+ - Michał Górny
+ - Mike Frysinger
+ - Mikko Pouru
+ - Milo Casagrande
+ - Mohammed Adnène Trojette
- Nathan Moinvaziri
- - Étienne Mollier
- - Conley Moorhous
- - Dirk Müller
- - Rainer Müller
- - Andrew Murray
- - Rafał Mużyło
- - Adrien Nader
- - Evan Nemerson
- - Alexander Neumann
- - Hongbo Ni
- - Jonathan Nieder
- - Asgeir Storesund Nilsen
- - Andre Noll
- - Steffen Nurpmeso
- - Ruarí Ødegaard
+ - Nelson H. F. Beebe
+ - Nicholas Jackson
+ - Ole André Vadla Ravnås
+ - Orange Tsai
+ - Orgad Shaneh
+ - Patrick J. Volkerding
+ - Paul Eggert
+ - Paul Townsend
+ - Pavel Raiskup
+ - Per Øyvind Karlsen
+ - Peter Ivanov
+ - Peter Lawler
- Peter O'Gorman
- - Dimitri Papadopoulos Orfanos
- - Guillaume Outters
- - Daniel Packard
- - Filip Palian
- Peter Pallinger
- - Kai Pastor
- - Keith Patton
- - Rui Paulo
- - Igor Pavlov
- - Diego Elio Pettenò
- - Elbert Pol
- - Guiorgy Potskhishvili
- - Mikko Pouru
- - Frank Prochnow
+ - Peter Seiderer
+ - Pierre-Yves Martin
+ - Pilorz Wojciech
+ - Pippijn van Steenhoven
+ - Rafał Mużyło
+ - Rainer Müller
+ - Ralf Wildenhues
- Rich Prohaska
- - Trần Ngọc Quân
- - Pavel Raiskup
- - Matthieu Rakotojaona
- - Ole André Vadla Ravnås
- - Eric S. Raymond
+ - Richard Koch
+ - Richard W.M. Jones
+ - Robert Elz
- Robert Readman
- - Bernhard Reutner-Fischer
- - Markus Rickert
- - Cristian Rodríguez
- - Jeroen Roovers
- - Christian von Roques
- - Boud Roukema
- - Torsten Rupp
+ - Roel Bouckaert
+ - Ron Desmond
+ - Ruarí Ødegaard
+ - Rui Paulo
+ - Ryan Colyer
+ - Ryan Young
+ - Sam James
+ - Scott McAllister
+ - Sean Fenian
+ - Sebastian Andrzej Siewior
+ - Sergey Kosukhin
+ - Simon Josefsson
+ - Siteshwar Vashisht
+ - Steffen Nurpmeso
+ - Stephan Kulow
- Stephen Sachs
- - Jukka Salmi
- - Agostino Sarubbo
- - Vijay Sarvepalli
- - Alexandre Sauvé
- - Benno Schulenberg
- - Andreas Schwab
- - Eli Schwartz
- - Peter Seiderer
- - Orgad Shaneh
- - Bhargava Shastry
- - Dan Shechter
- Stuart Shelton
- - Sebastian Andrzej Siewior
- - Andrej Skenderija
- - Ville Skyttä
- - Brad Smith
- - Fangrui Song
- - Bruce Stark
- - Pippijn van Steenhoven
+ - Taiki Tsunekawa
+ - Thomas Klausner
+ - Tobias Lahrmann Hansen
- Tobias Stoeckmann
- - Martin Storsjö
- - Jonathan Stott
- - Dan Stromberg
- - Douglas Thor
- - Marcus Tillmanns
+ - Tomasz Gajc
+ - Tomer Chachamu
+ - Torsten Rupp
+ - Trần Ngọc Quân
+ - Trent W. Buck
+ - Victoria Alexia
+ - Vijay Sarvepalli
+ - Ville Koskinen
+ - Ville Skyttä
+ - Vincent Cruz
+ - Vincent Fazio
+ - Vincent Lefevre
- Vincent Torri
- - Alexey Tourbin
- - Paul Townsend
- - Mohammed Adnène Trojette
- - Orange Tsai
- - Taiki Tsunekawa
- - Mathieu Vachon
- - Siteshwar Vashisht
- - Maksym Vatsyk
- - Loganaden Velvindron
- - Patrick J. Volkerding
- - Martin Väth
- - Adam Walling
- - Jeffrey Walton
- - Christian Weisgerber
- - Dan Weiss
- - Bert Wesarg
- - Mark Wielaard
- - Fredrik Wikstrom
- - Jim Wilcoxson
- - Ralf Wildenhues
- - Charles Wilson
- - Lars Wirzenius
- Vincent Wixsom
- - Pilorz Wojciech
- - Chien Wong
+ - Vincenzo Innocente
+ - Vitaly Chikunov
+ - Wim Lewis
- Xi Ruoyao
- - Ryan Young
- - Andreas Zieringer
+ - Xin Li
+ - Yifeng Li
- 榆柳松 (ZhengSen Wang)
Companies: