:orphan:

Release Statistics for U-Boot v2024.04
======================================

* Processed 1402 changesets from 200 developers

* 28 employers found

* A total of 124614 lines added, 48092 removed (delta 76522)

.. table:: Developers with the most changesets
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Simon Glass                           143 (10.2%)
   Heinrich Schuchardt                   103 (7.3%)
   Tom Rini                              89 (6.3%)
   Marek Vasut                           69 (4.9%)
   Sean Anderson                         53 (3.8%)
   Nishanth Menon                        43 (3.1%)
   Fabio Estevam                         36 (2.6%)
   Michal Simek                          35 (2.5%)
   Caleb Connolly                        31 (2.2%)
   Svyatoslav Ryhel                      28 (2.0%)
   Igor Prusov                           25 (1.8%)
   Francis Laniel                        24 (1.7%)
   Jonas Karlman                         22 (1.6%)
   Andrew Davis                          22 (1.6%)
   Masahisa Kojima                       21 (1.5%)
   Sam Protsenko                         20 (1.4%)
   AKASHI Takahiro                       20 (1.4%)
   Igor Opaniuk                          16 (1.1%)
   Mathieu Othacehe                      16 (1.1%)
   Patrice Chotard                       15 (1.1%)
   Roger Quadros                         14 (1.0%)
   Manorit Chawdhry                      14 (1.0%)
   Patrick Delaunay                      14 (1.0%)
   Enrico Leto                           13 (0.9%)
   Quentin Schulz                        13 (0.9%)
   Love Kumar                            13 (0.9%)
   Rasmus Villemoes                      13 (0.9%)
   Dario Binacchi                        12 (0.9%)
   Neha Malcom Francis                   11 (0.8%)
   Benjamin Hahn                         10 (0.7%)
   Devarsh Thakkar                       10 (0.7%)
   Bin Meng                              10 (0.7%)
   Paul Barker                           9 (0.6%)
   Venkatesh Yadav Abbarapu              9 (0.6%)
   Yannic Moog                           9 (0.6%)
   Takahiro Kuwano                       9 (0.6%)
   Christian Taedcke                     9 (0.6%)
   Andre Przywara                        8 (0.6%)
   Hai Pham                              8 (0.6%)
   Jim Liu                               8 (0.6%)
   Julien Masson                         8 (0.6%)
   Maxim Uvarov                          8 (0.6%)
   Alexander Dahl                        7 (0.5%)
   Adam Ford                             7 (0.5%)
   Sébastien Szymanski                   7 (0.5%)
   Ion Agorria                           7 (0.5%)
   Mayuresh Chitale                      7 (0.5%)
   Ilias Apalodimas                      6 (0.4%)
   Randolph                              6 (0.4%)
   Leo Yu-Chi Liang                      6 (0.4%)
   Emanuele Ghidoli                      6 (0.4%)
   Tim Lunn                              6 (0.4%)
   Neil Armstrong                        5 (0.4%)
   Hiago De Franco                       5 (0.4%)
   Joao Paulo Goncalves                  5 (0.4%)
   Josua Mayer                           5 (0.4%)
   Shantur Rathore                       5 (0.4%)
   Brandon Maier                         5 (0.4%)
   Ivan T. Ivanov                        5 (0.4%)
   Max Krummenacher                      5 (0.4%)
   Tim Harvey                            5 (0.4%)
   Maksim Kiselev                        4 (0.3%)
   Frieder Schrempf                      4 (0.3%)
   Jesse Taube                           4 (0.3%)
   Mattijs Korpershoek                   4 (0.3%)
   Radu Pirea (NXP OSS)                  4 (0.3%)
   Samuel Holland                        4 (0.3%)
   Chris Morgan                          4 (0.3%)
   Csókás Bence                          4 (0.3%)
   Vishal Mahaveer                       4 (0.3%)
   Hugo Villeneuve                       4 (0.3%)
   Tanmay Shah                           4 (0.3%)
   Francesco Dolcini                     3 (0.2%)
   Wadim Egorov                          3 (0.2%)
   Aurelien Jarno                        3 (0.2%)
   Nam Cao                               3 (0.2%)
   Janne Grunau                          3 (0.2%)
   Kongyang Liu                          3 (0.2%)
   Tejas Bhumkar                         3 (0.2%)
   Dinesh Maniyam                        3 (0.2%)
   Moritz Fischer                        3 (0.2%)
   Lukasz Majewski                       3 (0.2%)
   Miquel Raynal                         3 (0.2%)
   Robert Marko                          3 (0.2%)
   Rafał Miłecki                         3 (0.2%)
   Andrejs Cainikovs                     3 (0.2%)
   Jaehoon Chung                         3 (0.2%)
   Christophe Leroy                      3 (0.2%)
   Christian Hewitt                      2 (0.1%)
   Vitor Soares                          2 (0.1%)
   Dhruva Gole                           2 (0.1%)
   Minda Chen                            2 (0.1%)
   Dan Carpenter                         2 (0.1%)
   Marek Mojík                           2 (0.1%)
   Andrey Skvortsov                      2 (0.1%)
   Duy Nguyen                            2 (0.1%)
   Michael Trimarchi                     2 (0.1%)
   Primoz Fiser                          2 (0.1%)
   Kever Yang                            2 (0.1%)
   Lukasz Tekieli                        2 (0.1%)
   Zong Li                               2 (0.1%)
   Dmitry Malkin                         2 (0.1%)
   Wei Ming Chen                         2 (0.1%)
   Anthony Loiseau                       2 (0.1%)
   Ivan Orlov                            2 (0.1%)
   Chunfeng Yun                          2 (0.1%)
   Robert Catherall                      2 (0.1%)
   Reid Tonking                          2 (0.1%)
   Udit Kumar                            2 (0.1%)
   Etienne Carriere                      2 (0.1%)
   Arnaud Ferraris                       2 (0.1%)
   Dmitrii Merkurev                      2 (0.1%)
   David Oberhollenzer                   2 (0.1%)
   Douglas Anderson                      1 (0.1%)
   Daniel Schwierzeck                    1 (0.1%)
   Linus Walleij                         1 (0.1%)
   Benjamin Gray                         1 (0.1%)
   Mark Kettenis                         1 (0.1%)
   Thomas Weißschuh                      1 (0.1%)
   Conor Dooley                          1 (0.1%)
   Bo Gan                                1 (0.1%)
   Leon M. Busch-George                  1 (0.1%)
   Thomas Perrot                         1 (0.1%)
   Max Resch                             1 (0.1%)
   Ludwig Kormann                        1 (0.1%)
   Philippe Coval                        1 (0.1%)
   Sam Edwards                           1 (0.1%)
   Florian Schmaus                       1 (0.1%)
   Aradhya Bhatia                        1 (0.1%)
   Parth Pancholi                        1 (0.1%)
   Ian Ray                               1 (0.1%)
   Niklas Söderlund                      1 (0.1%)
   Nils Le Roux                          1 (0.1%)
   Saeed Nowshadi                        1 (0.1%)
   Mike Looijmans                        1 (0.1%)
   MD Danish Anwar                       1 (0.1%)
   Ole P. Orhagen                        1 (0.1%)
   Andy Yan                              1 (0.1%)
   YouMin Chen                           1 (0.1%)
   Matthias Brugger                      1 (0.1%)
   kleines Filmröllchen                  1 (0.1%)
   Vincent Chen                          1 (0.1%)
   Ralph Siemsen                         1 (0.1%)
   Chuanhong Guo                         1 (0.1%)
   Nick Alilovic                         1 (0.1%)
   Ssunk                                 1 (0.1%)
   Yang Xiwen                            1 (0.1%)
   Prasanth Babu Mantena                 1 (0.1%)
   Yann Gautier                          1 (0.1%)
   Joshua Riek                           1 (0.1%)
   Slawomir Stepien                      1 (0.1%)
   John Clark                            1 (0.1%)
   Tianling Shen                         1 (0.1%)
   Johan Jonker                          1 (0.1%)
   Hugh Cole-Baker                       1 (0.1%)
   Sekhar Nori                           1 (0.1%)
   Tobias Deiminger                      1 (0.1%)
   Hugo Cornelis                         1 (0.1%)
   Oliver Faso                           1 (0.1%)
   TracyMg_Li                            1 (0.1%)
   Konrad Dybcio                         1 (0.1%)
   Anatolij Gustschin                    1 (0.1%)
   Grzegorz Szymaszek                    1 (0.1%)
   Alexey Romanov                        1 (0.1%)
   Paul-Erwan Rio                        1 (0.1%)
   Peter Robinson                        1 (0.1%)
   Chris Packham                         1 (0.1%)
   Shubhrajyoti Datta                    1 (0.1%)
   Raymond Mao                           1 (0.1%)
   Tomas Alvarez Vanoli                  1 (0.1%)
   Matthias Schiffer                     1 (0.1%)
   Cody Green                            1 (0.1%)
   Piotr Kubik                           1 (0.1%)
   Ayoub Zaki                            1 (0.1%)
   Nikita Shubin                         1 (0.1%)
   Peter Geis                            1 (0.1%)
   Bryan Brattlof                        1 (0.1%)
   Yong-Xuan Wang                        1 (0.1%)
   Kuan Lim Lee                          1 (0.1%)
   Jan Kiszka                            1 (0.1%)
   Bruce Suen                            1 (0.1%)
   Vaishnav Achath                       1 (0.1%)
   Benjamin Szőke                        1 (0.1%)
   Alessandro Rubini                     1 (0.1%)
   Doug Zobel                            1 (0.1%)
   Nicolas Heemeryck                     1 (0.1%)
   Ricardo Salveti                       1 (0.1%)
   Cem Tenruh                            1 (0.1%)
   Gilles Talis                          1 (0.1%)
   Shawn Guo                             1 (0.1%)
   Godfrey Mwangi                        1 (0.1%)
   Jit Loon Lim                          1 (0.1%)
   Teik Heng Chong                       1 (0.1%)
   William Zhang                         1 (0.1%)
   Alex Bee                              1 (0.1%)
   Francois Berder                       1 (0.1%)
   Thierry Reding                        1 (0.1%)
   Jai Luthra                            1 (0.1%)
   Vignesh Raghavendra                   1 (0.1%)
   Robert Nelson                         1 (0.1%)
   ====================================  =====


