File: release-process.txt

package info (click to toggle)
lirc 0.10.2-0.10
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,268 kB
  • sloc: ansic: 26,981; cpp: 9,187; sh: 5,875; python: 4,507; makefile: 1,049; xml: 63
file content (90 lines) | stat: -rw-r--r-- 2,669 bytes parent folder | download
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.