RELEASING: update to use meson based steps

This commit is contained in:
Aleksander Morgado
2022-10-19 10:54:29 +00:00
parent c73cbcc309
commit 4eb6a39654

View File

@@ -1,6 +1,5 @@
The ModemManager releases are generated using the GNU autotools.
The ModemManager releases are generated using meson.
0.1) For major releases:
* Increment mm_minor_version and reset mm_micro_version.
@@ -10,32 +9,26 @@ The ModemManager releases are generated using the GNU autotools.
0.2) For stable branch releases:
* Increment mm_micro_version.
1) Configure and build the whole project, making sure gtk-doc is enabled:
1) Add signed tag:
$ git tag -s 1.20.0
$ NOCONFIGURE=1 ./autogen.sh
$ ./configure --enable-gtk-doc
$ make -j8
The description included in the signed tag could be:
Release 1.20.0
2) Run distcheck so that the source distribution tarball is generated, and the
project test suite is run on it:
2) Configure and build the whole project, making sure gtk-doc and introspection
are enabled:
$ meson setup build \
--prefix=/usr \
--buildtype=release \
-Dintrospection=true \
-Dgtk_doc=true
$ ninja -C build
$ make distcheck
3) Run the test suite and install locally:
$ ninja -C build test
$ sudo ninja -C build install
3) Compute checksum of the tarball so that it can be referenced in the release
email:
$ sha256sum ModemManager-${VERSION}.tar.xz
4) Sign release tarball, and verify it (*):
$ gpg --detach-sign --armor ModemManager-${VERSION}.tar.xz
$ gpg --verify ModemManager-${VERSION}.tar.xz.asc ModemManager-${VERSION}.tar.xz
5) Upload source tarball (.tar.xz) and signature (.tar.xz.asc) to
freedesktop.org.
$ scp ModemManager-${VERSION}.tar.xz* fd.o:${ModemManager}/
6) Create directories for the manpages and gtk-doc documentation in
4) Create directories for the manpages and gtk-doc documentation in
freedesktop.org, and also update the 'latest' links:
$ ssh fd.o
[fd.o] $ cd ${ModemManager}/man/
@@ -48,27 +41,39 @@ The ModemManager releases are generated using the GNU autotools.
[fd.o] $ mkdir -p ${VERSION}/libmm-glib
[fd.o] $ ln -s ${VERSION} latest
7) Generate HTML for the manpages:
5) Generate HTML for the manpages:
$ roffit < docs/man/mmcli.1 > mmcli.1.html
$ roffit < docs/man/ModemManager.8 > ModemManager.8.html
8) Upload manpages in HTML to freedesktop.org:
6) Upload manpages in HTML to freedesktop.org:
$ scp *.html fd.o:${ModemManager}/man/${VERSION}/
9) Upload the gtk-doc in HTML available inside the source tarball to
freedesktop.org. It must be the one inside the tarball because it contains
the correct fixed refs to the online documentation of the dependencies
(e.g. the glib/gobject/gio documentation URLs in http://developer.gnome.org)
$ tar -Jxvf ModemManager-${VERSION}.tar.xz
$ scp ModemManager-${VERSION}/docs/reference/api/html/* fd.o:${ModemManager}/doc/${VERSION}/ModemManager/
$ scp ModemManager-${VERSION}/docs/reference/libmm-glib/html/* fd.o:${ModemManager}/doc/${VERSION}/libmm-glib/
7) Copy documentation from /usr/share/gtk-doc and fix online references manually
$ mkdir ModemManager-html
$ cp -r /usr/share/gtk-doc/html/ModemManager/* ModemManager-html/
$ for FILE in $(ls ModemManager-html/*.html); do \
sed -i 's|<a[^>]* href="\.\./glib/[^"]*|<a href="https://docs.gtk.org/glib/|g' $FILE; \
sed -i 's|<a[^>]* href="\.\./gobject/[^"]*|<a href="https://docs.gtk.org/gobject/|g' $FILE; \
sed -i 's|<a[^>]* href="\.\./gio/[^"]*|<a href="https://docs.gtk.org/gio/|g' $FILE; \
done
$ mkdir libmm-glib-html
$ cp -r /usr/share/gtk-doc/html/libmm-glib/* libmm-glib-html/
$ for FILE in $(ls libmm-glib-html/*.html); do \
sed -i 's|<a[^>]* href="\.\./glib/[^"]*|<a href="https://docs.gtk.org/glib/|g' $FILE; \
sed -i 's|<a[^>]* href="\.\./gobject/[^"]*|<a href="https://docs.gtk.org/gobject/|g' $FILE; \
sed -i 's|<a[^>]* href="\.\./gio/[^"]*|<a href="https://docs.gtk.org/gio/|g' $FILE; \
done
10.1) For major releases:
8) Upload the modified HTML files to freedesktop.org:
$ scp ModemManager-html/* fd.o:${ModemManager}/doc/${VERSION}/ModemManager/
$ scp libmm-glib-html/* fd.o:${ModemManager}/doc/${VERSION}/libmm-glib/
9.1) For major releases:
* Fork new stable branch (e.g. mm-${MAJOR}-${MINOR})
* Post-release version bump in the main branch, increment mm_minor_version.
* Post-release version bump in the stable branch, increment mm_micro_version.
10.2) For stable branch releases:
9.2) For stable branch releases:
* Post-release version bump, increment mm_micro_version.
-------------------------------------------------------------------------------
@@ -76,4 +81,4 @@ The ModemManager releases are generated using the GNU autotools.
*) Verifying the release signature requires the public key of the person who
signed it, e.g.:
$ curl https://www.freedesktop.org/software/ModemManager/0x3CAD53398973FFFA.asc | gpg --import
$ curl https://www.freedesktop.org/software/ModemManager/0xAECE0239C6606AD5.asc | gpg --import