diff --git a/profile/README.md b/profile/README.md index b33bffe..8804a56 100644 --- a/profile/README.md +++ b/profile/README.md @@ -30,498 +30,488 @@ Contributors who have supported and advanced the BHoM. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + - + - - - - - - - - - + - + + - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - + - + + - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + + - + - - - - - - - - - + - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - + + + + +
-
AaronWagner
+
+
AaronWagner
-
Adam Sobieski
+
+
Adam Sobies…
-
Agnes Lindblom
+
+
Agnes Lindb…
-
Ahmad Sater
+
+
Ahmad Sater
-
Ahmed Elnagar
+
+
Ahmed Elnag…
-
Al Fisher
+
+
Al Fisher
-
Alaa Alfakara
+
+
Alaa Alfaka…
-
Albin Bergh
+
+
Albin Bergh
-
Alessio Lombar…
+
+
Alessio Lom…
-
Alex Radne
+
+
Alex Radne
-
Alexis Santella
-
-
Andreas Bak
-
-
Andrew Engh
-
-
Anna Stigenberg
-
-
Anthony Moreho…
+
+
Alexis Sant…
-
Antigoni Karai…
-
-
Arnaud Declercq
-
-
Arne Martensen
-
-
Arvid Sigurdss…
-
-
Aurora Jensen
+
+
Andreas Bak
-
Bing Wang
+
+
Andrew Engh
-
Carmen Fan
+
+
Anna Stigen…
-
Charlie Brooker
+
+
Anthony Mor…
-
Chris Self
+
+
Antigoni Ka…
-
Christopher Sh…
+
+
Arnaud Decl…
-
Clemens Preisi…
+
+
Arne Marten…
-
Conor Hubert
+
+
Arvid Sigur…
-
Courtney Boult…
+
+
Aurora Jens…
-
Daniel Imms
+
+
Bing Wang
-
Daniel Jonsson
+
+
Carmen Fan
-
DarienC
+
+
Charlie Bro…
-
Deesha Tech
-
-
Desai Wang
-
-
DiellzaElshani
-
-
Dimitrie Stefa…
-
-
Djamila Mamedo…
-
-
Dmitry Zelenkin
-
-
Eddy Dalton
-
-
Eduardo Pignat…
-
-
Einar Persson
+
+
Chris Self
-
Elina Usmanova
+
+
Christopher…
+
+
Clemens Pre…
-
Ellie Adebowale
+
+
Conor Hubert
-
Emil Svedjer
+
+
Courtney Bo…
-
Emma Sander
+
+
Daniel Imms
-
EnricoAntolini
+
+
Daniel Jons…
-
Erida Bendo
+
+
DarienC
-
Erik Forsberg
+
+
Deesha Tech
-
Erik Narhi
+
+
Desai Wang
-
Evangelos Pant…
+
+
DiellzaElsh…
-
felipebandeira…
+
+
Dimitrie St…
+
+
Djamila Mam…
-
Felix Mallinder
+
+
Dmitry Zele…
+
+
Eddy Dalton
-
Fraser Greenro…
+
+
Eduardo Pig…
-
Frédéric Bourg…
+
+
Einar Perss…
-
Geir Soderin
+
+
Elina Usman…
-
Gideon Tamir
+
+
Ellie Adebo…
-
Giorgio Carlo…
+
+
Emil Svedjer
-
Habiba Moubarak
+
+
Emma Sander
-
Haiping
+
+
EnricoAntol…
-
Hedvig Kjellan…
+
+
Erida Bendo
-
Isak Larborn
+
+
Erik Forsbe…
+
+
Erik Narhi
-
Isak Näslund
+
+
Evangelos P…
+
+
felipebande…
+
+
Felix Malli…
-
izzy lys
+
+
Fraser Gree…
-
Jack Trainor
+
+
Frédéric Bo…
-
Jaco Bekker
+
+
Geir Soderin
-
James Ramsden
+
+
Gideon Tamir
-
Johanna Isakss…
+
+
Giorgio Car…
-
Johanna Olin
+
+
Habiba Moub…
-
John Sloane
+
+
Haiping
-
Jonathan Nilli…
+
+
Hedvig Kjel…
-
Jose Castro Ag…
+
+
Isak Larborn
-
JS
+
+
Isak Näslund
-
jukkasus
+
+
izzy lys
-
Junjie
+
+
Jack Trainor
-
Kai Chelliah
+
+
Jaco Bekker
-
Kalle Edstroem
+
+
James Ramsd…
-
Kalle Thorsager
+
+
Johanna Isa…
-
Kalle Thorsager
+
+
Johanna Olin
-
Karolina Prusi…
+
+
John Sloane
-
Kartheek Mylav…
+
+
Jonathan Ni…
-
Kasia Wodzisz
+
+
Jose Castro…
+
+
JS
+
+
jukkasus
-
Kayleigh Houde
+
+
Junjie
+
+
Kai Chelliah
-
Kenton Phillips
+
+
Kalle Edstr…
-
Kenton Phillips
+
+
Kalle Thors…
-
Konrad Stolars…
+
+
Kalle Thors…
-
Lina Eriksson
+
+
Karolina Pr…
-
linhnam-nguyen
+
+
Kartheek My…
-
Liv Andersson
+
+
Kasia Wodzi…
-
livand
+
+
Kayleigh Ho…
-
Ludvig Borgens…
+
+
Kenton Phil…
-
Luis E. Fragua…
+
+
Kenton Phil…
+
+
Konrad Stol…
-
Madelene Sandm…
+
+
Lina Erikss…
+
+
linhnam-ngu…
+
+
Liv Anderss…
-
Maja Lindroth
+
+
livand
-
Manuel Chafart
+
+
Ludvig Borg…
-
Maria Glimaker
+
+
Luis E. Fra…
-
Maria Roman
+
+
Madelene Sa…
-
Maria Tjader
+
+
Maja Lindro…
-
Mark Cunliffe
+
+
Manuel Chaf…
-
Martin B. Henr…
+
+
Maria Glima…
-
Marvin Suen
+
+
Maria Roman
-
Maryanne Wacht…
+
+
Maria Tjader
-
Maryanne Wacht…
+
+
Mark Cunlif…
+
+
Martin B. H…
+
+
Marvin Suen
-
Matilda Svenss…
+
+
Maryanne Wa…
-
Matteo Cominet…
+
+
Maryanne Wa…
-
Matthew Swaidan
+
+
Matilda Sve…
-
Maya Arora-Jon…
+
+
Matteo Comi…
-
Meinrad Recheis
+
+
Matthew Swa…
-
Michael Hoehn
+
+
Maya Arora-…
-
Michal Dengusi…
+
+
Meinrad Rec…
-
Michal Pekacki
+
+
Michael Hoe…
-
MILeach
+
+
Michal Deng…
-
Milo Gillot
+
+
Michal Peka…
-
Mish Nuh
+
+
MILeach
-
Mozhgan Kabiri…
+
+
Milo Gillot
-
Nathan Brown
+
+
Mish Nuh
-
Nazeefa Bushra
+
+
Mozhgan Kab…
-
Nicola Smithies
+
+
Nathan Brown
-
non-manifold
+
+
Nazeefa Bus…
-
Ofek Bruhis
+
+
Nicola Smit…
-
Oliver Stainton
+
+
non-manifold
-
Oscar Borgström
+
+
Ofek Bruhis
+
+
Oliver Stai…
+
+
Oscar Borgs…
-
Paul Poinet
+
+
Paul Poinet
+
+
Paul Richmo…
-
Paul Richmond
+
+
Pawel Baran
-
Pawel Baran
+
+
Peter Harman
-
Peter Harman
+
+
Peter Heywo…
-
Peter Heywood
+
+
Peter Nugent
-
Peter Nugent
+
+
PiotrBuda
-
PiotrBuda
+
+
Puria Safar…
-
Puria Safari H…
+
+
Rasmus Canf…
-
Rasmus Canfjor…
+
+
Rene Schulte
-
Rene Schulte
+
+
Richard Whi…
+
+
Rob May
-
Richard Whitfi…
+
+
Robert Chis…
-
Rob May
+
+
Robin Flyman
-
Robert Chisholm
+
+
Roly Hudson
-
Robin Flyman
+
+
Ross Boulton
-
Roly Hudson
+
+
Sally Picka…
-
Ross Boulton
+
+
Sam Vazquez
-
Sally Pickard
+
+
Samuel Basi…
-
Sam Vazquez
+
+
Sofia Malms…
-
Samuel Basimal…
+
+
StephennipBH
-
Sofia Malmsten
+
+
Thomas Edwa…
-
StephennipBH
+
+
Tiago Del G…
-
Thomas Edward…
+
+
Tom Svilans
-
Tiago Del Gros…
-
-
Tom Svilans
+
+
Toste Skanb…
-
Toste Skanberg…
+
+
Tristan Ger…
-
Tristan Gerrish
+
+
Valerie Gre…
-
Valerie Green
+
+
Viet Le
-
Viet Le
+
+
Will Pearson
-
Will Pearson
+
+
wojciech bu…
-
wojciech buda
+
+
Łukasz Mark…
-
Łukasz Markows…
-
diff --git a/scripts/generate_wall_of_honour.py b/scripts/generate_wall_of_honour.py index 9dc9529..e18a259 100644 --- a/scripts/generate_wall_of_honour.py +++ b/scripts/generate_wall_of_honour.py @@ -87,10 +87,10 @@ def enrich_display_names( return contributors -GRID_COLS = 10 -AVATAR_SIZE = 70 -CELL_WIDTH = 80 -NAME_MAX_LEN = 15 # truncate longer display names with an ellipsis; full name in title attr +GRID_COLS = 12 +AVATAR_SIZE = 45 +CELL_WIDTH = 55 +NAME_MAX_LEN = 12 # truncate longer display names with an ellipsis; full name in title attr def _pluralize(n: int, singular: str, plural: str) -> str: diff --git a/scripts/tests/test_generate.py b/scripts/tests/test_generate.py index 65de5e4..0059e12 100644 --- a/scripts/tests/test_generate.py +++ b/scripts/tests/test_generate.py @@ -140,13 +140,13 @@ def test_enrich_display_names_uses_real_name(): responses.add( responses.GET, "https://api.github.com/users/alice", - json={"login": "alice", "name": "Alice Example"}, + json={"login": "alice", "name": "Alice"}, status=200, ) session = make_session("fake-token") contributors = {"alice": {"avatar_url": "https://x/a", "contributions": 10}} result = enrich_display_names(session, contributors) - assert result["alice"]["name"] == "Alice Example" + assert result["alice"]["name"] == "Alice" @responses.activate @@ -218,28 +218,28 @@ def test_render_wall_includes_hr_separator(): def test_render_wall_single_row(): contributors = { - "alice": {"avatar_url": "https://x/a", "contributions": 10, "name": "Alice Example"}, - "bob": {"avatar_url": "https://x/b", "contributions": 5, "name": "Bob Sample"}, + "alice": {"avatar_url": "https://x/a", "contributions": 10, "name": "Alice"}, + "bob": {"avatar_url": "https://x/b", "contributions": 5, "name": "Bob"}, } md = render_wall(contributors, "2026-06-08") assert "2 contributors" in md - assert md.count("") == 1 # 2 cells fit in 1 row of 10 - assert "Alice Example" in md - assert "Bob Sample" in md + assert md.count("") == 1 # 2 cells fit in 1 row of GRID_COLS + assert "Alice" in md + assert "Bob" in md # Alphabetical: Alice before Bob - assert md.index("Alice Example") < md.index("Bob Sample") + assert md.index("Alice") < md.index("Bob") # Rounded avatars assert "border-radius: 50%" in md # Centered wrapper assert "
" in md # Empty padding cells fill row to GRID_COLS width - assert md.count("") == 8 + assert md.count("") == 10 def test_render_wall_stats_with_repo_count(): contributors = { - "alice": {"avatar_url": "https://x/a", "contributions": 10, "name": "Alice Example"}, - "bob": {"avatar_url": "https://x/b", "contributions": 5, "name": "Bob Sample"}, + "alice": {"avatar_url": "https://x/a", "contributions": 10, "name": "Alice"}, + "bob": {"avatar_url": "https://x/b", "contributions": 5, "name": "Bob"}, } md = render_wall(contributors, "2026-06-08", repo_count=42) assert "2 contributors across 42 repositories" in md @@ -256,12 +256,12 @@ def test_render_wall_pluralization_singular(): def test_render_wall_two_rows_with_remainder(): - contributors = {f"user{i}": {"avatar_url": f"https://x/{i}", "contributions": 1, "name": f"User {i}"} for i in range(11)} + contributors = {f"user{i}": {"avatar_url": f"https://x/{i}", "contributions": 1, "name": f"User {i}"} for i in range(14)} md = render_wall(contributors, "2026-06-08") assert md.count("") == 2 - # 11 populated cells (links present) + 9 empty padding cells in the second row - assert md.count("") == 9 + # 14 populated cells (links present) + 10 empty padding cells in the second row + assert md.count("") == 10 def test_render_wall_truncates_long_names_with_ellipsis(): @@ -386,7 +386,7 @@ def test_main_end_to_end(monkeypatch, tmp_path): responses.add( responses.GET, "https://api.github.com/users/alice", - json={"login": "alice", "name": "Alice Example"}, + json={"login": "alice", "name": "Alice"}, status=200, ) @@ -399,6 +399,6 @@ def test_main_end_to_end(monkeypatch, tmp_path): assert exit_code == 0 assert readme.exists() content = readme.read_text(encoding="utf-8") - assert "Alice Example" in content + assert "Alice" in content assert "1 contributor across 1 repository" in content # Only alice; bot filtered assert "dependabot" not in content