Maintainer documentation for initramfs-tools


Table of Contents


1. Definitions

Note: This cheatpage assumes that you are using git-core 1.5.6 or newer.

version:version string
username:name of the alioth account
mailaddress:mailaddress of the user
^

2. Preparations

  1. Install required software (notice: git is named git-core on Debian/stable):
    # apt-get install git git-buildpackage dpkg-dev
    
  2. Set environment variables (e.g. through your ~/.bashrc or ~/.zshrc) for git and git-dch:
    % export GIT_AUTHOR_EMAIL=<mailaddress>
    % export DEBEMAIL=<mailaddress>
    % export GIT_COMMITTER_EMAIL=<mailaddress>
    
  3. Checkout repository (anonymous):
    % git clone git://git.debian.org/git/kernel/initramfs-tools.git
    % cd initramfs-tools
    
  4. Checkout repository (with developer access):
    % git clone ssh://username@git.debian.org/git/kernel/initramfs-tools.git
    % cd initramfs-tools
    
^

3. Workflow for daily work

3.1 Implement new features

  1. Checkout new branch and switch to it:
    % git checkout -b username/short-descr-of-new-feature
    
  2. Hack and commit work:
    % $EDITOR $somefile
    % git add $somefile
    % git commit -s
    
  3. NOTE: Use 'Closes: #BUGID' for closing a bugreport, 'Thanks: Name <mailaddress>' for giving credits in your commit message. git-dch will use this information for generating the changelog using the --meta option later on.

  4. Finally push your branch to alioth:
    % git push origin username/short-descr-of-new-feature
    

3.2 Merge branches

  1. Switch to the branch you want to merge:
    % git checkout username/new-feature
    
  2. Rebase to master:
    % git rebase master
    
  3. Switch to master branch and merge:
    % git checkout master
    % git merge username/new-feature
    
  4. Push:
    % git push
    
  5. After branch is merged delete branch on server and locally:
    % git push origin :username/short-descr-of-new-feature
    % git branch -d username/short-descr-of-new-feature
    

3.3 Test specific branch

  1. Checkout a specific branch iff branch is not already present locally:
    % git checkout -b somename/short-descr-of-new-feature origin/somename/short-descr-of-new-feature
    
  2. Checkout a specific branch iff branch is already present locally:
    % git checkout -b somename/short-descr-of-new-feature
    
  3. Adjust debian/changelog accordingly:
    % git-dch --debian-branch="$(git branch | awk -F\*\   '/^* / { print $2}' )" \
      --since="$(dpkg-parsechangelog | awk '/^Version:/ {print $2}')" -S --id-length=7 --meta
    
  4. Build package:
    % git-buildpackage --git-debian-branch="$(git branch | awk -F\*\  '/^* / { print $2}' )" -tc
    
^

4. Contribute

  1. Create patch:
    % git format-patch -s -p origin/master
    
  2. Send patch file(s) to maintainers via mail (requires Debian package git-email):
    % git send-email --to=initramfs-tools@packages.qa.debian.org $PATCHFILE[S]
    
^

5 Releasing new version

  1. Creating changelog:
    % git-dch --debian-branch debian --release --since HASH
    
    or more dynamically:
    % git-dch --meta --release --since v$(dpkg-parsechangelog | awk '/^Version:/ {print $2}') --debian-branch="$(git branch | awk -F\*\  '/^* / { print $2}' )" [--id-length=7] [--full]
    
  2. Releasing:
    % git commit -a -s -m "Releasing debian version version."
    
  3. Tagging:
    % git tag -s v"version" -m "release version"
    
  4. Pushing:
    % git push
    % git push --tags
    
  5. Build in chroot and upload to ftp-master.
  6. Send mail announcing the new initramfs-tools version with subject "initramfs-tools $VERSION release" to initramfs@vger.kernel.org, debian-kernel@lists.debian.org + kernel-team@lists.ubuntu.com - including a shortlog (generated through "git shortlog $TAG..").
^

Ressources

^

Credits

^

-- Michael Prokop <mika@debian.org>