.. table:: Developers with the most changed lines
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Neha Malcom Francis                   16332 (11.2%)
   Francis Laniel                        14974 (10.3%)
   Svyatoslav Ryhel                      10521 (7.2%)
   Tom Rini                              9300 (6.4%)
   Nishanth Menon                        8556 (5.9%)
   Mathieu Othacehe                      6259 (4.3%)
   Sam Protsenko                         5717 (3.9%)
   Wadim Egorov                          5475 (3.8%)
   Hai Pham                              5242 (3.6%)
   Marek Vasut                           4753 (3.3%)
   Robert Nelson                         3746 (2.6%)
   Julien Masson                         3705 (2.5%)
   Sean Anderson                         3232 (2.2%)
   Simon Glass                           2938 (2.0%)
   Gilles Talis                          2893 (2.0%)
   Heinrich Schuchardt                   2839 (2.0%)
   Love Kumar                            2531 (1.7%)
   Caleb Connolly                        2350 (1.6%)
   AKASHI Takahiro                       2036 (1.4%)
   Patrice Chotard                       1685 (1.2%)
   Manorit Chawdhry                      1633 (1.1%)
   Tim Lunn                              1492 (1.0%)
   Frieder Schrempf                      1299 (0.9%)
   Fabio Estevam                         1241 (0.9%)
   Masahisa Kojima                       1168 (0.8%)
   Andre Przywara                        1116 (0.8%)
   Neil Armstrong                        1027 (0.7%)
   Igor Prusov                           999 (0.7%)
   Paul Barker                           911 (0.6%)
   Cem Tenruh                            905 (0.6%)
   Joshua Riek                           903 (0.6%)
   Yannic Moog                           828 (0.6%)
   Jonas Karlman                         796 (0.5%)
   Andrew Davis                          794 (0.5%)
   TracyMg_Li                            684 (0.5%)
   Doug Zobel                            654 (0.4%)
   Vishal Mahaveer                       651 (0.4%)
   Quentin Schulz                        649 (0.4%)
   Enrico Leto                           605 (0.4%)
   Michal Simek                          578 (0.4%)
   Randolph                              448 (0.3%)
   Jesse Taube                           431 (0.3%)
   Jim Liu                               424 (0.3%)
   Konrad Dybcio                         421 (0.3%)
   Kongyang Liu                          409 (0.3%)
   Venkatesh Yadav Abbarapu              381 (0.3%)
   Emanuele Ghidoli                      370 (0.3%)
   Adam Ford                             337 (0.2%)
   Igor Opaniuk                          324 (0.2%)
   Patrick Delaunay                      272 (0.2%)
   Rasmus Villemoes                      256 (0.2%)
   Ion Agorria                           253 (0.2%)
   Dmitrii Merkurev                      242 (0.2%)
   Benjamin Hahn                         235 (0.2%)
   Ilias Apalodimas                      226 (0.2%)
   Roger Quadros                         218 (0.1%)
   Jai Luthra                            214 (0.1%)
   Brandon Maier                         209 (0.1%)
   Robert Marko                          205 (0.1%)
   Vignesh Raghavendra                   200 (0.1%)
   Takahiro Kuwano                       177 (0.1%)
   Shubhrajyoti Datta                    174 (0.1%)
   Christian Taedcke                     173 (0.1%)
   Tanmay Shah                           171 (0.1%)
   Devarsh Thakkar                       166 (0.1%)
   Johan Jonker                          165 (0.1%)
   Tianling Shen                         163 (0.1%)
   Chris Morgan                          159 (0.1%)
   Benjamin Szőke                        151 (0.1%)
   Duy Nguyen                            145 (0.1%)
   Lukasz Majewski                       142 (0.1%)
   Lukasz Tekieli                        138 (0.1%)
   Max Resch                             132 (0.1%)
   Sébastien Szymanski                   114 (0.1%)
   Anatolij Gustschin                    112 (0.1%)
   Max Krummenacher                      111 (0.1%)
   Bin Meng                              105 (0.1%)
   Dario Binacchi                        100 (0.1%)
   Ivan T. Ivanov                        97 (0.1%)
   Leo Yu-Chi Liang                      96 (0.1%)
   Mayuresh Chitale                      83 (0.1%)
   Hiago De Franco                       83 (0.1%)
   David Oberhollenzer                   81 (0.1%)
   Alexander Dahl                        79 (0.1%)
   Raymond Mao                           78 (0.1%)
   Dmitry Malkin                         74 (0.1%)
   Zong Li                               73 (0.1%)
   Tim Harvey                            69 (0.0%)
   Vincent Chen                          67 (0.0%)
   Chunfeng Yun                          66 (0.0%)
   Maksim Kiselev                        61 (0.0%)
   Csókás Bence                          61 (0.0%)
   Marek Mojík                           61 (0.0%)
   Peter Robinson                        59 (0.0%)
   Aradhya Bhatia                        56 (0.0%)
   Rafał Miłecki                         54 (0.0%)
   Chris Packham                         51 (0.0%)
   Primoz Fiser                          50 (0.0%)
   Francesco Dolcini                     49 (0.0%)
   Samuel Holland                        48 (0.0%)
   Josua Mayer                           45 (0.0%)
   Radu Pirea (NXP OSS)                  41 (0.0%)
   Yong-Xuan Wang                        38 (0.0%)
   Mattijs Korpershoek                   36 (0.0%)
   Shantur Rathore                       34 (0.0%)
   Parth Pancholi                        34 (0.0%)
   Andrey Skvortsov                      33 (0.0%)
   Hugo Cornelis                         32 (0.0%)
   Vaishnav Achath                       32 (0.0%)
   Joao Paulo Goncalves                  30 (0.0%)
   Nicolas Heemeryck                     30 (0.0%)
   Arnaud Ferraris                       28 (0.0%)
   Nick Alilovic                         28 (0.0%)
   Maxim Uvarov                          26 (0.0%)
   Matthias Schiffer                     26 (0.0%)
   Nam Cao                               25 (0.0%)
   Janne Grunau                          21 (0.0%)
   Dinesh Maniyam                        20 (0.0%)
   Jaehoon Chung                         20 (0.0%)
   Christophe Leroy                      20 (0.0%)
   Miquel Raynal                         18 (0.0%)
   Andrejs Cainikovs                     18 (0.0%)
   Udit Kumar                            18 (0.0%)
   Linus Walleij                         18 (0.0%)
   Hugo Villeneuve                       17 (0.0%)
   Moritz Fischer                        17 (0.0%)
   Conor Dooley                          16 (0.0%)
   Ricardo Salveti                       16 (0.0%)
   Christian Hewitt                      15 (0.0%)
   Vitor Soares                          15 (0.0%)
   Alexey Romanov                        15 (0.0%)
   Tejas Bhumkar                         13 (0.0%)
   Anthony Loiseau                       13 (0.0%)
   Yang Xiwen                            13 (0.0%)
   Piotr Kubik                           13 (0.0%)
   Dhruva Gole                           12 (0.0%)
   Andy Yan                              12 (0.0%)
   Chuanhong Guo                         12 (0.0%)
   Hugh Cole-Baker                       12 (0.0%)
   Robert Catherall                      11 (0.0%)
   Reid Tonking                          11 (0.0%)
   Nikita Shubin                         11 (0.0%)
   Bryan Brattlof                        11 (0.0%)
   Michael Trimarchi                     10 (0.0%)
   Paul-Erwan Rio                        10 (0.0%)
   Thierry Reding                        10 (0.0%)
   Etienne Carriere                      9 (0.0%)
   Sam Edwards                           9 (0.0%)
   Niklas Söderlund                      9 (0.0%)
   Nils Le Roux                          9 (0.0%)
   MD Danish Anwar                       9 (0.0%)
   Kuan Lim Lee                          9 (0.0%)
   YouMin Chen                           8 (0.0%)
   Benjamin Gray                         7 (0.0%)
   Mark Kettenis                         7 (0.0%)
   Ayoub Zaki                            7 (0.0%)
   Shawn Guo                             7 (0.0%)
   Aurelien Jarno                        6 (0.0%)
   Ian Ray                               6 (0.0%)
   Ole P. Orhagen                        6 (0.0%)
   Alex Bee                              6 (0.0%)
   Saeed Nowshadi                        5 (0.0%)
   Mike Looijmans                        5 (0.0%)
   Tobias Deiminger                      5 (0.0%)
   Cody Green                            5 (0.0%)
   Teik Heng Chong                       5 (0.0%)
   Kever Yang                            4 (0.0%)
   Douglas Anderson                      4 (0.0%)
   Bo Gan                                4 (0.0%)
   Matthias Brugger                      4 (0.0%)
   Ssunk                                 4 (0.0%)
   Ralph Siemsen                         3 (0.0%)
   Yann Gautier                          3 (0.0%)
   Grzegorz Szymaszek                    3 (0.0%)
   Minda Chen                            2 (0.0%)
   Dan Carpenter                         2 (0.0%)
   Wei Ming Chen                         2 (0.0%)
   Ivan Orlov                            2 (0.0%)
   Daniel Schwierzeck                    2 (0.0%)
   Ludwig Kormann                        2 (0.0%)
   Philippe Coval                        2 (0.0%)
   Prasanth Babu Mantena                 2 (0.0%)
   Oliver Faso                           2 (0.0%)
   Jan Kiszka                            2 (0.0%)
   Bruce Suen                            2 (0.0%)
   Thomas Weißschuh                      1 (0.0%)
   Leon M. Busch-George                  1 (0.0%)
   Thomas Perrot                         1 (0.0%)
   Florian Schmaus                       1 (0.0%)
   kleines Filmröllchen                  1 (0.0%)
   Slawomir Stepien                      1 (0.0%)
   John Clark                            1 (0.0%)
   Sekhar Nori                           1 (0.0%)
   Tomas Alvarez Vanoli                  1 (0.0%)
   Peter Geis                            1 (0.0%)
   Alessandro Rubini                     1 (0.0%)
   Godfrey Mwangi                        1 (0.0%)
   Jit Loon Lim                          1 (0.0%)
   William Zhang                         1 (0.0%)
   Francois Berder                       1 (0.0%)
   ====================================  =====


