CINXE.COM
Apache Community Development - Mentoring: First Patch
<!DOCTYPE html> <html lang="en"> <head> <meta name="description" content="Apache Community Development"/> <meta name="keywords" content="apache, apache community, community development, opensource"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> <meta property="og:title" content="Mentoring: First Patch" /> <meta property="og:description" content="Mentoring: First Patch ¶ A beginner’s first patch on a project can be an intimidating and frustrating experience. Clearly documenting the entire process from checkout to accepted patch greatly lowers the barrier for a new contributor, and makes it more likely that they’ll come back for their second patch. Here’s some tips on how to do that. Outline: Talk to the project first Make sure it’s wanted/welcome See if there’s already work in progress, or suggestions Find someone to be your advocate Finding the source Writing a good commit message Following up on your pull request Learning from your struggle: Improving the documentation " /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://community.apache.org/mentoring/firstpatch.html" /><meta property="og:image" content="https://community.apache.org/images/project-logos.webp"/><meta property="article:section" content="mentoring" /> <meta property="og:site_name" content="Apache Community Development" /> <title>Apache Community Development - Mentoring: First Patch</title> <link rel="shortcut icon" href="/images/favicon.ico"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link href="/css/main.css" rel="stylesheet" media="screen"> <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen"> <style type="text/css"> .footer { text-align:center; color:grey; font-size:80%; border-top: solid #ddd 1px; margin-top:1em; } .navbar-brand img { height: 50px; } </style> <script> var _paq = window._paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.apache.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '36']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> </head> <body> <header class="navbar navbar-expand-lg navbar-dark bg-bright fixed-top"> <div class="container"> <a class="navbar-brand" href="/"> <img src="/images/asf_logo.svg" alt="Apache Software Foundation"> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="mainNavbar"> <div class="container"> <ul class="navbar-nav mr-auto"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="homeDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Home </a> <div class="dropdown-menu" aria-labelledby="homeDropdown"> <a class="dropdown-item" href="/">Homepage</a> <a class="dropdown-item" href="/tags.html">Tags</a> <a class="dropdown-item" href="/blog/">Blog</a> <a class="dropdown-item" href="/tags/navigation.html">Navigation pages</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="aboutDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> About </a> <div class="dropdown-menu" aria-labelledby="aboutDropdown"> <a class="dropdown-item" href="/about/">What We Do</a> <a class="dropdown-item" href="/newbiefaq.html">Frequently Asked Questions</a> <a class="dropdown-item" href="/projectIndependence.html">Apache Project Independence</a> <a class="dropdown-item" href="/apache-way/apache-project-maturity-model.html">Apache Project Maturity Model</a> <a class="dropdown-item" href="/contactpoints.html">Contact Points Within the ASF</a> <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Community_Development.html#2009-11-01">ComDev Original Board Resolution</a> <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Community_Development.html">ComDev Board Reports</a> <a class="dropdown-item" href="https://issues.apache.org/jira/projects/COMDEV">Community Development Jira</a> <div class="dropdown-divider"></div> <a class="dropdown-item text-uppercase disabled" href="#">About Apache</a> <a class="dropdown-item" href="https://www.apache.org/">The Apache Software Foundation</a> <a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship">Sponsor Apache</a> <a class="dropdown-item" href="http://diversity.apache.org/">Diversity & Inclusion</a> <a class="dropdown-item" href="/contributors/asf-volunteers.html">Mentors & Speakers</a> <a class="dropdown-item" href="https://www.apache.org/foundation/thanks">Thanks to our Sponsors</a> <a class="dropdown-item" href="https://www.apache.org/licenses">License</a> <a class="dropdown-item" href="https://www.apache.org/security">Security</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="contribDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Contributing </a> <div class="dropdown-menu" aria-labelledby="contribDropdown"> <a class="dropdown-item" href="/contributor-ladder.html">Contributor Ladder</a> <a class="dropdown-item" href="/newcomers/">Getting Started at Apache</a> <a class="dropdown-item" href="/contributors/">Contributing to projects</a> <a class="dropdown-item" href="/committers/">Committers</a> <a class="dropdown-item" href="/pmc/">PMC Members</a> <div class="dropdown-divider"></div> <a class="dropdown-item text-uppercase disabled" href="#">Committer and PMC Information</a> <a class="dropdown-item" href="https://www.apache.org/dev/">Technical Developer FAQs</a> <a class="dropdown-item" href="/committers/decisionMaking.html">Decision Making</a> <a class="dropdown-item" href="/committers/good-first-issues.html">Good First Issues</a> <a class="dropdown-item" href="/pmc/community-growth.html">Recruiting New Contributors</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="commitDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">GSoC</a> <div class="dropdown-menu" aria-labelledby="gsocDropdown"> <a class="dropdown-item" href="/gsoc/">Google Summer Of Code Information</a> <a class="dropdown-item" href="/gsoc/mentee-ranking-process.html">Mentee Ranking Process</a> <a class="dropdown-item" href="/gsoc/experiences/">Past GSoC Experiences</a> <a class="dropdown-item" href="/gsoc/guide-to-being-a-mentor.html">Guide to being a Mentor</a> <a class="dropdown-item" href="/gsoc/use-the-comdev-gsoc-issue-tracker-for-gsoc-tasks.html">Using ComDev's Jira for GSoC Ideas</a> <a class="dropdown-item" href="/gsoc/gsoc-admin-tasks.html">Tasks of a GSoC Admin at the ASF</a> <a class="dropdown-item" href="https://issues.apache.org/jira/projects/GSOC">GSoC Jira</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="eventDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Events </a> <div class="dropdown-menu" aria-labelledby="eventDropdown"> <a class="dropdown-item" href="https://apachecon.com/">Community Over Code - (formerly ApacheCon)</a> <a class="dropdown-item" href="https://events.apache.org/">Other Apache-related Events</a> <a class="dropdown-item" href="https://www.apache.org/foundation/marks/events">Apache event branding policies</a> <div class="dropdown-divider"></div> <a class="dropdown-item text-uppercase disabled" href="#">Conference Speakers</a> <a class="dropdown-item" href="/speakers/">Speaker resources</a> <a class="dropdown-item" href="/speakers/slides.html">Sample presentations</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="conversDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Working Groups </a> <div class="dropdown-menu" aria-labelledby="wgDropdown"> <a class="dropdown-item" href="/workinggroups/">Working Groups</a> <a class="dropdown-item" href="https://github.com/apache/comdev-working-groups">Git repositories</a> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="conversDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Join the Conversation </a> <div class="dropdown-menu" aria-labelledby="conversDropdown"> <a class="dropdown-item" href="/blog/">Blog</a> <a class="dropdown-item" href="https://www.facebook.com/ApacheSoftwareFoundation">Facebook</a> <a class="dropdown-item" href="https://twitter.com/ApacheCommunity">Twitter</a> <a class="dropdown-item" href="/lists.html">Mailing List</a> <a class="dropdown-item" href="https://cwiki.apache.org/confluence/display/COMDEV/Apache+Local+Community+-+ALC">ALC: Apache Local Communities</a> </div> </li> </ul> </div> </div> </div> </header> <main class="cd-main" id="content" role="main"> <div class="container"> <section id="content" class="row"> <div class="col-md-9"> </div> <div class="col-md-12"></div> </section> <hr> <ul class="tags-list"> <li> <a href="https://community.apache.org/tags/mentoring.html">mentoring</a> </li> <li> <a href="https://community.apache.org/tags/newcomers.html">newcomers</a> </li> <li> <a href="https://community.apache.org/tags/patch.html">patch</a> </li></ul> <br><br> <h1 id="mentoring-first-patch">Mentoring: First Patch <a class="headerlink" title="Permalink" href="#mentoring-first-patch">¶</a></h1> <p>A beginner’s first patch on a project can be an intimidating and frustrating experience. Clearly documenting the entire process from checkout to accepted patch greatly lowers the barrier for a new contributor, and makes it more likely that they’ll come back for their second patch.</p> <p>Here’s some tips on how to do that.</p> <p>Outline:</p> <ul> <li>Talk to the project first <ul> <li>Make sure it’s wanted/welcome</li> <li>See if there’s already work in progress, or suggestions</li> <li>Find someone to be your advocate</li> </ul> </li> <li>Finding the source</li> <li>Writing a good commit message</li> <li>Following up on your pull request</li> <li>Learning from your struggle: Improving the documentation</li> </ul> </div> </main> <footer class="page-footer bg-secondary mt-4 pt-3"> <div class="container text-center text-md-left mb-3"> <div class="row"> <div class="col-md-6 mt-md-0 mt-3"> <h5 class="text-uppercase">Trademarks</h5> <p> Apache®, the names of Apache projects, and the multicolor feather logo are <a href="https://www.apache.org/foundation/marks/list/">registered trademarks or trademarks</a> of the Apache Software Foundation in the United States and/or other countries. </p> </div> <hr class="clearfix w-100 d-md-none pb-3"> <div class="col-md-6 mb-md-0 mb-3"> <h5 class="text-uppercase">Website sources</h5> <p> This website is generated from the <a href="https://github.com/apache/comdev-site">comdev-site repository</a> <br/> Source of this page: <a href="https://github.com/apache/comdev-site/blob/main/source/mentoring/firstpatch.md" title="Source of this page"> mentoring/firstpatch.md </a> </p> </div> </div> </div> <div class="footer-copyright text-center py-3"> <em>Copyright © 2024, <a href="https://www.apache.org/">the Apache Software Foundation</a>. Licensed under the <a rel="license" href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></em> </div> </footer> <script src="/js/jquery.min.js"></script> <script src="/js/bootstrap.min.js"></script> </body> </html>