:orphan:

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

* Processed 1639 changesets from 189 developers

* 30 employers found

* A total of 108344 lines added, 33382 removed (delta 74962)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       309 (18.9%)
   Heinrich Schuchardt               82 (5.0%)
   Marek Vasut                       54 (3.3%)
   Vignesh Raghavendra               49 (3.0%)
   Michal Simek                      45 (2.7%)
   Masahiro Yamada                   38 (2.3%)
   Igor Opaniuk                      36 (2.2%)
   Heiko Schocher                    32 (2.0%)
   Fabio Estevam                     31 (1.9%)
   Jagan Teki                        30 (1.8%)
   Ley Foon Tan                      29 (1.8%)
   Tom Rini                          28 (1.7%)
   Peng Fan                          28 (1.7%)
   Giulio Benetti                    27 (1.6%)
   Faiz Abbas                        27 (1.6%)
   Ran Wang                          23 (1.4%)
   Patrick Delaunay                  21 (1.3%)
   Baruch Siach                      21 (1.3%)
   Philippe Reynes                   20 (1.2%)
   Robert Beckett                    19 (1.2%)
   Rasmus Villemoes                  18 (1.1%)
   Holger Brunck                     17 (1.0%)
   Biwen Li                          16 (1.0%)
   Andre Przywara                    16 (1.0%)
   Wolfgang Wallner                  15 (0.9%)
   Anatolij Gustschin                15 (0.9%)
   Kuldeep Singh                     14 (0.9%)
   Alifer Moraes                     14 (0.9%)
   Marek Szyprowski                  14 (0.9%)
   mingming lee                      14 (0.9%)
   Sean Anderson                     13 (0.8%)
   Alex Marginean                    13 (0.8%)
   Wasim Khan                        13 (0.8%)
   Angelo Durgehello                 13 (0.8%)
   Sughosh Ganu                      13 (0.8%)
   Andrew F. Davis                   13 (0.8%)
   Sam Protsenko                     12 (0.7%)
   Jean-Jacques Hiblot               12 (0.7%)
   Andy Shevchenko                   11 (0.7%)
   Tom Warren                        11 (0.7%)
   Sam Shih                          11 (0.7%)
   Bin Meng                          10 (0.6%)
   Joris Offouga                     10 (0.6%)
   Ian Ray                           9 (0.5%)
   Yangbo Lu                         8 (0.5%)
   AKASHI Takahiro                   8 (0.5%)
   Priyanka Singh                    7 (0.4%)
   Lokesh Vutla                      7 (0.4%)
   Lukasz Majewski                   7 (0.4%)
   T Karthik Reddy                   7 (0.4%)
   Peng Ma                           7 (0.4%)
   Fabien Dessenne                   7 (0.4%)
   Chunfeng Yun                      7 (0.4%)
   Cristian Ciocaltea                7 (0.4%)
   Peter Robinson                    6 (0.4%)
   Kever Yang                        6 (0.4%)
   Tudor Ambarus                     6 (0.4%)
   Patrice Chotard                   6 (0.4%)
   Eugeniy Paltsev                   6 (0.4%)
   Yuantian Tang                     6 (0.4%)
   Pedro Jardim                      6 (0.4%)
   Michael Walle                     6 (0.4%)
   Ashok Reddy Soma                  6 (0.4%)
   Alex Nemirovsky                   5 (0.3%)
   Meenakshi Aggarwal                5 (0.3%)
   Michael Trimarchi                 5 (0.3%)
   Suniel Mahesh                     5 (0.3%)
   Andreas Dannenberg                5 (0.3%)
   Joel Johnson                      5 (0.3%)
   Flavio Suligoi                    5 (0.3%)
   Yinbo Zhu                         5 (0.3%)
   Stephan Gerhold                   5 (0.3%)
   Ovidiu Panait                     4 (0.2%)
   Alexey Brodkin                    4 (0.2%)
   Alison Wang                       4 (0.2%)
   Otavio Salvador                   4 (0.2%)
   Marcel Ziswiler                   4 (0.2%)
   Jason Li                          4 (0.2%)
   MarkLee                           4 (0.2%)
   Jorge Ramirez-Ortiz               4 (0.2%)
   Caleb Robey                       4 (0.2%)
   Steffen Dirkwinkel                4 (0.2%)
   Ye Li                             3 (0.2%)
   Jan Kiszka                        3 (0.2%)
   Klaus H. Sorensen                 3 (0.2%)
   Madalin Bucur                     3 (0.2%)
   Oliver Graute                     3 (0.2%)
   Frieder Schrempf                  3 (0.2%)
   Heiko Stuebner                    3 (0.2%)
   Dario Binacchi                    3 (0.2%)
   Amit Singh Tomar                  3 (0.2%)
   Martin Fuzzey                     3 (0.2%)
   Chen-Yu Tsai                      3 (0.2%)
   Pankaj Bansal                     3 (0.2%)
   Pramod Kumar                      3 (0.2%)
   Adam Ford                         3 (0.2%)
   Eugeniu Rosca                     3 (0.2%)
   Lars Povlsen                      2 (0.1%)
   Stephen Warren                    2 (0.1%)
   Kristian Amlie                    2 (0.1%)
   Simon Goldschmidt                 2 (0.1%)
   Frank Wunderlich                  2 (0.1%)
   Fabien Lehoussel                  2 (0.1%)
   Grygorii Strashko                 2 (0.1%)
   Samuel Mendoza-Jonas              2 (0.1%)
   Ilias Apalodimas                  2 (0.1%)
   Christophe Leroy                  2 (0.1%)
   Milan Obuch                       2 (0.1%)
   Markus Klotzbuecher               2 (0.1%)
   Bharat Kumar Reddy Gooty          2 (0.1%)
   Antonio Borneo                    2 (0.1%)
   Thirupathaiah Annapureddy         2 (0.1%)
   Park, Aiden                       2 (0.1%)
   YouMin Chen                       2 (0.1%)
   Thomas Hebb                       2 (0.1%)
   Udit Agarwal                      2 (0.1%)
   Hou Zhiqiang                      2 (0.1%)
   Anand Moon                        2 (0.1%)
   Christian Hewitt                  2 (0.1%)
   Thor Thayer                       2 (0.1%)
   Claudius Heine                    2 (0.1%)
   Denis Zalevskiy                   2 (0.1%)
   Stefan Roese                      1 (0.1%)
   Chee Hong Ang                     1 (0.1%)
   Jan-Christoph Tebbe               1 (0.1%)
   Jaehoon Chung                     1 (0.1%)
   Vishruth                          1 (0.1%)
   JC Kuo                            1 (0.1%)
   Lihua Zhao                        1 (0.1%)
   Vladimir Oltean                   1 (0.1%)
   Vikas Singh                       1 (0.1%)
   Petr Štetiar                      1 (0.1%)
   Atish Patra                       1 (0.1%)
   Marek Behún                       1 (0.1%)
   Harald Seiler                     1 (0.1%)
   Miquel Raynal                     1 (0.1%)
   Tomasz Duszynski                  1 (0.1%)
   Chris Packham                     1 (0.1%)
   Walter Lozano                     1 (0.1%)
   Alex Kiernan                      1 (0.1%)
   Clemens Gruber                    1 (0.1%)
   Matthias Brugger                  1 (0.1%)
   Pankit Garg                       1 (0.1%)
   Max Krummenacher                  1 (0.1%)
   Stefano Babic                     1 (0.1%)
   Arthur Li                         1 (0.1%)
   Samuel Mescoff                    1 (0.1%)
   Seung-Woo Kim                     1 (0.1%)
   Rajan Vaja                        1 (0.1%)
   Madan Srinivas                    1 (0.1%)
   Carl Gelfand                      1 (0.1%)
   Jared Baldridge                   1 (0.1%)
   Hugh Cole-Baker                   1 (0.1%)
   Tero Kristo                       1 (0.1%)
   Roger Quadros                     1 (0.1%)
   Marek Bykowski                    1 (0.1%)
   Sébastien Szymanski               1 (0.1%)
   Luka Kovacic                      1 (0.1%)
   Robert Marko                      1 (0.1%)
   Maxime Ripard                     1 (0.1%)
   Rob Herring                       1 (0.1%)
   Guillermo Rodríguez               1 (0.1%)
   Christoph Müllner                 1 (0.1%)
   Mark Kettenis                     1 (0.1%)
   Marcin Wojtas                     1 (0.1%)
   Jernej Skrabec                    1 (0.1%)
   Fabien Parent                     1 (0.1%)
   Eric Nelson                       1 (0.1%)
   Shawn Guo                         1 (0.1%)
   Patrik Dahlström                  1 (0.1%)
   Xiaowei Bao                       1 (0.1%)
   Dhananjay Phadke                  1 (0.1%)
   Rainer Boschung                   1 (0.1%)
   Matthias Schoepfer                1 (0.1%)
   Arkadiusz Karas                   1 (0.1%)
   Keerthy                           1 (0.1%)
   Jason Kridner                     1 (0.1%)
   Alexandre Besnard                 1 (0.1%)
   Zumeng Chen                       1 (0.1%)
   Sudeep Holla                      1 (0.1%)
   Raviteja Narayanam                1 (0.1%)
   Rajesh Ravi                       1 (0.1%)
   Han Nandor                        1 (0.1%)
   Parthiban Nallathambi             1 (0.1%)
   Wen He                            1 (0.1%)
   Vabhav Sharma                     1 (0.1%)
   Florinel Iordache                 1 (0.1%)
   Joakim Tjernlund                  1 (0.1%)
   Michael Auchter                   1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       23135 (18.7%)
   Peng Fan                          6869 (5.6%)
   Heiko Schocher                    6326 (5.1%)
   Michal Simek                      4952 (4.0%)
   Ley Foon Tan                      4752 (3.8%)
   Igor Opaniuk                      4700 (3.8%)
   Baruch Siach                      4567 (3.7%)
   Robert Beckett                    3815 (3.1%)
   Giulio Benetti                    3134 (2.5%)
   mingming lee                      2755 (2.2%)
   Marek Vasut                       2569 (2.1%)
   Sam Shih                          2530 (2.0%)
   Holger Brunck                     2393 (1.9%)
   Stephan Gerhold                   2290 (1.9%)
   Tom Rini                          2200 (1.8%)
   Philippe Reynes                   2105 (1.7%)
   Jagan Teki                        2086 (1.7%)
   Tom Warren                        1986 (1.6%)
   Anatolij Gustschin                1954 (1.6%)
   Chen-Yu Tsai                      1603 (1.3%)
   Angelo Durgehello                 1600 (1.3%)
   Vignesh Raghavendra               1593 (1.3%)
   Fabio Estevam                     1519 (1.2%)
   Heinrich Schuchardt               1510 (1.2%)
   Andre Przywara                    1492 (1.2%)
   Samuel Mendoza-Jonas              1384 (1.1%)
   Sam Protsenko                     1357 (1.1%)
   Peng Ma                           1188 (1.0%)
   Michael Walle                     1091 (0.9%)
   Lukasz Majewski                   1086 (0.9%)
   Biwen Li                          1061 (0.9%)
   Patrick Delaunay                  998 (0.8%)
   Martin Fuzzey                     884 (0.7%)
   Joris Offouga                     758 (0.6%)
   Amit Singh Tomar                  745 (0.6%)
   Parthiban Nallathambi             732 (0.6%)
   Arkadiusz Karas                   730 (0.6%)
   Stefano Babic                     691 (0.6%)
   Sughosh Ganu                      670 (0.5%)
   Cristian Ciocaltea                629 (0.5%)
   Florinel Iordache                 620 (0.5%)
   Masahiro Yamada                   613 (0.5%)
   Jason Kridner                     577 (0.5%)
   Faiz Abbas                        536 (0.4%)
   Alex Nemirovsky                   497 (0.4%)
   Ilias Apalodimas                  487 (0.4%)
   Andrew F. Davis                   469 (0.4%)
   Fabien Dessenne                   468 (0.4%)
   Jason Li                          442 (0.4%)
   Caleb Robey                       430 (0.3%)
   Bin Meng                          397 (0.3%)
   Alex Marginean                    373 (0.3%)
   Ashok Reddy Soma                  322 (0.3%)
   Andreas Dannenberg                317 (0.3%)
   Han Nandor                        298 (0.2%)
   Thirupathaiah Annapureddy         293 (0.2%)
   Tudor Ambarus                     291 (0.2%)
   Christian Hewitt                  291 (0.2%)
   Bharat Kumar Reddy Gooty          250 (0.2%)
   Jean-Jacques Hiblot               239 (0.2%)
   Wasim Khan                        234 (0.2%)
   Alexey Brodkin                    232 (0.2%)
   Ran Wang                          231 (0.2%)
   Rasmus Villemoes                  222 (0.2%)
   Ye Li                             220 (0.2%)
   YouMin Chen                       220 (0.2%)
   Grygorii Strashko                 210 (0.2%)
   Ian Ray                           206 (0.2%)
   Kuldeep Singh                     201 (0.2%)
   Arthur Li                         195 (0.2%)
   Eugeniu Rosca                     191 (0.2%)
   Klaus H. Sorensen                 185 (0.1%)
   Pedro Jardim                      183 (0.1%)
   Yangbo Lu                         181 (0.1%)
   Andy Shevchenko                   180 (0.1%)
   Heiko Stuebner                    173 (0.1%)
   Marek Szyprowski                  172 (0.1%)
   Suniel Mahesh                     157 (0.1%)
   Wolfgang Wallner                  135 (0.1%)
   Zumeng Chen                       135 (0.1%)
   Eugeniy Paltsev                   133 (0.1%)
   Chunfeng Yun                      130 (0.1%)
   Sean Anderson                     129 (0.1%)
   Yuantian Tang                     125 (0.1%)
   MarkLee                           124 (0.1%)
   Michael Trimarchi                 119 (0.1%)
   Steffen Dirkwinkel                114 (0.1%)
   Peter Robinson                    111 (0.1%)
   Alifer Moraes                     110 (0.1%)
   Adam Ford                         98 (0.1%)
   Priyanka Singh                    91 (0.1%)
   AKASHI Takahiro                   90 (0.1%)
   Patrice Chotard                   79 (0.1%)
   Denis Zalevskiy                   76 (0.1%)
   Marcel Ziswiler                   61 (0.0%)
   Joel Johnson                      60 (0.0%)
   JC Kuo                            59 (0.0%)
   T Karthik Reddy                   57 (0.0%)
   Clemens Gruber                    55 (0.0%)
   Maxime Ripard                     55 (0.0%)
   Meenakshi Aggarwal                52 (0.0%)
   Frieder Schrempf                  51 (0.0%)
   Frank Wunderlich                  50 (0.0%)
   Park, Aiden                       48 (0.0%)
   Alex Kiernan                      43 (0.0%)
   Alison Wang                       41 (0.0%)
   Pankaj Bansal                     36 (0.0%)
   Kever Yang                        35 (0.0%)
   Atish Patra                       34 (0.0%)
   Vladimir Oltean                   33 (0.0%)
   Pramod Kumar                      31 (0.0%)
   Udit Agarwal                      30 (0.0%)
   Lars Povlsen                      28 (0.0%)
   Thor Thayer                       27 (0.0%)
   Lokesh Vutla                      25 (0.0%)
   Stefan Roese                      24 (0.0%)
   Ovidiu Panait                     23 (0.0%)
   Chee Hong Ang                     22 (0.0%)
   Hugh Cole-Baker                   21 (0.0%)
   Rajesh Ravi                       21 (0.0%)
   Otavio Salvador                   20 (0.0%)
   Claudius Heine                    19 (0.0%)
   Luka Kovacic                      19 (0.0%)
   Simon Goldschmidt                 18 (0.0%)
   Yinbo Zhu                         16 (0.0%)
   Stephen Warren                    15 (0.0%)
   Wen He                            15 (0.0%)
   Roger Quadros                     13 (0.0%)
   Guillermo Rodríguez               13 (0.0%)
   Hou Zhiqiang                      12 (0.0%)
   Seung-Woo Kim                     12 (0.0%)
   Tomasz Duszynski                  11 (0.0%)
   Marcin Wojtas                     11 (0.0%)
   Madan Srinivas                    10 (0.0%)
   Thomas Hebb                       9 (0.0%)
   Madalin Bucur                     8 (0.0%)
   Robert Marko                      8 (0.0%)
   Xiaowei Bao                       8 (0.0%)
   Oliver Graute                     7 (0.0%)
   Christophe Leroy                  7 (0.0%)
   Antonio Borneo                    7 (0.0%)
   Marek Behún                       7 (0.0%)
   Patrik Dahlström                  7 (0.0%)
   Joakim Tjernlund                  7 (0.0%)
   Flavio Suligoi                    6 (0.0%)
   Dario Binacchi                    6 (0.0%)
   Kristian Amlie                    6 (0.0%)
   Rajan Vaja                        6 (0.0%)
   Jorge Ramirez-Ortiz               5 (0.0%)
   Pankit Garg                       5 (0.0%)
   Jan Kiszka                        4 (0.0%)
   Fabien Lehoussel                  4 (0.0%)
   Markus Klotzbuecher               4 (0.0%)
   Miquel Raynal                     4 (0.0%)
   Sébastien Szymanski               4 (0.0%)
   Rob Herring                       4 (0.0%)
   Rainer Boschung                   4 (0.0%)
   Sudeep Holla                      4 (0.0%)
   Milan Obuch                       3 (0.0%)
   Mark Kettenis                     3 (0.0%)
   Anand Moon                        2 (0.0%)
   Jaehoon Chung                     2 (0.0%)
   Vishruth                          2 (0.0%)
   Lihua Zhao                        2 (0.0%)
   Harald Seiler                     2 (0.0%)
   Chris Packham                     2 (0.0%)
   Walter Lozano                     2 (0.0%)
   Matthias Brugger                  2 (0.0%)
   Max Krummenacher                  2 (0.0%)
   Jared Baldridge                   2 (0.0%)
   Jernej Skrabec                    2 (0.0%)
   Dhananjay Phadke                  2 (0.0%)
   Keerthy                           2 (0.0%)
   Alexandre Besnard                 2 (0.0%)
   Vabhav Sharma                     2 (0.0%)
   Jan-Christoph Tebbe               1 (0.0%)
   Vikas Singh                       1 (0.0%)
   Petr Štetiar                      1 (0.0%)
   Samuel Mescoff                    1 (0.0%)
   Carl Gelfand                      1 (0.0%)
   Tero Kristo                       1 (0.0%)
   Marek Bykowski                    1 (0.0%)
   Christoph Müllner                 1 (0.0%)
   Fabien Parent                     1 (0.0%)
   Eric Nelson                       1 (0.0%)
   Shawn Guo                         1 (0.0%)
   Matthias Schoepfer                1 (0.0%)
   Raviteja Narayanam                1 (0.0%)
   Michael Auchter                   1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Michal Simek                      2438 (7.3%)
   Peng Ma                           971 (2.9%)
   Tom Warren                        727 (2.2%)
   Stefano Babic                     691 (2.1%)
   Andre Przywara                    558 (1.7%)
   Tom Rini                          376 (1.1%)
   Grygorii Strashko                 208 (0.6%)
   Pedro Jardim                      173 (0.5%)
   Yangbo Lu                         113 (0.3%)
   Alifer Moraes                     87 (0.3%)
   Denis Zalevskiy                   51 (0.2%)
   Clemens Gruber                    45 (0.1%)
   Steffen Dirkwinkel                39 (0.1%)
   Park, Aiden                       35 (0.1%)
   Hou Zhiqiang                      11 (0.0%)
   Madan Srinivas                    10 (0.0%)
   Thomas Hebb                       7 (0.0%)
   Tomasz Duszynski                  6 (0.0%)
   Chee Hong Ang                     4 (0.0%)
   Ian Ray                           3 (0.0%)
   Christophe Leroy                  3 (0.0%)
   Sébastien Szymanski               2 (0.0%)
   Max Krummenacher                  2 (0.0%)
   Joakim Tjernlund                  1 (0.0%)
   Rainer Boschung                   1 (0.0%)
   Walter Lozano                     1 (0.0%)
   Matthias Schoepfer                1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Lokesh Vutla                      102 (33.2%)
   Priyanka Jain                     35 (11.4%)
   Michal Simek                      20 (6.5%)
   Bin Meng                          11 (3.6%)
   Robert Beckett                    11 (3.6%)
   Minkyu Kang                       8 (2.6%)
   Heinrich Schuchardt               8 (2.6%)
   Jagan Teki                        8 (2.6%)
   Matthias Brugger                  7 (2.3%)
   Alexey Brodkin                    6 (2.0%)
   Neil Armstrong                    5 (1.6%)
   Alex Nemirovsky                   5 (1.6%)
   Andre Przywara                    4 (1.3%)
   Ian Ray                           4 (1.3%)
   Stefan Roese                      4 (1.3%)
   Jason Kridner                     4 (1.3%)
   Tom Warren                        3 (1.0%)
   Vladimir Olovyannikov             3 (1.0%)
   Rasmus Villemoes                  3 (1.0%)
   Marcel Ziswiler                   3 (1.0%)
   Patrick Delaunay                  3 (1.0%)
   Tom Rini                          2 (0.7%)
   Luis Araneda                      2 (0.7%)
   Ryder Lee                         2 (0.7%)
   Ashish Kumar                      2 (0.7%)
   Rajat Srivastava                  2 (0.7%)
   Kever Yang                        2 (0.7%)
   Masahiro Yamada                   2 (0.7%)
   Michael Trimarchi                 2 (0.7%)
   Alex Marginean                    2 (0.7%)
   Faiz Abbas                        2 (0.7%)
   Igor Opaniuk                      2 (0.7%)
   Peng Ma                           1 (0.3%)
   Alifer Moraes                     1 (0.3%)
   Chee Hong Ang                     1 (0.3%)
   Max Krummenacher                  1 (0.3%)
   Thierry Reding                    1 (0.3%)
   Manish Tomar                      1 (0.3%)
   Fabio Berton                      1 (0.3%)
   Florin Chiculita                  1 (0.3%)
   Shengzhou Liu                     1 (0.3%)
   Valentin Longchamp                1 (0.3%)
   Venkateswara Rao Mandela          1 (0.3%)
   Quanyang Wang                     1 (0.3%)
   Arnd Bergmann                     1 (0.3%)
   Robin Gong                        1 (0.3%)
   Tien Fong Chee                    1 (0.3%)
   Brad Campbell                     1 (0.3%)
   Stefan Agner                      1 (0.3%)
   Yogesh Gaur                       1 (0.3%)
   Sriram Dash                       1 (0.3%)
   Tero Kristo                       1 (0.3%)
   Andy Shevchenko                   1 (0.3%)
   YouMin Chen                       1 (0.3%)
   Jean-Jacques Hiblot               1 (0.3%)
   Andreas Dannenberg                1 (0.3%)
   Caleb Robey                       1 (0.3%)
   Andrew F. Davis                   1 (0.3%)
   Marek Vasut                       1 (0.3%)
   Peng Fan                          1 (0.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          167 (19.5%)
   Priyanka Jain                     107 (12.5%)
   Simon Glass                       85 (9.9%)
   Kever Yang                        45 (5.2%)
   Patrice Chotard                   36 (4.2%)
   Oleksandr Suvorov                 32 (3.7%)
   Simon Goldschmidt                 31 (3.6%)
   Jagan Teki                        30 (3.5%)
   Stefan Roese                      30 (3.5%)
   Heiko Schocher                    28 (3.3%)
   Fabio Estevam                     25 (2.9%)
   Patrick Delaunay                  22 (2.6%)
   Lokesh Vutla                      19 (2.2%)
   Heinrich Schuchardt               16 (1.9%)
   Ryder Lee                         15 (1.7%)
   Tom Rini                          14 (1.6%)
   Peng Fan                          13 (1.5%)
   Lukasz Majewski                   13 (1.5%)
   Grygorii Strashko                 11 (1.3%)
   Jaehoon Chung                     11 (1.3%)
   Anatolij Gustschin                7 (0.8%)
   Stefano Babic                     6 (0.7%)
   Rick Chen                         6 (0.7%)
   Eric Nelson                       5 (0.6%)
   Daniel Schwierzeck                5 (0.6%)
   Pragnesh Patel                    5 (0.6%)
   Linus Walleij                     5 (0.6%)
   Mario Six                         5 (0.6%)
   Anand Moon                        5 (0.6%)
   Ley Foon Tan                      5 (0.6%)
   Jun Chen                          4 (0.5%)
   Miquel Raynal                     4 (0.5%)
   Neil Armstrong                    3 (0.3%)
   Marek Vasut                       3 (0.3%)
   Stephen Warren                    3 (0.3%)
   Sam Protsenko                     3 (0.3%)
   Andre Przywara                    2 (0.2%)
   Alexandre Belloni                 2 (0.2%)
   Horatiu Vultur                    2 (0.2%)
   Lukas Auer                        2 (0.2%)
   Joel Stanley                      2 (0.2%)
   Ye Li                             2 (0.2%)
   Sughosh Ganu                      2 (0.2%)
   Masahiro Yamada                   1 (0.1%)
   Michael Trimarchi                 1 (0.1%)
   Alex Marginean                    1 (0.1%)
   Andy Shevchenko                   1 (0.1%)
   Yangbo Lu                         1 (0.1%)
   Park, Aiden                       1 (0.1%)
   Rob Herring                       1 (0.1%)
   Keerthy                           1 (0.1%)
   Mathieu Poirier                   1 (0.1%)
   Angelo Dureghello                 1 (0.1%)
   Cédric Le Goater                  1 (0.1%)
   Oliver Graute                     1 (0.1%)
   Frieder Schrempf                  1 (0.1%)
   Atish Patra                       1 (0.1%)
   Vladimir Oltean                   1 (0.1%)
   Wolfgang Wallner                  1 (0.1%)
   Heiko Stuebner                    1 (0.1%)
   Kuldeep Singh                     1 (0.1%)
   Vignesh Raghavendra               1 (0.1%)
   Philippe Reynes                   1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          13 (20.6%)
   Peter Robinson                    8 (12.7%)
   Jagan Teki                        5 (7.9%)
   Fabio Estevam                     4 (6.3%)
   Simon Goldschmidt                 3 (4.8%)
   Corentin Labbe                    3 (4.8%)
   Patrice Chotard                   2 (3.2%)
   Heinrich Schuchardt               2 (3.2%)
   Guillaume La Roque                2 (3.2%)
   Frank Wunderlich                  2 (3.2%)
   Patrick Delaunay                  1 (1.6%)
   Lokesh Vutla                      1 (1.6%)
   Tom Rini                          1 (1.6%)
   Marek Vasut                       1 (1.6%)
   Andy Shevchenko                   1 (1.6%)
   Park, Aiden                       1 (1.6%)
   Wolfgang Wallner                  1 (1.6%)
   Kuldeep Singh                     1 (1.6%)
   Matthias Brugger                  1 (1.6%)
   Alifer Moraes                     1 (1.6%)
   Andreas Dannenberg                1 (1.6%)
   Matt Porter                       1 (1.6%)
   Mauro Condarelli                  1 (1.6%)
   Álvaro Fernández Rojas            1 (1.6%)
   Ferry Toth                        1 (1.6%)
   Ard Biesheuvel                    1 (1.6%)
   Robert Marko                      1 (1.6%)
   Michael Walle                     1 (1.6%)
   Baruch Siach                      1 (1.6%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Jagan Teki                        6 (9.5%)
   Anatolij Gustschin                4 (6.3%)
   Andre Przywara                    4 (6.3%)
   Igor Opaniuk                      4 (6.3%)
   Bin Meng                          3 (4.8%)
   Heinrich Schuchardt               3 (4.8%)
   Marek Vasut                       3 (4.8%)
   Masahiro Yamada                   3 (4.8%)
   Amit Singh Tomar                  3 (4.8%)
   Tom Rini                          2 (3.2%)
   Simon Glass                       2 (3.2%)
   Peng Fan                          2 (3.2%)
   Ye Li                             2 (3.2%)
   Vignesh Raghavendra               2 (3.2%)
   Sean Anderson                     2 (3.2%)
   Sam Shih                          2 (3.2%)
   Fabio Estevam                     1 (1.6%)
   Patrick Delaunay                  1 (1.6%)
   Andy Shevchenko                   1 (1.6%)
   Wolfgang Wallner                  1 (1.6%)
   Michael Walle                     1 (1.6%)
   Stefan Roese                      1 (1.6%)
   Lukasz Majewski                   1 (1.6%)
   Alex Marginean                    1 (1.6%)
   Keerthy                           1 (1.6%)
   Philippe Reynes                   1 (1.6%)
   Michal Simek                      1 (1.6%)
   Tom Warren                        1 (1.6%)
   Jean-Jacques Hiblot               1 (1.6%)
   Jan Kiszka                        1 (1.6%)
   Vishruth                          1 (1.6%)
   Luka Kovacic                      1 (1.6%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Igor Opaniuk                      3 (15.0%)
   Fabio Estevam                     3 (15.0%)
   Tom Rini                          1 (5.0%)
   Simon Glass                       1 (5.0%)
   Patrick Delaunay                  1 (5.0%)
   Andy Shevchenko                   1 (5.0%)
   Michal Simek                      1 (5.0%)
   Andreas Dannenberg                1 (5.0%)
   Matt Porter                       1 (5.0%)
   Oliver Graute                     1 (5.0%)
   Carl Gelfand                      1 (5.0%)
   Ramin Seyed-Moussavi              1 (5.0%)
   Praneeth Bajjuri                  1 (5.0%)
   Vagrant Cascadian                 1 (5.0%)
   Vishal Mahaveer                   1 (5.0%)
   Robert P. J. Day                  1 (5.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Anatolij Gustschin                6 (30.0%)
   Fabio Estevam                     3 (15.0%)
   Heinrich Schuchardt               2 (10.0%)
   Michal Simek                      1 (5.0%)
   Bin Meng                          1 (5.0%)
   Ye Li                             1 (5.0%)
   Vignesh Raghavendra               1 (5.0%)
   Philippe Reynes                   1 (5.0%)
   Lokesh Vutla                      1 (5.0%)
   Rob Herring                       1 (5.0%)
   Shawn Guo                         1 (5.0%)
   Lars Povlsen                      1 (5.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         540 (32.9%)
   Google, Inc.                      309 (18.9%)
   NXP                               172 (10.5%)
   Texas Instruments                 124 (7.6%)
   DENX Software Engineering         113 (6.9%)
   AMD                               45 (2.7%)
   Intel                             45 (2.7%)
   Socionext Inc.                    38 (2.3%)
   Amarula Solutions                 37 (2.3%)
   ST Microelectronics               36 (2.2%)
   Konsulko Group                    28 (1.7%)
   Linaro                            25 (1.5%)
   Collabora Ltd.                    20 (1.2%)
   ARM                               17 (1.0%)
   Samsung                           16 (1.0%)
   NVidia                            15 (0.9%)
   Xilinx                            15 (0.9%)
   General Electric                  11 (0.7%)
   Rockchip                          8 (0.5%)
   Toradex                           5 (0.3%)
   O.S. Systems                      4 (0.2%)
   Broadcom                          3 (0.2%)
   Siemens                           3 (0.2%)
   Bootlin                           2 (0.1%)
   Wind River                        2 (0.1%)
   Pepperl+Fuchs                     2 (0.1%)
   BayLibre SAS                      1 (0.1%)
   National Instruments              1 (0.1%)
   Semihalf Embedded Systems         1 (0.1%)
   SUSE                              1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         44534 (36.1%)
   Google, Inc.                      23135 (18.7%)
   DENX Software Engineering         12671 (10.3%)
   NXP                               11684 (9.5%)
   Intel                             5029 (4.1%)
   AMD                               4952 (4.0%)
   Texas Instruments                 4422 (3.6%)
   Collabora Ltd.                    3817 (3.1%)
   Amarula Solutions                 2346 (1.9%)
   Konsulko Group                    2200 (1.8%)
   NVidia                            2062 (1.7%)
   ST Microelectronics               1552 (1.3%)
   ARM                               1496 (1.2%)
   Linaro                            1249 (1.0%)
   Socionext Inc.                    613 (0.5%)
   Xilinx                            386 (0.3%)
   General Electric                  282 (0.2%)
   Broadcom                          271 (0.2%)
   Rockchip                          255 (0.2%)
   Samsung                           186 (0.2%)
   Wind River                        137 (0.1%)
   Toradex                           63 (0.1%)
   Bootlin                           59 (0.0%)
   O.S. Systems                      20 (0.0%)
   Pepperl+Fuchs                     18 (0.0%)
   Semihalf Embedded Systems         11 (0.0%)
   Siemens                           4 (0.0%)
   SUSE                              2 (0.0%)
   BayLibre SAS                      1 (0.0%)
   National Instruments              1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Texas Instruments                 114 (37.1%)
   NXP                               49 (16.0%)
   (Unknown)                         41 (13.4%)
   Xilinx                            20 (6.5%)
   Collabora Ltd.                    11 (3.6%)
   Amarula Solutions                 10 (3.3%)
   Samsung                           8 (2.6%)
   Toradex                           7 (2.3%)
   SUSE                              7 (2.3%)
   DENX Software Engineering         5 (1.6%)
   BayLibre SAS                      5 (1.6%)
   NVidia                            4 (1.3%)
   ARM                               4 (1.3%)
   General Electric                  4 (1.3%)
   Intel                             3 (1.0%)
   ST Microelectronics               3 (1.0%)
   Broadcom                          3 (1.0%)
   Rockchip                          3 (1.0%)
   Konsulko Group                    2 (0.7%)
   Socionext Inc.                    2 (0.7%)
   Wind River                        1 (0.3%)
   O.S. Systems                      1 (0.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         89 (46.6%)
   NXP                               26 (13.6%)
   Texas Instruments                 13 (6.8%)
   DENX Software Engineering         8 (4.2%)
   Intel                             5 (2.6%)
   Linaro                            5 (2.6%)
   Xilinx                            4 (2.1%)
   NVidia                            4 (2.1%)
   ST Microelectronics               4 (2.1%)
   Amarula Solutions                 3 (1.6%)
   Samsung                           3 (1.6%)
   Collabora Ltd.                    2 (1.0%)
   Toradex                           2 (1.0%)
   ARM                               2 (1.0%)
   General Electric                  2 (1.0%)
   Broadcom                          2 (1.0%)
   Rockchip                          2 (1.0%)
   Wind River                        2 (1.0%)
   Bootlin                           2 (1.0%)
   SUSE                              1 (0.5%)
   BayLibre SAS                      1 (0.5%)
   Konsulko Group                    1 (0.5%)
   Socionext Inc.                    1 (0.5%)
   O.S. Systems                      1 (0.5%)
   Google, Inc.                      1 (0.5%)
   AMD                               1 (0.5%)
   Pepperl+Fuchs                     1 (0.5%)
   Semihalf Embedded Systems         1 (0.5%)
   Siemens                           1 (0.5%)
   National Instruments              1 (0.5%)
   ================================  =====
