SlideShare a Scribd company logo
Contributing to Docker 101
(an external maintainer’s view)
Phil Estes
IBM Cloud, Open Technology
Twitter: @estesp
About Me
2
Phil Estes
Senior Technical Staff Member
IBM Cloud, Open Technology & Strategy
@estesp
> Docker core engine maintainer
> Member of “Docker Captains” program
> 10+ years involved in Linux/OSS
Community accomplishments:
> User namespace support in the
Docker engine
> Helped design v2.2 image spec
with multi-platform support
> Implemented first tool to create
multi-platform images in Docker
v2.3 registry & DockerHub
The Fine Print
3
• Contributing is more than code
○ But, my experience is with code contributions and will lean heavily
towards that aspect
• The overall topic is quite broad
○ So I’ll focus on what I have (and will) personally share with an interested
developer looking to contribute to a Docker project
• There are personal aspects to workflow/focus areas/etc.
○ So please don’t blame me if your experiences don’t match mine :)
• There is a TL;DR if you find me {unconvincing,boring}!
○ https://github.com/docker/docker/blob/master/CONTRIBUTING.md
Where do I Start?
(the basics)
4
The Basics before the Basics
5
• GitHub account
○ Set up and use TFA (two-factor authentication)
○ Add an SSH key
• A `git` workspace
○ Fork repos you plan to contribute to (GitHub UI)
○ Clone them on your local system for development
• IRC client
○ Join #docker-dev, listen to #docker-maintainers, join other project
channels as interested (swarm, network, distribution)
○ Interact with other contributors and maintainers!
• Go through the contributor’s guide!
○ https://docs.docker.com/opensource/code/
•
Good and Bad
(are some contributors better than others?)
6
Communication
• Find and discuss large
changes with the right
maintainers
• Actively ask for
input/feedback
• Respond in a timely
manner
• Join the team on IRC
• Silent (large) PR
submissions
• Lack of response to
questions/feedback
• Never get on IRC and
build relationships
7
GOOD BAD
Tone
• It’s not personal
• If you are taking the
response personally, a)
breathe, b) ask for
clarification
• Patience with busy
maintainers!
• Understand “close” is not
a personal rejection
• Knee-jerk/reactive
response to feedback
• Lack of patience to
maintainer “burden”
• Ignore maintainer
workflow
• Respond negatively to a
“close” response
8
GOOD BAD
Learn
• Read other PRs; learn
what works/fails
• Follow IRC; see what’s
being discussed
• Ask for help!
• Know you aren’t a Go
language expert (unless
you are); see what you
can learn
• “Heads down” mode;
never look around
• Ignore the direction of
the project
• Assume you know
everything
• Consider yourself having
mastered Go completely
9
GOOD BAD
Practice
• Sharpen your skills;
understand what’s
“idiomatic” vs. not
• Add tests!
• Help improve docs
• Improve the codebase
even if is not related to
what you want to work
on
• Ignore that idiomatic Go
is an expectation
• Add function with no
tests
• Hope that someone else
works on docs
• Ignore the codebase
outside your interests
10
GOOD BAD
What can I do?
(find your niche)
11
Finding Work to Do
12
• Search repo for beginner/easy issues
○ Dependent on project’s use of tags
○ Use #dibs to mark working
• Ask on IRC
○ Ask for help finding something to hack on
• What is your area of expertise?
○ Are you a networking expert? Do you know all about Linux namespace
internals?
○ Learn the code for that area of the Docker ecosystem; what would you
add/fix/help improve?
• Look for roadmap items (and ask about ownership)
•
Closing Thoughts
(A Lifetime Channel heartwarming episode
of “My Story: A Docker Maintainer”)
13
Two Years of docker/docker
14
• Community is Extremely Welcoming
○ Have never seen a new contributor treated poorly
○ Plenty of guidance for those that are interested in learning
• No one Agrees on Everything
○ It is not “Docker, Inc.” versus “everyone else”. Maintainers have personal
perspectives, and Docker walks a tightrope between OSS and products
• Docker is an Opinionated Container Ecosystem
○ Developer-focused, developer experience has high precedence
○ Focus on UI simplicity/clarity means long discussions on UX changes
• Docker OSS Projects are Imperfect
○ Just like every other open source project
○ But it’s a great one!
How do I Become a Maintainer?
15
• Make sure you really want it!
○ Maintainer role is a change of focus (away from pure contribution)
○ Comes with an expectation/burden; read this document first: https:
//github.com/docker/opensource/blob/master/MAINTAINERS
• Become known
○ A maintainer is a trusted position; you can’t be a maintainer if the current
maintainers don’t know you (see “IRC”)
• Become known for working outside of your own PRs
○ Your “LGTM” is not valid, but you can definitely provide helpful
comments/feedback. This will be noticed!
• Help out!
○ Triage issues; debug problems
Thank you!
16
@estesp
github.com/estesp
estesp@gmail.com
https://integratedcode.us
IRC: estesp

