Differences between revisions 28 and 29
Revision 28 as of 2012-03-24 09:33:32
Size: 3868
Editor: ?Thomas Goirand
Comment:
Revision 29 as of 2012-03-24 10:04:12
Size: 4960
Editor: ThomasKoch
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
 * [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html|git-buildpackage]]
 * mr
 * [[http://jmtd.net/log/mr-lint/|mr-lint]]
 * gitpkg
 * git-dpm
 * git-stuff

 * Debian Package Builders
  * [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html|git-buildpackage]] - Suite to help with Debian packages in Git repositories
  * DebianPkg:gitpkg - tools for maintaining Debian packages with git
  * DebianPkg:git-dpm - git Debian package manager
 * Patch Management
  * DebianPkg:guilt - quilt for git; similar to Mercurial queues
  * Gerrit (RFP: DebianBug:589436), DebianPkg:git-review - Code Review system used by Google, Android, Eclipse, ...
  * DebianPkg:commit-patch - utility to commit fine grained patches to source code control repositories
  * DebianPkg:tailor - migrate changesets between version control systems
 * Repository Management
  * DebianPkg:mr - Multiple Repository management tool
  * [[http://jmtd.net/log/mr-lint/|mr-lint]] - sanity check local copies of repositories
 * Others
  * DebianPkg: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.
  * DebianPkg:git2cl - Simple tool to convert git logs to GNU ChangeLog format

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)

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

lucas@d.o

Teams/Ruby/Packaging

Yes

none

thomas@koch.ro

Yes

none

lopippo@d.o

remotely

Debian-IN

kamathvasudev@gmail.com

DebianIndia

not present

Debian-IN

kartik@d.o

DebianIndia

not present

pkg-horde

sathieu@d.o

Horde/GitUsage

not present

pkg-mozext

bdrung@d.o

remotely

pkg-libvirt, pkg-mozext, debian-ha

GuidoGünther

gbp-pq

yes (Friday only)

DebianMed

plessy@d.o

http://debian-med.alioth.debian.org/docs/policy.html

not present

pkg-rakudo

dod@d.o

not present

pkg-perl

debian-perl@lists.debian.org

http://pkg-perl.alioth.debian.org/git.html

Yes

python-coverage

ben+debian@benfinney.id.au

not present

pkg-openstack

openstack-devel@lists.alioth.debian.org

http://openstack.alioth.debian.org/

yes

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
    • mr - Multiple Repository management tool

    • mr-lint - sanity check local copies of repositories

  • 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

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