.. table:: Developers with the most lines removed
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Tom Rini                              6982 (14.5%)
   Marek Vasut                           3629 (7.5%)
   Neha Malcom Francis                   3284 (6.8%)
   Enrico Leto                           333 (0.7%)
   Andrew Davis                          315 (0.7%)
   Vishal Mahaveer                       211 (0.4%)
   Shubhrajyoti Datta                    174 (0.4%)
   Quentin Schulz                        103 (0.2%)
   Roger Quadros                         69 (0.1%)
   Takahiro Kuwano                       57 (0.1%)
   Francesco Dolcini                     48 (0.1%)
   David Oberhollenzer                   35 (0.1%)
   Yong-Xuan Wang                        18 (0.0%)
   Hugo Villeneuve                       14 (0.0%)
   Ricardo Salveti                       4 (0.0%)
   Sam Edwards                           3 (0.0%)
   Christophe Leroy                      2 (0.0%)
   Nam Cao                               1 (0.0%)
   Thierry Reding                        1 (0.0%)
   Ian Ray                               1 (0.0%)
   Jan Kiszka                            1 (0.0%)
   ====================================  =====


.. table:: Developers with the most signoffs (total 184)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Michal Simek                          26 (14.1%)
   Mattijs Korpershoek                   21 (11.4%)
   Minkyu Kang                           20 (10.9%)
   Raymond Mao                           12 (6.5%)
   Ilias Apalodimas                      10 (5.4%)
   Svyatoslav Ryhel                      8 (4.3%)
   Tom Rini                              7 (3.8%)
   Francesco Dolcini                     7 (3.8%)
   Matthias Brugger                      7 (3.8%)
   Dario Binacchi                        7 (3.8%)
   Simon Glass                           5 (2.7%)
   Jagan Teki                            3 (1.6%)
   Neil Armstrong                        3 (1.6%)
   Heinrich Schuchardt                   3 (1.6%)
   Nishanth Menon                        3 (1.6%)
   Jonathan Corbet                       2 (1.1%)
   CL Wang                               2 (1.1%)
   Apurva Nandan                         2 (1.1%)
   Oleksandr Suvorov                     2 (1.1%)
   Ivan T. Ivanov                        2 (1.1%)
   Patrick Delaunay                      2 (1.1%)
   Jonas Karlman                         2 (1.1%)
   Sean Anderson                         2 (1.1%)
   Hai Pham                              2 (1.1%)
   Lukasz Majewski                       1 (0.5%)
   Daniel Schwierzeck                    1 (0.5%)
   Marek Behún                           1 (0.5%)
   Guillaume La Roque                    1 (0.5%)
   Nylon Chen                            1 (0.5%)
   Alexandre Torgue                      1 (0.5%)
   Harald Seiler                         1 (0.5%)
   Holger Brunck                         1 (0.5%)
   Siddharth Vadapalli                   1 (0.5%)
   Wei Liang Lim                         1 (0.5%)
   Martin Kurbanov                       1 (0.5%)
   Dmitry Rokosov                        1 (0.5%)
   Sreekanth Sunnam                      1 (0.5%)
   Cody Schuffelen                       1 (0.5%)
   Kever Yang                            1 (0.5%)
   Reid Tonking                          1 (0.5%)
   Bryan Brattlof                        1 (0.5%)
   Chuanhong Guo                         1 (0.5%)
   Zong Li                               1 (0.5%)
   Rasmus Villemoes                      1 (0.5%)
   Caleb Connolly                        1 (0.5%)
   Andre Przywara                        1 (0.5%)
   Masahisa Kojima                       1 (0.5%)
   Patrice Chotard                       1 (0.5%)
   ====================================  =====