More Related Content

PPTX
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Docker, Inc.
 
PDF
Understanding Containers through Gaming by Brendan Fosberry
Docker, Inc.
 
PDF
How to Successfully Build a Local (Docker) Community
Mathias Renner
 
PDF
Getting Started Contributing to Docker
Docker, Inc.
 
PPTX
Contribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Docker, Inc.
 
PPTX
Provisioning environments. A simplistic approach
Eder Roger Souza
 
PDF
Docker management
Karthik Gaekwad
 
PDF
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Docker, Inc.
 
Understanding Containers through Gaming by Brendan Fosberry
Docker, Inc.
 
How to Successfully Build a Local (Docker) Community
Mathias Renner
 
Getting Started Contributing to Docker
Docker, Inc.
 
Contribute 101: Compose/Kitematic/Machine by Ben Bonnefoy
Docker, Inc.
 
Provisioning environments. A simplistic approach
Eder Roger Souza
 
Docker management
Karthik Gaekwad
 
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 

What's hot (20)

PPTX
Deploying Apps on OpenStack
Anne Gentle
 
PDF
How to contribute for Docker Labs
Ajeet Singh Raina
 
PDF
We Need to Talk: How Communication Helps Code
Docker, Inc.
 
PDF
My Journey to Becoming a Docker Captain
Ajeet Singh Raina
 
PDF
Dockercon 2018 EU Updates
Ajeet Singh Raina
 
PDF
Learning Docker from Square One
Docker, Inc.
 
PDF
Containers - (Austin Cloud Meetup April 2016)
Derrick Wippler
 
PDF
"Workstation Up" - Docker Development at Flow by Mike Roth
Docker, Inc.
 
PDF
Introduction to Docker
James Turnbull
 
PDF
DockerDay2015: Microsoft and Docker
Docker-Hanoi
 
PDF
Introduction to Docker
Jirayut Nimsaeng
 
PPTX
ACM Gazi Docker?
kloia
 
PDF
Git and GitHub for Documentation
Anne Gentle
 
PDF
DockerCon SF 2015: Docker in the New York Times Newsroom
Docker, Inc.
 
PDF
Docker Best Practices Workshop
Ahmed AbouZaid
 
PDF
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
Howard Greenberg
 
PDF
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
PPTX
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
POTX
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Swaminathan Vetri
 
PDF
calmio-cicd-containers
Balaji Janakiram
 
Deploying Apps on OpenStack
Anne Gentle
 
How to contribute for Docker Labs
Ajeet Singh Raina
 
We Need to Talk: How Communication Helps Code
Docker, Inc.
 
My Journey to Becoming a Docker Captain
Ajeet Singh Raina
 
Dockercon 2018 EU Updates
Ajeet Singh Raina
 
Learning Docker from Square One
Docker, Inc.
 
Containers - (Austin Cloud Meetup April 2016)
Derrick Wippler
 
"Workstation Up" - Docker Development at Flow by Mike Roth
Docker, Inc.
 
Introduction to Docker
James Turnbull
 
DockerDay2015: Microsoft and Docker
Docker-Hanoi
 
Introduction to Docker
Jirayut Nimsaeng
 
ACM Gazi Docker?
kloia
 
Git and GitHub for Documentation
Anne Gentle
 
DockerCon SF 2015: Docker in the New York Times Newsroom
Docker, Inc.
 
