blob: 1bae5928f7b2aa636fd2f2dcb767cdb837e4c5b1 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>Podling Source Control</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<meta name="keywords" content="">
<meta name="generator" content="JBake">
<!-- Le styles -->
<link href="../css/incubator.css" rel="stylesheet">
<link href="../css/bootstrap.css" rel="stylesheet">
<link href="../css/asciidoctor.css" rel="stylesheet">
<link href="../css/base.css" rel="stylesheet">
<link href="../css/prettify.css" rel="stylesheet">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<!-- Fav and touch icons -->
<!--<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">-->
<link rel="shortcut icon" href="https://www.apache.org/favicon.ico">
</head>
<body onload="prettyPrint()">
<div id="wrap">
<!-- Fixed navbar -->
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/"><i class="icon-home"></i>Apache Incubator</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Policies <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/policy/incubation.html">Incubation Policy</a></li>
<li><a href="/ip-clearance/">Intellectual Property Clearance</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Proposals <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/guides/proposal.html">A Guide To Proposal Creation</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Podling Guides <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/cookbook">Cookbook</a></li>
<li><hr><a href="/guides/roles_and_responsibilities.html">Roles and Responsibilities</a></li>
<li><a href="/guides/committer.html">Committers</a></li>
<li><a href="/guides/ppmc.html">Podling Project Management Committee</a></li>
<li><a href="/guides/community.html">Guide to Successful Community Building</a></li>
<li><hr><a href="/guides/branding.html">Incubator Branding Guide</a></li>
<li><a href="/guides/publicity.html">Podling Publicity/Media Guidelines</a></li>
<li><a href="/guides/press-kit.html">Podling Press Kit</a></li>
<li><hr><a href="/guides/transitioning_asf.html">Initial Code Import</a></li>
<li><a href="/guides/names.html">Podling Name Search Guide</a></li>
<li><a href="/guides/ip_clearance.html">Podling IP Clearance</a></li>
<li><hr><a href="/guides/sites.html">Podling Websites</a></li>
<li><a href="/guides/podling_sourcecontrol.html">Podling Source Control</a></li>
<li><hr><a href="/guides/releasemanagement.html">Release Management</a></li>
<li><a href="/guides/distribution.html">Release Distribution</a></li>
<li><hr><a href="/guides/graduation.html">Guide to Successful Graduation</a></li>
<li><a href="/guides/retirement.html">Guide to Retirement</a></li>
<li><a href="/guides/transferring.html">Transferring Resources out of the Incubator</a></li>
<li><hr><a href="/projects/#current">Current Podlings</a></li>
<li><a href="/clutch/">Clutch Report</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">PMC Guides <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/guides/participation.html">Guide to Participation</a></li>
<li><a href="/guides/lists.html">Incubator Mailing Lists Guide</a></li>
<li><a href="/guides/chair.html">Incubator Chair Guide</a></li>
<li><a href="/guides/mentor.html">Mentors' Guide</a></li>
<li><hr><a href="/guides/website.html">Updating the top-level Incubator website</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="https://www.apache.org/foundation/how-it-works.html">How Apache Works</a></li>
<li><a href="https://www.apache.org/dev/">Developer Documentation</a></li>
<li><a href="https://www.apache.org/foundation/">Foundation</a></li>
<li><a href="https://www.apache.org/legal/">Legal</a></li>
<li><hr><a href="https://www.apache.org/licenses/">License</a></li>
<li><a href="https://www.apache.org/security/">Security</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
<li><a href="https://www.apache.org/events/current-event">Current Events</a></li>
</ul>
</li>
<li><a href="/faq.html">FAQs</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-4 vcenter"><a href="https://www.apache.org/"><img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" border="0" style="margin-top: 2px" width="200"></a></div>
<div class="col-md-4 vcenter"><a href="/"><img src="https://incubator.apache.org/images/incubator_feather_egg_logo_sm.png" alt="The Apache Software Foundation Incubator" border="0" style="margin-top: 2px" width="256"></a></div>
<div class="col-md-4 vcenter"><a href="https://www.apache.org/foundation/contributing.html"><img src="https://www.apache.org/images/SupportApache-small.png" style="margin-left: 92px" height="64" width="64"></a></div>
</div>
</div>
<div class="top-container container">
<div class="page-header">
<h1>Guide :: Podling Source Control</h1>
</div>
<div class="article-body">
Estimated Reading Time: <span class="eta"></span>
<p><div id="toc" class="toc">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#set_up_podling_source_repository">Set Up Podling Source Repository</a>
<ul class="sectlevel2">
<li><a href="#set_up_git_repository">Set up GIT Repository</a></li>
<li><a href="#set_up_svn_repository">Set Up SVN Repository</a></li>
</ul>
</li>
<li><a href="#authorize_committers">Authorize Committers</a></li>
<li><a href="#incubator_access_authorization">Incubator Access Authorization</a></li>
</ul>
</div>
<div class="sect1">
<h2 id="set_up_podling_source_repository">Set Up Podling Source Repository</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The most important responsibility for mentors is to set up the
podling source repository. Podlings can choose between svn and
git for source control. For git, podlings may use repositories hosted at Apache, or within GitHub in the Apache organization.</p>
</div>
<div class="sect2">
<h3 id="set_up_git_repository">Set up GIT Repository</h3>
<div class="paragraph">
<p>Requests for new git repos are done via <a href="https://selfserve.apache.org/">selfserve.apache.org</a>.
This service will initialize a new repository, setup github mirrors and enable integrations for that repository.</p>
</div>
<div class="paragraph">
<p>Historically, the Foundation&#8217;s policy
is to grant access to git repositories broadly to the incubator group,
not narrowly podling-by-podling. So, once the repository
exists, incubator group members gain access without further work. Once
the podling graduates, a dedicated ldap group will be created to manage
access and only those members will be given access.</p>
</div>
</div>
<div class="sect2">
<h3 id="set_up_svn_repository">Set Up SVN Repository</h3>
<div class="paragraph">
<p>If the podling chooses svn, you must create the
repository and give read/write access to the repository
to all the committers for the podling. This involves requesting
new committer accounts and granting access to mentors and existing
Apache committers.</p>
</div>
<div class="paragraph">
<p>Setting up a podling subversion repository has two steps: Creating the SVN space
and configuring the authorization (in both svn and git).</p>
</div>
<div class="paragraph">
<p>Create the workspace in svn. This requires commit access to the
incubator svn repository. Podlings are given their own subdirectory
of the incubator svn repository. To create the podling subdirectory,
the mentor executes the svn command to create a remote directory: <code>svn mkdir <a href="https://svn.apache.org/repos/asf/incubator/{podling}" class="bare">https://svn.apache.org/repos/asf/incubator/{podling}</a></code></p>
</div>
<div class="paragraph">
<p>Raise an INFRA JIRA to get the SVN auth file updated.</p>
</div>
<div class="paragraph">
<p>This is a convenient time to add <a href="#Authorize+Committers">authorization</a> for committers
who have accounts.</p>
</div>
<div class="paragraph">
<p><a href="#who-auth-karma">Authorization</a> karma is restricted. If no Mentor
has this karma then post an email to IPMC private list requesting that this
is actioned.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="authorize_committers">Authorize Committers</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The process to add committers to the podling depends on whether
the new committer is already an Apache committer and whether
the new committer is in the list of original committers:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The committer is in the list of original committers in the
podling proposal to the incubator and is not already an Apache
committer:</p>
<div class="ulist">
<ul>
<li>
<p>Ask developers to send their ICLA to <a href="mailto:secretary@apache.org">secretary@apache.org</a> according to
<a href="http://apache.org/licenses/#submitting">standard procedure.</a>
Note that ICLA forms must be signed, either by hand or by digital signature.</p>
</li>
<li>
<p>Developers should choose an Apache id that is not already listed
<a href="http://people.apache.org/committer-index.html">here.</a></p>
</li>
<li>
<p>Developers should enter their preferred Apache id on the ICLA
and enter the podling name in the "notify" field of the ICLA.</p>
</li>
</ul>
</div>
</li>
<li>
<p>The committer is in the list of original committers in the
podling proposal to the incubator and is already an Apache committer, only
<a href="#who-auth-karma">incubator authorization</a> is required.</p>
</li>
<li>
<p>The committer was voted by the PPMC and approved by the incubator PMC:</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Perform one of the above procedures depending on whether the
committer is already an Apache committer on another project.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="incubator_access_authorization">Incubator Access Authorization</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Special karma is required to authorize incubator access for committers.
This karma is limited to:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>IPMC Members</p>
</li>
<li>
<p>Secretary</p>
</li>
<li>
<p>Infrastructure</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>IPMC Members should use <a href="https://whimsy.apache.org/roster/committee/incubator">Whimsy&#8217;s Roster Tool</a> to add existing commiters.</p>
</div>
</div>
</div></p>
</div>
</div>
<div id="push"></div>
</div>
<div id="footer">
<div class="container">
<p class="muted credit">&copy; 2021 The Apache Software Foundation | Licensed under the Apache License, Version 2.0.<br/>
Apache Incubator, Apache, the Apache feather logo, and the Apache Incubator project logo are trademarks or registered trademarks of The Apache Software Foundation.</p>
</div>
</div>
<script src="../js/jquery-1.11.1.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/prettify.js"></script>
<script src="../js/readingTime.js"></script>
<script src="../js/incubator.js"></script>
</body>
</html>