blob: 2e5d8b81dc7ed451edcc11abae5989f746111712 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
<meta charset="UTF-8">
<title>Submit Changes</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Jekyll v2.4.0">
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/css/screen.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<script src="/js/jquery-3.2.1.min.js"></script>
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
<script src="/js/screen.js"></script>
<script type="text/javascript" src="/assets/javascripts/bundle.js" charset="utf-8"></script>
</head>
<body>
<header role="banner">
<nav class="mobile-nav show-on-mobiles">
<ul>
<li class="">
<a href="/">Home</a>
</li>
<li class="current">
<a href="/docs/">Doc<span class="show-on-mobiles">s</span><span class="hide-on-mobiles">umentation</span></a>
</li>
</li>
<li class="">
<a href="/downloads/">Downloads</a>
</li>
<li class="">
<a href="/talks/">Talks</a>
</li>
<li class="">
<a href="/news/">News</a>
</li>
<li class="">
<a href="/develop/">Develop</a>
</li>
<li class="">
<a href="/help/">Help</a>
</li>
</ul>
</nav>
<div class="grid">
<div class="unit one-third center-on-mobiles">
<h1>
<a href="/">
<span class="sr-only">Apache Mnemonic</span>
<img src="/img/mnemonic_logo_v2.png" width="289" alt="Mnemonic Logo" class="logo">
</a>
<a href="https://www.apache.org/events/current-event.html">
<img src="https://www.apache.org/events/current-event-234x60.png"/>
</a>
</h1>
</div>
<nav class="main-nav unit two-thirds hide-on-mobiles">
<ul>
<li class="">
<a href="/">Home</a>
</li>
<li class="current">
<a href="/docs/">Doc<span class="show-on-mobiles">s</span><span class="hide-on-mobiles">umentation</span></a>
</li>
</li>
<li class="">
<a href="/downloads/">Downloads</a>
</li>
<li class="">
<a href="/talks/">Talks</a>
</li>
<li class="">
<a href="/news/">News</a>
</li>
<li class="">
<a href="/develop/">Develop</a>
</li>
<li class="">
<a href="/help/">Help</a>
</li>
</ul>
</nav>
</div>
<!-- Return to Top -->
<a href="#top" id="return-to-top"><i class="fa fa-chevron-up"></i></a>
</header>
<section class="docs">
<div class="grid">
<div class="docs-nav-mobile unit whole show-on-mobiles">
<select onchange="if (this.value) window.location.href=this.value">
<option value="">Navigate the docs…</option>
<optgroup label="Overview">
<option value="/docs/arch.html">Architecture</option>
<option value="/docs/features.html">Features</option>
<option value="/docs/modes.html">Mnemonic Modes</option>
<option value="/docs/memsrvcmp.html">Durable Memory Service Comparison</option>
<option value="/docs/integration.html">Integration with other projects</option>
<option value="/docs/domusecases.html">DOM Use Cases</option>
<option value="/docs/dcmusecases.html">DCM Use Cases</option>
<option value="/docs/msusecases.html">MS Use Cases</option>
<option value="/docs/sparkusecases.html">Apache Spark Integration Use Cases</option>
<option value="/docs/hadoopusecases.html">Apache Hadoop Integration Use Cases</option>
<option value="/docs/gcdata.html">Java GC data</option>
<option value="/docs/security.html">Security</option>
</optgroup>
<optgroup label="Usage">
<option value="/docs/getstarted.html">Get Started</option>
<option value="/docs/devsetup.html">Development Setup</option>
<option value="/docs/submitchanges.html">Submit Changes</option>
<option value="/docs/build.html">Project Build</option>
<option value="/docs/runtest.html">Run tests</option>
<option value="/docs/docker.html">Docker usage</option>
</optgroup>
</select>
</div>
<div class="unit four-fifths">
<article>
<h1>Submit Changes</h1>
<p>After <a href="devsetup.html">Development Setup</a>, you can follow the steps below to submit your code/comments and document changes.</p>
<hr />
<ul>
<li>
<p>Step 1 - Sync your forked Mnemonic project from upstream. <i><a href="https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork" target="_blank">Show Me How</a></i></p>
<p><strong><i> Please keep the master branch untouched, otherwise we can’t keep it exactly synced. </i></strong></p>
</li>
</ul>
<p><code>bash
$ git fetch upstream
$ git checkout master
$ git merge upstream/master
$ git push
</code></p>
<ul>
<li>
<p>Step 2 - Take over an interested issue/task by clicking the “Start Progress” button in the Apache issue web portal. <i><a href="https://issues.apache.org/jira/projects/MNEMONIC/" target="_blank">Project Issue Portal</a></i></p>
</li>
<li>
<p>Step 3 - Create a new branch for your selected issue/task.</p>
</li>
</ul>
<p><code>bash
$ git checkout master
$ git checkout -b issue-[issue id]
</code></p>
<ul>
<li>Step 4 - Apply patch files if any.</li>
</ul>
<p><code>bash
$ git apply [patch file]
</code></p>
<ul>
<li>Step 5 - Fix/implement the selected issue/task on the specific branch.Please ensure you are working on the create branch, e.g. issue-548, using the following command to confirm it</li>
</ul>
<p><code>bash
$ git status
</code></p>
<ul>
<li>Step 6 - Stage your new code or code changes before stopping work on it.</li>
</ul>
<p><code>bash
$ git add [your changed/new files]
</code></p>
<ul>
<li>Step 7 - Rebase your local works from upstream if it takes a long time. Commit your bugfix or feature code once the issue/task got addressed. Stage all your changed/new files first, please refer to step 6 above. If any conflict occurred, please refer to the <i><a href="https://docs.github.com/en/free-pro-team@latest/github/using-git/resolving-merge-conflicts-after-a-git-rebase" target="_blank">following way to resolve it.</a></i></li>
</ul>
<p><code>bash
$ git commit -s -m “MNEMONIC-[issue id]: [issue description]”
$ git rebase upstream/master
</code></p>
<ul>
<li>Step 8 - Verify your code changes again</li>
</ul>
<p><code>bash
$ git diff HEAD^…
</code></p>
<ul>
<li>Step 9 - Push your new branch and commit to your own github repo.</li>
</ul>
<p><code>bash
$ git push --set-upstream origin issue-XXX
</code></p>
<ul>
<li>
<p>Step 10 - Submit a PR. Visit the Mnemonic repo. in your own Github account, you can see a message about the new/changed branch, you can submit the PR via click the link in the message. <i><a href="https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request" target="_blank">Show Me How</a></i></p>
</li>
<li>
<p>Step 11 - Once PR got submitted, Please click “Resolve Issue” button in <i><a href="https://confluence.atlassian.com/adminjiraserver/working-with-workflows-938847362.html" target="_blank">Apache issue web portal.</a></i>.</p>
</li>
<li>
<p>Step 12 - Normally, wait for 2-5 calendar days for reviewers to take comments on the PR. Address all comments as possible. Once the PR got verified by reviewers, Please click “Close Issue” button in Apache issue web portal.</p>
</li>
</ul>
<div class="section-nav">
<div class="left align-right">
<a href="/docs/devsetup.html" class="prev">Back</a>
</div>
<div class="right align-left">
<a href="/docs/build.html" class="next">Next</a>
</div>
</div>
<div class="clear"></div>
</article>
</div>
<div class="unit one-fifth hide-on-mobiles">
<aside>
<h4>Overview</h4>
<ul>
<li class=""><a href="/docs/arch.html">Architecture</a></li>
<li class=""><a href="/docs/features.html">Features</a></li>
<li class=""><a href="/docs/modes.html">Mnemonic Modes</a></li>
<li class=""><a href="/docs/memsrvcmp.html">Durable Memory Service Comparison</a></li>
<li class=""><a href="/docs/integration.html">Integration with other projects</a></li>
<li class=""><a href="/docs/domusecases.html">DOM Use Cases</a></li>
<li class=""><a href="/docs/dcmusecases.html">DCM Use Cases</a></li>
<li class=""><a href="/docs/msusecases.html">MS Use Cases</a></li>
<li class=""><a href="/docs/sparkusecases.html">Apache Spark Integration Use Cases</a></li>
<li class=""><a href="/docs/hadoopusecases.html">Apache Hadoop Integration Use Cases</a></li>
<li class=""><a href="/docs/gcdata.html">Java GC data</a></li>
<li class=""><a href="/docs/security.html">Security</a></li>
</ul>
<h4>Usage</h4>
<ul>
<li class=""><a href="/docs/getstarted.html">Get Started</a></li>
<li class=""><a href="/docs/devsetup.html">Development Setup</a></li>
<li class="current"><a href="/docs/submitchanges.html">Submit Changes</a></li>
<li class=""><a href="/docs/build.html">Project Build</a></li>
<li class=""><a href="/docs/runtest.html">Run tests</a></li>
<li class=""><a href="/docs/docker.html">Docker usage</a></li>
</ul>
</aside>
</div>
<div class="clear"></div>
</div>
</section>
<footer role="contentinfo">
<p><div align="center">Apache Mnemonic, Mnemonic, Apache, and the Mnemonic logo are trademarks of The Apache Software Foundation.</div>
<div align="center"> Copyright &copy;&nbsp;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a></div></p>
</footer>
<script>
var anchorForId = function (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
anchor.title = "Permalink";
return anchor;
};
var linkifyAnchors = function (level, containingElement) {
var headers = containingElement.getElementsByTagName("h" + level);
for (var h = 0; h < headers.length; h++) {
var header = headers[h];
if (typeof header.id !== "undefined" && header.id !== "") {
header.appendChild(anchorForId(header.id));
}
}
};
document.onreadystatechange = function () {
if (this.readyState === "complete") {
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
if (!contentBlock) {
return;
}
for (var level = 1; level <= 6; level++) {
linkifyAnchors(level, contentBlock);
}
}
};
</script>
</body>
</html>