Docker Best Practices Workshop
Ahmed AbouZaid
 
OpNovember Water Cooler Talk: The Mystery of Domino on Docker - Part 1
Howard Greenberg
 
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
Swaminathan Vetri
 
calmio-cicd-containers
Balaji Janakiram
 
Ad

Viewers also liked (20)

PPTX
Docker introduction
dotCloud
 
PDF
containerd and CRI
Docker, Inc.
 
PDF
Driving containerd operations with gRPC
Docker, Inc.
 
PPTX
Docker Online Meetup: Announcing Docker CE + EE
Docker, Inc.
 
PPTX
Containerd - core container runtime component
Docker, Inc.
 
PDF
Kernel load-balancing for Docker containers using IPVS
Docker, Inc.
 
PPTX
Docker in a big company
Docker, Inc.
 
PPTX
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
PDF
'The History of Metrics According to me' by Stephen Day
Docker, Inc.
 
PPTX
Prometheus design and philosophy
Docker, Inc.
 
PDF
Docker Online Meetup: Infrakit update and Q&A
Docker, Inc.
 
PPTX
Cgroups, namespaces and beyond: what are containers made from?
Docker, Inc.
 
PDF
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Docker, Inc.
 
PDF
Docker Online Meetup #22: Docker Networking
Docker, Inc.
 
PDF
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
PDF
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 
PDF
Unikernels: the rise of the library hypervisor in MirageOS
Docker, Inc.
 
PPTX
Docker Networking: Control plane and Data plane
Docker, Inc.
 
PPTX
Why Docker
dotCloud
 
PDF
containerd summit - Deep Dive into containerd
Docker, Inc.
 
Docker introduction
dotCloud
 
containerd and CRI
Docker, Inc.
 
Driving containerd operations with gRPC
Docker, Inc.
 
Docker Online Meetup: Announcing Docker CE + EE
Docker, Inc.
 
Containerd - core container runtime component
Docker, Inc.
 
Kernel load-balancing for Docker containers using IPVS
Docker, Inc.
 
Docker in a big company
Docker, Inc.
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
'The History of Metrics According to me' by Stephen Day
Docker, Inc.
 
Prometheus design and philosophy
Docker, Inc.
 
Docker Online Meetup: Infrakit update and Q&A
Docker, Inc.
 
Cgroups, namespaces and beyond: what are containers made from?
Docker, Inc.
 
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Docker, Inc.
 
Docker Online Meetup #22: Docker Networking
Docker, Inc.
 
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 
Unikernels: the rise of the library hypervisor in MirageOS
Docker, Inc.
 
Docker Networking: Control plane and Data plane
Docker, Inc.
 
Why Docker
dotCloud
 
containerd summit - Deep Dive into containerd
Docker, Inc.
 
Ad

Similar to Contribute 101: Engine/Swarm/ContainerD by Phil Estes (20)

PDF
LinuxCon2009: What does it mean being an Open Source project manager in Enter...
Toshiharu Harada, Ph.D
 
PDF
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
Lucidworks
 
PDF
Opening up Open Source
Derek Buitenhuis
 
PPTX
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
Running a Successful Open Source Project
Rob Reynolds
 
PDF
NLJUG speaker academy 2023 - session 1
Bert Jan Schrijver
 
PDF
OpenStack Upstream Training Report
Rakuten Group, Inc.
 
PDF
NLJUG speaker academy 2024 - session 1, June 2024
Bert Jan Schrijver
 
PDF
Overcoming the Fear of Contributing to Open Source
All Things Open
 
PPTX
14 Habits of Great SQL Developers
Ike Ellis
 
PDF
NLJUG speaker academy 2022 - session 1
Bert Jan Schrijver
 
PPTX
The Story of Project Sputnik - Client to cloud solution
Barton George
 
PDF
AAU UX club presentation - April 23, 2015
Cassy Rowe
 
PPTX
contributing to open source in just about any skill
ssuser5bd894
 
PDF
Code Review
Erik Ecoologic
 
PDF
What every successful open source project needs
Steven Francia
 
PPTX
Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar
Turkish Testing Board
 
