//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License is distributed on an "AS IS" BASIS,
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//See the License for the specific language governing permissions and
//limitations under the License.
= Podling Source Control
Apache Incubator PMC
2002-10-16
:jbake-type: guide
:jbake-status: published
:idprefix:
:toc:
:imagesdir: ../images/

== Set up a Podling Source Repository

The most important responsibility for mentors is to set up the
podling source repository. Podlings can choose between Subversion and
Git for source control.  For Git, podlings can access their repositories through GitHub, or through Apache's GitBox alternative. They both point to the same files in the same repos, but some people have reservations about agreeing to Git's terms of service for GitHub, and prefer to use GitBox.

=== Set up a Git Repository

Request a Git repository via link:https://selfserve.apache.org/[selfserve.apache.org].
This service will initialize a repository, set up github mirrors and enable integrations for that repository.

Historically, the Foundation'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 to it without further work. Once
the podling graduates, a dedicated LDAP group will be created to manage
access and only people listed in that group (the project's committers and PMC members) will have access to its repos.

=== Set up an SVN Repository

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.

Setting up a podling Subversion repository has two steps: Creating the SVN space
and configuring its authorization.

1. Create the workspace in SVN. This requires commit access to the
Incubator SVN repository. Each podling has its own subdirectory
of the Incubator SVN repository. To create the podling subdirectory,
the mentor executes the SVN command to create a remote directory: `svn mkdir https://svn.apache.org/repos/asf/incubator/{podling}`.

2. Raise an INFRA Jira ticket to get the SVN auth file updated.

This is a convenient time to add link:#Authorize+Committers[authorization] for committers
who have Apache accounts.

link:#who-auth-karma[Authorization] karma is restricted. If no Mentor
has this karma, post an email to the IPMC private list requesting it.

== Authorize Committers

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:

- The committer is in the list of original committers in the
podling proposal to the incubator and is not already an Apache
committer:
** Ask developers to send their ICLAs to `secretary@apache.org` according to
link:http://apache.org/licenses/#submitting[standard procedure].
Note that you must sign ICLA forms, either by hand or by digital signature.
** Developers should choose an Apache ID that is not already listed
link:http://people.apache.org/committer-index.html[here].
** Developers should enter their preferred Apache ID on the ICLA
and enter the podling name in the "notify" field of the ICLA.
- If the committer is in the list of original committers in the
podling proposal to the Incubator and is already an Apache committer, only
link:#who-auth-karma[Incubator authorization] is required.
- The committer was voted by the PPMC and approved by the Incubator PMC:

Perform one of the above procedures depending on whether the
committer is already an Apache committer on another project.

== Incubator Access Authorization

Special karma is required to authorize Incubator access for committers.
This karma is limited to:

- IPMC Members
- Secretary
- Infrastructure team members

IPMC Members should use link:https://whimsy.apache.org/roster/committee/incubator[Whimsy's Roster Tool] to add existing committers.