.. table:: Developers with the most reviews (total 899)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Simon Glass                           181 (20.1%)
   Tom Rini                              79 (8.8%)
   Ilias Apalodimas                      66 (7.3%)
   Kever Yang                            48 (5.3%)
   Fabio Estevam                         38 (4.2%)
   Mattijs Korpershoek                   34 (3.8%)
   Patrice Chotard                       31 (3.4%)
   Leo Yu-Chi Liang                      30 (3.3%)
   Heinrich Schuchardt                   29 (3.2%)
   Paul Barker                           29 (3.2%)
   Jagan Teki                            22 (2.4%)
   Marek Vasut                           22 (2.4%)
   Sumit Garg                            21 (2.3%)
   Neha Malcom Francis                   20 (2.2%)
   Andre Przywara                        16 (1.8%)
   Neil Armstrong                        15 (1.7%)
   Patrick Delaunay                      15 (1.7%)
   Sean Anderson                         12 (1.3%)
   Roger Quadros                         10 (1.1%)
   Peng Fan                              10 (1.1%)
   Jonathan Humphreys                    10 (1.1%)
   Igor Opaniuk                          10 (1.1%)
   Nishanth Menon                        9 (1.0%)
   Francesco Dolcini                     7 (0.8%)
   Chanho Park                           7 (0.8%)
   Stefan Roese                          6 (0.7%)
   Yu Chien Peter Lin                    6 (0.7%)
   Michael Trimarchi                     6 (0.7%)
   Dhruva Gole                           6 (0.7%)
   Dario Binacchi                        5 (0.6%)
   Andrew Davis                          5 (0.6%)
   Ian Ray                               5 (0.6%)
   Peter Robinson                        5 (0.6%)
   Michal Simek                          4 (0.4%)
   Ramon Fried                           4 (0.4%)
   Sam Protsenko                         4 (0.4%)
   Matthias Brugger                      3 (0.3%)
   Bryan Brattlof                        3 (0.3%)
   Christian Gmeiner                     3 (0.3%)
   Dragan Simic                          3 (0.3%)
   Alexander Sverdlin                    3 (0.3%)
   Nikhil M Jain                         3 (0.3%)
   Tien Fong Chee                        3 (0.3%)
   Teresa Remmet                         3 (0.3%)
   Etienne Carriere                      3 (0.3%)
   Manorit Chawdhry                      3 (0.3%)
   Lukasz Majewski                       2 (0.2%)
   Caleb Connolly                        2 (0.2%)
   Hugo Villeneuve                       2 (0.2%)
   Eugen Hristev                         2 (0.2%)
   Jens Wiklander                        2 (0.2%)
   Joao Marcos Costa                     2 (0.2%)
   Dan Carpenter                         2 (0.2%)
   Mark Kettenis                         2 (0.2%)
   Conor Dooley                          2 (0.2%)
   Udit Kumar                            2 (0.2%)
   Bin Meng                              2 (0.2%)
   Svyatoslav Ryhel                      1 (0.1%)
   Marek Behún                           1 (0.1%)
   Harald Seiler                         1 (0.1%)
   Masahisa Kojima                       1 (0.1%)
   Jernej Skrabec                        1 (0.1%)
   Geert Uytterhoeven                    1 (0.1%)
   Giulio Benetti                        1 (0.1%)
   Ravi Gunasekaran                      1 (0.1%)
   Weizhao Ouyang                        1 (0.1%)
   Philip Oberfichtner                   1 (0.1%)
   Padmarao Begari                       1 (0.1%)
   Pratyush Yadav                        1 (0.1%)
   Radhey Shyam Pandey                   1 (0.1%)
   Qu Wenruo                             1 (0.1%)
   Stefan Bosch                          1 (0.1%)
   Aleksandar Gerasimovski               1 (0.1%)
   Miquel Raynal                         1 (0.1%)
   Linus Walleij                         1 (0.1%)
   Yannic Moog                           1 (0.1%)
   Frieder Schrempf                      1 (0.1%)
   ====================================  =====


