diff --git a/components/engine/.mailmap b/components/engine/.mailmap index 928e8177d2..1078d5456c 100644 --- a/components/engine/.mailmap +++ b/components/engine/.mailmap @@ -6,323 +6,70 @@ # # For explanation on this file format: man git-shortlog -Patrick Stapleton -Shishir Mahajan -Erwin van der Koogh -Ahmed Kamal -Alessandro Boch -Tejesh Mehta -Cristian Staretu -Cristian Staretu -Cristian Staretu -Marcus Linke -Aleksandrs Fadins -Christopher Latham -Hu Keping -Wayne Chang -Chen Chao -Daehyeok Mun - - - - - - -Guillaume J. Charmes - - - - - -Thatcher Peskens -Thatcher Peskens -Thatcher Peskens dhrp -Jérôme Petazzoni -Jérôme Petazzoni -Jérôme Petazzoni -Joffrey F -Joffrey F -Joffrey F -Kir Kolyshkin -Kir Kolyshkin -Lorenzo Fontana +<21551195@zju.edu.cn> -Tim Terhorst -Andy Smith - - - - - - - - - -Walter Stanish - -Roberto Hashioka -Konstantin Pelykh -David Sissitka -Nolan Darilek - -Benoit Chesneau -Jordan Arentsen -Daniel Garcia -Miguel Angel Fernández -Bhiraj Butala -Faiz Khan -Victor Lyuboslavsky -Jean-Baptiste Barth -Matthew Mueller - -Shih-Yuan Lee -Daniel Mizyrycki root -Jean-Baptiste Dalido - - - - - - - - - - - - - - -Sven Dowideit -Sven Dowideit -Sven Dowideit -Sven Dowideit <¨SvenDowideit@home.org.au¨> -Sven Dowideit -Sven Dowideit -Sven Dowideit - -Akihiro Matsushima - -Alexander Morozov -Alexander Morozov - -O.S. Tezer - -Roberto G. Hashioka - - - - - -Sridhar Ratnakumar -Sridhar Ratnakumar -Liang-Chi Hsieh Aaron L. Xu +Abhinandan Prativadi +Adrien Gallouët +Ahmed Kamal +Ahmet Alp Balkan +AJ Bowen +AJ Bowen +Akihiro Matsushima +Akihiro Suda Aleksa Sarai Aleksa Sarai Aleksa Sarai -Will Weaver -Timothy Hobbs -Nathan LeClaire -Nathan LeClaire - - - - -Matthew Heon - - - - -Francisco Carriedo - - - - -Brian Goff - -Erica Windisch -Erica Windisch - -Hollie Teal - - - -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle -Jessica Frazelle - - - -Sebastiaan van Stijn -Sebastiaan van Stijn -Thomas LEVEIL Thomas LÉVEIL - - -Antonio Murdaca -Antonio Murdaca -Antonio Murdaca -Antonio Murdaca -Antonio Murdaca -Darren Shepherd -Deshi Xiao -Deshi Xiao -Doug Davis -Giampaolo Mancini -Hakan Özler -K. Heller -Jacob Atzen -Jeff Nickoloff -Jérôme Petazzoni -John Harris -John Howard (VM) -John Howard (VM) -John Howard (VM) -John Howard (VM) -John Howard (VM) -Kevin Feyrer -Liao Qingwei -Luke Marsden -Madhan Raj Mookkandy -Madhu Venugopal -Mageee <21521230.zju.edu.cn> -Mansi Nahar -Mansi Nahar -Markus Kortlang -Mary Anthony -Mary Anthony moxiegirl -Mary Anthony -Matt Schurenko -Matt Williams -Matt Williams -Michael Spetsiotis -Nik Nyby -Ouyang Liduo -Paul Liljenberg -Pawel Konczalski -Philip Alexander Etling -Peter Jaffe -AJ Bowen soulshake -AJ Bowen soulshake -Tibor Vass -Tibor Vass -Vincent Bernat -Yestin Sun -bin liu -John Howard (VM) jhowardmsft -Ankush Agarwal -Tangi COLIN tangicolin +Aleksandrs Fadins +Alessandro Boch +Alex Chen +Alex Ellis +Alexander Larsson +Alexander Morozov +Alexander Morozov +Alexandre Beslic +Alicia Lauerman Allen Sun Allen Sun -Adrien Gallouët - +Andrew Weiss +Andrew Weiss +André Martins +Andy Rothfusz +Andy Smith +Ankush Agarwal +Antonio Murdaca +Antonio Murdaca +Antonio Murdaca +Antonio Murdaca +Antonio Murdaca Anuj Bahuguna +Anuj Bahuguna Anusha Ragunathan -Avi Miller -Brent Salisbury -Chander G -Chun Chen -Ying Li -Daehyeok Mun - -Daniel, Dao Quang Minh -Daniel Nephin -Dave Tucker -Doug Tangren -Euan Kemp -Frederick F. Kautz IV -Fengtu Wang -Ben Golub -Harold Cooper -hsinko <21551195@zju.edu.cn> -Josh Hawn -Justin Cormack - - -Kamil Domański -Lei Jitang - -Linus Heckemann - -Lynda O'Leary - -Marianna Tessel -Michael Huettermann -Moysés Borges - -Nigel Poulton -Qiang Huang - -Boaz Shuster -Shuwei Hao - -Soshi Katsuta - -Stefan Berger - -Stefan J. Wernli -Stephen Day - -Toli Kuznets -Tristan Carel - - - -Vincent Demeester -Vishnu Kannan -xlgao-zju xlgao -Yu Changchun y00277921 -Yu Changchun - - - - -Hao Shu Wei - - - - - - - -Shengbo Song mYmNeo -Shengbo Song - -Sylvain Bellemare - - - Arnaud Porterie - -David M. Karr - - - -Kenfe-Mickaël Laventure - - - - - -Runshen Zhu -Tom Barlow -Tom Sweeney -Xianlu Bird -Dan Feldman -Harry Zhang -Harry Zhang -Harry Zhang -Harry Zhang -Alex Chen alexchen -Alex Ellis -Alicia Lauerman +Arnaud Porterie +Arthur Gautier +Avi Miller Ben Bonnefoy +Ben Golub +Ben Toews +Benoit Chesneau +Bhiraj Butala Bhumika Bayani +Bilal Amarni +Bin Liu +Bin Liu Bingshen Wang +Boaz Shuster +Brandon Philips +Brandon Philips +Brent Salisbury +Brian Goff +Brian Goff +Brian Goff +Chander Govindarajan +Chao Wang +Charles Hooper +Chen Chao Chen Chuanliang Chen Mingjie Chen Qiu @@ -330,93 +77,365 @@ Chen Qiu <21321229@zju.edu.cn> Chris Dias Chris McKinnel Christopher Biscardi +Christopher Latham +Chun Chen +Corbin Coleman +Cristian Staretu +Cristian Staretu +Cristian Staretu CUI Wei cuiwei13 +Daehyeok Mun +Daehyeok Mun +Daehyeok Mun +Dan Feldman +Daniel Dao +Daniel Dao +Daniel Garcia +Daniel Gasienica Daniel Grunwell Daniel J Walsh +Daniel Mizyrycki +Daniel Mizyrycki +Daniel Mizyrycki +Daniel Nephin +Daniel Norberg +Danny Yates +Darren Shepherd Dattatraya Kumbhar +Dave Henderson +Dave Tucker +David M. Karr David Sheets +David Sissitka +Deshi Xiao +Deshi Xiao Diego Siqueira -Elan Ruusamäe +Diogo Monica +Dominik Honnef +Doug Davis +Doug Tangren Elan Ruusamäe +Elan Ruusamäe Eric G. Noriega +Eric Hanchrow +Erica Windisch +Erica Windisch +Erik Hollensbe +Erwin van der Koogh +Euan Kemp Eugen Krizo -Evgeny Shmarnev Evelyn Xu +Evgeny Shmarnev +Faiz Khan Felix Ruess +Feng Yan +Fengtu Wang +Francisco Carriedo +Frank Rosquin +Frederick F. Kautz IV Gabriel Nicolas Avellaneda Gang Qiao <1373319223@qq.com> George Kontridze +Gerwim Feiken +Giampaolo Mancini Gopikannan Venugopalsamy Gou Rao Greg Stephens +Guillaume J. Charmes +Guillaume J. Charmes +Guillaume J. Charmes +Guillaume J. Charmes +Guillaume J. Charmes +Gurjeet Singh Gustav Sinder +Hakan Özler +Hao Shu Wei +Hao Shu Wei +Harald Albers +Harold Cooper +Harry Zhang +Harry Zhang +Harry Zhang +Harry Zhang Harshal Patil Helen Xie -Hyzhou Zhy <1187766782@qq.com> +Hollie Teal +Hollie Teal +Hollie Teal +Hu Keping +Huu Nguyen Hyzhou Zhy +Hyzhou Zhy <1187766782@qq.com> +Jack Laxson +Jacob Atzen Jacob Tomlinson +Jean-Baptiste Barth +Jean-Baptiste Dalido +Jean-Tiare Le Bigot +Jeff Anderson +Jeff Nickoloff +Jeroen Franse +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jessica Frazelle +Jim Galasyn Jiuyue Ma +Joffrey F +Joffrey F +Joffrey F +Johan Euphrosine +John Harris +John Howard (VM) +John Howard (VM) +John Howard (VM) +John Howard (VM) +John Howard (VM) John Stephens +Jordan Arentsen +Jordan Jennings +Jorit Kleine-Möllhoff Jose Diaz-Gonzalez Josh Eveleth +Josh Hawn +Josh Horwitz Josh Soref Josh Wilson -Jim Galasyn +Joyce Jang +Julien Bordellier +Julien Bordellier +Justin Cormack +Justin Cormack +Justin Cormack +Justin Simonelis +Jérôme Petazzoni +Jérôme Petazzoni +Jérôme Petazzoni +K. Heller +Kai Qiang Wu (Kennan) +Kai Qiang Wu (Kennan) +Kamil Domański +Kamjar Gerami +Ken Cochrane +Ken Herner +Kenfe-Mickaël Laventure +Kevin Feyrer Kevin Kern +Kir Kolyshkin +Kir Kolyshkin +Konrad Kleine Konstantin Gribov +Konstantin Pelykh Kunal Kushwaha Lajos Papp +Lei Jitang +Lei Jitang Liang Mingqiang +Liang-Chi Hsieh +Liao Qingwei +Linus Heckemann +Linus Heckemann +Lokesh Mandvekar +Lorenzo Fontana +Louis Opter +Louis Opter +Luke Marsden Lyn -Markan Patel -Matthew Mosesohn -Michael Käufl -Michal Minář -Michael Hudson-Doyle -Mike Casas -Milind Chawre +Lynda O'Leary +Lynda O'Leary Ma Müller +Madhan Raj Mookkandy +Madhu Venugopal +Mageee <21521230.zju.edu.cn> +Mansi Nahar +Mansi Nahar +Marc Abramowitz +Marcelo Horacio Fortino +Marcus Linke +Marianna Tessel +Markan Patel +Markus Kortlang +Martin Redmond +Martin Redmond +Mary Anthony +Mary Anthony +Mary Anthony moxiegirl +Matt Bentley +Matt Schurenko +Matt Williams +Matt Williams +Matthew Heon +Matthew Mosesohn +Matthew Mueller +Matthias Kühnle +Mauricio Garavaglia +Michael Crosby +Michael Crosby +Michael Crosby +Michael Hudson-Doyle +Michael Huettermann +Michael Käufl +Michael Spetsiotis +Michal Minář +Miguel Angel Fernández +Mihai Borobocea +Mike Casas +Mike Goelzer +Milind Chawre +Misty Stanley-Jones +Mohit Soni Moorthy RS +Moysés Borges +Moysés Borges Nace Oroz +Nathan LeClaire +Nathan LeClaire Neil Horman +Nick Russo +Nigel Poulton +Nik Nyby +Nolan Darilek +O.S. Tezer +O.S. Tezer +Oh Jinkyun +Ouyang Liduo +Patrick Stapleton +Paul Liljenberg Pavel Tikhomirov +Pawel Konczalski Peter Choi Peter Dave Hello +Peter Jaffe +Peter Waller +Phil Estes +Philip Alexander Etling Philipp Gillé +Qiang Huang +Qiang Huang +Renaud Gaubert Robert Terhaar +Roberto G. Hashioka Roberto Muñoz Fernández Roman Dudin -Sandeep Bansal +Runshen Zhu Sandeep Bansal +Sandeep Bansal +Sargun Dhillon Sean Lee +Sebastiaan van Stijn +Sebastiaan van Stijn Shaun Kaasten +Shawn Landden +Shengbo Song +Shengbo Song +Shih-Yuan Lee +Shishir Mahajan Shukui Yang +Shuwei Hao +Shuwei Hao +Sjoerd Langkemper +Solomon Hykes +Solomon Hykes +Solomon Hykes +Soshi Katsuta +Soshi Katsuta +Sridhar Ratnakumar +Sridhar Ratnakumar +Srini Brahmaroutu Srinivasan Srivatsan +Stefan Berger +Stefan Berger +Stefan J. Wernli Stefan S. +Stephen Day +Stephen Day Steve Desmond Sun Gengze <690388648@qq.com> +Sven Dowideit +Sven Dowideit +Sven Dowideit +Sven Dowideit +Sven Dowideit +Sven Dowideit +Sven Dowideit <¨SvenDowideit@home.org.au¨> +Sylvain Bellemare +Sylvain Bellemare +Tangi Colin +Tejesh Mehta +Thatcher Peskens +Thatcher Peskens +Thatcher Peskens +Thomas Gazagnaire +Thomas Léveil +Thomas Léveil +Tibor Vass +Tibor Vass Tim Bart +Tim Bosse +Tim Ruffles +Tim Terhorst Tim Zju <21651152@zju.edu.cn> +Timothy Hobbs +Toli Kuznets +Tom Barlow +Tom Sweeney Tõnis Tiigi Trishna Guha -Wayne Song +Tristan Carel +Tristan Carel +Umesh Yadav +Victor Lyuboslavsky +Victor Vieux +Victor Vieux +Victor Vieux +Victor Vieux +Victor Vieux +Victor Vieux +Viktor Vojnovski +Vincent Batts +Vincent Bernat +Vincent Bernat +Vincent Demeester +Vincent Demeester +Vincent Demeester +Vishnu Kannan +Vladimir Rutsky +Walter Stanish Wang Guoliang Wang Jie Wang Ping Wang Yuexiao +Wayne Chang +Wayne Song +Wei Wu cizixs Wenjun Tang Wewang Xiaorenfine -Wei Wu cizixs +Will Weaver +Xianglin Gao +Xianlu Bird Xiaoyu Zhang Xuecong Liao Yamasaki Masahide +Yao Zaiyong Yassine Tijani +Yazhong Liu +Yestin Sun +Yi EungJun +Ying Li Ying Li Yong Tang +Yosef Fertel +Yu Changchun Yu Chengxia Yu Peng Yu Peng -Yao Zaiyong +Zachary Jaffee +Zachary Jaffee ZhangHang Zhenkun Bi Zhu Kunjia +Zou Yu diff --git a/components/engine/AUTHORS b/components/engine/AUTHORS index f465a87903..afafb2d729 100644 --- a/components/engine/AUTHORS +++ b/components/engine/AUTHORS @@ -26,6 +26,7 @@ Adam Walz Addam Hardy Aditi Rajagopal Aditya +Adnan Khan Adolfo Ochagavía Adria Casas Adrian Moisey @@ -43,6 +44,7 @@ ajneu Akash Gupta Akihiro Matsushima Akihiro Suda +Akim Demaille Akira Koyasu Akshay Karle Al Tobey @@ -105,6 +107,7 @@ Andre Dublin <81dublin@gmail.com> Andre Granovsky Andrea Luzzardi Andrea Turli +Andreas Elvers Andreas Köhler Andreas Savvides Andreas Tiefenthaler @@ -123,8 +126,9 @@ Andrew Macpherson Andrew Martin Andrew McDonnell Andrew Munsell +Andrew Pennebaker Andrew Po -Andrew Weiss +Andrew Weiss Andrew Williams Andrews Medina Andrey Petrov @@ -144,6 +148,7 @@ Anil Madhavapeddy Ankush Agarwal Anonmily Anran Qiao +Anshul Pundir Anthon van der Neut Anthony Baire Anthony Bishopric @@ -167,6 +172,7 @@ Arthur Barr Arthur Gautier Artur Meyster Arun Gupta +Asad Saeeduddin Asbjørn Enge averagehuman Avi Das @@ -199,7 +205,7 @@ Bhiraj Butala Bhumika Bayani Bilal Amarni Bill W -bin liu +Bin Liu Bingshen Wang Blake Geno Boaz Shuster @@ -213,12 +219,13 @@ boynux Bradley Cicenas Bradley Wright Brandon Liu -Brandon Philips +Brandon Philips Brandon Rhodes Brendan Dixon Brent Salisbury Brett Higgins Brett Kochendorfer +Brett Randall Brian (bex) Exelbierd Brian Bland Brian DeHamer @@ -266,7 +273,8 @@ Cedric Davies Cezar Sa Espinola Chad Swenson Chance Zibolski -Chander G +Chander Govindarajan +Chao Wang Charles Chan Charles Hooper Charles Law @@ -284,6 +292,8 @@ Chen Hanxiao Chen Min Chen Mingjie Chen Qiu +Cheng-mean Liu +Chetan Birajdar Chewey Chia-liang Kao chli @@ -306,6 +316,7 @@ Chris Swan Chris Wahl Chris Weyl Christian Berendt +Christian Brauner Christian Böhme Christian Persson Christian Rotzoll @@ -333,6 +344,7 @@ Colin Walters Collin Guarino Colm Hally companycy +Corbin Coleman Corey Farrell Cory Forsyth cressie176 @@ -363,6 +375,7 @@ Dan McPherson Dan Stine Dan Williams Daniel Antlinger +Daniel Dao Daniel Exner Daniel Farrell Daniel Garcia @@ -381,9 +394,9 @@ Daniel Von Fange Daniel X Moore Daniel YC Lin Daniel Zhang -Daniel, Dao Quang Minh Danny Berger Danny Yates +Danyal Khaliq Darren Coxall Darren Shepherd Darren Stahl @@ -431,6 +444,7 @@ Denis Defreyne Denis Gladkikh Denis Ollier Dennis Chen +Dennis Chen Dennis Docter Derek Derek @@ -516,6 +530,7 @@ Eric Paris Eric Rafaloff Eric Rosenberg Eric Sage +Eric Soderstrom Eric Yang Eric-Olivier Lamey Erica Windisch @@ -567,6 +582,7 @@ Felix Hupfeld Felix Rabe Felix Ruess Felix Schindler +Feng Yan Fengtu Wang Ferenc Szabo Fernando @@ -586,7 +602,6 @@ Florian Weingarten Florin Asavoaie Florin Patan fonglh -fortinux Foysal Iqbal Francesc Campoy Francis Chuang @@ -601,8 +616,7 @@ Frederick F. Kautz IV Frederik Loeffert Frederik Nordahl Jul Sabroe Freek Kalter -frosforever -fy2462 +Frieder Bluemle Félix Baylac-Jacqué Félix Cantournet Gabe Rosenhouse @@ -629,7 +643,8 @@ Georgi Hristozov Gereon Frey German DZ Gert van Valkenhoef -Gerwim +Gerwim Feiken +Ghislain Bourgeois Giampaolo Mancini Gianluca Borello Gildas Cuisinier @@ -673,6 +688,7 @@ Harry Zhang Harshal Patil Harshal Patil He Simei +He Xiaoxi He Xin heartlock <21521209@zju.edu.cn> Hector Castro @@ -708,6 +724,7 @@ Iavael Icaro Seara Ignacio Capurro Igor Dolzhikov +Igor Karpovich Iliana Weller Ilkka Laukkanen Ilya Dmitrichenko @@ -726,9 +743,11 @@ Ivan Markin J Bruni J. Nunn Jack Danger Canty +Jack Laxson Jacob Atzen Jacob Edelman Jacob Tomlinson +Jacob Vallejo Jacob Wen Jake Champlin Jake Moshenko @@ -785,6 +804,7 @@ Jean-Christophe Berthon Jean-Paul Calderone Jean-Pierre Huynh Jean-Tiare Le Bigot +Jeeva S. Chelladhurai Jeff Anderson Jeff Johnston Jeff Lindsay @@ -803,6 +823,7 @@ Jeremy Price Jeremy Qian Jeremy Unruh Jeremy Yallop +Jeroen Franse Jeroen Jacobs Jesse Dearing Jesse Dubay @@ -814,6 +835,7 @@ Ji.Zhilong Jian Zhang jianbosun Jie Luo +Jihyun Hwang Jilles Oldenbeuving Jim Alateras Jim Galasyn @@ -880,10 +902,11 @@ Jonathan Stoppani Jonh Wendell Joni Sar Joost Cassee -Jordan Jordan Arentsen +Jordan Jennings Jordan Sissel Jorge Marin +Jorit Kleine-Möllhoff Jose Diaz-Gonzalez Joseph Anthony Pasquale Holsten Joseph Hager @@ -900,9 +923,8 @@ Josh Soref Josh Wilson Josiah Kiehl José Tomás Albornoz +Joyce Jang JP -jrabbit -jroenf Julian Taylor Julien Barbier Julien Bisconti @@ -927,9 +949,9 @@ Jérôme Petazzoni Jörg Thalheim K. Heller Kai Blin -Kai Qiang Wu(Kennan) +Kai Qiang Wu (Kennan) Kamil Domański -kamjar gerami +Kamjar Gerami Kanstantsin Shautsou Kara Alexandra Karan Lyons @@ -938,6 +960,7 @@ kargakis Karl Grzeszczak Karol Duleba Karthik Nayak +Kate Heddleston Katie McLaughlin Kato Kazuyoshi Katrina Owen @@ -1025,6 +1048,7 @@ Levi Gross Lewis Daly Lewis Marshall Lewis Peckover +Li Yi Liam Macgillavry Liana Lo Liang Mingqiang @@ -1056,6 +1080,7 @@ Luca Orlandi Luca-Bogdan Grigorescu Lucas Chan Lucas Chi +Lucas Molas Luciano Mores Luis Martínez de Bartolomé Izquierdo Luiz Svoboda @@ -1087,11 +1112,13 @@ Marc Abramowitz Marc Kuo Marc Tamsky Marcel Edmund Franke +Marcelo Horacio Fortino Marcelo Salazar Marco Hennings Marcus Cobden Marcus Farkas Marcus Linke +Marcus Martins Marcus Ramberg Marek Goldmann Marian Marinov @@ -1204,6 +1231,7 @@ Mike Chelen Mike Danese Mike Dillon Mike Dougherty +Mike Estes Mike Gaffney Mike Goelzer Mike Leone @@ -1219,6 +1247,7 @@ mingqing Mingzhen Feng Misty Stanley-Jones Mitch Capper +Mizuki Urushida mlarcher Mohammad Banikazemi Mohammed Aaqib Ansari @@ -1262,20 +1291,21 @@ Neyazul Haque Nghia Tran Niall O'Higgins Nicholas E. Rabenau -nick Nick DeCoursin Nick Irvine Nick Parker Nick Payne +Nick Russo Nick Stenning Nick Stinemates NickrenREN Nicola Kabar Nicolas Borboën -Nicolas De loof +Nicolas De Loof Nicolas Dudebout Nicolas Goy Nicolas Kaiser +Nicolas Sterchele Nicolás Hock Isaza Nigel Poulton Nik Nyby @@ -1391,7 +1421,6 @@ Prayag Verma Przemek Hejman Pure White pysqz -qhuang Qiang Huang Qinglan Peng qudongfang @@ -1422,6 +1451,7 @@ Remy Suen Renato Riccieri Santos Zannon Renaud Gaubert Rhys Hiltner +Ri Xu Ricardo N Feliciano Rich Moyse Rich Seymour @@ -1493,6 +1523,7 @@ Ryan Liu Ryan McLaughlin Ryan O'Donnell Ryan Seto +Ryan Simmen Ryan Thomas Ryan Trauntvein Ryan Wallner @@ -1526,6 +1557,7 @@ Sankar சங்கர் Sanket Saurav Santhosh Manohar sapphiredev +Sargun Dhillon Sascha Andres Satnam Singh Satoshi Amemiya @@ -1569,6 +1601,7 @@ Shengbo Song Shev Yan Shih-Yuan Lee Shijiang Wei +Shijun Qin Shishir Mahajan Shoubhik Bose Shourya Sarcar @@ -1641,7 +1674,7 @@ Tabakhase Tadej Janež TAGOMORI Satoshi tang0th -Tangi COLIN +Tangi Colin Tatsuki Sugiura Tatsushi Inagaki Taylor Jones @@ -1662,7 +1695,7 @@ Thomas Gazagnaire Thomas Grainger Thomas Hansen Thomas Leonard -Thomas LEVEIL +Thomas Léveil Thomas Orozco Thomas Riccardi Thomas Schroeter @@ -1744,6 +1777,7 @@ Tyler Brock Tzu-Jung Lee uhayate Ulysse Carion +Umesh Yadav Utz Bacher vagrant Vaidas Jablonskis @@ -1763,7 +1797,6 @@ Viktor Stanchev Viktor Vojnovski VinayRaghavanKS Vincent Batts -Vincent Bernat Vincent Bernat Vincent Demeester Vincent Giersch @@ -1837,7 +1870,6 @@ xiekeyang Xinbo Weng Xinzi Zhou Xiuming Chen -xlgao-zju Xuecong Liao xuzhaokui Yahya @@ -1851,6 +1883,7 @@ Yanqiang Miao Yao Zaiyong Yassine Tijani Yasunori Mahata +Yazhong Liu Yestin Sun Yi EungJun Yibai Zhang @@ -1859,7 +1892,7 @@ Ying Li Yohei Ueda Yong Tang Yongzhi Pan -yorkie +Yosef Fertel You-Sheng Yang (楊有勝) Youcef YEKHLEF Yu Changchun @@ -1871,10 +1904,10 @@ Yuanhong Peng Yuhao Fang Yunxiang Huang Yurii Rashkovskii -yuzou +Yves Junqueira Zac Dover Zach Borboa -Zachary Jaffee +Zachary Jaffee Zain Memon Zaiste! Zane DeGraffenried @@ -1898,6 +1931,7 @@ Ziming Dong ZJUshuaizhou <21551191@zju.edu.cn> zmarouf Zoltan Tombol +Zou Yu zqh Zuhayr Elahi Zunayed Ali @@ -1907,3 +1941,4 @@ Zunayed Ali 尹吉峰 徐俊杰 搏通 +黄艳红00139573 diff --git a/components/engine/daemon/container.go b/components/engine/daemon/container.go index 26faedfdf9..b2f4f1053f 100644 --- a/components/engine/daemon/container.go +++ b/components/engine/daemon/container.go @@ -19,6 +19,7 @@ import ( "github.com/docker/docker/pkg/system" "github.com/docker/docker/pkg/truncindex" "github.com/docker/docker/runconfig" + "github.com/docker/docker/volume" "github.com/docker/go-connections/nat" "github.com/opencontainers/selinux/go-selinux/label" "github.com/pkg/errors" @@ -293,6 +294,14 @@ func (daemon *Daemon) verifyContainerSettings(platform string, hostConfig *conta return nil, errors.Errorf("can't create 'AutoRemove' container with restart policy") } + // Validate mounts; check if host directories still exist + parser := volume.NewParser(platform) + for _, cfg := range hostConfig.Mounts { + if err := parser.ValidateMountConfig(&cfg); err != nil { + return nil, err + } + } + for _, extraHost := range hostConfig.ExtraHosts { if _, err := opts.ValidateExtraHost(extraHost); err != nil { return nil, err diff --git a/components/engine/docs/contributing/set-up-dev-env.md b/components/engine/docs/contributing/set-up-dev-env.md index b4cacf529e..7f8a38119f 100644 --- a/components/engine/docs/contributing/set-up-dev-env.md +++ b/components/engine/docs/contributing/set-up-dev-env.md @@ -130,7 +130,7 @@ can take over 15 minutes to complete. ```none Successfully built 3d872560918e Successfully tagged docker-dev:dry-run-test - docker run --rm -i --privileged -e BUILDFLAGS -e KEEPBUNDLE -e DOCKER_BUILD_GOGC -e DOCKER_BUILD_PKGS -e DOCKER_CLIENTONLY -e DOCKER_DEBUG -e DOCKER_EXPERIMENTAL -e DOCKER_GITCOMMIT -e DOCKER_GRAPHDRIVER=devicemapper -e DOCKER_INCREMENTAL_BINARY -e DOCKER_REMAP_ROOT -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT -v "home/ubuntu/repos/docker/bundles:/go/src/github.com/moby/moby/bundles" -t "docker-dev:dry-run-test" bash + docker run --rm -i --privileged -e BUILDFLAGS -e KEEPBUNDLE -e DOCKER_BUILD_GOGC -e DOCKER_BUILD_PKGS -e DOCKER_CLIENTONLY -e DOCKER_DEBUG -e DOCKER_EXPERIMENTAL -e DOCKER_GITCOMMIT -e DOCKER_GRAPHDRIVER=devicemapper -e DOCKER_INCREMENTAL_BINARY -e DOCKER_REMAP_ROOT -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT -v "home/ubuntu/repos/docker/bundles:/go/src/github.com/docker/docker/bundles" -t "docker-dev:dry-run-test" bash root@f31fa223770f:/go/src/github.com/docker/docker# ``` diff --git a/components/engine/docs/contributing/software-req-win.md b/components/engine/docs/contributing/software-req-win.md index 3be4327933..d51861cbe5 100644 --- a/components/engine/docs/contributing/software-req-win.md +++ b/components/engine/docs/contributing/software-req-win.md @@ -109,7 +109,7 @@ To test it, stop the system Docker daemon and start the one you just built: .\dockerd.exe -D The other make targets work too, to run unit tests try: -`docker run --rm docker-builder sh -c 'cd /c/go/src/github.com/moby/moby; hack/make.sh test-unit'`. +`docker run --rm docker-builder sh -c 'cd /c/go/src/github.com/docker/docker; hack/make.sh test-unit'`. ### 6. Remove the interim binaries container diff --git a/components/engine/docs/contributing/test.md b/components/engine/docs/contributing/test.md index 6a4c984a39..7e9107d116 100644 --- a/components/engine/docs/contributing/test.md +++ b/components/engine/docs/contributing/test.md @@ -107,13 +107,13 @@ Try this now. `dry-run-test` image. ```bash - $ docker run --privileged --rm -ti -v `pwd`:/go/src/github.com/moby/moby dry-run-test /bin/bash + $ docker run --privileged --rm -ti -v `pwd`:/go/src/github.com/docker/docker dry-run-test /bin/bash ``` 3. Run the tests using the `hack/make.sh` script. ```bash - root@5f8630b873fe:/go/src/github.com/moby/moby# hack/make.sh dynbinary binary cross test-unit test-integration test-docker-py + root@5f8630b873fe:/go/src/github.com/docker/docker# hack/make.sh dynbinary binary cross test-unit test-integration test-docker-py ``` The tests run just as they did within your local host. @@ -122,7 +122,7 @@ Try this now. just the unit tests: ```bash - root@5f8630b873fe:/go/src/github.com/moby/moby# hack/make.sh dynbinary binary cross test-unit + root@5f8630b873fe:/go/src/github.com/docker/docker# hack/make.sh dynbinary binary cross test-unit ``` Most test targets require that you build these precursor targets first: @@ -170,7 +170,7 @@ $ TESTFLAGS='-check.f DockerSuite.TestBuild*' make test-integration To run the same test inside your Docker development container, you do this: ```bash -root@5f8630b873fe:/go/src/github.com/moby/moby# TESTFLAGS='-check.f TestBuild*' hack/make.sh binary test-integration +root@5f8630b873fe:/go/src/github.com/docker/docker# TESTFLAGS='-check.f TestBuild*' hack/make.sh binary test-integration ``` ## Test the Windows binary against a Linux daemon @@ -188,7 +188,7 @@ run a Bash terminal on Windows. 2. Change to the `moby` source directory. ```bash - $ cd /c/gopath/src/github.com/moby/moby + $ cd /c/gopath/src/github.com/docker/docker ``` 3. Set `DOCKER_REMOTE_DAEMON` as follows: diff --git a/components/engine/integration-cli/docker_cli_build_test.go b/components/engine/integration-cli/docker_cli_build_test.go index e60f4d5a6e..8ae5e05ed8 100644 --- a/components/engine/integration-cli/docker_cli_build_test.go +++ b/components/engine/integration-cli/docker_cli_build_test.go @@ -3532,7 +3532,17 @@ func (s *DockerSuite) TestBuildNotVerboseFailureRemote(c *check.C) { result.Assert(c, icmd.Expected{ ExitCode: 1, }) - if strings.TrimSpace(quietResult.Stderr()) != strings.TrimSpace(result.Combined()) { + + // An error message should contain name server IP and port, like this: + // "dial tcp: lookup something.invalid on 172.29.128.11:53: no such host" + // The IP:port need to be removed in order to not trigger a test failur + // when more than one nameserver is configured. + // While at it, also strip excessive newlines. + normalize := func(msg string) string { + return strings.TrimSpace(regexp.MustCompile("[1-9][0-9.]+:[0-9]+").ReplaceAllLiteralString(msg, "")) + } + + if normalize(quietResult.Stderr()) != normalize(result.Combined()) { c.Fatal(fmt.Errorf("Test[%s] expected that quiet stderr and verbose stdout are equal; quiet [%v], verbose [%v]", name, quietResult.Stderr(), result.Combined())) } } diff --git a/components/engine/integration-cli/docker_cli_daemon_test.go b/components/engine/integration-cli/docker_cli_daemon_test.go index fb616261d4..5fbfac9a40 100644 --- a/components/engine/integration-cli/docker_cli_daemon_test.go +++ b/components/engine/integration-cli/docker_cli_daemon_test.go @@ -1441,13 +1441,19 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterDaemonAndContainerKill(c *chec out, err := d.Cmd("run", "-d", "busybox", "top") c.Assert(err, check.IsNil, check.Commentf("Output: %s", out)) id := strings.TrimSpace(out) - c.Assert(d.Signal(os.Kill), check.IsNil) + + // If there are no mounts with container id visible from the host + // (as those are in container's own mount ns), there is nothing + // to check here and the test should be skipped. mountOut, err := ioutil.ReadFile("/proc/self/mountinfo") c.Assert(err, check.IsNil, check.Commentf("Output: %s", mountOut)) + if !strings.Contains(string(mountOut), id) { + d.Stop(c) + c.Skip("no container mounts visible in host ns") + } - // container mounts should exist even after daemon has crashed. - comment := check.Commentf("%s should stay mounted from older daemon start:\nDaemon root repository %s\n%s", id, d.Root, mountOut) - c.Assert(strings.Contains(string(mountOut), id), check.Equals, true, comment) + // kill the daemon + c.Assert(d.Kill(), check.IsNil) // kill the container icmd.RunCommand(ctrBinary, "--address", "/var/run/docker/containerd/docker-containerd.sock", @@ -1459,7 +1465,7 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterDaemonAndContainerKill(c *chec // Now, container mounts should be gone. mountOut, err = ioutil.ReadFile("/proc/self/mountinfo") c.Assert(err, check.IsNil, check.Commentf("Output: %s", mountOut)) - comment = check.Commentf("%s is still mounted from older daemon start:\nDaemon root repository %s\n%s", id, d.Root, mountOut) + comment := check.Commentf("%s is still mounted from older daemon start:\nDaemon root repository %s\n%s", id, d.Root, mountOut) c.Assert(strings.Contains(string(mountOut), id), check.Equals, false, comment) d.Stop(c) @@ -2047,13 +2053,18 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterDaemonCrash(c *check.C) { c.Assert(err, check.IsNil, check.Commentf("Output: %s", out)) id := strings.TrimSpace(out) - c.Assert(s.d.Signal(os.Kill), check.IsNil) + // kill the daemon + c.Assert(s.d.Kill(), check.IsNil) + + // Check if there are mounts with container id visible from the host. + // If not, those mounts exist in container's own mount ns, and so + // the following check for mounts being cleared is pointless. + skipMountCheck := false mountOut, err := ioutil.ReadFile("/proc/self/mountinfo") c.Assert(err, check.IsNil, check.Commentf("Output: %s", mountOut)) - - // container mounts should exist even after daemon has crashed. - comment := check.Commentf("%s should stay mounted from older daemon start:\nDaemon root repository %s\n%s", id, s.d.Root, mountOut) - c.Assert(strings.Contains(string(mountOut), id), check.Equals, true, comment) + if !strings.Contains(string(mountOut), id) { + skipMountCheck = true + } // restart daemon. s.d.Start(c, "--live-restore") @@ -2070,10 +2081,13 @@ func (s *DockerDaemonSuite) TestCleanupMountsAfterDaemonCrash(c *check.C) { out, err = s.d.Cmd("stop", id) c.Assert(err, check.IsNil, check.Commentf("Output: %s", out)) + if skipMountCheck { + return + } // Now, container mounts should be gone. mountOut, err = ioutil.ReadFile("/proc/self/mountinfo") c.Assert(err, check.IsNil, check.Commentf("Output: %s", mountOut)) - comment = check.Commentf("%s is still mounted from older daemon start:\nDaemon root repository %s\n%s", id, s.d.Root, mountOut) + comment := check.Commentf("%s is still mounted from older daemon start:\nDaemon root repository %s\n%s", id, s.d.Root, mountOut) c.Assert(strings.Contains(string(mountOut), id), check.Equals, false, comment) } diff --git a/components/engine/integration-cli/docker_cli_run_test.go b/components/engine/integration-cli/docker_cli_run_test.go index e6c1d91fce..1749df07c1 100644 --- a/components/engine/integration-cli/docker_cli_run_test.go +++ b/components/engine/integration-cli/docker_cli_run_test.go @@ -2312,48 +2312,6 @@ func (s *DockerSuite) TestRunModeIpcHost(c *check.C) { } } -func (s *DockerSuite) TestRunModeIpcContainer(c *check.C) { - // Not applicable on Windows as uses Unix-specific capabilities - testRequires(c, SameHostDaemon, DaemonIsLinux) - - out, _ := dockerCmd(c, "run", "-d", "busybox", "sh", "-c", "echo -n test > /dev/shm/test && touch /dev/mqueue/toto && top") - - id := strings.TrimSpace(out) - state := inspectField(c, id, "State.Running") - if state != "true" { - c.Fatal("Container state is 'not running'") - } - pid1 := inspectField(c, id, "State.Pid") - - parentContainerIpc, err := os.Readlink(fmt.Sprintf("/proc/%s/ns/ipc", pid1)) - if err != nil { - c.Fatal(err) - } - - out, _ = dockerCmd(c, "run", fmt.Sprintf("--ipc=container:%s", id), "busybox", "readlink", "/proc/self/ns/ipc") - out = strings.Trim(out, "\n") - if parentContainerIpc != out { - c.Fatalf("IPC different with --ipc=container:%s %s != %s\n", id, parentContainerIpc, out) - } - - catOutput, _ := dockerCmd(c, "run", fmt.Sprintf("--ipc=container:%s", id), "busybox", "cat", "/dev/shm/test") - if catOutput != "test" { - c.Fatalf("Output of /dev/shm/test expected test but found: %s", catOutput) - } - - // check that /dev/mqueue is actually of mqueue type - grepOutput, _ := dockerCmd(c, "run", fmt.Sprintf("--ipc=container:%s", id), "busybox", "grep", "/dev/mqueue", "/proc/mounts") - if !strings.HasPrefix(grepOutput, "mqueue /dev/mqueue mqueue rw") { - c.Fatalf("Output of 'grep /proc/mounts' expected 'mqueue /dev/mqueue mqueue rw' but found: %s", grepOutput) - } - - lsOutput, _ := dockerCmd(c, "run", fmt.Sprintf("--ipc=container:%s", id), "busybox", "ls", "/dev/mqueue") - lsOutput = strings.Trim(lsOutput, "\n") - if lsOutput != "toto" { - c.Fatalf("Output of 'ls /dev/mqueue' expected 'toto' but found: %s", lsOutput) - } -} - func (s *DockerSuite) TestRunModeIpcContainerNotExists(c *check.C) { // Not applicable on Windows as uses Unix-specific capabilities testRequires(c, DaemonIsLinux) diff --git a/components/engine/internal/testutil/helpers.go b/components/engine/internal/testutil/helpers.go index 287b3cb48a..bb36322a80 100644 --- a/components/engine/internal/testutil/helpers.go +++ b/components/engine/internal/testutil/helpers.go @@ -20,8 +20,8 @@ var DevZero io.Reader = devZero{} type devZero struct{} func (d devZero) Read(p []byte) (n int, err error) { - for i := 0; i < len(p); i++ { - p[i] = '\x00' + for i := range p { + p[i] = 0 } return len(p), nil } diff --git a/components/engine/libcontainerd/client_daemon.go b/components/engine/libcontainerd/client_daemon.go index a9f7c11dd1..7508968fd5 100644 --- a/components/engine/libcontainerd/client_daemon.go +++ b/components/engine/libcontainerd/client_daemon.go @@ -715,8 +715,9 @@ func (c *client) processEventStream(ctx context.Context) { eventStream, err = c.remote.EventService().Subscribe(ctx, &eventsapi.SubscribeRequest{ Filters: []string{ - "namespace==" + c.namespace, - "topic~=/tasks/", + // Filter on both namespace *and* topic. To create an "and" filter, + // this must be a single, comma-separated string + "namespace==" + c.namespace + ",topic~=|^/tasks/|", }, }, grpc.FailFast(false)) if err != nil { diff --git a/components/engine/volume/lcow_parser.go b/components/engine/volume/lcow_parser.go index aeb81a4202..8d15f0d9d7 100644 --- a/components/engine/volume/lcow_parser.go +++ b/components/engine/volume/lcow_parser.go @@ -22,7 +22,7 @@ type lcowParser struct { windowsParser } -func (p *lcowParser) validateMountConfig(mnt *mount.Mount) error { +func (p *lcowParser) ValidateMountConfig(mnt *mount.Mount) error { return p.validateMountConfigReg(mnt, rxLCOWDestination, lcowSpecificValidators) } diff --git a/components/engine/volume/linux_parser.go b/components/engine/volume/linux_parser.go index 59605fe677..fd54e82162 100644 --- a/components/engine/volume/linux_parser.go +++ b/components/engine/volume/linux_parser.go @@ -40,7 +40,7 @@ func linuxValidateAbsolute(p string) error { } return fmt.Errorf("invalid mount path: '%s' mount path must be absolute", p) } -func (p *linuxParser) validateMountConfig(mnt *mount.Mount) error { +func (p *linuxParser) ValidateMountConfig(mnt *mount.Mount) error { // there was something looking like a bug in existing codebase: // - validateMountConfig on linux was called with options skipping bind source existence when calling ParseMountRaw // - but not when calling ParseMountSpec directly... nor when the unit test called it directly diff --git a/components/engine/volume/parser.go b/components/engine/volume/parser.go index 1f48b60e27..13fd7d1489 100644 --- a/components/engine/volume/parser.go +++ b/components/engine/volume/parser.go @@ -26,8 +26,7 @@ type Parser interface { IsBackwardCompatible(m *MountPoint) bool HasResource(m *MountPoint, absPath string) bool ValidateTmpfsMountDestination(dest string) error - - validateMountConfig(mt *mount.Mount) error + ValidateMountConfig(mt *mount.Mount) error } // NewParser creates a parser for a given container OS, depending on the current host OS (linux on a windows host will resolve to an lcowParser) diff --git a/components/engine/volume/validate_test.go b/components/engine/volume/validate_test.go index 6a8e28682b..eac343f50a 100644 --- a/components/engine/volume/validate_test.go +++ b/components/engine/volume/validate_test.go @@ -31,13 +31,9 @@ func TestValidateMount(t *testing.T) { {mount.Mount{Type: mount.TypeBind, Source: testDir, Target: testDestinationPath}, nil}, {mount.Mount{Type: "invalid", Target: testDestinationPath}, errors.New("mount type unknown")}, + {mount.Mount{Type: mount.TypeBind, Source: testSourcePath, Target: testDestinationPath}, errBindNotExist}, } - if runtime.GOOS == "windows" { - cases = append(cases, struct { - input mount.Mount - expected error - }{mount.Mount{Type: mount.TypeBind, Source: testSourcePath, Target: testDestinationPath}, errBindNotExist}) // bind source existance is not checked on linux - } + lcowCases := []struct { input mount.Mount expected error @@ -54,7 +50,7 @@ func TestValidateMount(t *testing.T) { } parser := NewParser(runtime.GOOS) for i, x := range cases { - err := parser.validateMountConfig(&x.input) + err := parser.ValidateMountConfig(&x.input) if err == nil && x.expected == nil { continue } @@ -65,7 +61,7 @@ func TestValidateMount(t *testing.T) { if runtime.GOOS == "windows" { parser = &lcowParser{} for i, x := range lcowCases { - err := parser.validateMountConfig(&x.input) + err := parser.ValidateMountConfig(&x.input) if err == nil && x.expected == nil { continue } diff --git a/components/engine/volume/windows_parser.go b/components/engine/volume/windows_parser.go index 172610dbdd..5cf1a8da74 100644 --- a/components/engine/volume/windows_parser.go +++ b/components/engine/volume/windows_parser.go @@ -189,7 +189,7 @@ func (p *windowsParser) ValidateVolumeName(name string) error { } return nil } -func (p *windowsParser) validateMountConfig(mnt *mount.Mount) error { +func (p *windowsParser) ValidateMountConfig(mnt *mount.Mount) error { return p.validateMountConfigReg(mnt, rxDestination, windowsSpecificValidators) }