# $Id: d8b9f21436864eae719ca3c272348d2380ed69c7 $

This document is a work-in-progress to describe the workflow through the various
parts of genkernel so that we can split the code into modular chunks.  If you
are interested in helping with genkernel development, please get in touch at
<genkernel@gentoo.org>.

Phases:

- read configs
- source global scripts
- 

Testing things:
  $ cd genkernel
  $ sudo GK_SHARE="$PWD" ./genkernel initramfs --no-install --no-postclear --loglevel=2

Rolling a release:
- Bump the version in the main genkernel file.
- git commit -s -a -m "Bump version to ${PV}"
- make dist
- git tag -s -a -m "Tag release v${PV}" v${PV}
- git push ${REMOTE} master --tags
- upload genkernel-${PV}.tar.bz2 to the hosting:
    scp genkernel-${PV}.tar.bz2 ${USER}@dev.gentoo.org:/space/distfiles-local/
- copy to portage's DISTDIR so you can bump the ebuild
  before the tarball hits distfile mirrors
  - cp genkernel-${PV}.tar.bz2 /usr/portage/distfiles/
- Bump the ebuild
- Propagate ebuild changes to the live ebuild
    diff genkernel-${OLD_PV}.ebuild genkernel-${NEW_PV}.ebuild | patch genkernel-9999.ebuild
- check open bugs with keyword "InSVN" or "InVCS" for closability
  and close these bugs with a comment like "Fixed in ${PV}, just released.  Closing."
- Send a mail with subject "genkernel ${PV} released" to both
  <gentoo-genkernel@lists.gentoo.org> and <genkernel@gentoo.org>.
  Use

    PREV_TAG=$(git tag -l | tail -n 2 | head -n 1) \
    git shortlog ${PREV_TAG}..v${PV} | xsel

  to generate the mail body.
