:orphan:

Release Statistics for U-Boot v2022.10
======================================

* Processed 1521 csets from 151 developers

* 25 employers found

* A total of 162770 lines added, 76810 removed (delta 85960)

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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Tom Rini                              265 (17.4%)
   Pali Rohár                            133 (8.7%)
   Simon Glass                           110 (7.2%)
   Heinrich Schuchardt                   58 (3.8%)
   Patrick Delaunay                      56 (3.7%)
   Peng Fan                              55 (3.6%)
   Michal Simek                          51 (3.4%)
   Sean Anderson                         50 (3.3%)
   Stefan Herbrechtsmeier                41 (2.7%)
   Marcel Ziswiler                       31 (2.0%)
   Michael Walle                         31 (2.0%)
   Joel Stanley                          28 (1.8%)
   Weijie Gao                            26 (1.7%)
   Andrew Scull                          25 (1.6%)
   Marek Vasut                           24 (1.6%)
   Quentin Schulz                        23 (1.5%)
   Etienne Carriere                      20 (1.3%)
   Michael Trimarchi                     17 (1.1%)
   Rasmus Villemoes                      17 (1.1%)
   Ovidiu Panait                         17 (1.1%)
   Ashok Reddy Soma                      15 (1.0%)
   Oleksandr Suvorov                     14 (0.9%)
   Ye Li                                 14 (0.9%)
   Samuel Holland                        14 (0.9%)
   Andrew Davis                          13 (0.9%)
   T Karthik Reddy                       13 (0.9%)
   Jim Liu                               12 (0.8%)
   Chris Packham                         12 (0.8%)
   Alper Nebi Yasak                      12 (0.8%)
   Vaishnav Achath                       12 (0.8%)
   Fabio Estevam                         10 (0.7%)
   Sumit Garg                            9 (0.6%)
   Nick Hawkins                          9 (0.6%)
   Andre Przywara                        8 (0.5%)
   Marek Behún                           8 (0.5%)
   Jesse Taube                           8 (0.5%)
   Patrice Chotard                       7 (0.5%)
   Francesco Dolcini                     7 (0.5%)
   Sughosh Ganu                          7 (0.5%)
   Mamta Shukla                          7 (0.5%)
   Stefan Roese                          6 (0.4%)
   Tim Harvey                            6 (0.4%)
   Masahisa Kojima                       6 (0.4%)
   Eugen Hristev                         6 (0.4%)
   Suman Anna                            6 (0.4%)
   Nishanth Menon                        5 (0.3%)
   Heiko Thiery                          5 (0.3%)
   Vignesh Raghavendra                   5 (0.3%)
   Philippe Schenker                     5 (0.3%)
   Robert Marko                          5 (0.3%)
   Rui Miguel Silva                      5 (0.3%)
   Georgi Vlaev                          5 (0.3%)
   Aswath Govindraju                     5 (0.3%)
   Loic Poulain                          5 (0.3%)
   Pierre-Clément Tosi                   4 (0.3%)
   Michal Suchanek                       4 (0.3%)
   Philip Oberfichtner                   4 (0.3%)
   JaimeLiao                             4 (0.3%)
   Angus Ainslie                         3 (0.2%)
   Tony Dinh                             3 (0.2%)
   Alain Volmat                          3 (0.2%)
   Icenowy Zheng                         3 (0.2%)
   John Keeping                          3 (0.2%)
   Lee Jones                             3 (0.2%)
   Geert Uytterhoeven                    3 (0.2%)
   Paul Barker                           3 (0.2%)
   Nikita Shubin                         3 (0.2%)
   Kunihiko Hayashi                      3 (0.2%)
   Ying-Chun Liu (PaulLiu)               3 (0.2%)
   Alice Guo                             3 (0.2%)
   Julien Panis                          3 (0.2%)
   Sergiu Moga                           3 (0.2%)
   Anthoine Bourgeois                    3 (0.2%)
   Derald D. Woods                       3 (0.2%)
   Johannes Schneider                    2 (0.1%)
   Denys Drozdov                         2 (0.1%)
   Gaurav Jain                           2 (0.1%)
   Jorge Ramirez-Ortiz                   2 (0.1%)
   Jose Marinho                          2 (0.1%)
   Daniel Golle                          2 (0.1%)
   Matwey V. Kornilov                    2 (0.1%)
   Neil Armstrong                        2 (0.1%)
   Kory Maincent                         2 (0.1%)
   Dmytro Firsov                         2 (0.1%)
   Chia-Wei Wang                         2 (0.1%)
   Alexander Dahl                        2 (0.1%)
   Matt Ranostay                         2 (0.1%)
   Janne Grunau                          2 (0.1%)
   Eddie James                           2 (0.1%)
   Jan Kiszka                            2 (0.1%)
   Ilias Apalodimas                      1 (0.1%)
   Miaoqian Lin                          1 (0.1%)
   Pankaj Raghav                         1 (0.1%)
   Alison Huffman                        1 (0.1%)
   Adam Ford                             1 (0.1%)
   Michal Vasilek                        1 (0.1%)
   Leo Yu-Chi Liang                      1 (0.1%)
   Siarhei Yasinski                      1 (0.1%)
   Ramon Fried                           1 (0.1%)
   Jessica Clarke                        1 (0.1%)
   Johan Jonker                          1 (0.1%)
   Han Pengfei                           1 (0.1%)
   qianfan Zhao                          1 (0.1%)
   Mark Kettenis                         1 (0.1%)
   Roger Knecht                          1 (0.1%)
   Dario Binacchi                        1 (0.1%)
   Sergei Antonov                        1 (0.1%)
   Hector Martin                         1 (0.1%)
   Holger Brunck                         1 (0.1%)
   Dhananjay Phadke                      1 (0.1%)
   Billy Tsai                            1 (0.1%)
   AKASHI Takahiro                       1 (0.1%)
   Camelia Groza                         1 (0.1%)
   Joao Marcos Costa                     1 (0.1%)
   Milan P. Stanić                       1 (0.1%)
   Zev Weiss                             1 (0.1%)
   Christophe Leroy                      1 (0.1%)
   Andre Kalb                            1 (0.1%)
   Jerome Brunet                         1 (0.1%)
   Harald Seiler                         1 (0.1%)
   Vyacheslav Bocharov                   1 (0.1%)
   Martin Bonner                         1 (0.1%)
   Konstantin Porotchkin                 1 (0.1%)
   Jian Li                               1 (0.1%)
   Martyn Welch                          1 (0.1%)
   Jun Nie                               1 (0.1%)
   Douglas Anderson                      1 (0.1%)
   Siva Durga Prasad Paladugu            1 (0.1%)
   Adrian Fiergolski                     1 (0.1%)
   Ayan Kumar Halder                     1 (0.1%)
   Yogesh Siraswar                       1 (0.1%)
   Stephan Gerhold                       1 (0.1%)
   Anand Gadiyar                         1 (0.1%)
   Ramin Zaghi                           1 (0.1%)
   Josua Mayer                           1 (0.1%)
   Paul Doelle                           1 (0.1%)
   Philippe Boos                         1 (0.1%)
   Vincent Stehlé                        1 (0.1%)
   Jae Hyun Yoo                          1 (0.1%)
   Markus Hoffrogge                      1 (0.1%)
   Johann Neuhauser                      1 (0.1%)
   Lionel Debieve                        1 (0.1%)
   Ralph Siemsen                         1 (0.1%)
   Rafał Miłecki                         1 (0.1%)
   Rogier Stam                           1 (0.1%)
   Bryan Brattlof                        1 (0.1%)
   Mihai Sain                            1 (0.1%)
   Amit Kumar Mahapatra                  1 (0.1%)
   Alison Wang                           1 (0.1%)
   William Zhang                         1 (0.1%)
   Judy Wang                             1 (0.1%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Tom Rini                              98915 (47.3%)
   Marcel Ziswiler                       19704 (9.4%)
   Peng Fan                              8817 (4.2%)
   Simon Glass                           7600 (3.6%)
   Stefan Herbrechtsmeier                6191 (3.0%)
   Jim Liu                               6080 (2.9%)
   Weijie Gao                            5883 (2.8%)
   Angus Ainslie                         5426 (2.6%)
   Rui Miguel Silva                      4502 (2.2%)
   Pali Rohár                            4121 (2.0%)
   Patrick Delaunay                      3695 (1.8%)
   Jesse Taube                           2771 (1.3%)
   Ye Li                                 2675 (1.3%)
   Nishanth Menon                        2621 (1.3%)
   Marek Vasut                           2401 (1.1%)
   Michal Simek                          2303 (1.1%)
   Sean Anderson                         2264 (1.1%)
   Suman Anna                            1842 (0.9%)
   Sumit Garg                            1431 (0.7%)
   Michael Trimarchi                     1353 (0.6%)
   Andrew Scull                          1093 (0.5%)
   Holger Brunck                         1089 (0.5%)
   Heinrich Schuchardt                   969 (0.5%)
   Ovidiu Panait                         895 (0.4%)
   Nick Hawkins                          883 (0.4%)
   Etienne Carriere                      858 (0.4%)
   T Karthik Reddy                       778 (0.4%)
   Fabio Estevam                         655 (0.3%)
   Samuel Holland                        619 (0.3%)
   Vignesh Raghavendra                   586 (0.3%)
   Michael Walle                         509 (0.2%)
   Alper Nebi Yasak                      420 (0.2%)
   Andrew Davis                          395 (0.2%)
   Anthoine Bourgeois                    394 (0.2%)
   Mamta Shukla                          376 (0.2%)
   Loic Poulain                          364 (0.2%)
   Francesco Dolcini                     360 (0.2%)
   Robert Marko                          350 (0.2%)
   Quentin Schulz                        337 (0.2%)
   Joel Stanley                          318 (0.2%)
   William Zhang                         315 (0.2%)
   Philip Oberfichtner                   302 (0.1%)
   Chris Packham                         297 (0.1%)
   Vaishnav Achath                       285 (0.1%)
   Ashok Reddy Soma                      235 (0.1%)
   Milan P. Stanić                       230 (0.1%)
   Rasmus Villemoes                      211 (0.1%)
   Oleksandr Suvorov                     200 (0.1%)
   Sughosh Ganu                          199 (0.1%)
   Ramon Fried                           183 (0.1%)
   Andre Przywara                        182 (0.1%)
   Stefan Roese                          178 (0.1%)
   JaimeLiao                             176 (0.1%)
   Tim Harvey                            163 (0.1%)
   Philippe Boos                         146 (0.1%)
   Eugen Hristev                         143 (0.1%)
   Icenowy Zheng                         143 (0.1%)
   Neil Armstrong                        134 (0.1%)
   Chia-Wei Wang                         132 (0.1%)
   Matwey V. Kornilov                    131 (0.1%)
   Philippe Schenker                     127 (0.1%)
   Jose Marinho                          111 (0.1%)
   Alice Guo                             110 (0.1%)
   Tony Dinh                             109 (0.1%)
   Christophe Leroy                      104 (0.0%)
   Paul Doelle                           90 (0.0%)
   Michal Suchanek                       79 (0.0%)
   Geert Uytterhoeven                    71 (0.0%)
   Georgi Vlaev                          69 (0.0%)
   Gaurav Jain                           68 (0.0%)
   Rafał Miłecki                         67 (0.0%)
   Marek Behún                           66 (0.0%)
   Ying-Chun Liu (PaulLiu)               62 (0.0%)
   Matt Ranostay                         61 (0.0%)
   Camelia Groza                         55 (0.0%)
   Dhananjay Phadke                      51 (0.0%)
   Patrice Chotard                       50 (0.0%)
   Masahisa Kojima                       47 (0.0%)
   Lionel Debieve                        47 (0.0%)
   Julien Panis                          45 (0.0%)
   Heiko Thiery                          43 (0.0%)
   Aswath Govindraju                     40 (0.0%)
   Sergiu Moga                           40 (0.0%)
   Dmytro Firsov                         36 (0.0%)
   Eddie James                           34 (0.0%)
   Kory Maincent                         32 (0.0%)
   Ayan Kumar Halder                     30 (0.0%)
   Jan Kiszka                            28 (0.0%)
   Lee Jones                             26 (0.0%)
   Martin Bonner                         26 (0.0%)
   Pierre-Clément Tosi                   24 (0.0%)
   Paul Barker                           23 (0.0%)
   Alexander Dahl                        21 (0.0%)
   John Keeping                          20 (0.0%)
   Janne Grunau                          20 (0.0%)
   Hector Martin                         20 (0.0%)
   Jian Li                               20 (0.0%)
   Douglas Anderson                      19 (0.0%)
   Yogesh Siraswar                       19 (0.0%)
   Kunihiko Hayashi                      18 (0.0%)
   Daniel Golle                          15 (0.0%)
   Harald Seiler                         15 (0.0%)
   Adrian Fiergolski                     15 (0.0%)
   Derald D. Woods                       14 (0.0%)
   Johannes Schneider                    14 (0.0%)
   Leo Yu-Chi Liang                      14 (0.0%)
   Jessica Clarke                        14 (0.0%)
   Stephan Gerhold                       14 (0.0%)
   Alison Wang                           14 (0.0%)
   Siva Durga Prasad Paladugu            12 (0.0%)
   Josua Mayer                           12 (0.0%)
   Rogier Stam                           12 (0.0%)
   Alain Volmat                          11 (0.0%)
   Nikita Shubin                         11 (0.0%)
   AKASHI Takahiro                       11 (0.0%)
   Bryan Brattlof                        11 (0.0%)
   Andre Kalb                            10 (0.0%)
   Jae Hyun Yoo                          10 (0.0%)
   Jun Nie                               9 (0.0%)
   Judy Wang                             9 (0.0%)
   Johan Jonker                          8 (0.0%)
   Jorge Ramirez-Ortiz                   7 (0.0%)
   Ilias Apalodimas                      7 (0.0%)
   Siarhei Yasinski                      7 (0.0%)
   Dario Binacchi                        7 (0.0%)
   Vyacheslav Bocharov                   7 (0.0%)
   Denys Drozdov                         6 (0.0%)
   Michal Vasilek                        6 (0.0%)
   Jerome Brunet                         6 (0.0%)
   Mihai Sain                            6 (0.0%)
   Vincent Stehlé                        5 (0.0%)
   Miaoqian Lin                          4 (0.0%)
   Adam Ford                             4 (0.0%)
   Alison Huffman                        3 (0.0%)
   Konstantin Porotchkin                 3 (0.0%)
   Ralph Siemsen                         3 (0.0%)
   Pankaj Raghav                         2 (0.0%)
   Han Pengfei                           2 (0.0%)
   Zev Weiss                             2 (0.0%)
   Johann Neuhauser                      2 (0.0%)
   qianfan Zhao                          1 (0.0%)
   Mark Kettenis                         1 (0.0%)
   Roger Knecht                          1 (0.0%)
   Sergei Antonov                        1 (0.0%)
   Billy Tsai                            1 (0.0%)
   Joao Marcos Costa                     1 (0.0%)
   Martyn Welch                          1 (0.0%)
   Anand Gadiyar                         1 (0.0%)
   Ramin Zaghi                           1 (0.0%)
   Markus Hoffrogge                      1 (0.0%)
   Amit Kumar Mahapatra                  1 (0.0%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Marek Vasut                           1245 (1.6%)
   Holger Brunck                         1086 (1.4%)
   Chris Packham                         213 (0.3%)
   Samuel Holland                        206 (0.3%)
   Francesco Dolcini                     186 (0.2%)
   Icenowy Zheng                         34 (0.0%)
   Ayan Kumar Halder                     30 (0.0%)
   Eugen Hristev                         12 (0.0%)
   Andre Przywara                        11 (0.0%)
   AKASHI Takahiro                       9 (0.0%)
   Heiko Thiery                          7 (0.0%)
   Alexander Dahl                        7 (0.0%)
   Daniel Golle                          6 (0.0%)
   Bryan Brattlof                        6 (0.0%)
   Denys Drozdov                         6 (0.0%)
   Derald D. Woods                       3 (0.0%)
   Jerome Brunet                         3 (0.0%)
   Alain Volmat                          2 (0.0%)
   Pankaj Raghav                         2 (0.0%)
   Johann Neuhauser                      2 (0.0%)
   Anand Gadiyar                         1 (0.0%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Michal Simek                          81 (30.5%)
   Peng Fan                              41 (15.4%)
   Andre Przywara                        16 (6.0%)
   Ilias Apalodimas                      14 (5.3%)
   Dario Binacchi                        14 (5.3%)
   Marek Behún                           12 (4.5%)
   Ashok Reddy Soma                      11 (4.1%)
   Vignesh Raghavendra                   9 (3.4%)
   Thomas Haemmerle                      7 (2.6%)
   Ye Li                                 7 (2.6%)
   Tom Rini                              6 (2.3%)
   Heinrich Schuchardt                   5 (1.9%)
   Satoru Okamoto                        4 (1.5%)
   Aswath Govindraju                     4 (1.5%)
   Simon Glass                           4 (1.5%)
   Francesco Dolcini                     2 (0.8%)
   Andrejs Cainikovs                     2 (0.8%)
   Dave Gerlach                          2 (0.8%)
   Gowtham Tammana                       2 (0.8%)
   Alper Nebi Yasak                      2 (0.8%)
   T Karthik Reddy                       2 (0.8%)
   Nishanth Menon                        2 (0.8%)
   Samuel Holland                        1 (0.4%)
   Sebastian Krzyszkowiak                1 (0.4%)
   Masami Hiramatsu                      1 (0.4%)
   Jassi Brar                            1 (0.4%)
   Rick Chen                             1 (0.4%)
   Oliver Brown                          1 (0.4%)
   Yangbo Lu                             1 (0.4%)
   Yann Gautier                          1 (0.4%)
   Kursad Oney                           1 (0.4%)
   Anand Gore                            1 (0.4%)
   Jorge Ramirez-Ortiz                   1 (0.4%)
   Adrian Fiergolski                     1 (0.4%)
   Alice Guo                             1 (0.4%)
   Neil Armstrong                        1 (0.4%)
   Oleksandr Suvorov                     1 (0.4%)
   Joel Stanley                          1 (0.4%)
   Patrick Delaunay                      1 (0.4%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Simon Glass                           148 (21.0%)
   Stefan Roese                          123 (17.5%)
   Patrice Chotard                       60 (8.5%)
   Tom Rini                              40 (5.7%)
   Ramon Fried                           28 (4.0%)
   Fabio Estevam                         27 (3.8%)
   Ilias Apalodimas                      20 (2.8%)
   Heinrich Schuchardt                   18 (2.6%)
   Marek Behún                           16 (2.3%)
   Heiko Schocher                        16 (2.3%)
   Jaehoon Chung                         15 (2.1%)
   Kever Yang                            15 (2.1%)
   Andre Przywara                        12 (1.7%)
   Patrick Delaunay                      11 (1.6%)
   Daniel Schwierzeck                    11 (1.6%)
   Peng Fan                              9 (1.3%)
   Jagan Teki                            9 (1.3%)
   ryan_chen                             8 (1.1%)
   Leo Yu-Chi Liang                      8 (1.1%)
   Pali Rohár                            8 (1.1%)
   Alper Nebi Yasak                      7 (1.0%)
   Cédric Le Goater                      7 (1.0%)
   Marek Vasut                           6 (0.9%)
   Chia-Wei Wang                         6 (0.9%)
   Francesco Dolcini                     5 (0.7%)
   Bin Meng                              4 (0.6%)
   Minkyu Kang                           4 (0.6%)
   Sean Anderson                         4 (0.6%)
   Anastasiia Lukianenko                 3 (0.4%)
   Andrey Zhizhikin                      3 (0.4%)
   Tudor Ambarus                         3 (0.4%)
   Michael Trimarchi                     3 (0.4%)
   Neil Armstrong                        2 (0.3%)
   Mark Kettenis                         2 (0.3%)
   Qu Wenruo                             2 (0.3%)
   Frieder Schrempf                      2 (0.3%)
   Grzegorz Szymaszek                    2 (0.3%)
   Xavier Drudis Ferran                  2 (0.3%)
   Artem Lapkin                          2 (0.3%)
   Vladimir Oltean                       2 (0.3%)
   Michael Walle                         2 (0.3%)
   Ye Li                                 1 (0.1%)
   Dave Gerlach                          1 (0.1%)
   Nishanth Menon                        1 (0.1%)
   Rick Chen                             1 (0.1%)
   Joel Stanley                          1 (0.1%)
   Holger Brunck                         1 (0.1%)
   Chris Packham                         1 (0.1%)
   Heiko Thiery                          1 (0.1%)
   Bryan Brattlof                        1 (0.1%)
   Jerome Brunet                         1 (0.1%)
   Alain Volmat                          1 (0.1%)
   Philipp Tomsich                       1 (0.1%)
   Jonathan Gray                         1 (0.1%)
   Huang Jianan                          1 (0.1%)
   Anup Patel                            1 (0.1%)
   Igal Liberman                         1 (0.1%)
   Baruch Siach                          1 (0.1%)
   Miquel Raynal                         1 (0.1%)
   Mattijs Korpershoek                   1 (0.1%)
   Pratyush Yadav                        1 (0.1%)
   Neal Liu                              1 (0.1%)
   Ariel D'Alessandro                    1 (0.1%)
   Philippe Reynes                       1 (0.1%)
   Anand Jain                            1 (0.1%)
   Billy Tsai                            1 (0.1%)
   Kory Maincent                         1 (0.1%)
   John Keeping                          1 (0.1%)
   Etienne Carriere                      1 (0.1%)
   Sumit Garg                            1 (0.1%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Adrian Fiergolski                     12 (16.7%)
   Ricardo Salveti                       12 (16.7%)
   Adam Ford                             9 (12.5%)
   Marek Vasut                           5 (6.9%)
   Xavier Drudis Ferran                  5 (6.9%)
   Stefan Roese                          3 (4.2%)
   Artem Lapkin                          3 (4.2%)
   Tim Harvey                            3 (4.2%)
   Patrick Delaunay                      2 (2.8%)
   Frieder Schrempf                      2 (2.8%)
   Teresa Remmet                         2 (2.8%)
   Tony Dinh                             2 (2.8%)
   Heinrich Schuchardt                   1 (1.4%)
   Alper Nebi Yasak                      1 (1.4%)
   Mark Kettenis                         1 (1.4%)
   Heiko Thiery                          1 (1.4%)
   Ariel D'Alessandro                    1 (1.4%)
   Etienne Carriere                      1 (1.4%)
   Peter Hoyes                           1 (1.4%)
   Paweł Anikiel                         1 (1.4%)
   Sergiu Moga                           1 (1.4%)
   Michal Suchanek                       1 (1.4%)
   Georgi Vlaev                          1 (1.4%)
   Ovidiu Panait                         1 (1.4%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Oleksandr Suvorov                     23 (31.9%)
   Peng Fan                              11 (15.3%)
   Mamta Shukla                          7 (9.7%)
   Pali Rohár                            5 (6.9%)
   Quentin Schulz                        5 (6.9%)
   Lee Jones                             4 (5.6%)
   Philip Oberfichtner                   3 (4.2%)
   Patrick Delaunay                      2 (2.8%)
   Adrian Fiergolski                     1 (1.4%)
   Stefan Roese                          1 (1.4%)
   Heinrich Schuchardt                   1 (1.4%)
   Andre Przywara                        1 (1.4%)
   Sean Anderson                         1 (1.4%)
   Alain Volmat                          1 (1.4%)
   Michal Simek                          1 (1.4%)
   Vignesh Raghavendra                   1 (1.4%)
   Jorge Ramirez-Ortiz                   1 (1.4%)
   Eugen Hristev                         1 (1.4%)
   Hector Martin                         1 (1.4%)
   Sughosh Ganu                          1 (1.4%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Pali Rohár                            4 (16.7%)
   Tom Rini                              2 (8.3%)
   Heinrich Schuchardt                   1 (4.2%)
   Jorge Ramirez-Ortiz                   1 (4.2%)
   Heiko Thiery                          1 (4.2%)
   Etienne Carriere                      1 (4.2%)
   Sergiu Moga                           1 (4.2%)
   Ovidiu Panait                         1 (4.2%)
   Marek Behún                           1 (4.2%)
   Johan Jonker                          1 (4.2%)
   Sergei Antonov                        1 (4.2%)
   Jason Kridner                         1 (4.2%)
   Bin Liu                               1 (4.2%)
   George Hilliard                       1 (4.2%)
   Gatien CHEVALLIER                     1 (4.2%)
   Andrew Walbran                        1 (4.2%)
   Gan, Yau Wai"                         1 (4.2%)
   Michal Vasilek                        1 (4.2%)
   Jan Kiszka                            1 (4.2%)
   Jesse Taube                           1 (4.2%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Tom Rini                              4 (16.7%)
   Heinrich Schuchardt                   3 (12.5%)
   Simon Glass                           3 (12.5%)
   Pali Rohár                            2 (8.3%)
   Andre Przywara                        2 (8.3%)
   Peng Fan                              1 (4.2%)
   Quentin Schulz                        1 (4.2%)
   Patrick Delaunay                      1 (4.2%)
   Alain Volmat                          1 (4.2%)
   Michal Simek                          1 (4.2%)
   Eugen Hristev                         1 (4.2%)
   Fabio Estevam                         1 (4.2%)
   Nishanth Menon                        1 (4.2%)
   Anand Gadiyar                         1 (4.2%)
   Pierre-Clément Tosi                   1 (4.2%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   (Unknown)                             590 (38.8%)
   Konsulko Group                        265 (17.4%)
   Google, Inc.                          141 (9.3%)
   NXP                                   77 (5.1%)
   ST Microelectronics                   67 (4.4%)
   Linaro                                60 (3.9%)
   Texas Instruments                     56 (3.7%)
   AMD                                   53 (3.5%)
   DENX Software Engineering             45 (3.0%)
   Toradex                               45 (3.0%)
   Weidmüller Interface GmbH & Co. KG    41 (2.7%)
   Xilinx                                29 (1.9%)
   Amarula Solutions                     18 (1.2%)
   ARM                                   11 (0.7%)
   BayLibre SAS                          5 (0.3%)
   SUSE                                  4 (0.3%)
   Socionext Inc.                        3 (0.2%)
   Bootlin                               2 (0.1%)
   IBM                                   2 (0.1%)
   Siemens                               2 (0.1%)
   Broadcom                              1 (0.1%)
   Collabora Ltd.                        1 (0.1%)
   Debian.org                            1 (0.1%)
   Marvell                               1 (0.1%)
   Samsung                               1 (0.1%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   Konsulko Group                        98915 (47.3%)
   (Unknown)                             36773 (17.6%)
   Toradex                               20197 (9.7%)
   NXP                                   11759 (5.6%)
   Google, Inc.                          8739 (4.2%)
   Linaro                                7623 (3.6%)
   Weidmüller Interface GmbH & Co. KG    6191 (3.0%)
   Texas Instruments                     5930 (2.8%)
   ST Microelectronics                   3803 (1.8%)
   DENX Software Engineering             3551 (1.7%)
   AMD                                   2343 (1.1%)
   Amarula Solutions                     1360 (0.7%)
   Xilinx                                1016 (0.5%)
   Broadcom                              315 (0.2%)
   ARM                                   298 (0.1%)
   BayLibre SAS                          197 (0.1%)
   SUSE                                  79 (0.0%)
   IBM                                   34 (0.0%)
   Bootlin                               32 (0.0%)
   Siemens                               28 (0.0%)
   Socionext Inc.                        18 (0.0%)
   Debian.org                            4 (0.0%)
   Marvell                               3 (0.0%)
   Samsung                               2 (0.0%)
   Collabora Ltd.                        1 (0.0%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   AMD                                   81 (30.5%)
   NXP                                   51 (19.2%)
   (Unknown)                             33 (12.4%)
   Texas Instruments                     19 (7.1%)
   Linaro                                16 (6.0%)
   ARM                                   16 (6.0%)
   Amarula Solutions                     14 (5.3%)
   Xilinx                                13 (4.9%)
   Konsulko Group                        6 (2.3%)
   Toradex                               4 (1.5%)
   Google, Inc.                          4 (1.5%)
   Socionext Inc.                        4 (1.5%)
   ST Microelectronics                   2 (0.8%)
   Broadcom                              2 (0.8%)
   BayLibre SAS                          1 (0.4%)
   ====================================  =====


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

   ====================================  =====
   Name                                  Count
   ====================================  =====
   (Unknown)                             78 (51.0%)
   Linaro                                12 (7.8%)
   Texas Instruments                     11 (7.2%)
   NXP                                   7 (4.6%)
   Google, Inc.                          5 (3.3%)
   DENX Software Engineering             5 (3.3%)
   Xilinx                                4 (2.6%)
   Toradex                               4 (2.6%)
   ST Microelectronics                   4 (2.6%)
   AMD                                   3 (2.0%)
   ARM                                   3 (2.0%)
   BayLibre SAS                          3 (2.0%)
   Amarula Solutions                     2 (1.3%)
   Konsulko Group                        1 (0.7%)
   Socionext Inc.                        1 (0.7%)
   Broadcom                              1 (0.7%)
   Weidmüller Interface GmbH & Co. KG    1 (0.7%)
   SUSE                                  1 (0.7%)
   IBM                                   1 (0.7%)
   Bootlin                               1 (0.7%)
   Siemens                               1 (0.7%)
   Debian.org                            1 (0.7%)
   Marvell                               1 (0.7%)
   Samsung                               1 (0.7%)
   Collabora Ltd.                        1 (0.7%)
   ====================================  =====
