This page aims at documenting a Git packaging workflow shared by several teams maintaining their packages with Git.
(I don't see why this needs to be Git-specific. Any objections to renaming (then redirecting) this page to ?DvcsPackagingWorkflow and collaborating on the workflow that serves well in any modern DVCS? —BenFinney)
(Many of the tools are Git-specific, so it sounds like an additional burden to ensure that the resulting workflow also applies to other DVcs. I agree that standardizing across DVCses would be nice too, but let's start with a working Git workflow, and then see how it matches what can be done with other Vcses. -- Lucas)
Contents
Preparation
Interested teams
If you (your team) are interested in joining this effort, please add yourself to the following table. (several contacts per team are OK)
Team |
Contact |
Documentation for current workflow |
Would be interested in a DC11 BOF? |
Ruby-extras |
Yes |
||
none |
|
Yes |
|
none |
|
remotely |
|
Debian-IN |
not present |
||
pkg-horde |
not present |
||
pkg-mozext |
|
remotely |
|
pkg-libvirt, pkg-mozext, debian-ha |
yes (Friday only) |
||
not present |
|||
pkg-rakudo |
|
not present |
|
pkg-perl |
Yes |
||
python-coverage |
|
not present |
|
pkg-openstack |
yes |
||
pkg-go |
not present |
||
pkg-gnome |
not present |
||
Java |
not present |
Tools of interest
- Debian Package Builders
git-buildpackage - Suite to help with Debian packages in Git repositories
gitpkg - tools for maintaining Debian packages with git
git-dpm - git Debian package manager
- Patch Management
guilt - quilt for git; similar to Mercurial queues
Gerrit (RFP: 589436), git-review - Code Review system used by Google, Android, Eclipse, ...
commit-patch - utility to commit fine grained patches to source code control repositories
tailor - migrate changesets between version control systems
- Repository Management
- Others
git-stuff - different git utilities, e.g.:
- git-checkout-branches: checks out all remote branches.
- git-cherry-pick-recursive: does a cherry-pick for a commit and each all its children.
- git-debian-changelog: creates a new section in debian/changelog with all entries since the last release.
git2cl - Simple tool to convert git logs to GNU ?ChangeLog format
Other links of interest
Existing, documented workflows
Things to document
- How repositories are managed (keeping track of them, creation -- when to create them? how?)
- Branches and tags
- How patches are managed (keeping them applied or not? how?)
Git Packaging Workflow
Keeping track of the state of packages inside the repository
PET provides a nice overview of a team's repository. The code that classifies packages works as follows:
- mark "Ready for upload" if (distribution != 'UNRELEASED') and (version not tagged) and (version not in the archive)
- mark "Has RC bugs" if the package has RC bugs
- mark "Missing tag" if (version in the archive) and (version not tagged)
- mark "New package" if package doesn't have any tags
- mark "Newer upstream" if package has a newer upstream release available
- mark "Watch problem" if debian/watch could not be used
- mark "Has bugs" if the package has bugs
- mark "Work in progress" if the version is not tagged
- mark "Other" otherwise