PDF
The Open Source Way - @JBCNConf Closing Keynote 2016
Mauricio (Salaboy) Salatino
 
PPTX
Embracing OSS in the enterprise
cyberzeddk
 
LinuxCon2009: What does it mean being an Open Source project manager in Enter...
Toshiharu Harada, Ph.D
 
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
Lucidworks
 
Opening up Open Source
Derek Buitenhuis
 
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Running a Successful Open Source Project
Rob Reynolds
 
NLJUG speaker academy 2023 - session 1
Bert Jan Schrijver
 
OpenStack Upstream Training Report
Rakuten Group, Inc.
 
NLJUG speaker academy 2024 - session 1, June 2024
Bert Jan Schrijver
 
Overcoming the Fear of Contributing to Open Source
All Things Open
 
14 Habits of Great SQL Developers
Ike Ellis
 
NLJUG speaker academy 2022 - session 1
Bert Jan Schrijver
 
The Story of Project Sputnik - Client to cloud solution
Barton George
 
AAU UX club presentation - April 23, 2015
Cassy Rowe
 
contributing to open source in just about any skill
ssuser5bd894
 
Code Review
Erik Ecoologic
 
What every successful open source project needs
Steven Francia
 
Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar
Turkish Testing Board
 
The Open Source Way - @JBCNConf Closing Keynote 2016
Mauricio (Salaboy) Salatino
 
Embracing OSS in the enterprise
cyberzeddk
 

More from Docker, Inc. (20)

PDF
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
PDF
How to Improve Your Image Builds Using Advance Docker Build
Docker, Inc.
 
PDF
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
PDF
Securing Your Containerized Applications with NGINX
Docker, Inc.
 
PDF
How To Build and Run Node Apps with Docker and Compose
Docker, Inc.
 
PDF
Hands-on Helm
Docker, Inc.
 
PDF
Distributed Deep Learning with Docker at Salesforce
Docker, Inc.
 
PDF
The First 10M Pulls: Building The Official Curl Image for Docker Hub
Docker, Inc.
 
PDF
Monitoring in a Microservices World
Docker, Inc.
 
PDF
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
Docker, Inc.
 
PDF
Predicting Space Weather with Docker
Docker, Inc.
 
PDF
Become a Docker Power User With Microsoft Visual Studio Code
Docker, Inc.
 
PDF
How to Use Mirroring and Caching to Optimize your Container Registry
Docker, Inc.
 
PDF
Monolithic to Microservices + Docker = SDLC on Steroids!
Docker, Inc.
 
PDF
Kubernetes at Datadog Scale
Docker, Inc.
 
PDF
Labels, Labels, Labels
Docker, Inc.
 
PDF
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Docker, Inc.
 
PDF
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
PDF
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
Docker, Inc.
 
PDF
Developing with Docker for the Arm Architecture
Docker, Inc.
 
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
How to Improve Your Image Builds Using Advance Docker Build
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Securing Your Containerized Applications with NGINX
Docker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
Docker, Inc.
 
Hands-on Helm
Docker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Docker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
Docker, Inc.
 
Monitoring in a Microservices World
Docker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
Docker, Inc.
 
Predicting Space Weather with Docker
Docker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Docker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
Docker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Docker, Inc.
 
Kubernetes at Datadog Scale
Docker, Inc.
 
Labels, Labels, Labels
Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
Docker, Inc.
 
Developing with Docker for the Arm Architecture
Docker, Inc.
 

Recently uploaded (20)

PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
The Future of Artificial Intelligence (AI)
Mukul
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Doc9.....................................
SofiaCollazos
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 

