<html><head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Contributing Patches</title><link rel="stylesheet" type="text/css" href="css/docbook.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><meta name="keywords" content="jetty, servlet, servlet-api, cometd, http, websocket, eclipse, maven, java, server, software"><link rel="home" href="index.html" title="Jetty"><link rel="up" href="advanced-contributing.html" title="Chapter&nbsp;35.&nbsp;Contributing to Jetty"><link rel="prev" href="bugs.html" title="Issues, Features, and Bugs"><link rel="next" href="security-reporting.html" title="Reporting Security Issues"><link xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" rel="shortcut icon" href="images/favicon.ico"><link rel="stylesheet" href="css/highlighter/foundation.css"><script src="js/highlight.pack.js"></script><script>
      hljs.initHighlightingOnLoad();
    </script><link type="text/css" rel="stylesheet" href="css/font-awesome/font-awesome.min.css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><tr><td style="width: 25%"><a href="http://www.eclipse.org/jetty"><img src="images/jetty-header-logo.png" alt="Jetty Logo"></a><br><span style="font-size: small">
            Version: 9.3.28.v20191105</span></td><td style="width: 50%"></td></tr></table><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Contributing Patches</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bugs.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><th width="60%" align="center">Chapter&nbsp;35.&nbsp;Contributing to Jetty<br><a accesskey="p" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></th><td width="20%" align="right">&nbsp;<a accesskey="n" href="security-reporting.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr></table><hr></div><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="jetty-callout"><h5 class="callout"><a href="http://www.webtide.com/">Contact the core Jetty developers at
          <span class="website">www.webtide.com</span></a></h5><p>
 private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ...
 scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development
      </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="contributing-patches"></a>Contributing Patches</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="section"><a href="contributing-patches.html#contributing-cla">Sign a CLA</a></span></dt><dt><span class="section"><a href="contributing-patches.html#contributing-git-config">Configuring Git</a></span></dt><dt><span class="section"><a href="contributing-patches.html#contributing-making-the-commit">Making the Commit</a></span></dt><dt><span class="section"><a href="contributing-patches.html#contributing-the-pull-request">The Pull Request</a></span></dt><dt><span class="section"><a href="contributing-patches.html#contributing-our-policies">Our Policies</a></span></dt></dl></div><p>We love seeing people contribute patches to the Jetty project and the process is relatively simple.
