<!doctype html> | |
<!--[if lt IE 7]><html lang="en-US" class="no-js lt-ie9 lt-ie8 lt-ie7"><![endif]--> | |
<!--[if (IE 7)&!(IEMobile)]><html lang="en-US" class="no-js lt-ie9 lt-ie8"><![endif]--> | |
<!--[if (IE 8)&!(IEMobile)]><html lang="en-US" class="no-js lt-ie9"><![endif]--> | |
<!--[if gt IE 8]><!--> | |
<html lang="en-US" class="no-js"> | |
<!--<![endif]--> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<title>Contribute - Apache Spot</title> | |
<meta name="HandheldFriendly" content="True"> | |
<meta name="MobileOptimized" content="320"> | |
<meta name="viewport" content="width=device-width, initial-scale=1"/> | |
<link rel="apple-touch-icon" href="../library/images/apple-touch-icon.png"> | |
<link rel="icon" href="../favicon.png"> | |
<!--[if IE]> | |
<link rel="shortcut icon" href="http://spot.incubator.apache.org/favicon.ico"> | |
<![endif]--> | |
<meta name="msapplication-TileColor" content="#f01d4f"> | |
<meta name="msapplication-TileImage" content="../library/images/win8-tile-icon.png"> | |
<meta name="theme-color" content="#121212"> | |
<link rel='dns-prefetch' href='//fonts.googleapis.com' /> | |
<link rel='dns-prefetch' href='//s.w.org' /> | |
<link rel='stylesheet' id='googleFonts-css' href='http://fonts.googleapis.com/css?family=Lato%3A400%2C700%2C400italic%2C700italic' type='text/css' media='all' /> | |
<link rel='stylesheet' id='bones-stylesheet-css' href='../library/css/style.css' type='text/css' media='all' /> | |
<!--[if lt IE 9]> | |
<link rel='stylesheet' id='bones-ie-only-css' href='http://spot.incubator.apache.org/library/css/ie.css' type='text/css' media='all' /> | |
<![endif]--> | |
<link rel='stylesheet' id='mm-css-css' href='../library/css/meanmenu.css' type='text/css' media='all' /> | |
<script type='text/javascript' src='../library/js/libs/modernizr.custom.min.js'></script> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> | |
<script type='text/javascript' src='../library/js/jquery-migrate.min.js'></script> | |
<script type='text/javascript' src='../library/js/jquery.meanmenu.js'></script> | |
<script> | |
(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','https://www.google-analytics.com/analytics.js','ga'); | |
ga('create', 'UA-87470508-1', 'auto'); | |
ga('send', 'pageview'); | |
</script> | |
</head> | |
<body class="page"> | |
<div id="container"> | |
<div class="social-sidebar"> | |
<a href="mailto:info@apache-spot.io"><span class="icon-envelope"></span></a> | |
<a href="https://twitter.com/ApacheSpot" target="_blank"><span class="icon-twitter"></a> | |
</div> | |
<header class="header"> | |
<div id="inner-header" class="wrap cf"> | |
<p id="logo" class="h1" itemscope itemtype="http://schema.org/Organization"> | |
<a href="http://spot.incubator.apache.org/" rel="nofollow"><img src="../library/images/logo.png" alt="Apache Spot" /></a> | |
</p> | |
<nav> | |
<ul id="menu-main-menu" class="nav top-nav cf"> | |
<li id="menu-item-129" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-129"> | |
<a target="_blank" href="https://github.com/apache/incubator-spot#try-the-apache-spot-ui-with-example-data">Get Started</a> | |
</li> | |
<li id="menu-item-5" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5"> | |
<a target="_blank" href="https://github.com/apache/incubator-spot.git">GitHub</a> | |
</li> | |
<li id="menu-item-130" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-130 active"> | |
<a href="../contribute">Contribute</a> | |
</li> | |
<li id="menu-item-106" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-106"> | |
<a href="../doc">Documentation</a> | |
</li> | |
<li class="menu-item menu-item-has-children"> | |
<a href="#">Project Components</a> | |
<ul class="sub-menu"> | |
<li><a href="../project-components/open-data-models">Open Data Models</a></li> | |
<li><a href="../project-components/ingestion">Ingestion</a></li> | |
<li><a href="../project-components/machine-learning">Machine Learning</a></li> | |
<li><a href="../project-components/visualization">Visualization</a></li> | |
</ul> | |
</li> | |
<li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"> | |
<a href="../blog">Blog</a> | |
</li> | |
</ul> | |
</nav> | |
</div> | |
</header> | |
<div id="mobile-nav"></div> | |
<div id="content"> | |
<div class="wrap cf"><!--if page has sidebar, add class "with-sidebar"--> | |
<div class="main"> | |
<h1 class="page-title">Proposed Apache-Spot (incubating) Commit Workflow</h1> | |
<p><strong>NOTE: Most of this guide is based on ASF Documentation.</strong></p> | |
<p>This guide is meant to provide a workflow for committers of Apache Spot. The proposed workflow is for using git with apache-spot codebase.</p> | |
<p>Depending the nature of the change two different approaches can be used to commit to Apache Spot: <strong>Individual Push</strong> or <strong>Topic Branding</strong>.</p> | |
<h3 class="center" style="margin-top:35px;">Individual Push (most commonly used by the community):</h3> | |
<p><img src="../library/images/individual-push.png" alt="" /></p> | |
<p><strong>Steps:</strong></p> | |
<ol> | |
<li>For the Github repository at <a href="https://github.com/apache/incubator-spot" target="_blank">https://github.com/apache/incubator-spot</a> if you haven't already. For more information about Fork please go to: <a href="https://help.github.com/articles/fork-a-repo/" target="_blank">https://help.github.com/articles/fork-a-repo/</a></li> | |
<li>Clone your fork, create a new branch named after a Jira issue (i.e. <strong>spot-100</strong>).</li> | |
<li>Push commits to your local branch.</li> | |
<li>Test it!!!</li> | |
<li>Create a pull request (PR) against the upstream repo (master) of apache-spot. For more information about how to create a pull request please go to: <a href="https://help.github.com/articles/about-pull-requests/" target="_blank">https://help.github.com/articles/about-pull-requests/</a>.</li> | |
<li>Wait for the maintainers to review your PR.</li> | |
</ol> | |
<h3 class="center" style="margin-top:35px;">Topic Branching (upstream)</h3> | |
<p>What are a topic branches?</p> | |
<blockquote>According to the git definition: "<em>A topic branch is a short-lived branch that you create and use for a single particular feature or related work.</em>" (<a href="https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows#Topic-Branches" target="_blank">https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows#Topic-Branches</a>)</blockquote> | |
<p>Sometimes a new major feature will have dependencies between modules or developers that can't be separated into individual pushes, when this happens, a topic branch will be created to deliver the complete functionality before the merge with the upstream (encapsulated dev enviroment).</p> | |
<p>In order to create a topic branch, three requirements are needed:</p> | |
<ol> | |
<li>A design document must be uploaded using Jira. This design must be approved by the maintainers.</li> | |
<li>A voting process will be required to approve the topic branch creation, at least 3 maintainers need to approve it.</li> | |
<li>A commitment to delete the branch after merging it into the upstream branch must be done. The topic branch should only exist while the work is still in progress.</li> | |
</ol> | |
<p>A meaningful name must be given to the branch. It is recommended to use JIRA issue created with the design document to link the branch.</p> | |
<p><img src="../library/images/topic-branching.png" alt="" /></p> | |
<p><strong>IMPORTANT: There shouldn't be a push without a Jira created previously</strong></p> | |
<h3>Approvals and Voting Process:</h3> | |
<blockquote> | |
<p>For code-modification, +1 votes are in favor of the proposal, but -1 votes are <u>vetos</u> and kill the proposal dead until all vetoers withdraw their -1 votes.</p> | |
<p>Unless a vote has been declared as using <u>lazy consensus</u>, three +1 votes are required for a code-modification proposal to pass.</p> | |
<p>Whole numbers are recommended for this type of vote, as the opinion being expressed is Boolean: 'I approve/do not approve of this change.'</p> | |
<p><strong>Source: <a href="http://apache.org/foundation/voting.html" target="_blank">http://apache.org/foundation/voting.html</a></strong></p> | |
</blockquote> | |
<h3>Useful links:</h3> | |
<ul> | |
<li><a href="https://www.apache.org/foundation/glossary.html" target="_blank">https://www.apache.org/foundation/glossary.html</a></li> | |
<li><a href="http://www.apache.org/dev/committers" target="_blank">http://www.apache.org/dev/committers</a></li> | |
<li><a href="http://www.apache.org/dev/git.html" target="_blank">http://www.apache.org/dev/git.html</a></li> | |
<li><a href="http://www.apache.org/dev/writable-git" target="_blank">http://www.apache.org/dev/writable-git</a></li> | |
</ul> | |
</div> | |
</div> | |
</div> | |
<div id="more-info"> | |
<div class="wrap cf"> | |
<p class="social-icons"> | |
</p> | |
<p> | |
<a href="https://github.com/apache/incubator-spot" class="y-btn" target="_blank">More Info</a> | |
</p> | |
<p style="margin-top:50px;"><img src="../library/images/apache-incubator.png" alt="Apache Incubator" /> | |
</p> | |
<p class="disclaimer"> | |
Apache Spot is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache 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> | |
<p class="disclaimer"> | |
The contents of this website are © 2020 Apache Software Foundation under the terms of the Apache License v2. Apache Spot and its logo are trademarks of the Apache Software Foundation. | |
</p> | |
</div> | |
</div> | |
<footer class="footer" role="contentinfo" itemscope itemtype="http://schema.org/WPFooter"> | |
<div id="inner-footer" class="wrap cf"> | |
<p class="source-org copyright" style="text-align:center;"> | |
© 2020 Apache Spot. | |
</p> | |
</div> | |
</footer> | |
</div> | |
<a href="#0" class="cd-top">Top</a> | |
<script type='text/javascript' src='../library/js/scripts.js'></script> | |
</body> | |
</html> |