CINXE.COM
Getting Involved with Apache Subversion
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Getting Involved with Apache Subversion</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="manifest" href="/site.webmanifest"> <link rel="apple-touch-icon" href="/icon.png"> <link rel="icon" type="image/png" href="/icon.png"> <link rel="stylesheet" href="/style/site.css" type="text/css" media="all"> <meta name="theme-color" content="#98b0d4"> </head> <body> <div id="site-banner"> <div style="font-style: italic; text-align: center;" id="site-banner-apachelogo"> <a href="https://www.apache.org/" ><img src="/images/asf_logo_wide.svg" alt="Apache Software Foundation" /></a> </div> <a href="/"> <img src="/images/svn-name-banner.svg" width="379" height="80" alt="[S] Subversion" id="site-banner-svnlogo" /></a> </div> <!-- #site-banner --> <div id="site-nav"> <label for="hamburger">☰</label> <input type="checkbox" id="hamburger"/> <nav id="site-nav-menu"> <p>About Subversion <ul> <li><a href="/news.html">News</a></li> <li><a href="/features.html">Features</a></li> <li><a href="/docs/">Documentation</a></li> <li><a href="/faq.html">FAQ</a></li> <li><a href="/roadmap.html">Roadmap</a></li> <li><a href="/security/">Security</a></li> <li><a href="/quick-start">Quick Start</a></li> <li><a href="/blog/">Blog</a></li> </ul> </p> <p>Getting Subversion <ul> <li><a href="/packages.html">Binary Packages</a></li> <li><a href="/download.cgi">Source Download</a></li> <li><a href="/docs/release-notes/">Release Notes</a></li> </ul> </p> <p>Community <ul> <li><a href="/mailing-lists.html">Mailing Lists</a></li> <li><a href="/reporting-issues.html">Reporting Issues</a></li> <li><a href="https://cwiki.apache.org/confluence/display/SVN/">Wiki</a></li> <li><a href="/contributing.html">Getting Involved</a></li> <li><a href="/source-code.html">Source Code</a></li> </ul> </p> <p>About the <acronym title="Apache Software Foundation">ASF</acronym> <ul> <li><a class="linkaway" href="https://www.apache.org/licenses/">License</a></li> <li><a class="linkaway" href="https://www.apache.org/foundation/sponsorship.html">Donate</a></li> <li><a class="linkaway" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> </ul> </p> <p id="site-search"> <form action="https://www.google.com/search" method="get" style="margin-top: 10px; margin-bottom: 10px; display: inline;"> <div style="display: inline;"> <input value="subversion.apache.org" name="sitesearch" type="hidden" /> <input name="q" id="query" type="text" placeholder="Search..." style="width: 10em" /> <input name="Search" value="Go" type="submit"/> </div> </form> </p> <!-- #site-search --> <p id="site-apachecon-block"> <p><a href="https://www.apache.org/events/current-event.html" ><img src="https://www.apache.org/events/current-event-125x125.png" alt="ApacheCon" /></a></p> </p> <!-- #site-apachecon-block --> <p id="site-svnbook-block"> <p>Read the official Subversion documentation <a href="https://svnbook.red-bean.com/" class="linkaway nopadding">online</a>!</p> <p><a href="https://svnbook.red-bean.com/" ><img src="/images/svnbook-cover.jpg" alt="Version Control With Subversion"/></a></p> </p> <!-- #site-svnbook-block --> <p id="copyright"> <p>Copyright © 2023 <a href="https://www.apache.org/" class="nopadding">The Apache Software Foundation</a>, Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0" class="nopadding">Apache License, Version 2.0</a>. Apache, Apache Subversion, and the Apache feather logo are trademarks of The Apache Software Foundation. Subversion and the Apache Subversion logo are registered trademarks of The Apache Software Foundation.</p> <p><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="nopadding">Privacy policy</a></p> </p> <!-- #copyright --> </nav> </div> <!-- #site-nav --> <div id="site-content"> <div id="site-notice"> <!-- PUT SITE-WIDE NOTICES HERE AS NECESSARY --> </div> <!-- #site-notice --> <h1>Getting Involved with Apache Subversion and the Community</h1> <p>There are many ways that you can contribute to Apache Subversion and the community. Fortunately most of these require little more than an interest in Subversion and helping other members of the community.</p> <div class="bigpoint"> <p>The <a href="/docs/community-guide/">Subversion Community Guide (aka "HACKING")</a> is a quasi-religious text that encapsulates all the finer details of the processes and best-practices surrounding contributions to the Subversion community. Anyone considering contributing to Subversion should strongly consider reading this document.</p> </div> <div class="h2" id="educate"> <h2>Help Others Learn <a class="sectionlink" href="#educate" title="Link to this section">¶</a> </h2> <ul> <li><p style="font-weight: bold;">Participate in the mailing lists</p> <p>There are <a href="https://subversion.apache.org/faq#more-information"> mailing lists</a> you can join to discuss Subversion. These are an excellent source for users and contributors interested in having technical discussions, answering questions, or resolving potential issues for newcomers.</p> </li> <li><p style="font-weight: bold;">Promote Subversion</p> <p>Help promote Subversion by using your blog, <a href="https://twitter.com/" >Twitter</a>, <a href="https://facebook.com/" >Facebook</a>, or submitting an article to your favorite local magazine. If you are a member of a different open source community, why not mention Subversion on their discussion forums or at conferences? If you love Subversion, don't hold back — speak up! The more developers use Subversion, the more bugs will be caught, the more features will be added, the more visible the project, and the more benefits the community will get.</p> </li> <li><p style="font-weight: bold;">Link to subversion.apache.org</p> <p>The success of any open source project depends on the number of people who use the product and contribute back to the project. By linking to <a href="https://subversion.apache.org/" >https://subversion.apache.org/</a>, you increase the chances of a new user or contributor finding out about the project and joining the community.</p> </li> </ul> </div> <!-- #educate --> <div class="h2" id="issues"> <h2>Monitor Subversion's Quality <a class="sectionlink" href="#issues" title="Link to this section">¶</a> </h2> <ul> <li><p style="font-weight: bold;">File a bug report</p> <p>Bug reports take little time to file and are very helpful to developers. This is one of the easiest contributions you can make. When you discover a problem with Subversion, please report it. Our preference as a community is to have you first report the bug to the <a href="mailto:users@subversion.apache.org" >users@subversion.apache.org</a> mailing list so that other community members can provide some first-level help and triage. Often times there may already be a solution or answer to your problem.</p> </li> <li><p style="font-weight: bold;">Help us triage existing bug reports</p> <p>Subversion gets a pretty steady stream of bug reports. While we do our best to validate each report as comes in, we can't possibly prevent every instance of duplicated bug reports, bugs that have been fixed without anybody noticing, and so on in our <a href="/reporting-issues.html">issue tracker</a>. One way you can help us is by cruising through some of our <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20SVN%20AND%20resolution%20%3D%20Unresolved%20AND%20fixVersion%3D%22---%22" >issues in need of triage</a>, reading the bug reports, and attempting to verify that the bug still exists in Subversion. If you discover some additional information along the way that you think will be useful to the developers, annotate the issue and share what you've learned.</p> </li> <li id="issues-recipe"><p style="font-weight: bold;">Write a reproduction script</p> <p>A well-written bug report is invaluable to developers. A reproduction recipe script, however, is worth a hundred well-written reports. Nothing helps developers understand what you were doing when something went wrong better than being able to do exactly that something themselves and see the same results. Unfortunately, many bug reports come in via the mailing list or issue tracker and offer only prose descriptions of the problem. So another excellent opportunity for contribution is to turn those prose reports into reliable, repeatable reproduction scripts, perhaps starting with a script template (<a href="docs/community-guide/repro-template.sh">unix template</a>, <a href="docs/community-guide/repro-template.bat">windows template</a>) and customizing it to match the report. This provides several benefits to the developers: you save the developer(s) the work of creating this script themselves; often, your script can be ported directly to Subversion's regression test suite so that the bug, once fixed, stays fixed; and having an additional set of eyes on the bug report can reveal unforeseen nuances such as the fact that the bug is specific to a particular dataset or only happens under some other specific circumstances.</p> </li> <li><p style="font-weight: bold;">Add a node to our build farm</p> <p>Subversion has a large regression test suite that takes a non-trivial amount of time to run. Even though developers are encouraged to run these tests before committing changes, sometimes things fall through the cracks — "obvious" changes turn out not to be, platform-specific bugs crop up, etc. To help us catch these sorts of things, we employ a <a href="/buildbot/all">buildbot farm</a> of machines continuously testing our codebase as it changes. So even if you can't personally take the time to actively test Subversion, if you have a computer with cycles to spare, please consider adding it as a node in our buildbot farm. We can always benefit from having our test suite executed continuously on additional operating systems and machine architectures.</p> <p class="todo">Point to buildbot node configuration details here.</p> </li> </ul> </div> <!-- #issues --> <div class="h2" id="code"> <h2>Contribute Code <a class="sectionlink" href="#code" title="Link to this section">¶</a> </h2> <ul> <li id="code-patches"><p style="font-weight: bold;">Submit a patch</p> <p>The open-source adage "Patches welcome" may show up most frequently as a thread-killing retort to mailing list trolls, but at the heart of the statement are two quite genuine ideals: software code doesn't write itself, and projects generally really do want as many people as possible to help write that code. The Subversion project is no different. We've accepted and applied <a href="https://www.red-bean.com/svnproject/contribulyzer/" >countless patch contributions</a>, and we hope to always have a constant stream of them. If you're a developer able to contribute in this way, take a cruise through our <a href="docs/community-guide/">Subversion Community Guide</a>, specifically the sections regarding <a href="docs/community-guide/general.html#patches" >patch submissions</a> and <a href="docs/community-guide/conventions.html" >coding conventions</a>, and come join the fun! We have a list of <a href="ideas.html">project ideas</a> for those who are looking for a sizable project which can take several weeks or even several months to complete.</p> </li> <li id="code-design"><p style="font-weight: bold;">Help design new features</p> <p>Larger features do not just get written when someone has the time and inclination to do so—they get designed first. The process involves discussions on the <a href="mailing-lists#dev-ml">dev@ list</a>, with reasonably detailed rationales and implementation plans fly across the room. (We often <a href="https://cwiki.apache.org/confluence/display/SVN/DesignNotes">use our wiki</a> to work on the proposed designs.) Participating in such a discussion is an excellent way for users to ensure that planned new features are designed from the very beginning to meet their use-cases and wishes, while for larger features holding such a discussion is key to establishing <a href="https://producingoss.com/en/social-infrastructure.html" >consensus</a> before any coding takes place.</p> </li> <li id="code-tests"><p style="font-weight: bold;">Convert a reproduction script into a regression test</p> <p>Often, users or developers post a <a href="#issues-recipe" >reproduction script</a> when discussing a bug. One of the tasks involved in fixing the bug is to convert the script (typically a shell script or a batch script) into a Python test in <a href="https://svn.apache.org/repos/asf/subversion/trunk/subversion/tests/" >Subversion's test suite</a>. <a href="#code-patches">Sending a patch</a> that implements an XFail ("eXpected to fail" until the bug has been fixed) test equivalent to the reproduction script is a very useful contribution, that both serves as a demonstration of the concrete fix sought and allows other contributors and developers to spend more time researching the cause of the bug and fixes thereto.</p> </li> <li><p style="font-weight: bold;">Become a committer and commit code directly</p> <p>Developers with a long history of submitting high-quality patches can gain direct commit rights. This is obviously beneficial to the developer community — where quality developers are concerned, "the more, the merrier"! But never underestimate how valuable this experience can be to you personally and professionally.</p> </li> </ul> </div> <!-- #code --> <p>For more information about how to contribute, or to discuss your contribution with us, please contact <a href="mailto:dev@subversion.apache.org">dev@subversion.apache.org</a></p> </div> <!-- #site-content --> </body> </html>