1 Instructions for releasing a new version.
2 =========================================
4 This are the instructions to release a new official version of the
5 project. However, these should also be useful for those who simply want
6 to package a random commit (this is done for example by Gentoo). For
7 packaging a random commit without an official release, you only need
14 Decide the version number:
23 Fill the Changes file. For that you can check older commits, like
24 d4e80a7748 "Changes: Ready for 6.01". It needs manual intervention,
25 but in that commit log you can check a few commands that will help.
27 - Remember to change the version number, the date, and the location.
29 - Remove any headers not used for a specific release (usually happens
30 with "New and changed links").
32 - The structure is a bit freestyle, but keep it organized.
33 man-pages-6.00 was a huge release, so it might help to check it:
34 51228378bec7 "Changes: Ready for 6.00".
39 $ git commit -sm "Changes: Ready for ${new}"
45 Create a signed tag. The tag message should note the most important
46 changes in the version being released, since it will be read by users
47 and packagers. It should include any information that is especially
48 relevant for them. Check old tags such as 'man-pages-6.00' or
53 $ git tag -s man-pages-${new}
59 Creating the tarball will embed in the manual pages both the version
60 number, and the date of last modification (in the git repository, the
61 pages have placeholders for the date and the version).
63 You need to create a set of tarballs, sign the .tar archive, and upload
64 the compressed tarballs to <kernel.org>.
66 In case you're creating a tarball for distributing a random commit, it
67 might be interesting to tweak a few parameters; check the variables
68 available at <lib/dist.mk>, and any makefiles included by that one.
77 $ gpg --detach-sign --armor man-pages-${new}.tar
81 $ kup put man-pages-${new}.tar.xz man-pages-${new}.tar.asc \
82 /pub/linux/docs/man-pages/
89 Rename the file with the version that has been released, and update the
90 contents. Check old commits, like c11cb1ca844d "Ready for 6.01".
92 - Update the version number (and also in the tarball name).
94 - Update the release date.
96 - Update the tarball size.
100 $ mv man-pages-${old}.lsm man-pages-${new}.lsm
104 $ git add man-pages-${old}.lsm
105 $ git add man-pages-${new}.lsm
106 $ git commit -sm "lsm: Released ${new}"
108 - Send (email) the .lsm file to <lsm@qqx.org> with the subject "add".
114 Send an announce email to linux-man, LKML, libc-alpha, and possibly
115 others that might be interested in the release, such as distribution
116 maintainers, or those who have contributed to the release.
118 The email should contain a mix of the git tag message, the contents of
119 Changes, and anything else that might be relevant. Check old emails
121 <https://lore.kernel.org/linux-man/4ba6c215-6d28-1769-52d3-04941b962ff3@kernel.org/T/#u>.
123 The subject of the email should be "man-pages-${new} released".
129 Move the contents of Changes to Changes.old, and prepare for the next
132 - Copy contents of Changes to Changes.old:
134 $ (echo; echo) >> Changes.old
135 $ cat Changes >> Changes.old
139 $ git checkout man-pages-${new}^^ -- Changes
143 $ git add Changes Changes.old
144 $ git commit -sm "Start of man-pages-NEXT: Move Changes to Changes.old"
150 You've finished. When you confirm it's good, push to the git repository.
155 $ git push man-pages-${new}