1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
LIRC release procedure (more or less)
-------------------------------------
Pre-requisites:
- Compiles without warnings
- Unit tests pass.
+ cd test
+ make
+ ./run-tests
- Python bindings test pass:
+ cd python-pkg/test
+ python3 -m unittest discover
- 'make distcheck' without lirc-devel installed pass
- Build in separate clone is OK.
- VPATH build in separate clone is OK.
- Encoder/decoder regression tests all pass
- lirc.org linkcheck:
+ cd doc; DESTDIR=$PWD/foo make install
+ linkchecker -r 8 foo/usr/local/share/doc/lirc/lirc.org/index.html
+ cd doc; make fix-urls
- 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
- Same for liblirc_driver.so.3.0.3
- 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 from 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)
Update driver_version in plugins/*.c.
Update the news entry in README.
Remove the attic/ directory
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.10.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.
|