blob: 88a07929618ac78ed77afa96a5664133780fd083 [file] [log] [blame]
<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>