.. table:: Developers with the most test credits (total 84)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Sumit Garg                            9 (10.7%)
   Marcel Ziswiler                       7 (8.3%)
   Jens Maus                             7 (8.3%)
   Darko Alavanja                        7 (8.3%)
   Mattijs Korpershoek                   4 (4.8%)
   Patrice Chotard                       4 (4.8%)
   Nishanth Menon                        4 (4.8%)
   Dhruva Gole                           4 (4.8%)
   Andre Przywara                        3 (3.6%)
   Love Kumar                            3 (3.6%)
   Peter Robinson                        2 (2.4%)
   Christian Gmeiner                     2 (2.4%)
   Sam Edwards                           2 (2.4%)
   Hiago De Franco                       2 (2.4%)
   Simon Glass                           1 (1.2%)
   Ilias Apalodimas                      1 (1.2%)
   Fabio Estevam                         1 (1.2%)
   Leo Yu-Chi Liang                      1 (1.2%)
   Marek Vasut                           1 (1.2%)
   Chanho Park                           1 (1.2%)
   Conor Dooley                          1 (1.2%)
   Svyatoslav Ryhel                      1 (1.2%)
   Martin Kurbanov                       1 (1.2%)
   Enrico Leto                           1 (1.2%)
   Bartel Eerdekens                      1 (1.2%)
   Matwey V. Kornilov                    1 (1.2%)
   Akira Yokosawa                        1 (1.2%)
   Heiko Schocher                        1 (1.2%)
   Thomas Richard                        1 (1.2%)
   Agneli                                1 (1.2%)
   Lisandro Pérez Meyer                  1 (1.2%)
   Oliver Graute                         1 (1.2%)
   Slawomir Stepien                      1 (1.2%)
   Aurelien Jarno                        1 (1.2%)
   Primoz Fiser                          1 (1.2%)
   Alexander Dahl                        1 (1.2%)
   Adam Ford                             1 (1.2%)
   Mathieu Othacehe                      1 (1.2%)
   ====================================  =====


