XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd

The Linux Foundation
The Linux FoundationDirector, Open Source Solutions at Citrix
Reviewing for Non-Maintainers
George Dunlap
Maintainers would love to have more help
reviewing
…but many people don't know where to
start
Absolutely
perfect
Ready to be
checked in
Not so
perfect
Goal
Help move a patch closer to being ready to
be checked in
But:
“First, do no harm”
Not so helpful:
Giving feedback the maintainer has to
contradict
Not so helpful:
Beat up the new guy
Not so helpful:
Looking for things to criticize
Helpful:
Helping get the patch checked in
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
Necessary to accomplish goals?
• Is it clear what the goals are?
• Do we need to make a change, or can the goals be met with existing
functionality?
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
Architecture / Interface
• Is this the best way to solve the problem?
• Is this the right part of the code to modify?
• Is this the right level of abstraction?
• Is the interface general enough? Too general? Forward
compatible?
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
Functionality
• Does it do what it’s trying to do?
• Is it doing it in the most efficient way?
• Does it handle all the corner / error cases correctly?
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
Maintainability / robustness
• Is the code clear? Appropriately commented?
• Does it duplicate another piece of code?
• Does the code make hidden assumptions?
• Does it introduce sections which need to be kept “in sync” with other
sections?
• Are there other “traps” someone modifying this code might fall into?
Style
• Comments,carriage returns, “snuggly braces”, &c
• See CODING_STYLE and tools/libxl/CODING_STYLE
• No extraneous whitespace changes
Patch
• Informative one-line changelog
• Full changelog
• Motivation described
• All important technical changes mentioned
• Changes since previous revision listed
• Reviewed-by’s and Acked-by’s dropped if appropriate
Consider three audiences
• The Reviewer(s)

• People looking for patches of interest

• The Archaeologist
Audience:
The Reviewer
• Is this patch necessary?

• Is this patch the right way to solve the problem?

• Is this patch correct?
Audience:
Someone looking for someting
• Patches to backport

• A patch that may have broken something

• Or a patch which fixes something
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd
Audience:
The Archaeologist
–“Chesterton’s Fence”
“Don’t ever take a fence down until you
know why it was put up.”
Template for a changelog
• What does the current code do?

• Why is that a problem?

• How does this patch fix it?

• Any other changes the patch is making
Reviewing tips
• Code follows data: Look at the data structures first
• Three ways to look at a patch
• Look at the patch itself (emacs / vim ‘diff mode’)
• Look at the patched file
• Graphical diff (i.e., meld)
Communication:
Express Appreciation
• “Thanks for the patch.”
• “Thanks for doing this.”
• “Looks good, just a few comments.”
• “I think this is a good change.”
Communication:
Avoid inflammatory language;
stick to the facts
Strongly-worded dictionary entry:
"裹脚 (guo3 jiao3): foot-binding (a vile feudal practice
which crippled women both physically and spiritually)”
Wikipedia Entry on Foot-Binding:
"Foot-binding resulted in lifelong disabilities for most of its subjects. …
Binding usually started during the winter months since the feet were more
likely to be numb, and therefore the pain would not be as extreme. …The toes
on each foot were curled under, then pressed with great force downwards
and squeezed into the sole of the foot until the toes broke…”
Why you shouldn’t say code is “garbage”
• Makes the patch author angry
• They spend time and mental energy wrestling with their feelings
rather than coming up with solutions
• Doesn’t contain any information
• The facts are both more powerful and more persuasive
Your experience is a fact
• Example:
• “This confusing”
• “It took me a long time to figure out what was going on here”
• Example:
• “This is fragile”
• “This seems fragile to me”
• “If X happens, Y will happen.”
Necessary?
Architecture Interface
Effective Efficient
All Cases
Correct
Robust /
Maintainable
Coding Style Patch / Series
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd
1 of 36

Recommended

What schools should be teaching IT students by
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT studentsAndy Lester
1.6K views45 slides
Supercharging your bug reports by
Supercharging your bug reportsSupercharging your bug reports
Supercharging your bug reportsNeil Studd
804 views48 slides
Code Review Matters and Manners by
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and MannersTrisha Gee
4K views46 slides
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D... by
 XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D... XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...
