:orphan:

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

* Processed 1521 changesets 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%)
   ====================================  =====