.. table:: Developers who gave the most tested-by credits (total 84)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Caleb Connolly                        10 (11.9%)
   Ivan T. Ivanov                        10 (11.9%)
   Fabio Estevam                         6 (7.1%)
   Emanuele Ghidoli                      6 (7.1%)
   Igor Prusov                           5 (6.0%)
   Nishanth Menon                        4 (4.8%)
   Dmitry Malkin                         4 (4.8%)
   Heinrich Schuchardt                   3 (3.6%)
   Roger Quadros                         3 (3.6%)
   Andrew Davis                          3 (3.6%)
   Mayuresh Chitale                      3 (3.6%)
   Ilias Apalodimas                      2 (2.4%)
   Dmitrii Merkurev                      2 (2.4%)
   Simon Glass                           1 (1.2%)
   Svyatoslav Ryhel                      1 (1.2%)
   Primoz Fiser                          1 (1.2%)
   Mathieu Othacehe                      1 (1.2%)
   Tom Rini                              1 (1.2%)
   Manorit Chawdhry                      1 (1.2%)
   Masahisa Kojima                       1 (1.2%)
   Miquel Raynal                         1 (1.2%)
   Linus Walleij                         1 (1.2%)
   Jonas Karlman                         1 (1.2%)
   Prasanth Babu Mantena                 1 (1.2%)
   Oliver Faso                           1 (1.2%)
   Paul-Erwan Rio                        1 (1.2%)
   Robert Catherall                      1 (1.2%)
   Niklas Söderlund                      1 (1.2%)
   Joao Paulo Goncalves                  1 (1.2%)
   Shantur Rathore                       1 (1.2%)
   Maksim Kiselev                        1 (1.2%)
   Benjamin Szőke                        1 (1.2%)
   Ion Agorria                           1 (1.2%)
   Jesse Taube                           1 (1.2%)
   Randolph                              1 (1.2%)
   Joshua Riek                           1 (1.2%)
   ====================================  =====