XPDS16: Patch review for non-maintainers - George Dunlap, Citrix Systems R&D...The Linux Foundation
811 views25 slides
Write a better FM by
Write a better FMWrite a better FM
Write a better FMRich Bowen
789 views78 slides
nycdevops: "Breaking Down the Prod/Dev Wall" by
nycdevops: "Breaking Down the Prod/Dev Wall"nycdevops: "Breaking Down the Prod/Dev Wall"
nycdevops: "Breaking Down the Prod/Dev Wall"Andrew Phillips
278 views34 slides

More Related Content

Similar to XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd

Don't get blamed for your choices - Techorama 2019 by
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Hannes Lowette
466 views67 slides
Collaborative Information Architecture (ias17) by
Collaborative Information Architecture (ias17)Collaborative Information Architecture (ias17)
Collaborative Information Architecture (ias17)Abby Covert
4.1K views72 slides
Scalable Open Source by
Scalable Open SourceScalable Open Source
Scalable Open SourceMichael Klishin
2.1K views119 slides
3.15.17 DSpace: How to Contribute Webinar Slides by
3.15.17 DSpace: How to Contribute Webinar Slides3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar SlidesDuraSpace
890 views51 slides
The Usability of Usability by
The Usability of UsabilityThe Usability of Usability
The Usability of UsabilityAndrew Chak
1.2K views58 slides
Getting Started with Architecture Decision Records by
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision RecordsMichael Keeling
782 views68 slides

Similar to XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd(20)

Don't get blamed for your choices - Techorama 2019 by Hannes Lowette
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
Hannes Lowette466 views
Collaborative Information Architecture (ias17) by Abby Covert
Collaborative Information Architecture (ias17)Collaborative Information Architecture (ias17)
Collaborative Information Architecture (ias17)
Abby Covert4.1K views
3.15.17 DSpace: How to Contribute Webinar Slides by DuraSpace
3.15.17 DSpace: How to Contribute Webinar Slides3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar Slides
DuraSpace890 views
The Usability of Usability by Andrew Chak
The Usability of UsabilityThe Usability of Usability
The Usability of Usability
Andrew Chak1.2K views
Getting Started with Architecture Decision Records by Michael Keeling
Getting Started with Architecture Decision RecordsGetting Started with Architecture Decision Records
Getting Started with Architecture Decision Records
Michael Keeling782 views
Technical Communication for Unity Developers by Unity Technologies
Technical Communication for Unity DevelopersTechnical Communication for Unity Developers
Technical Communication for Unity Developers
Unity Technologies509 views
Prototyping Accessibility - WordCamp Europe 2018 by Adrian Roselli
Prototyping Accessibility - WordCamp Europe 2018Prototyping Accessibility - WordCamp Europe 2018
Prototyping Accessibility - WordCamp Europe 2018
Adrian Roselli3.6K views
Visualised Flow - Facilitator Guide by Jeff Campbell
Visualised Flow -  Facilitator GuideVisualised Flow -  Facilitator Guide
Visualised Flow - Facilitator Guide
Jeff Campbell40 views
Write A Better FM - Ohio Linux 2011 by Rich Bowen
Write A Better FM - Ohio Linux 2011Write A Better FM - Ohio Linux 2011
Write A Better FM - Ohio Linux 2011
Rich Bowen1.1K views
Test & Learn: How to Leverage Design to Learn & Deliver Results Quickly by Optimizely
Test & Learn: How to Leverage Design to Learn & Deliver Results Quickly Test & Learn: How to Leverage Design to Learn & Deliver Results Quickly
Test & Learn: How to Leverage Design to Learn & Deliver Results Quickly
Optimizely355 views
"Software Architecture for Humans!", Eberhard Wolff by Fwdays
"Software Architecture for Humans!", Eberhard Wolff "Software Architecture for Humans!", Eberhard Wolff
"Software Architecture for Humans!", Eberhard Wolff
Fwdays94 views
Collaborative Information Architecture by Abby Covert
Collaborative Information ArchitectureCollaborative Information Architecture
Collaborative Information Architecture
Abby Covert5.9K views
Crafty communications - Dealing with the pesky people parts of communications by Asher Glynn
Crafty communications - Dealing with the pesky people parts of communicationsCrafty communications - Dealing with the pesky people parts of communications
Crafty communications - Dealing with the pesky people parts of communications
Asher Glynn364 views
How to Prepare for and Survive a Technical Interview by Perl Careers
How to Prepare for and Survive a Technical InterviewHow to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical Interview
Perl Careers4.4K views
Scientific and technical translation in English - Week 8 by Ron Martinez
Scientific and technical translation in English - Week 8Scientific and technical translation in English - Week 8
Scientific and technical translation in English - Week 8
Ron Martinez2K views
Android Developer Skills, Techniques, and Patterns by gdgut
Android Developer Skills, Techniques, and PatternsAndroid Developer Skills, Techniques, and Patterns
Android Developer Skills, Techniques, and Patterns
gdgut179 views
Letters from the editor (TCUK12) by David Farbey
Letters from the editor (TCUK12)Letters from the editor (TCUK12)
Letters from the editor (TCUK12)
David Farbey740 views
Daniel Burka's Design Workshop Slides: FOWD NYC 2009 by Daniel Burka
Daniel Burka's Design Workshop Slides: FOWD NYC 2009Daniel Burka's Design Workshop Slides: FOWD NYC 2009
Daniel Burka's Design Workshop Slides: FOWD NYC 2009
Daniel Burka8.8K views

