forked from savonet/liquidsoap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASING
77 lines (63 loc) · 3.05 KB
/
RELEASING
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
-----------------------------
- How to release liquidsoap -
-----------------------------
[] Run tests! We have too few, but we do have some: "make test".
[] Update copyright years in headers and check that all files have license
headers.
[] Check version in VERSION
[] Set git_snapshot to false in configure.ac, run ./bootstrap and ./configure
[] Check contents in the man pages (mainly doc/liquidsoap.1.md).
[] Update dependencies in doc/content/build.md
[] Fill-in CHANGES, with the release date.
[] make clean
[] make tarball
[] In website: copy reference.txt settings.txt and protocols.txt,
update documentation.txt.
At least on one configuration (preferably all-yes)
-----------------------------
[] Check that the tarball builds correctly.
[] Check that the doc builds correctly.
[] Check that the installation works.
Version number
--------------
Version numbers MAJOR.MINOR.FIX are made of three integer numbers:
- Versions with the same MAJOR number should be backward compatible.
We may (?) increase the MAJOR number without breaking compatibility,
e.g. in case of a major implementation change.
- Increases of the FIX number are only used for bugfixes,
they can introduce (backward compatible) differences if meaningful
for the fix, e.g. introducing a setting.
Using the FIX number for snapshots doesn't leave room for bugfixes.
Using MINOR=9 (or 99) as we did for signalling a soon-to-be-coming
version 1.0.0 turned out to be not so soon and didn't leave room
for normally numbered releases.
SNAPSHOT versions should be named alpha releases, e.g. 1.0.0 alpha.
We shall similarly use beta, beta1, beta2, etc.
Note that it makes it difficult to tell what versions come before
or after an alpha/beta, but this is probably a good thing: the beta
(development) versions are unrelated to normal (stable) versions.
Typically, alpha and beta versions will have their own SCM branch.
The special keywords alpha and beta invalidate compatibility rules:
obviously, 0.9.x and 1.0.0 beta may be incompatible, but 1.0.0 beta1
and beta2 may also be incompatible.
------------------------------
- Releasing the full tarball -
------------------------------
All this happens at toplevel in the repository.
If possible, use the official tarballs released on sf.net.
To download the latest library tarballs in the latest subdir, just run:
make download_latest
Then run:
make full
This creates liquidsoap-$version-full.tar.bz2, ready for upload,
and leaves the liquidsoap-$version-full directory for running a test:
cd liquidsoap-$version-full ; cp PACKAGES.default PACKAGES ; \
./configure && make
The full release includes all libraries listed in PACKAGES.default,
even those which are commented out. It looks up the latest version number
from the configure.ac of each library. Then it tries to use the latest
official tarball, otherwise it builds a tarball from the current code
of the library.
All this only works with libraries that have a decent configure and build
system. Libraries may be temporarily removed from PACKAGES.default
to ignore them from the process.