.. table:: Developers with the most report credits (total 20)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Simon Glass                           2 (10.0%)
   Tom Rini                              2 (10.0%)
   Marcel Ziswiler                       2 (10.0%)
   Dan Carpenter                         2 (10.0%)
   Trevor Woerner                        2 (10.0%)
   Heinrich Schuchardt                   1 (5.0%)
   Andre Przywara                        1 (5.0%)
   Christian Gmeiner                     1 (5.0%)
   Hiago De Franco                       1 (5.0%)
   Lisandro Pérez Meyer                  1 (5.0%)
   Neil Armstrong                        1 (5.0%)
   Sagar Karmarkar                       1 (5.0%)
   E Shattow                             1 (5.0%)
   Dave Jones                            1 (5.0%)
   Hong Guan                             1 (5.0%)
   ====================================  =====


.. table:: Developers who gave the most report credits (total 23)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Fabio Estevam                         6 (26.1%)
   Tom Rini                              4 (17.4%)
   Heinrich Schuchardt                   2 (8.7%)
   Jonas Karlman                         2 (8.7%)
   Simon Glass                           1 (4.3%)
   Caleb Connolly                        1 (4.3%)
   Nishanth Menon                        1 (4.3%)
   Roger Quadros                         1 (4.3%)
   Aurelien Jarno                        1 (4.3%)
   Sean Anderson                         1 (4.3%)
   Michal Simek                          1 (4.3%)
   Frieder Schrempf                      1 (4.3%)
   Devarsh Thakkar                       1 (4.3%)
   ====================================  =====


