Repository: incubator-guacamole-website Updated Branches: refs/heads/asf-site ad389cda8 -> e1a253c22
Deploy committer documentation. Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/commit/e1a253c2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/tree/e1a253c2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/diff/e1a253c2 Branch: refs/heads/asf-site Commit: e1a253c22d6fdb9910b15ec8eba201e1d455f785 Parents: ad389cd Author: Michael Jumper <[email protected]> Authored: Fri Feb 17 11:06:58 2017 -0800 Committer: Michael Jumper <[email protected]> Committed: Fri Feb 17 11:06:58 2017 -0800 ---------------------------------------------------------------------- content/api-documentation/index.html | 2 + content/guac-style/index.html | 2 + content/index.html | 2 + content/open-source/index.html | 56 ++++ content/pull-requests/index.html | 311 +++++++++++++++++++++ content/releases/0.8.3/index.html | 2 + content/releases/0.8.4/index.html | 2 + content/releases/0.9.0/index.html | 2 + content/releases/0.9.1/index.html | 2 + content/releases/0.9.10-incubating/index.html | 2 + content/releases/0.9.11-incubating/index.html | 2 + content/releases/0.9.2/index.html | 2 + content/releases/0.9.3/index.html | 2 + content/releases/0.9.4/index.html | 2 + content/releases/0.9.5/index.html | 2 + content/releases/0.9.6/index.html | 2 + content/releases/0.9.7/index.html | 2 + content/releases/0.9.8/index.html | 2 + content/releases/0.9.9/index.html | 2 + content/releases/index.html | 2 + content/support/index.html | 2 + 21 files changed, 405 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/api-documentation/index.html ---------------------------------------------------------------------- diff --git a/content/api-documentation/index.html b/content/api-documentation/index.html index 4b02771..e01ee8d 100644 --- a/content/api-documentation/index.html +++ b/content/api-documentation/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/guac-style/index.html ---------------------------------------------------------------------- diff --git a/content/guac-style/index.html b/content/guac-style/index.html index c2bbc67..d5e95b7 100644 --- a/content/guac-style/index.html +++ b/content/guac-style/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/index.html ---------------------------------------------------------------------- diff --git a/content/index.html b/content/index.html index 6ab170d..9a77bb4 100644 --- a/content/index.html +++ b/content/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/open-source/index.html ---------------------------------------------------------------------- diff --git a/content/open-source/index.html b/content/open-source/index.html index 543f5fa..c4f001b 100644 --- a/content/open-source/index.html +++ b/content/open-source/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" @@ -112,6 +114,20 @@ as long as you follow itâs simple conditions, you can modify and include Guacamole in other projects to your heartâs content, including commercial or proprietary projects.</p> +<h2 id="meritocracy">Joining the project</h2> + +<p>The Apache Guacamole project operates as a +<a href="http://apache.org/foundation/how-it-works.html#meritocracy">meritocracy</a>. The +project is made up of volunteers who, based on the subjective judgement of the +existing project members, have demonstrated merit through their contributions +and thus have been offered membership themselves. If you wish to join the +project, the first step is to be active in the community as a +<a href="#contribute">contributor</a>.</p> + +<p>Contributors who show merit through the quality of their continuing activity in +the community and their contributions to the project will be invited to become +<a href="#committers">committers</a> or <a href="#ppmc-members">members of the PPMC</a>.</p> + <h2 id="contribute">Contributing</h2> <p>If you believe you have a feature or bug fix that would benefit the project, or @@ -150,6 +166,46 @@ documentation</a> is an excellent resource, as are the <a href="/support/#mailing-lists">mailing lists</a> and the tutorials in <a href="/doc/gug/">the manual</a>.</p> +<h2 id="committers">Committers</h2> + +<p>Committers actively maintain and contribute to the Apache Guacamole project, +produce releases, review the code of contributors and fellow committers, and +identify contributors who have shown <a href="#meritocracy">merit</a> and should be +offered committership. Apache Guacamole committers are also implicitly members +of the <a href="#ppmc-members">Apache Guacamole PPMC</a>.</p> + +<p>Committers have write access to Apache Guacamoleâs git repositories, but do not +make direct changes on their own behalf. Code changes are made only through +<a href="/pull-requests/">pull requests</a>, and are merged only after code review by +a committer not otherwise directly involved in those changes.</p> + +<h3 id="resources-for-committers">Resources for committers:</h3> + +<ul> + <li><a href="http://www.apache.org/dev/committers.html">Committersâ FAQ</a></li> + <li><a href="http://www.apache.org/dev/new-committers-guide.html">Guide for new committers</a></li> + <li><a href="https://github.com/apache/incubator-guacamole-website/blob/master/README.md">Maintaining the website</a></li> + <li><a href="/pull-requests/">Managing pull requests</a></li> + <li><a href="/guac-style/">Style guidelines</a></li> +</ul> + +<h2 id="ppmc-members">PPMC members</h2> + +<p>The Apache Guacamole PPMC is responsible for project oversight. PPMC members +participate in discussions on the <a href="/support/#mailing-lists">mailing lists</a> and +vote on release candidates, new committers, and new PPMC members. Like +<a href="#committers">committers</a> (who are implicitly PPMC members), the PPMC is +responsible for identifying members of the community who have shown +<a href="#meritocracy">merit</a> warranting committership or PPMC membership.</p> + +<h3 id="resources-for-ppmc-members">Resources for PPMC members:</h3> + +<ul> + <li><a href="/support/#mailing-lists">Apache Guacamole mailing lists</a></li> + <li><a href="http://incubator.apache.org/guides/ppmc.html">Apache Incubator: PPMC guide</a></li> + <li><a href="http://apache.org/foundation/voting.html">Apache voting process</a></li> +</ul> + http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/pull-requests/index.html ---------------------------------------------------------------------- diff --git a/content/pull-requests/index.html b/content/pull-requests/index.html new file mode 100644 index 0000000..000ade7 --- /dev/null +++ b/content/pull-requests/index.html @@ -0,0 +1,311 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> + + <head> + <link rel="stylesheet" href="/styles/main.css"> + <link rel="icon" type="image/png" href="/images/guacamole-logo-64.png"/> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/> + <meta charset="UTF-8"/> + <title>Apache Guacamole (incubating): Managing Pull Requests</title> +</head> + + + <body> + + <!-- Header --> +<div id="header"> + <h1><a href="/">Apache Guacamole (incubating)</a></h1> + <ul id="navigation" class="menu"> + + + + + + + + + + + + <li><a + + href="/releases/" + + + class="download" + >Downloads</a></li> + + + + <li><a + + href="https://github.com/search?utf8=%E2%9C%93&q=repo%3Aapache%2Fincubator-guacamole-server+repo%3Aapache%2Fincubator-guacamole-client+repo%3Aapache%2Fincubator-guacamole-website&type=Repositories&ref=searchresults" + + + class="github" + >GitHub</a></li> + + + + <li><a + + href="/api-documentation/" + + >API</a></li> + + + + <li><a + + href="https://issues.apache.org/jira/browse/GUACAMOLE/" + + >JIRA</a></li> + + + + <li><a + + href="/doc/gug/" + + >Manual</a></li> + + + + <li><a + + href="/open-source/" + + >Contributing</a></li> + + + + <li><a + + href="/support/" + + >Help / Support</a></li> + + + </ul> +</div> + + + <!-- Content --> + <div id="page"> + <div id="content"> + <h1>Managing Pull Requests</h1> + +<p>The Apache Guacamole project requires code review for absolutely all changes, +and uses pull requests to facilitate that review. However, because pull +requests must be made against the read-only mirrors on GitHub, merging is +slightly more complicated.</p> + +<p>There is no âmergeâ button. Merges must be performed manually and pushed to the +main repositories which live at the ASF. Once pushed, a robot running at the +ASF (which has write access to the GitHub mirrors) will automatically close +the pull request as merged.</p> + +<p>You will need three remotes for each Apache Guacamole git repository:</p> + +<ol> + <li>The upstream repository hosted by the ASFâs servers</li> + <li>The GitHub mirror</li> + <li>Your personal fork of the GitHub mirror</li> +</ol> + +<p>For the sake of simplicity, these will be referred to here as <code class="highlighter-rouge">upstream</code>, +<code class="highlighter-rouge">mirror</code>, and <code class="highlighter-rouge">origin</code>, respectively. For example, the recommended +configuration for <code class="highlighter-rouge">incubator-guacamole-server</code> would be:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>$ git remote -v +mirror [email protected]:apache/incubator-guacamole-server.git +origin [email protected]:mike-jumper/incubator-guacamole-server.git +upstream https://git-wip-us.apache.org/repos/asf/incubator-guacamole-server.git +$ +</code></pre> +</div> + +<p>After reviewing and approving code submitted via a pull request, you will need +to:</p> + +<ol> + <li> + <p>Manually fetch the contents of the pull request to a new branch via the +command line:</p> + + <div class="highlighter-rouge"><pre class="highlight"><code>$ git fetch mirror pull/NUMBER/head:some-branch +</code></pre> + </div> + + <p>where <code class="highlighter-rouge">NUMBER</code> is the pull request number and <code class="highlighter-rouge">some-branch</code> is a sensible +branch name of your choice.</p> + </li> + <li> + <p>Ensure your copy of the base branch is up to date, whether that be <code class="highlighter-rouge">master</code> +or the staging branch for an upcoming release:</p> + + <div class="highlighter-rouge"><pre class="highlight"><code>$ git fetch upstream +$ git checkout master +$ git merge --ff-only upstream/master +$ git push origin +</code></pre> + </div> + </li> + <li> + <p>Merge the branch containing the changes from the pull request:</p> + + <div class="highlighter-rouge"><pre class="highlight"><code>$ git merge --no-ff some-branch +</code></pre> + </div> + + <p><strong>Be sure to specify <code class="highlighter-rouge">--no-ff</code>!</strong> Merges of pull requests must have +corresponding merge commits, and the messages of those merge commits must +properly tag the associated JIRA issue (just like all other commits).</p> + </li> + <li> + <p>Confirm that the changes look as expected:</p> + + <div class="highlighter-rouge"><pre class="highlight"><code>$ git diff upstream/master +</code></pre> + </div> + </li> + <li> + <p>Push the merge result to the ASF repository:</p> + + <div class="highlighter-rouge"><pre class="highlight"><code>$ git push upstream master +</code></pre> + </div> + + <p>You will be prompted for your username (Apache ID) and password. It is +highly recommended that you not save/cache your credentials for this step, +as it serves as an additional sanity check preventing accidental pushes to +the main repository.</p> + </li> +</ol> + +<p>Once this is done, the ASF git bot should kick in, and emails should go out +across the <a href="mailto:commits@guacamole.incubator.apache.org">commits@guacamole.incubator.apache.org</a> list noting each commit +pushed. If this does not happen, or the commits show up only within the ASF +repositories and not the GitHub mirrors, it may be necessary to reach out to +<a href="https://www.apache.org/dev/infrastructure.html">Infra</a> by opening an issue +against <a href="https://issues.apache.org/jira/browse/INFRA/">the âInfrastructureâ project in +JIRA</a>.</p> + +<h2 id="merging-release-specific-changes">Merging release-specific changes</h2> + +<p>When a pull request is intended for a pending release, the merge base specified +in the pull request <em>should</em> be the staging branch for that release. That said, +part of the point of code review is to identify mistakes prior to merge, and +using the wrong base for a release-specific change is one of those mistakes. It +is good practice to verify whether a staging branch for the release exists in +the main ASF repository, and to double-check whether the change in question is +associated with a release-specific change by checking the âFix Versionâ field +for the issue in JIRA.</p> + +<p>Merging release-specific changes involves:</p> + +<ol> + <li> + <p>Merging the pull request to the <strong>staging branch</strong>. The steps for doing this +are exactly as described above, except you will need to specify +<code class="highlighter-rouge">staging/VERSION</code> instead of <code class="highlighter-rouge">master</code>.</p> + </li> + <li> + <p>Merging the <strong>staging branch</strong> to <strong><code class="highlighter-rouge">master</code></strong>. Doing this is largely the +same as described above, except that there is inherently no JIRA issue to +tag in the commit message. A message like âMerging 0.9.10-incubating +changes back to master.â is pretty sensible.</p> + + <p><strong>DO NOT MERGE THE PULL REQUEST TO MASTER DIRECTLY!</strong> The point of merging +the staging branch to master rather than the pull request is to ensure that +the git history reflects that all commits to the staging branch are present +on <code class="highlighter-rouge">master</code>. If the pull request is merged to master directly, then the git +history ends up with two distinct merges and two distinct sets of commits, +and final release sanity checks performed prior to deleting the staging +branch will fail.</p> + </li> +</ol> + + + + + </div> + </div> + + <!-- Footer --> +<div id="footer"> + + <!-- Copyrights --> + <p class="copyright"> + Copyright © 2016 <a href="http://www.apache.org/">The Apache + Software Foundation</a>, Licensed under the <a + href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, + Version 2.0</a>. The HTML5 shield logo has been modified from the + original work of the <a + href="http://www.w3.org/">World Wide Web Constortium (W3C)</a>, + which is licensed under the <a + href="http://creativecommons.org/licenses/by/3.0/">Creative + Commons Attribution 3.0</a> license. + </p> + + <!-- Trademarks --> + <p class="trademarks"> + Apache and the Apache feather logo are trademarks of The Apache + Software Foundation. + </p> + + <!-- Incubation disclaimer --> + <p class="disclaimer"> + Apache Guacamole is an effort undergoing Incubation at The Apache + Software Foundation (ASF), sponsored by the Incubator. Incubation is + required of all newly accepted projects until a further review + indicates that the infrastructure, communications, and decision making + process have stabilized in a manner consistent with other successful + ASF projects. While incubation status is not necessarily a reflection + of the completeness or stability of the code, it does indicate that the + project has yet to be fully endorsed by the ASF. + </p> + +</div> + + + <!-- Google Analytics --> + <script type="text/javascript"> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-75289145-1', 'auto'); + ga('send', 'pageview'); + </script> + + <!-- Download tracking helper function --> + <script type="text/javascript"> + + /** + * Signals Google Analytics that a file is being downloaded (or, at + * least, we expect that it is). Note that it is not possible to + * determine this with 100% certainty without grepping server logs, + * but this should still at least help gauge interest/usage. + * + * @param {String} action + * A human-readable string describing the user event which + * occurred to initiate the download. + * + * @param {String} filename + * The filename of the file being downloaded. + */ + function trackDownload(action, filename) { + ga('send', 'event', { + eventCategory : 'Download', + eventAction : action, + eventLabel : filename, + transport : 'beacon' + }); + } + + </script> + + </body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.8.3/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.8.3/index.html b/content/releases/0.8.3/index.html index f11c81e..75d7a50 100644 --- a/content/releases/0.8.3/index.html +++ b/content/releases/0.8.3/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.8.4/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.8.4/index.html b/content/releases/0.8.4/index.html index e6cce1e..5cf33fa 100644 --- a/content/releases/0.8.4/index.html +++ b/content/releases/0.8.4/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.0/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.0/index.html b/content/releases/0.9.0/index.html index 08b6def..6775e9c 100644 --- a/content/releases/0.9.0/index.html +++ b/content/releases/0.9.0/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.1/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.1/index.html b/content/releases/0.9.1/index.html index c0e4714..70ca3be 100644 --- a/content/releases/0.9.1/index.html +++ b/content/releases/0.9.1/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.10-incubating/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.10-incubating/index.html b/content/releases/0.9.10-incubating/index.html index 525d615..b5067e9 100644 --- a/content/releases/0.9.10-incubating/index.html +++ b/content/releases/0.9.10-incubating/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.11-incubating/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.11-incubating/index.html b/content/releases/0.9.11-incubating/index.html index dd397e9..6466c64 100644 --- a/content/releases/0.9.11-incubating/index.html +++ b/content/releases/0.9.11-incubating/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.2/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.2/index.html b/content/releases/0.9.2/index.html index 2b1f9b1..9334733 100644 --- a/content/releases/0.9.2/index.html +++ b/content/releases/0.9.2/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.3/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.3/index.html b/content/releases/0.9.3/index.html index 730e282..d82afdf 100644 --- a/content/releases/0.9.3/index.html +++ b/content/releases/0.9.3/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.4/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.4/index.html b/content/releases/0.9.4/index.html index 4c41e56..fadc685 100644 --- a/content/releases/0.9.4/index.html +++ b/content/releases/0.9.4/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.5/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.5/index.html b/content/releases/0.9.5/index.html index 2676d9c..c8273d0 100644 --- a/content/releases/0.9.5/index.html +++ b/content/releases/0.9.5/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.6/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.6/index.html b/content/releases/0.9.6/index.html index 6bce1d3..02a4223 100644 --- a/content/releases/0.9.6/index.html +++ b/content/releases/0.9.6/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.7/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.7/index.html b/content/releases/0.9.7/index.html index 3423858..98a5d07 100644 --- a/content/releases/0.9.7/index.html +++ b/content/releases/0.9.7/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.8/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.8/index.html b/content/releases/0.9.8/index.html index a5d5297..be6448e 100644 --- a/content/releases/0.9.8/index.html +++ b/content/releases/0.9.8/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/0.9.9/index.html ---------------------------------------------------------------------- diff --git a/content/releases/0.9.9/index.html b/content/releases/0.9.9/index.html index 1d3acdc..df94666 100644 --- a/content/releases/0.9.9/index.html +++ b/content/releases/0.9.9/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/releases/index.html ---------------------------------------------------------------------- diff --git a/content/releases/index.html b/content/releases/index.html index 9e31b7c..1ec226e 100644 --- a/content/releases/index.html +++ b/content/releases/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/" http://git-wip-us.apache.org/repos/asf/incubator-guacamole-website/blob/e1a253c2/content/support/index.html ---------------------------------------------------------------------- diff --git a/content/support/index.html b/content/support/index.html index e3c9dd9..0cc0d0f 100644 --- a/content/support/index.html +++ b/content/support/index.html @@ -25,6 +25,8 @@ + + <li><a href="/releases/"