Contribute 101: Engine/Swarm/ContainerD by Phil Estes

  • 1. Contributing to Docker 101 (an external maintainer’s view) Phil Estes IBM Cloud, Open Technology Twitter: @estesp
  • 2. About Me 2 Phil Estes Senior Technical Staff Member IBM Cloud, Open Technology & Strategy @estesp > Docker core engine maintainer > Member of “Docker Captains” program > 10+ years involved in Linux/OSS Community accomplishments: > User namespace support in the Docker engine > Helped design v2.2 image spec with multi-platform support > Implemented first tool to create multi-platform images in Docker v2.3 registry & DockerHub
  • 3. The Fine Print 3 • Contributing is more than code ○ But, my experience is with code contributions and will lean heavily towards that aspect • The overall topic is quite broad ○ So I’ll focus on what I have (and will) personally share with an interested developer looking to contribute to a Docker project • There are personal aspects to workflow/focus areas/etc. ○ So please don’t blame me if your experiences don’t match mine :) • There is a TL;DR if you find me {unconvincing,boring}! ○ https://github.com/docker/docker/blob/master/CONTRIBUTING.md
  • 4. Where do I Start? (the basics) 4
  • 5. The Basics before the Basics 5 • GitHub account ○ Set up and use TFA (two-factor authentication) ○ Add an SSH key • A `git` workspace ○ Fork repos you plan to contribute to (GitHub UI) ○ Clone them on your local system for development • IRC client ○ Join #docker-dev, listen to #docker-maintainers, join other project channels as interested (swarm, network, distribution) ○ Interact with other contributors and maintainers! • Go through the contributor’s guide! ○ https://docs.docker.com/opensource/code/ •
  • 6. Good and Bad (are some contributors better than others?) 6
  • 7. Communication • Find and discuss large changes with the right maintainers • Actively ask for input/feedback • Respond in a timely manner • Join the team on IRC • Silent (large) PR submissions • Lack of response to questions/feedback • Never get on IRC and build relationships 7 GOOD BAD
  • 8. Tone • It’s not personal • If you are taking the response personally, a) breathe, b) ask for clarification • Patience with busy maintainers! • Understand “close” is not a personal rejection • Knee-jerk/reactive response to feedback • Lack of patience to maintainer “burden” • Ignore maintainer workflow • Respond negatively to a “close” response 8 GOOD BAD
  • 9. Learn • Read other PRs; learn what works/fails • Follow IRC; see what’s being discussed • Ask for help! • Know you aren’t a Go language expert (unless you are); see what you can learn • “Heads down” mode; never look around • Ignore the direction of the project • Assume you know everything • Consider yourself having mastered Go completely 9 GOOD BAD
  • 10. Practice • Sharpen your skills; understand what’s “idiomatic” vs. not • Add tests! • Help improve docs • Improve the codebase even if is not related to what you want to work on • Ignore that idiomatic Go is an expectation • Add function with no tests • Hope that someone else works on docs • Ignore the codebase outside your interests 10 GOOD BAD
  • 11. What can I do? (find your niche) 11
  • 12. Finding Work to Do 12 • Search repo for beginner/easy issues ○ Dependent on project’s use of tags ○ Use #dibs to mark working • Ask on IRC ○ Ask for help finding something to hack on • What is your area of expertise? ○ Are you a networking expert? Do you know all about Linux namespace internals? ○ Learn the code for that area of the Docker ecosystem; what would you add/fix/help improve? • Look for roadmap items (and ask about ownership) •
  • 13. Closing Thoughts (A Lifetime Channel heartwarming episode of “My Story: A Docker Maintainer”) 13
  • 14. Two Years of docker/docker 14 • Community is Extremely Welcoming ○ Have never seen a new contributor treated poorly ○ Plenty of guidance for those that are interested in learning • No one Agrees on Everything ○ It is not “Docker, Inc.” versus “everyone else”. Maintainers have personal perspectives, and Docker walks a tightrope between OSS and products • Docker is an Opinionated Container Ecosystem ○ Developer-focused, developer experience has high precedence ○ Focus on UI simplicity/clarity means long discussions on UX changes • Docker OSS Projects are Imperfect ○ Just like every other open source project ○ But it’s a great one!
  • 15. How do I Become a Maintainer? 15 • Make sure you really want it! ○ Maintainer role is a change of focus (away from pure contribution) ○ Comes with an expectation/burden; read this document first: https: //github.com/docker/opensource/blob/master/MAINTAINERS • Become known ○ A maintainer is a trusted position; you can’t be a maintainer if the current maintainers don’t know you (see “IRC”) • Become known for working outside of your own PRs ○ Your “LGTM” is not valid, but you can definitely provide helpful comments/feedback. This will be noticed! • Help out! ○ Triage issues; debug problems