:orphan:

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

* Processed 2048 csets from 227 developers

* 31 employers found

* A total of 166886 lines added, 60806 removed (delta 106080)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       352 (17.2%)
   Heinrich Schuchardt               153 (7.5%)
   Marek Vasut                       112 (5.5%)
   Patrick Delaunay                  103 (5.0%)
   Tom Rini                          80 (3.9%)
   Jagan Teki                        74 (3.6%)
   Michal Simek                      48 (2.3%)
   Masahiro Yamada                   39 (1.9%)
   AKASHI Takahiro                   36 (1.8%)
   Stefan Roese                      34 (1.7%)
   Peng Fan                          34 (1.7%)
   Bin Meng                          27 (1.3%)
   Michael Walle                     25 (1.2%)
   Rayagonda Kokatanur               25 (1.2%)
   Walter Lozano                     24 (1.2%)
   Igor Opaniuk                      23 (1.1%)
   Suneel Garapati                   22 (1.1%)
   Ovidiu Panait                     22 (1.1%)
   Sean Anderson                     20 (1.0%)
   Vignesh Raghavendra               20 (1.0%)
   Rasmus Villemoes                  19 (0.9%)
   Andy Shevchenko                   19 (0.9%)
   Dave Gerlach                      19 (0.9%)
   Lokesh Vutla                      18 (0.9%)
   Adam Ford                         17 (0.8%)
   Anatolij Gustschin                17 (0.8%)
   Pali Rohár                        16 (0.8%)
   Frank Wunderlich                  16 (0.8%)
   Faiz Abbas                        16 (0.8%)
   Daniel Schwierzeck                14 (0.7%)
   Joao Marcos Costa                 14 (0.7%)
   Ye Li                             14 (0.7%)
   Stefan Bosch                      14 (0.7%)
   Heiko Stuebner                    13 (0.6%)
   Anastasiia Lukianenko             12 (0.6%)
   Dario Binacchi                    12 (0.6%)
   Kever Yang                        11 (0.5%)
   Christophe Kerello                11 (0.5%)
   Philippe Reynes                   11 (0.5%)
   Pragnesh Patel                    9 (0.4%)
   Marek Szyprowski                  9 (0.4%)
   Sagar Shrikant Kadam              9 (0.4%)
   Niel Fourie                       9 (0.4%)
   Xiaowei Bao                       9 (0.4%)
   Amit Singh Tomar                  9 (0.4%)
   Marcel Ziswiler                   9 (0.4%)
   T Karthik Reddy                   8 (0.4%)
   Lukasz Majewski                   8 (0.4%)
   Ibai Erkiaga                      8 (0.4%)
   Oleksandr Andrushchenko           8 (0.4%)
   Tero Kristo                       8 (0.4%)
   Fabio Estevam                     7 (0.3%)
   John Robertson                    7 (0.3%)
   Wolfgang Wallner                  7 (0.3%)
   Andre Przywara                    7 (0.3%)
   Dan Murphy                        7 (0.3%)
   Patrice Chotard                   6 (0.3%)
   Kuldeep Singh                     6 (0.3%)
   Chuanjia Liu                      6 (0.3%)
   Chia-Wei, Wang                    6 (0.3%)
   Patrick Oppenlander               6 (0.3%)
   Ilias Apalodimas                  6 (0.3%)
   Zhao Qiang                        6 (0.3%)
   Biwen Li                          6 (0.3%)
   Johannes Krottmayer               6 (0.3%)
   Shivamurthy Shastri               6 (0.3%)
   Nicolas Saenz Julienne            6 (0.3%)
   Denis 'GNUtoo' Carikli            6 (0.3%)
   Baruch Siach                      5 (0.2%)
   Chris Packham                     5 (0.2%)
   Ashok Reddy Soma                  5 (0.2%)
   Luka Kovacic                      5 (0.2%)
   David Woodhouse                   5 (0.2%)
   Ard Biesheuvel                    5 (0.2%)
   Sylwester Nawrocki                5 (0.2%)
   Simon Guinot                      5 (0.2%)
   Andre Heider                      4 (0.2%)
   Heiko Schocher                    4 (0.2%)
   Peter Robinson                    4 (0.2%)
   Hou Zhiqiang                      4 (0.2%)
   Hayes Wang                        4 (0.2%)
   Wig Cheng                         4 (0.2%)
   Andrew F. Davis                   4 (0.2%)
   Suman Anna                        4 (0.2%)
   Jan Kiszka                        4 (0.2%)
   Robert Marko                      4 (0.2%)
   Yangbo Lu                         4 (0.2%)
   Nicolas Boichat                   4 (0.2%)
   Suniel Mahesh                     4 (0.2%)
   Soeren Moch                       3 (0.1%)
   Neil Armstrong                    3 (0.1%)
   Wasim Khan                        3 (0.1%)
   Chaitanya Sakinam                 3 (0.1%)
   hui.song                          3 (0.1%)
   Anand Moon                        3 (0.1%)
   Jason Wessel                      3 (0.1%)
   Sherry Sun                        3 (0.1%)
   Roman Kovalivskyi                 3 (0.1%)
   Stephen Warren                    3 (0.1%)
   Bharat Gooty                      3 (0.1%)
   Jian Li                           3 (0.1%)
   Mike Looijmans                    3 (0.1%)
   Lad Prabhakar                     2 (0.1%)
   Madalin Bucur                     2 (0.1%)
   Meenakshi Aggarwal                2 (0.1%)
   Martin Kaistra                    2 (0.1%)
   Vladimir Vid                      2 (0.1%)
   Maxim Uvarov                      2 (0.1%)
   Philippe Schenker                 2 (0.1%)
   Konstantin Porotchkin             2 (0.1%)
   Reuben Dowle                      2 (0.1%)
   Ley Foon Tan                      2 (0.1%)
   John Chau                         2 (0.1%)
   Usama Arif                        2 (0.1%)
   Andrii Anisov                     2 (0.1%)
   Jway Lin                          2 (0.1%)
   Bernhard Messerklinger            2 (0.1%)
   Pramod Kumar                      2 (0.1%)
   MarkLee                           2 (0.1%)
   Jacky Bai                         2 (0.1%)
   Johannes Holland                  2 (0.1%)
   Yash Shah                         2 (0.1%)
   Christian Hewitt                  2 (0.1%)
   Luca Ceresoli                     2 (0.1%)
   Gregory CLEMENT                   2 (0.1%)
   Eugen Hristev                     2 (0.1%)
   Peter Ujfalusi                    2 (0.1%)
   Ravik Hasija                      2 (0.1%)
   Etienne Carriere                  1 (0.0%)
   Naoki Hayama                      1 (0.0%)
   Rick Chen                         1 (0.0%)
   Grigore Popescu                   1 (0.0%)
   Thirupathaiah Annapureddy         1 (0.0%)
   Ran Wang                          1 (0.0%)
   Dennis Gilmore                    1 (0.0%)
   Vladimir Oltean                   1 (0.0%)
   Mian Yousaf Kaukab                1 (0.0%)
   Mauro Condarelli                  1 (0.0%)
   Ralph Siemsen                     1 (0.0%)
   Thomas Fitzsimmons                1 (0.0%)
   Haibo Chen                        1 (0.0%)
   Denis Pynkin                      1 (0.0%)
   Miquel Raynal                     1 (0.0%)
   Thomas Petazzoni                  1 (0.0%)
   Marek Behún                       1 (0.0%)
   Manivannan Sadhasivam             1 (0.0%)
   Ramon Fried                       1 (0.0%)
   Robert Reither                    1 (0.0%)
   Mingming Lee                      1 (0.0%)
   Pedro Aguilar                     1 (0.0%)
   Matthias Brugger                  1 (0.0%)
   zachary                           1 (0.0%)
   Chee Hong Ang                     1 (0.0%)
   Gary Bisson                       1 (0.0%)
   yurii.pidhornyi                   1 (0.0%)
   Frank Li                          1 (0.0%)
   Jassi Brar                        1 (0.0%)
   Filip Brozovic                    1 (0.0%)
   Wilson Ding                       1 (0.0%)
   Evan Wang                         1 (0.0%)
   Ruben Di Battista                 1 (0.0%)
   Grygorii Tertychnyi               1 (0.0%)
   Aaron Williams                    1 (0.0%)
   Trommel, Kees (Contractor)        1 (0.0%)
   Chunfeng Yun                      1 (0.0%)
   Igor Lantsman                     1 (0.0%)
   Matthias Schiffer                 1 (0.0%)
   Stefano Babic                     1 (0.0%)
   Srinath Mannam                    1 (0.0%)
   Leo Liang                         1 (0.0%)
   Kishon Vijay Abraham I            1 (0.0%)
   Jean-Jacques Hiblot               1 (0.0%)
   Derald D. Woods                   1 (0.0%)
   Alex Nemirovsky                   1 (0.0%)
   Icenowy Zheng                     1 (0.0%)
   Brian Moyer                       1 (0.0%)
   Yan Liu                           1 (0.0%)
   Jonas Smedegaard                  1 (0.0%)
   Yann Gautier                      1 (0.0%)
   Doyle, Patrick                    1 (0.0%)
   Parthiban Nallathambi             1 (0.0%)
   Ivan Mikhaylov                    1 (0.0%)
   Vikas Gupta                       1 (0.0%)
   Abhishek Shah                     1 (0.0%)
   chenshuo                          1 (0.0%)
   Marcin Sloniewski                 1 (0.0%)
   Jakob Riepler                     1 (0.0%)
   Manish Tomar                      1 (0.0%)
   Yuantian Tang                     1 (0.0%)
   Udit Agarwal                      1 (0.0%)
   Era Tiwari                        1 (0.0%)
   Alex Bee                          1 (0.0%)
   Stefan Sørensen                   1 (0.0%)
   Holger Brunck                     1 (0.0%)
   Mylène Josserand                  1 (0.0%)
   Chin Liang See                    1 (0.0%)
   Thomas Schaefer                   1 (0.0%)
   Ilko Iliev                        1 (0.0%)
   Mo, Yuezhang                      1 (0.0%)
   Sébastien Szymanski               1 (0.0%)
   Oliver Chen                       1 (0.0%)
   Seung-Woo Kim                     1 (0.0%)
   Bhargav Shah                      1 (0.0%)
   Sven Auhagen                      1 (0.0%)
   Arthur Li                         1 (0.0%)
   Dhananjay Phadke                  1 (0.0%)
   Bruno Thomsen                     1 (0.0%)
   Pascal Vizeli                     1 (0.0%)
   Volodymyr Babchuk                 1 (0.0%)
   Fabrice Gasnier                   1 (0.0%)
   Christian Gmeiner                 1 (0.0%)
   Hugh Cole-Baker                   1 (0.0%)
   Marcin Juszkiewicz                1 (0.0%)
   Patrick van Gelder                1 (0.0%)
   Saeed Nowshadi                    1 (0.0%)
   Siva Durga Prasad Paladugu        1 (0.0%)
   Rajan Vaja                        1 (0.0%)
   Troy Kisky                        1 (0.0%)
   Chuanhua Han                      1 (0.0%)
   Harald Seiler                     1 (0.0%)
   Bin Liu                           1 (0.0%)
   Florin Chiculita                  1 (0.0%)
   Tom Warren                        1 (0.0%)
   Bryan O'Donoghue                  1 (0.0%)
   Krebs, Olaf                       1 (0.0%)
   Pratyush Yadav                    1 (0.0%)
   Marcus Comstedt                   1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Suneel Garapati                   36718 (17.7%)
   Jagan Teki                        34103 (16.4%)
   Stefan Bosch                      17981 (8.7%)
   Simon Glass                       16554 (8.0%)
   Tero Kristo                       12230 (5.9%)
   Tom Rini                          8307 (4.0%)
   Adam Ford                         5638 (2.7%)
   Oleksandr Andrushchenko           4905 (2.4%)
   Heinrich Schuchardt               4360 (2.1%)
   Marek Vasut                       4331 (2.1%)
   Dave Gerlach                      3826 (1.8%)
   Sean Anderson                     3710 (1.8%)
   Joao Marcos Costa                 2936 (1.4%)
   Patrick Delaunay                  2843 (1.4%)
   AKASHI Takahiro                   2396 (1.2%)
   Masahiro Yamada                   2348 (1.1%)
   Peng Fan                          1515 (0.7%)
   Vignesh Raghavendra               1474 (0.7%)
   Lokesh Vutla                      1458 (0.7%)
   Daniel Schwierzeck                1455 (0.7%)
   Andrii Anisov                     1442 (0.7%)
   Christophe Kerello                1428 (0.7%)
   Niel Fourie                       1404 (0.7%)
   Srinath Mannam                    1295 (0.6%)
   Anastasiia Lukianenko             1186 (0.6%)
   Rayagonda Kokatanur               1166 (0.6%)
   Mike Looijmans                    1165 (0.6%)
   Heiko Stuebner                    1095 (0.5%)
   Walter Lozano                     993 (0.5%)
   Xiaowei Bao                       987 (0.5%)
   Jassi Brar                        890 (0.4%)
   Parthiban Nallathambi             840 (0.4%)
   Igor Opaniuk                      814 (0.4%)
   Stefan Roese                      811 (0.4%)
   Bharat Gooty                      803 (0.4%)
   Michael Walle                     756 (0.4%)
   Peter Ujfalusi                    752 (0.4%)
   Frank Wunderlich                  734 (0.4%)
   Luka Kovacic                      719 (0.3%)
   Marcin Sloniewski                 709 (0.3%)
   Christian Hewitt                  708 (0.3%)
   Sylwester Nawrocki                666 (0.3%)
   Rasmus Villemoes                  656 (0.3%)
   Chuanjia Liu                      640 (0.3%)
   Reuben Dowle                      637 (0.3%)
   Ye Li                             509 (0.2%)
   Faiz Abbas                        485 (0.2%)
   Michal Simek                      484 (0.2%)
   Philippe Reynes                   483 (0.2%)
   Robert Marko                      477 (0.2%)
   Hayes Wang                        471 (0.2%)
   Arthur Li                         465 (0.2%)
   David Woodhouse                   462 (0.2%)
   Ilias Apalodimas                  430 (0.2%)
   Marek Szyprowski                  356 (0.2%)
   Jway Lin                          341 (0.2%)
   Chuanhua Han                      337 (0.2%)
   Zhao Qiang                        331 (0.2%)
   Aaron Williams                    318 (0.2%)
   Usama Arif                        317 (0.2%)
   Anatolij Gustschin                281 (0.1%)
   Bin Meng                          277 (0.1%)
   Sagar Shrikant Kadam              265 (0.1%)
   Ovidiu Panait                     254 (0.1%)
   Dan Murphy                        253 (0.1%)
   Nicolas Saenz Julienne            247 (0.1%)
   Hou Zhiqiang                      240 (0.1%)
   Vikas Gupta                       238 (0.1%)
   Denis 'GNUtoo' Carikli            235 (0.1%)
   Pali Rohár                        222 (0.1%)
   Yash Shah                         210 (0.1%)
   Amit Singh Tomar                  200 (0.1%)
   Sherry Sun                        195 (0.1%)
   Marcel Ziswiler                   193 (0.1%)
   T Karthik Reddy                   184 (0.1%)
   Lukasz Majewski                   179 (0.1%)
   Oliver Chen                       177 (0.1%)
   Jan Kiszka                        175 (0.1%)
   Ibai Erkiaga                      169 (0.1%)
   Andy Shevchenko                   160 (0.1%)
   Roman Kovalivskyi                 152 (0.1%)
   Simon Guinot                      149 (0.1%)
   Dario Binacchi                    147 (0.1%)
   John Chau                         141 (0.1%)
   Shivamurthy Shastri               137 (0.1%)
   Bhargav Shah                      130 (0.1%)
   Yangbo Lu                         129 (0.1%)
   John Robertson                    116 (0.1%)
   Pramod Kumar                      108 (0.1%)
   Kuldeep Singh                     101 (0.0%)
   Biwen Li                          97 (0.0%)
   Heiko Schocher                    97 (0.0%)
   Dennis Gilmore                    93 (0.0%)
   Chia-Wei, Wang                    88 (0.0%)
   Ramon Fried                       86 (0.0%)
   Filip Brozovic                    85 (0.0%)
   Patrice Chotard                   84 (0.0%)
   Patrick Oppenlander               79 (0.0%)
   Evan Wang                         78 (0.0%)
   Derald D. Woods                   76 (0.0%)
   Andre Przywara                    74 (0.0%)
   Ard Biesheuvel                    74 (0.0%)
   Bernhard Messerklinger            73 (0.0%)
   Manish Tomar                      73 (0.0%)
   Johannes Krottmayer               65 (0.0%)
   Andre Heider                      65 (0.0%)
   Pascal Vizeli                     63 (0.0%)
   hui.song                          61 (0.0%)
   Ravik Hasija                      61 (0.0%)
   Nicolas Boichat                   60 (0.0%)
   Pragnesh Patel                    58 (0.0%)
   Wig Cheng                         58 (0.0%)
   Vladimir Oltean                   58 (0.0%)
   Dhananjay Phadke                  57 (0.0%)
   Kever Yang                        56 (0.0%)
   Suniel Mahesh                     48 (0.0%)
   Neil Armstrong                    47 (0.0%)
   Abhishek Shah                     45 (0.0%)
   Andrew F. Davis                   41 (0.0%)
   Johannes Holland                  39 (0.0%)
   Ran Wang                          37 (0.0%)
   Peter Robinson                    35 (0.0%)
   Chris Packham                     34 (0.0%)
   Sven Auhagen                      34 (0.0%)
   Wasim Khan                        32 (0.0%)
   Fabio Estevam                     30 (0.0%)
   Ralph Siemsen                     28 (0.0%)
   Bin Liu                           28 (0.0%)
   Baruch Siach                      25 (0.0%)
   Anand Moon                        24 (0.0%)
   Sébastien Szymanski               23 (0.0%)
   Wolfgang Wallner                  22 (0.0%)
   Wilson Ding                       21 (0.0%)
   Troy Kisky                        21 (0.0%)
   Chee Hong Ang                     20 (0.0%)
   Ashok Reddy Soma                  19 (0.0%)
   Ley Foon Tan                      19 (0.0%)
   zachary                           19 (0.0%)
   Ivan Mikhaylov                    19 (0.0%)
   Suman Anna                        17 (0.0%)
   Madalin Bucur                     17 (0.0%)
   Chaitanya Sakinam                 16 (0.0%)
   Florin Chiculita                  16 (0.0%)
   Tom Warren                        16 (0.0%)
   Bryan O'Donoghue                  16 (0.0%)
   Jason Wessel                      15 (0.0%)
   Lad Prabhakar                     15 (0.0%)
   Gregory CLEMENT                   15 (0.0%)
   Yuantian Tang                     15 (0.0%)
   Mian Yousaf Kaukab                14 (0.0%)
   Jonas Smedegaard                  14 (0.0%)
   Fabrice Gasnier                   14 (0.0%)
   Igor Lantsman                     13 (0.0%)
   chenshuo                          13 (0.0%)
   Mo, Yuezhang                      13 (0.0%)
   Philippe Schenker                 12 (0.0%)
   Eugen Hristev                     12 (0.0%)
   Jakob Riepler                     12 (0.0%)
   MarkLee                           11 (0.0%)
   Mylène Josserand                  11 (0.0%)
   Chin Liang See                    11 (0.0%)
   Siva Durga Prasad Paladugu        11 (0.0%)
   Stephen Warren                    10 (0.0%)
   Meenakshi Aggarwal                10 (0.0%)
   Yan Liu                           10 (0.0%)
   Krebs, Olaf                       10 (0.0%)
   Grygorii Tertychnyi               9 (0.0%)
   Soeren Moch                       8 (0.0%)
   Etienne Carriere                  8 (0.0%)
   Stefan Sørensen                   8 (0.0%)
   Volodymyr Babchuk                 8 (0.0%)
   Luca Ceresoli                     7 (0.0%)
   Jean-Jacques Hiblot               7 (0.0%)
   Rajan Vaja                        7 (0.0%)
   Haibo Chen                        6 (0.0%)
   Ruben Di Battista                 6 (0.0%)
   Vladimir Vid                      5 (0.0%)
   Mauro Condarelli                  5 (0.0%)
   Pedro Aguilar                     5 (0.0%)
   Brian Moyer                       5 (0.0%)
   Udit Agarwal                      5 (0.0%)
   Holger Brunck                     5 (0.0%)
   Saeed Nowshadi                    5 (0.0%)
   Marek Behún                       4 (0.0%)
   Manivannan Sadhasivam             4 (0.0%)
   Kishon Vijay Abraham I            4 (0.0%)
   Icenowy Zheng                     4 (0.0%)
   Yann Gautier                      4 (0.0%)
   Alex Bee                          4 (0.0%)
   Pratyush Yadav                    4 (0.0%)
   Jian Li                           3 (0.0%)
   Maxim Uvarov                      3 (0.0%)
   Robert Reither                    3 (0.0%)
   Mingming Lee                      3 (0.0%)
   Chunfeng Yun                      3 (0.0%)
   Stefano Babic                     3 (0.0%)
   Alex Nemirovsky                   3 (0.0%)
   Bruno Thomsen                     3 (0.0%)
   Christian Gmeiner                 3 (0.0%)
   Marcus Comstedt                   3 (0.0%)
   Martin Kaistra                    2 (0.0%)
   Konstantin Porotchkin             2 (0.0%)
   Jacky Bai                         2 (0.0%)
   Rick Chen                         2 (0.0%)
   Grigore Popescu                   2 (0.0%)
   Thomas Fitzsimmons                2 (0.0%)
   Gary Bisson                       2 (0.0%)
   yurii.pidhornyi                   2 (0.0%)
   Frank Li                          2 (0.0%)
   Trommel, Kees (Contractor)        2 (0.0%)
   Leo Liang                         2 (0.0%)
   Marcin Juszkiewicz                2 (0.0%)
   Patrick van Gelder                2 (0.0%)
   Harald Seiler                     2 (0.0%)
   Naoki Hayama                      1 (0.0%)
   Thirupathaiah Annapureddy         1 (0.0%)
   Denis Pynkin                      1 (0.0%)
   Miquel Raynal                     1 (0.0%)
   Thomas Petazzoni                  1 (0.0%)
   Matthias Brugger                  1 (0.0%)
   Matthias Schiffer                 1 (0.0%)
   Doyle, Patrick                    1 (0.0%)
   Era Tiwari                        1 (0.0%)
   Thomas Schaefer                   1 (0.0%)
   Ilko Iliev                        1 (0.0%)
   Seung-Woo Kim                     1 (0.0%)
   Hugh Cole-Baker                   1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Jagan Teki                        30007 (49.3%)
   Tom Rini                          2437 (4.0%)
   Andy Shevchenko                   114 (0.2%)
   Bhargav Shah                      111 (0.2%)
   Wig Cheng                         47 (0.1%)
   Derald D. Woods                   33 (0.1%)
   Ibai Erkiaga                      24 (0.0%)
   Sébastien Szymanski               20 (0.0%)
   Mian Yousaf Kaukab                14 (0.0%)
   Lad Prabhakar                     13 (0.0%)
   Gregory CLEMENT                   13 (0.0%)
   Jonas Smedegaard                  13 (0.0%)
   Jakob Riepler                     12 (0.0%)
   Ashok Reddy Soma                  7 (0.0%)
   Yangbo Lu                         6 (0.0%)
   Rajan Vaja                        6 (0.0%)
   Fabio Estevam                     5 (0.0%)
   zachary                           5 (0.0%)
   Grygorii Tertychnyi               5 (0.0%)
   Chaitanya Sakinam                 4 (0.0%)
   Chin Liang See                    3 (0.0%)
   Masahiro Yamada                   2 (0.0%)
   Alex Bee                          2 (0.0%)
   Christian Gmeiner                 2 (0.0%)
   Harald Seiler                     2 (0.0%)
   Baruch Siach                      1 (0.0%)
   Soeren Moch                       1 (0.0%)
   Marcus Comstedt                   1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Michal Simek                      30 (11.9%)
   Peng Fan                          19 (7.5%)
   Matthias Brugger                  16 (6.3%)
   Tom Rini                          15 (6.0%)
   Hou Zhiqiang                      13 (5.2%)
   Bin Meng                          11 (4.4%)
   Anastasiia Lukianenko             11 (4.4%)
   Priyanka Jain                     10 (4.0%)
   Oleksandr Andrushchenko           9 (3.6%)
   Rayagonda Kokatanur               8 (3.2%)
   Heinrich Schuchardt               7 (2.8%)
   Jagan Teki                        5 (2.0%)
   Henry Yen                         5 (2.0%)
   Neil Armstrong                    5 (2.0%)
   Stefan Roese                      5 (2.0%)
   Simon Glass                       5 (2.0%)
   Aaron Williams                    4 (1.6%)
   Sylwester Nawrocki                4 (1.6%)
   Bharat Gooty                      4 (1.6%)
   Alex Nemirovsky                   3 (1.2%)
   Siva Durga Prasad Paladugu        3 (1.2%)
   Kever Yang                        3 (1.2%)
   Andre Heider                      3 (1.2%)
   Ye Li                             3 (1.2%)
   Lokesh Vutla                      3 (1.2%)
   Patrick Delaunay                  3 (1.2%)
   Masahiro Yamada                   2 (0.8%)
   Rajesh Ravi                       2 (0.8%)
   Radu Bacrau                       2 (0.8%)
   Suman Anna                        2 (0.8%)
   Pali Rohár                        2 (0.8%)
   Vignesh Raghavendra               2 (0.8%)
   Tero Kristo                       2 (0.8%)
   Ashok Reddy Soma                  1 (0.4%)
   Jacky Bai                         1 (0.4%)
   Thirupathaiah Annapureddy         1 (0.4%)
   Ioana Ciornei                     1 (0.4%)
   Heiko Thiery                      1 (0.4%)
   Ken Ma                            1 (0.4%)
   Roman Stratiienko                 1 (0.4%)
   Vishal Mahaveer                   1 (0.4%)
   Sheetal Tigadoli                  1 (0.4%)
   Vladimir Olovyannikov             1 (0.4%)
   Ashish Kumar                      1 (0.4%)
   Anji J                            1 (0.4%)
   Mark Adler                        1 (0.4%)
   Silvano di Ninno                  1 (0.4%)
   Roger Quadros                     1 (0.4%)
   Konstantin Porotchkin             1 (0.4%)
   Jean-Jacques Hiblot               1 (0.4%)
   Biwen Li                          1 (0.4%)
   Ley Foon Tan                      1 (0.4%)
   Andrew F. Davis                   1 (0.4%)
   Suniel Mahesh                     1 (0.4%)
   Patrice Chotard                   1 (0.4%)
   Pramod Kumar                      1 (0.4%)
   Vikas Gupta                       1 (0.4%)
   Nicolas Saenz Julienne            1 (0.4%)
   Marek Szyprowski                  1 (0.4%)
   Xiaowei Bao                       1 (0.4%)
   Faiz Abbas                        1 (0.4%)
   Daniel Schwierzeck                1 (0.4%)
   Andrii Anisov                     1 (0.4%)
   Dave Gerlach                      1 (0.4%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          276 (21.7%)
   Simon Glass                       262 (20.6%)
   Wolfgang Wallner                  92 (7.2%)
   Patrice Chotard                   85 (6.7%)
   Priyanka Jain                     80 (6.3%)
   Stefan Roese                      63 (5.0%)
   Kever Yang                        56 (4.4%)
   Tom Rini                          32 (2.5%)
   Heiko Schocher                    28 (2.2%)
   Pragnesh Patel                    25 (2.0%)
   Anatolij Gustschin                23 (1.8%)
   Rick Chen                         22 (1.7%)
   Heinrich Schuchardt               20 (1.6%)
   Peng Fan                          10 (0.8%)
   Suman Anna                        10 (0.8%)
   Ye Li                             9 (0.7%)
   Fabio Estevam                     9 (0.7%)
   Sean Anderson                     9 (0.7%)
   Patrick Delaunay                  8 (0.6%)
   Konstantin Porotchkin             7 (0.6%)
   Linus Walleij                     7 (0.6%)
   Ramon Fried                       7 (0.6%)
   Nicolas Saenz Julienne            6 (0.5%)
   Daniel Schwierzeck                6 (0.5%)
   Stefano Babic                     6 (0.5%)
   Jagan Teki                        5 (0.4%)
   Grygorii Strashko                 5 (0.4%)
   Leo Liang                         5 (0.4%)
   Igor Opaniuk                      5 (0.4%)
   Chunfeng Yun                      4 (0.3%)
   Horia Geantă                      4 (0.3%)
   Andre Przywara                    4 (0.3%)
   Lukasz Majewski                   4 (0.3%)
   Philippe Reynes                   4 (0.3%)
   Marek Vasut                       4 (0.3%)
   Michal Simek                      3 (0.2%)
   Lokesh Vutla                      3 (0.2%)
   Soeren Moch                       3 (0.2%)
   Jaehoon Chung                     3 (0.2%)
   Igal Liberman                     3 (0.2%)
   Michael Trimarchi                 3 (0.2%)
   Philipp Tomsich                   3 (0.2%)
   Neil Armstrong                    2 (0.2%)
   Andre Heider                      2 (0.2%)
   Ashish Kumar                      2 (0.2%)
   Andy Shevchenko                   2 (0.2%)
   Aiden Park                        2 (0.2%)
   Atish Patra                       2 (0.2%)
   Luca Ceresoli                     2 (0.2%)
   Manivannan Sadhasivam             2 (0.2%)
   Kuldeep Singh                     2 (0.2%)
   Rayagonda Kokatanur               1 (0.1%)
   Sylwester Nawrocki                1 (0.1%)
   Pali Rohár                        1 (0.1%)
   Jacky Bai                         1 (0.1%)
   Ley Foon Tan                      1 (0.1%)
   Faiz Abbas                        1 (0.1%)
   Biju Das                          1 (0.1%)
   Sughosh Ganu                      1 (0.1%)
   Grzegorz Jaszczyk                 1 (0.1%)
   Stefan Chulski                    1 (0.1%)
   Jun Li                            1 (0.1%)
   Hua Jing                          1 (0.1%)
   Marcin Niestroj                   1 (0.1%)
   Eric Nelson                       1 (0.1%)
   Richard Weinberger                1 (0.1%)
   Frieder Schrempf                  1 (0.1%)
   Kurt Kanzenbach                   1 (0.1%)
   Julius Werner                     1 (0.1%)
   Andy.Wu                           1 (0.1%)
   Julien Grall                      1 (0.1%)
   Yegor Yefremov                    1 (0.1%)
   Alex Marginean                    1 (0.1%)
   Jian Li                           1 (0.1%)
   Stephen Warren                    1 (0.1%)
   Chris Packham                     1 (0.1%)
   Madalin Bucur                     1 (0.1%)
   Vladimir Oltean                   1 (0.1%)
   Ilias Apalodimas                  1 (0.1%)
   Walter Lozano                     1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Bin Meng                          36 (27.7%)
   Andre Heider                      13 (10.0%)
   Stefan Roese                      8 (6.2%)
   Pragnesh Patel                    8 (6.2%)
   Wolfgang Wallner                  4 (3.1%)
   Angelo Dureghello                 4 (3.1%)
   Anand Moon                        4 (3.1%)
   Heinrich Schuchardt               3 (2.3%)
   Soeren Moch                       3 (2.3%)
   Masahiro Yamada                   3 (2.3%)
   iSoC Platform CI                  3 (2.3%)
   Tom Rini                          2 (1.5%)
   Leo Liang                         2 (1.5%)
   Philippe Reynes                   2 (1.5%)
   Michal Simek                      2 (1.5%)
   Pali Rohár                        2 (1.5%)
   Suniel Mahesh                     2 (1.5%)
   Petr Tesarik                      2 (1.5%)
   Frank Wunderlich                  2 (1.5%)
   Adam Ford                         2 (1.5%)
   Anatolij Gustschin                1 (0.8%)
   Rick Chen                         1 (0.8%)
   Sean Anderson                     1 (0.8%)
   Andre Przywara                    1 (0.8%)
   Igal Liberman                     1 (0.8%)
   Faiz Abbas                        1 (0.8%)
   Biju Das                          1 (0.8%)
   Hua Jing                          1 (0.8%)
   Alex Marginean                    1 (0.8%)
   Walter Lozano                     1 (0.8%)
   Heiko Thiery                      1 (0.8%)
   Silvano di Ninno                  1 (0.8%)
   Derald D. Woods                   1 (0.8%)
   Baruch Siach                      1 (0.8%)
   Marek Behún                       1 (0.8%)
   Scott K Logan                     1 (0.8%)
   Dmitry N. Kolesnikov              1 (0.8%)
   Ji Luo                            1 (0.8%)
   Aníbal Limón                      1 (0.8%)
   Matt Porter                       1 (0.8%)
   Vagrant Cascadian                 1 (0.8%)
   Guillaume La Roque                1 (0.8%)
   Bartosz Golaszewski               1 (0.8%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       26 (20.0%)
   Pali Rohár                        10 (7.7%)
   Heinrich Schuchardt               9 (6.9%)
   Daniel Schwierzeck                8 (6.2%)
   Bin Meng                          7 (5.4%)
   Pragnesh Patel                    6 (4.6%)
   Jagan Teki                        6 (4.6%)
   Stefan Roese                      4 (3.1%)
   Michael Walle                     4 (3.1%)
   Tom Rini                          3 (2.3%)
   Anatolij Gustschin                3 (2.3%)
   Neil Armstrong                    3 (2.3%)
   Faiz Abbas                        2 (1.5%)
   Marek Behún                       2 (1.5%)
   Konstantin Porotchkin             2 (1.5%)
   Ley Foon Tan                      2 (1.5%)
   zachary                           2 (1.5%)
   Jason Wessel                      2 (1.5%)
   Wilson Ding                       2 (1.5%)
   Ovidiu Panait                     2 (1.5%)
   Evan Wang                         2 (1.5%)
   Sagar Shrikant Kadam              2 (1.5%)
   Christian Hewitt                  2 (1.5%)
   Andre Heider                      1 (0.8%)
   Wolfgang Wallner                  1 (0.8%)
   Rick Chen                         1 (0.8%)
   Walter Lozano                     1 (0.8%)
   Peng Fan                          1 (0.8%)
   Fabio Estevam                     1 (0.8%)
   Lukasz Majewski                   1 (0.8%)
   Marek Vasut                       1 (0.8%)
   Manivannan Sadhasivam             1 (0.8%)
   Chris Packham                     1 (0.8%)
   Andrew F. Davis                   1 (0.8%)
   Troy Kisky                        1 (0.8%)
   Hugh Cole-Baker                   1 (0.8%)
   Haibo Chen                        1 (0.8%)
   Volodymyr Babchuk                 1 (0.8%)
   Pascal Vizeli                     1 (0.8%)
   David Woodhouse                   1 (0.8%)
   Chuanjia Liu                      1 (0.8%)
   AKASHI Takahiro                   1 (0.8%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Stefan Bosch                      5 (20.0%)
   Tom Rini                          4 (16.0%)
   Heinrich Schuchardt               2 (8.0%)
   Scott K Logan                     2 (8.0%)
   Pali Rohár                        1 (4.0%)
   Andre Heider                      1 (4.0%)
   Soeren Moch                       1 (4.0%)
   Sean Anderson                     1 (4.0%)
   Dmitry N. Kolesnikov              1 (4.0%)
   Matt Porter                       1 (4.0%)
   Vagrant Cascadian                 1 (4.0%)
   Oleksandr Andrushchenko           1 (4.0%)
   Tian Yuanhao                      1 (4.0%)
   Goran Marinkovic                  1 (4.0%)
   Igor Lantsman                     1 (4.0%)
   Dennis Gilmore                    1 (4.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       5 (20.0%)
   Heinrich Schuchardt               4 (16.0%)
   Fabio Estevam                     3 (12.0%)
   Tom Rini                          2 (8.0%)
   Andre Heider                      2 (8.0%)
   Igor Lantsman                     1 (4.0%)
   Anatolij Gustschin                1 (4.0%)
   Neil Armstrong                    1 (4.0%)
   Volodymyr Babchuk                 1 (4.0%)
   AKASHI Takahiro                   1 (4.0%)
   Michal Simek                      1 (4.0%)
   Baruch Siach                      1 (4.0%)
   Kever Yang                        1 (4.0%)
   Robert Reither                    1 (4.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         641 (31.3%)
   Google, Inc.                      352 (17.2%)
   DENX Software Engineering         187 (9.1%)
   ST Microelectronics               122 (6.0%)
   NXP                               116 (5.7%)
   Texas Instruments                 103 (5.0%)
   Konsulko Group                    80 (3.9%)
   Amarula Solutions                 78 (3.8%)
   AMD                               48 (2.3%)
   Linaro                            48 (2.3%)
   Socionext Inc.                    39 (1.9%)
   Broadcom                          33 (1.6%)
   Marvell                           28 (1.4%)
   Collabora Ltd.                    26 (1.3%)
   Wind River                        25 (1.2%)
   Xilinx                            24 (1.2%)
   Intel                             23 (1.1%)
   Bootlin                           17 (0.8%)
   Samsung                           15 (0.7%)
   Rockchip                          11 (0.5%)
   ARM                               9 (0.4%)
   NVidia                            4 (0.2%)
   Siemens                           4 (0.2%)
   BayLibre SAS                      3 (0.1%)
   Boundary Devices                  2 (0.1%)
   linutronix                        2 (0.1%)
   Renesas Electronics               2 (0.1%)
   SUSE                              2 (0.1%)
   Toradex                           2 (0.1%)
   Sony                              1 (0.0%)
   Ronetix                           1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         57323 (27.6%)
   Marvell                           37156 (17.9%)
   Amarula Solutions                 34151 (16.5%)
   Texas Instruments                 20589 (9.9%)
   Google, Inc.                      16554 (8.0%)
   Konsulko Group                    8307 (4.0%)
   DENX Software Engineering         7124 (3.4%)
   NXP                               4974 (2.4%)
   ST Microelectronics               4373 (2.1%)
   Linaro                            3759 (1.8%)
   Broadcom                          3655 (1.8%)
   Bootlin                           2935 (1.4%)
   Socionext Inc.                    2348 (1.1%)
   Samsung                           1023 (0.5%)
   Collabora Ltd.                    1005 (0.5%)
   AMD                               484 (0.2%)
   Xilinx                            395 (0.2%)
   ARM                               391 (0.2%)
   Wind River                        269 (0.1%)
   Intel                             210 (0.1%)
   Siemens                           175 (0.1%)
   Rockchip                          56 (0.0%)
   BayLibre SAS                      47 (0.0%)
   NVidia                            26 (0.0%)
   Boundary Devices                  23 (0.0%)
   Renesas Electronics               15 (0.0%)
   SUSE                              15 (0.0%)
   Sony                              13 (0.0%)
   Toradex                           12 (0.0%)
   linutronix                        2 (0.0%)
   Ronetix                           1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         57 (22.6%)
   NXP                               53 (21.0%)
   Xilinx                            34 (13.5%)
   Broadcom                          17 (6.7%)
   SUSE                              17 (6.7%)
   Texas Instruments                 15 (6.0%)
   Konsulko Group                    15 (6.0%)
   Marvell                           6 (2.4%)
   Amarula Solutions                 6 (2.4%)
   Google, Inc.                      5 (2.0%)
   DENX Software Engineering         5 (2.0%)
   Samsung                           5 (2.0%)
   BayLibre SAS                      5 (2.0%)
   ST Microelectronics               4 (1.6%)
   Intel                             3 (1.2%)
   Rockchip                          3 (1.2%)
   Socionext Inc.                    2 (0.8%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         109 (47.8%)
   NXP                               28 (12.3%)
   Texas Instruments                 14 (6.1%)
   DENX Software Engineering         9 (3.9%)
   Linaro                            7 (3.1%)
   Xilinx                            6 (2.6%)
   Broadcom                          6 (2.6%)
   Marvell                           6 (2.6%)
   ST Microelectronics               5 (2.2%)
   Intel                             4 (1.8%)
   Bootlin                           4 (1.8%)
   Samsung                           3 (1.3%)
   Collabora Ltd.                    3 (1.3%)
   SUSE                              2 (0.9%)
   Amarula Solutions                 2 (0.9%)
   ARM                               2 (0.9%)
   Wind River                        2 (0.9%)
   NVidia                            2 (0.9%)
   Boundary Devices                  2 (0.9%)
   Konsulko Group                    1 (0.4%)
   Google, Inc.                      1 (0.4%)
   BayLibre SAS                      1 (0.4%)
   Rockchip                          1 (0.4%)
   Socionext Inc.                    1 (0.4%)
   AMD                               1 (0.4%)
   Siemens                           1 (0.4%)
   Renesas Electronics               1 (0.4%)
   Sony                              1 (0.4%)
   Toradex                           1 (0.4%)
   linutronix                        1 (0.4%)
   Ronetix                           1 (0.4%)
   ================================  =====
