#!/make/me/a/sandwich

Common Tasks
-----------------------------------------------------------------

Generate splint warnings
$ splint -posix-strict-lib dmtx.c


Release Checklist
-----------------------------------------------------------------

1) o Include newly added files in lists below if appropriate

2) o Create copy of this file as living checklist

3) o Test for common style and formatting issues

   o $ script/check_all.sh .

4) o Review and close applicable bugs and feature requests

5) o Write and finalize release documentation

   o ReleaseNotes.txt (not in Git or source distribution)

   o ChangeLog
   o LICENSE                 o KNOWNBUG
   o NEWS                    o TODO

   o README
   o README.freebsd          o README.cygwin
   o README.mingw            o README.linux
   o README.unix             o README.osx

   o man/libdmtx.3

6) o Update version number in appropriate files

   o configure.ac
   o dmtx.h
   o man/libdmtx.3

7) o Update release date in appropriate files

   o TODO
   o man/libdmtx.3 (be sure to sync w/ simple_test.c)

8) o Perform final test build

   o $ git status # no staged commits
   o $ git pull # get any pending updates
   o # final commit
   o $ sudo make uninstall && make clean && make distclean
   o $ ./autogen.sh && ./configure && make && make check && sudo make install
   o # Run tests and confirm it works. Start step over if changes are needed.

9) o Build and test tarballs

   o $ cd ..
   o $ git clone git://libdmtx.git.sourceforge.net/gitroot/libdmtx/libdmtx release
   o $ cd release
   o $ rm -Rf .git
   o $ find . -type d -name ".git"
   o $ ./autogen.sh && ./configure # don't build though
   o $ make dist-gzip
   o $ make dist-bzip2
   o $ make dist-zip
   o Verify no extraneous files made their way into the
     distribution (especially in the wrapper directories)
   o $ md5sum libdmtx-0.8.0.* > MD5SUM.txt

10) o SourceForge release administration

    o Upload files to SourceForge
    o Publish news item

11) o Tag final release in Git (do this only after uploading to
      SourceForge in case something changes at the last minute)

    o $ git tag -a -m "Tagged v0.7.4" v0.7.4
    o $ git push origin --tags

12) o Update minor number in unstable trunk (e.g., 0.8.0 -> 0.8.1)

    o Use file list from step 6 above
    o $ ./autogen.sh
    o $ ./configure
    o $ git commit -a
    o $ git push

13) o Check out tagged version so dmtx-utils and dmtx-wrapper
      builds will inherit correct version numbers

    o $ git checkout v0.7.4
    o $ ./autogen.sh
    o $ ./configure
    o $ make clean
    o $ make
    o # sudo make install

13) o Update libdmtx.org with news item, download entry, and new
      project status

14) o Send message to libdmtx-announcements@lists.sourceforge.net
      with subject "libdmtx: 0.8.0 Released" and ReleaseNotes.txt
      as message body
