Flashrom/Release process: Difference between revisions

From flashrom
Jump to navigation Jump to search
No edit summary
No edit summary
Line 30: Line 30:


===flashrom_release===
===flashrom_release===
  #!/bin/bash
  #!/bin/sh -e
  test -z $1 && { echo Please supply a release name; exit 1; }
  test -z $1 && { echo Please supply a release name; exit 1; }
# these are used in flashrom's Makefile too
  export RELEASENAME=$1
  export RELEASENAME=$1
  export EXPORTDIR=.
  export EXPORTDIR=.
  export TAROPTIONS=$(LC_ALL=C tar --version|grep -q GNU && echo "--owner=root --group=root")
   
TAROPTIONS=$(LC_ALL=C tar --version | grep -q GNU && echo "--owner=root --group=root")
export TAROPTIONS
echo "Fetching and exporting flashrom ${RELEASENAME}..."
rm -rf "flashrom-${RELEASENAME}"
svn checkout svn://coreboot.org/flashrom/tags/flashrom-${RELEASENAME}
cd flashrom-${RELEASENAME}
  make export
  make export
  touch -d "$(svn log -q|grep ^r|head -1|cut -f 3 -d"|" )" $EXPORTDIR/flashrom-$RELEASENAME/Makefile
  release_date=$(svn log -l 1 -q 2>/dev/null|grep ^r|head -1|cut -f 3 -d"|")
  touch -d "$(svn log -q|grep ^r|head -1|cut -f 3 -d"|" )" $EXPORTDIR/flashrom-$RELEASENAME/ChangeLog
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/Makefile
  touch -d "$(svn log -q|grep ^r|head -1|cut -f 3 -d"|" )" $EXPORTDIR/flashrom-$RELEASENAME/util/
  touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/ChangeLog
  touch -d "$(svn log -q|grep ^r|head -1|cut -f 3 -d"|" )" $EXPORTDIR/flashrom-$RELEASENAME/
  touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/util/
  tar cjf $EXPORTDIR/flashrom-$RELEASENAME.tar.bz2 -C $EXPORTDIR/ $TAROPTIONS flashrom-$RELEASENAME/
  touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/
  touch -d "$(svn log -q|grep ^r|head -1|cut -f 3 -d"|" )" $EXPORTDIR/flashrom-$RELEASENAME.tar.bz2
  tar cjf ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2 -C ${EXPORTDIR}/ ${TAROPTIONS} flashrom-${RELEASENAME}/
gpg --detach-sign --armor ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
  touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2.asc
echo "Done:
flashrom-${RELEASENAME}/${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
flashrom-${RELEASENAME}/${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2.asc"


===Signing the release tarball===
===Signing the release tarball===

Revision as of 22:49, 13 August 2013

This is how a release is expected to be done

Pre-release process

Make sure the lead developers agree that the tree is ready for release. Assuming all necessary patches are merged (make sure the man page is up-to-date!), proceed to the next step

Preparing the tree

Increasing the version number

Edit the Makefile and change the line

RELEASE := 0.9.6

to the number of the release. Commit this single-line change with the following changelog:

Increase flashrom release number to 0.9.6

Use Signed-off-by and Acked-by as usual.

Tagging the release

This should be done outside any flashrom working directory, it edits the repository directly so to say.

Make sure the version number commit has been pushed to the svn tree. Run

svn cp svn://coreboot.org/flashrom/trunk svn://coreboot.org/flashrom/tags/flashrom-0.9.6

(replace 0.9.6 with the intended release number) and use the following changelog:

Tag flashrom 0.9.6

(replace 0.9.6 with the intended release number). Use Signed-off-by and Acked-by as usual.

Creating the release tarball

This should be done outside any flashrom directory. The flashrom_release script is in the next subsection.

flashrom_release 0.9.6

(replace 0.9.6 with the intended release number). This will download the given tag directory, export it and create a bzip2 compressed tarball with a detached GPG signature.

flashrom_release

#!/bin/sh -e
test -z $1 && { echo Please supply a release name; exit 1; }

# these are used in flashrom's Makefile too
export RELEASENAME=$1
export EXPORTDIR=.

TAROPTIONS=$(LC_ALL=C tar --version | grep -q GNU && echo "--owner=root --group=root")
export TAROPTIONS

echo "Fetching and exporting flashrom ${RELEASENAME}..."
rm -rf "flashrom-${RELEASENAME}"
svn checkout svn://coreboot.org/flashrom/tags/flashrom-${RELEASENAME}
cd flashrom-${RELEASENAME}
make export
release_date=$(svn log -l 1 -q 2>/dev/null|grep ^r|head -1|cut -f 3 -d"|")
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/Makefile
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/ChangeLog
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/util/
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}/
tar cjf ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2 -C ${EXPORTDIR}/ ${TAROPTIONS} flashrom-${RELEASENAME}/
gpg --detach-sign --armor ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
touch -d ${release_date} ${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2.asc
echo "Done:
flashrom-${RELEASENAME}/${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2
flashrom-${RELEASENAME}/${EXPORTDIR}/flashrom-${RELEASENAME}.tar.bz2.asc"

Signing the release tarball

The script above does that too, but in case you want to additionally sign a release you can do it with this:

gpg --detach-sign --armor flashrom-0.9.6.tar.bz2

(replace 0.9.6 with the intended release number of course).