The requirements to commit are modest but very important to the Eclipse Foundation and the intellectual property of the open source project.
The following is the general process by which we operate.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">You must have a signed Eclipse Contributor Agreement.</li><li class="listitem">This agreement must be under the <span class="emphasis"><em>same</em></span> email address as the Git pull request originates from.</li><li class="listitem">The commit must be signed.</li><li class="listitem"><p class="simpara">When the pull request is made, a git-hook will validate the email address.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">If the result is a green checkbox then the Jetty committers can review the pull request.</li><li class="listitem">If the result is a red X then there is absolutely nothing the Jetty committers can do to accept the commit at this point.</li></ul></div></li><li class="listitem">This may not be the final form a commit will take, there may be some back and forth and you may be asked to re-issue a pull request.</li></ul></div><p>Not everything is specifically relevant since we are at GitHub but the crux of things are detailed there.  The CLA is critically important to the process.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="contributing-cla"></a>Sign a CLA</h3></div></div></div><p>The Eclipse Foundation has a strong Intellectual Property policy which tracks contributions in detail to ensure that:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">Did the contributor author 100% of the content?</li><li class="listitem">Does the contributor have the rights to contribute this content to Eclipse?</li><li class="listitem">Is the contribution under the project&#8217;s license(s) (e.g. EPL)</li></ol></div><p>A contributor needs to e-sign a Contributor Licence Agreement (for more explanation see the <a class="link" href="http://www.eclipse.org/legal/clafaq.php" target="_top">Eclipse CLA FAQ</a> ) regardless of how their contribution patch is provided.
You can familiarize yourself with the Eclipse wiki page at <a class="link" href="http://wiki.eclipse.org/Development_Resources/Contributing_via_Git" target="_top">Contributing via Git</a>.
In order to have a pull request accepted by any Eclipse project you must complete this agreement.</p><div class="blockquote"><blockquote class="blockquote"><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="fa fa-lightbulb-o" aria-hidden="true"></i> Tip</h3><p>Log into the <a class="link" href="https://projects.eclipse.org/user/login/sso" target="_top">Eclipse projects forge</a> (you will need to create an account with the Eclipse Foundation if you have not already done so); click on "Contributor License Agreement"; and Complete the form.
Be sure to use the <span class="emphasis"><em>same email address</em></span> when you create any Git commit records.</p></div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="contributing-git-config"></a>Configuring Git</h3></div></div></div><p>GitHub has copious amounts of quality documentation on how to interact with the system and you will minimally need to configure the user.email property.
Check out the following <a class="link" href="https://help.github.com/articles/setting-your-email-in-git" target="_top">guide on GitHub</a> for more information.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="contributing-making-the-commit"></a>Making the Commit</h3></div></div></div><p>When making the commit for the pull request it is  <span class="emphasis"><em>vital</em></span> that you "sign-off" on the commit using "git commit -s" option.
Without this sign-off, your patch cannot be applied to the Jetty repository because it will be rejected.</p><p>You can check out the <a class="link" href="https://help.github.com/articles/signing-tags-using-gpg" target="_top">guide at Github</a> for more information.</p><div class="blockquote"><blockquote class="blockquote"><div xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times" class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title"><i class="fa fa-lightbulb-o" aria-hidden="true"></i> Tip</h3><p>One way to think of this is that when you sign the CLA you are indicating that you are free to contribute to eclipse, but that doesn&#8217;t mean everything you ever do can be contributed.
Using the commit signing mechanism indicates that your commit is under the auspices of your agreement.</p></div></blockquote></div><p>If a pull request is for a particular issue in our repository then the format of the commit message is important.
The message should follow the form "Issue #123 &lt;description of the commit&gt;".
When the Jetty project runs releases we have an automated process that scans for commits with this format for inclusion in our VERSION.txt file.</p><div class="blockquote"><blockquote class="blockquote"><div class="blockquote"><blockquote class="blockquote"><p>git commit -s -m "Issue #123 resolving the issue by adding widget"</p></blockquote></div></blockquote></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="contributing-the-pull-request"></a>The Pull Request</h3></div></div></div><p>Pull requests are very much a GitHub process so best <a class="link" href="https://help.github.com/articles/creating-a-pull-request" target="_top">explained by Github</a>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="contributing-our-policies"></a>Our Policies</h3></div></div></div><p>We wholeheartedly welcome contributions to Jetty and will do our best to process them in a timely fashion.
While not every contribution will be accepted as is our commitment is to work with interested parties on the things they care about.
With that in mind, short of some simple contributions we can only handle pull requests with actively engaged parties.
We reserve the right to abandon pull requests whose authors do no respond in a timely fashion.
We will generally adhere to the following time frames for contributions.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p class="simpara">Invalid Pull Requests - 1 week</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">These pull requests do not follow the contribution requirements for some reason, be it missing contributor agreement or the wrong email.</li><li class="listitem">We will try and follow up with the pull request author to resolve the issue but much of this is out of our hands and are between committer and the Eclipse Foundation.</li><li class="listitem">If we do not hear from the contributor after a week we will close the pull request.</li></ul></div></li><li class="listitem"><p class="simpara">Valid Pull Requests - 2 weeks</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">These pull requests have a green check mark after the commit title.</li><li class="listitem">If the pull request can be immediately applied we will do so.</li><li class="listitem">There may need to be some conversation on the issue in which case a committer will follow up with the author in the pull request.</li><li class="listitem">If the original contributor does not respond within 2 weeks we may close the commit.</li><li class="listitem">If we see value in the commit yet the author has not responded after 2 weeks we may make some variation of the commit ourselves.</li></ul></div></li></ul></div></div></div><script type="text/javascript">
      SyntaxHighlighter.all()
    </script><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bugs.html"><i class="fa fa-chevron-left" aria-hidden="true"></i> Previous</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="advanced-contributing.html"><i class="fa fa-chevron-up" aria-hidden="true"></i> Top</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="security-reporting.html">Next <i class="fa fa-chevron-right" aria-hidden="true"></i></a></td></tr><tr><td width="40%" align="left" valign="top">Issues, Features, and Bugs&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html"><i class="fa fa-home" aria-hidden="true"></i> Home</a></td><td width="40%" align="right" valign="top">&nbsp;Reporting Security Issues</td></tr></table></div><p xmlns:jfetch="java:org.eclipse.jetty.xslt.tools.JavaSourceFetchExtension" xmlns:fetch="java:org.eclipse.jetty.xslt.tools.SourceFetchExtension" xmlns:d="http://docbook.org/ns/docbook" xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" xmlns:xslthl="http://xslthl.sf.net" xmlns:gcse="http://www.google.com" xmlns:date="http://exslt.org/dates-and-times"><div class="jetty-callout">
            See an error or something missing?
            <span class="callout"><a href="http://github.com/eclipse/jetty.project">Contribute to this documentation at
                <span class="website"><i class="fa fa-github" aria-hidden="true"></i> Github!</span></a></span><span style="float: right"><i>(Generated: 2019-11-05)</i></span></div></p></body></html>