More from The Linux Foundation

ELC2019: Static Partitioning Made Simple by
ELC2019: Static Partitioning Made SimpleELC2019: Static Partitioning Made Simple
ELC2019: Static Partitioning Made SimpleThe Linux Foundation
4.1K views33 slides
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ... by
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...The Linux Foundation
1K views17 slides
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu... by
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...The Linux Foundation
1K views19 slides
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op... by
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
819 views24 slides
XPDDS19 Keynote: Unikraft Weather Report by
XPDDS19 Keynote:  Unikraft Weather ReportXPDDS19 Keynote:  Unikraft Weather Report
XPDDS19 Keynote: Unikraft Weather ReportThe Linux Foundation
923 views58 slides
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E... by
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
941 views17 slides

More from The Linux Foundation(20)

XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ... by The Linux Foundation
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu... by The Linux Foundation
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op... by The Linux Foundation
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E... by The Linux Foundation
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx by The Linux Foundation
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxXPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender by The Linux Foundation
XPDDS19: Memories of a VM Funk - Mihai Donțu, BitdefenderXPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
XPDDS19: Memories of a VM Funk - Mihai Donțu, Bitdefender
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng... by The Linux Foundation
OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...OSSJP/ALS19:  The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... by The Linux Foundation
 OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making... OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix by The Linux Foundation
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixXPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, Citrix
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd by The Linux Foundation
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdXPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltd
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant... by The Linux Foundation
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D by The Linux Foundation
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DXPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&D
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems by The Linux Foundation
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsXPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM Systems
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven... by The Linux Foundation
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib... by The Linux Foundation
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr... by The Linux Foundation
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE by The Linux Foundation
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSEXPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Core Scheduling in Xen - Jürgen Groß, SUSE
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security by The Linux Foundation
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information SecurityXPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security
XPDDS19: Implementing AMD MxGPU - Jonathan Farrell, Assured Information Security

Recently uploaded

Quality Assurance by
Quality Assurance Quality Assurance
Quality Assurance interworksoftware2
5 views6 slides
EV Charging App Case by
EV Charging App Case EV Charging App Case
EV Charging App Case iCoderz Solutions
9 views1 slide
Using Qt under LGPL-3.0 by
Using Qt under LGPL-3.0Using Qt under LGPL-3.0
Using Qt under LGPL-3.0Burkhard Stubert
13 views11 slides
nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
5 views7 slides
Generic or specific? Making sensible software design decisions by
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
6 views60 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides

Recently uploaded(20)

Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok15 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino6 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski12 views
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert26 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino7 views

XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Systems UK Ltd