.. table:: Top changeset contributors by employer
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   (Unknown)                             543 (38.7%)
   Google LLC                            149 (10.6%)
   Texas Instruments                     118 (8.4%)
   Linaro                                97 (6.9%)
   Konsulko Group                        89 (6.3%)
   Renesas Electronics                   72 (5.1%)
   AMD                                   66 (4.7%)
   DENX Software Engineering             46 (3.3%)
   Amarula Solutions                     38 (2.7%)
   ST Microelectronics                   32 (2.3%)
   Toradex                               28 (2.0%)
   Phytec                                23 (1.6%)
   Socionext Inc.                        21 (1.5%)
   Siemens                               14 (1.0%)
   BayLibre SAS                          12 (0.9%)
   ARM                                   10 (0.7%)
   Weidmüller Interface GmbH & Co. KG    9 (0.6%)
   SUSE                                  6 (0.4%)
   Intel                                 5 (0.4%)
   Bootlin                               4 (0.3%)
   NXP                                   4 (0.3%)
   linutronix                            4 (0.3%)
   Rockchip                              4 (0.3%)
   Samsung                               3 (0.2%)
   Collabora Ltd.                        2 (0.1%)
   Broadcom                              1 (0.1%)
   IBM                                   1 (0.1%)
   NVidia                                1 (0.1%)
   ====================================  =====


.. table:: Top lines changed by employer
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   (Unknown)                             43650 (30.0%)
   Texas Instruments                     28698 (19.7%)
   Amarula Solutions                     15084 (10.4%)
   Linaro                                11911 (8.2%)
   Renesas Electronics                   10853 (7.5%)
   Konsulko Group                        9300 (6.4%)
   Phytec                                7443 (5.1%)
   AMD                                   3853 (2.7%)
   BayLibre SAS                          3741 (2.6%)
   Google LLC                            3201 (2.2%)
   ST Microelectronics                   1969 (1.4%)
   DENX Software Engineering             1602 (1.1%)
   Socionext Inc.                        1168 (0.8%)
   ARM                                   1127 (0.8%)
   Toradex                               660 (0.5%)
   Siemens                               607 (0.4%)
   Weidmüller Interface GmbH & Co. KG    173 (0.1%)
   SUSE                                  101 (0.1%)
   NXP                                   41 (0.0%)
   linutronix                            30 (0.0%)
   Collabora Ltd.                        28 (0.0%)
   Intel                                 26 (0.0%)
   Rockchip                              24 (0.0%)
   Samsung                               20 (0.0%)
   Bootlin                               19 (0.0%)
   NVidia                                10 (0.0%)
   IBM                                   7 (0.0%)
   Broadcom                              1 (0.0%)
   ====================================  =====


.. table:: Employers with the most signoffs (total 184)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Linaro                                27 (14.7%)
   AMD                                   27 (14.7%)
   (Unknown)                             26 (14.1%)
   BayLibre SAS                          22 (12.0%)
   Samsung                               20 (10.9%)
   Amarula Solutions                     9 (4.9%)
   SUSE                                  9 (4.9%)
   Texas Instruments                     8 (4.3%)
   Konsulko Group                        7 (3.8%)
   Toradex                               7 (3.8%)
   Google LLC                            6 (3.3%)
   ST Microelectronics                   4 (2.2%)
   Canonical                             3 (1.6%)
   Renesas Electronics                   2 (1.1%)
   DENX Software Engineering             2 (1.1%)
   LWN.net                               2 (1.1%)
   ARM                                   1 (0.5%)
   Rockchip                              1 (0.5%)
   Edgeble AI Technologies Pvt. Ltd.     1 (0.5%)
   ====================================  =====


.. table:: Employers with the most hackers (total 203)
   :widths: auto

   ====================================  =====
   Name                                  Count
   ====================================  =====
   (Unknown)                             109 (53.7%)
   Texas Instruments                     17 (8.4%)
   Linaro                                12 (5.9%)
   Toradex                               8 (3.9%)
   AMD                                   7 (3.4%)
   Google LLC                            4 (2.0%)
   ST Microelectronics                   4 (2.0%)
   Renesas Electronics                   4 (2.0%)
   DENX Software Engineering             4 (2.0%)
   Phytec                                4 (2.0%)
   Amarula Solutions                     3 (1.5%)
   Rockchip                              3 (1.5%)
   Intel                                 3 (1.5%)
   BayLibre SAS                          2 (1.0%)
   SUSE                                  2 (1.0%)
   ARM                                   2 (1.0%)
   Siemens                               2 (1.0%)
   linutronix                            2 (1.0%)
   Bootlin                               2 (1.0%)
   Samsung                               1 (0.5%)
   Konsulko Group                        1 (0.5%)
   Socionext Inc.                        1 (0.5%)
   Weidmüller Interface GmbH & Co. KG    1 (0.5%)
   NXP                                   1 (0.5%)
   Collabora Ltd.                        1 (0.5%)
   NVidia                                1 (0.5%)
   IBM                                   1 (0.5%)
   Broadcom                              1 (0.5%)
   ====================================  =====
