OpenStackPackaging

Differences between revisions 6 and 21 (spanning 15 versions)
Revision 6 as of 2015-06-30 16:54:17
Size: 3906
Editor: corey.bryant
Comment:
Revision 21 as of 2016-06-07 19:45:13
Size: 72
Editor: corey.bryant
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Overview ==

Ubuntu maintains it own set of Bazaar branches and Git repositories for OpenStack core projects on Launchpad; for the full list see [[https://code.launchpad.net/~ubuntu-server-dev/+git|Launchpad]].

OpenStack releases prior to Liberty are maintained in Bazaar, Liberty onwards are maintained under Git.

=== Git Configuration ===

First, you'll want to setup git to simplify your work-flow. See 'Configuring Git' in the [[https://help.launchpad.net/Code/Git|Launchpad git documentation]]..
 
=== Tools ===

The OpenStack packaging git repositories all make use of git-buildpackage and pristine-tar for managing upstream release tarballs.

For a general overview of git-buildpackage see the Debian [[http://wiki.debian.org/PackagingWithGit|documentation]]. This wiki page details the specifics of how we use these tools in Ubuntu.

=== Branches ===

The current development release packaging is maintained under the 'master' branch; released versions of OpenStack will mirror upstream branch management - i.e. stable/liberty.


=== Cloning a git repository ===

If you are running on the latests Ubuntu release, then the following should dtrt:

{{{
debcheckout --git-track='*' <projectname>
}}}

for example

{{{
debcheckout --git-track='*' nova
}}}


Using the git-track option ensures that all required branches are automatically setup - for example:

{{{
$ git branch
* master
  pristine-tar
  upstream
}}}

The 'upstream' and 'pristine-tar' branches are used by git-buildpackage to manage the upstream release tarballs.

If you're not on the latest Ubuntu release then directly clone the repository:

{{{
git clone lp:~ubuntu-server-dev/ubuntu/+source/nova
}}}

=== Building a source package ===

Use the buildpackage subcommand of gbp:

{{{
gbp buildpackage -S
}}}

The source package will be places in ../build-area.

=== Making a packaging change ===

Make your packaging changes as you normally would under the debian folder; then use 'git add' to add the changed files to the staging area; if you have added an appropriate changelog comment then:

{{{
debcommit
}}}

will DTRT and annotate the git commit with the changelog entry details - you get a chance to edit this if you have provided anything other than a single line entry to the changelog.

=== Updating to a new release ===

First, grab the new upstream release:

{{{
uscan --verbose --rename
}}}

this will drop the orig.tar.gz into the parent folder of the git repository. Then use git-buildpackage to import the archive:

{{{
gbp import-orig ../nova_12.0.0~b1.orig.tar.gz
}}}

This action will import the content into the upstream branch, create the required pristine-tar data and place it in the pristine-tar branch, and then merge the upstream branch into the master branch (or stable branch).

=== Pushing updates to Launchpad ===

To push any local commits and tags to Launchpad:

{{{
git push --all
git push --tags
}}}

'''NOTE''': you need to be a member of the ubuntu-server-dev team to be able todo this - this includes all Ubuntu Core Developers.

=== Contributors - pushing a personal repository to Launchpad ===

First, push your repository, with all of the branches (master, pristine-tar, and upstream), to your Launchpad account:

{{{
git push --all lp:~corey.bryant/nova
}}}

And then push the tags:

{{{
git push --tags git push --all lp:~corey.bryant/nova
}}}

=== Contributors - proposing a merge ===

Navigate to the URL of your pushed repository:

{{{
https://code.launchpad.net/~<launchpad-id>/ubuntu/+source/nova/+git/liberty-1
}}}

Propose each branch separately by:
 * Click on the branch name and 'Propose for merging'
 * Select the target repository: lp:~ubuntu-server-dev/ubuntu/+source/nova
 * Select the target reference path: master, upstream, or pristine-tar
This page has moved to https://wiki.ubuntu.com/OpenStack/CorePackages.

ServerTeam/OpenStackPackaging (last edited 2016-06-07 19:45:13 by corey.bryant)