LIRC release procedure (more or less)
-------------------------------------

Pre-requisites:
- Compiles without warnings
- Unit tests pass.
    + cd test
    + make
    + ./run-tests
- 'make distcheck' without lirc-devel installed pass
- Encoder/decoder regression tests all pass
- lirc.org linkcheck:
    + cd doc; DESTDIR=$PWD/foo make install
    + linkchecker foo/usr/local/share/doc/lirc/lirc.org/index.html
    + Allow errors for standard tools like sudo, ncat, etc.
- liblirc_client: version number change required?
    + use abidiff
    + run (more or less)
         $ abidiff lirc-old/lib/.libs/liblirc_client.so.0.3.0  \
         >     lirc-new/lib/.libs/liblirc_client.so.0.3.0
        current:release:age
        https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
- git master branch is committed and pushed
- Update NEWS.
- Create a new git release branch:
      git checkout -b <version>


Steps for a new release (pre or final)

1) Checkout the release branch form master:

      git checkout master
      git checkout -b <release branch>

2) Rebase it on release and verify that it still the same

      git rebase -X theirs release
      git diff <release branch> master

3) Update NEWS.

4) Update version number in:
        README, NEWS, configure.ac
        Makefile.am (ChangeLog entries)
	doc/lirc.org/index.html (Last version).
   Update the news entry in README.

5) Commit and push branch:
        git commit -a -s -m "Update for lirc <version> release"

6) Create tarball:
        git clone -b <release branch> lirc lirc-tmp
        cd lirc-tmp
        ./autogen.sh
        ./configure
        make distcheck

   Make preliminary Debian and RPM packages to pick up packaging errors.

7) Merge release branch into the 'release' branch:
       git checkout release
       git merge <release branch>
       git tag -a  lirc-<version> HEAD    # Using version like lirc-0_9_0
       git push --tags origin <release-branch>
   Check that the tags are present also in the release branch (no rebase
   problems):
       git log --oneline --decorate -25

8) Get tarballs to Christoph to post at http://lirc.org/software/snapshots/,
   or publish it elsewhere.

9) Announce on the list.

For final release:

1) Upload tarball to sourceforge

2) Back in master, increment <version> in the files in step 3 for the next
   version

3) Send announcement email to lirc-list@lists.sourceforge.net, include top
   of NEWS.

Ubuntu PPA update:

   $ make debian
   $ cd debian-src
   $ dpkg-source -x *dsc
   $ cd lirc-0.9.4*
   $ vi debian/changelog # change experimental to Ubuntu channel like 'Trusty'.
   $ debuild -S -sa -us -uc
   $ cd ..
   $ debsign *source.changes
   $ dput ppa:leamas-alec/lirc-0.9.4 *source.changes
