From bd3c78b9d10937adb1855b85bca1864972a1c986 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 26 Oct 2021 07:50:16 +0200 Subject: devel: update release procedure taking into account of abi-dump As the *.abi files have been moved into a separate repository, we need an extra step to update the repository for new release. Signed-off-by: Daiki Ueno --- CONTRIBUTING.md | 9 ++++++-- devel/libgnutls.abignore | 3 +++ devel/release-steps.md | 56 +++++++++++++++++++++++++++++++----------------- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5441e54600..2773b3ffca 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -157,8 +157,13 @@ As such, some questions to answer before adding a new API: 13.0 is made available? Would it harm the addition of a new protocol? -The make rule 'abi-check' verifies that the ABI remained compatible since -the last tagged release. It relies on the git tree and libabigail. +The make rule 'abi-check' verifies that the ABI remained compatible +since the last tagged release, which is maintained in a separate +[abi-dump](https://gitlab.com/gnutls/abi-dump) repository. During +development, the new APIs should be explicitly ignored with the last +section of [devel/libgnutls.abignore](devel/libgnutls.abignore). When +a new version is released and the abi-dump repository is updated, the +section will be cleared. The above do not apply to the C++ library; this library's ABI should not be considered stable. diff --git a/devel/libgnutls.abignore b/devel/libgnutls.abignore index 2156ed39a4..e43e5472f3 100644 --- a/devel/libgnutls.abignore +++ b/devel/libgnutls.abignore @@ -54,3 +54,6 @@ changed_enumerators = GNUTLS_SEC_PARAM_MAX [suppress_function] name = gnutls_ocsp_status_request_is_checked return_type_name = unsigned int + +# The following should be removed in the new release, after updating the +# abi-dump repository: diff --git a/devel/release-steps.md b/devel/release-steps.md index 358f67a9f5..b84d790c5f 100644 --- a/devel/release-steps.md +++ b/devel/release-steps.md @@ -1,22 +1,38 @@ # Release process - 0. Create a new 'milestone' for the next release and move all issues present in the - current release milestone. - 1. Verification of release notes: ensure that release notes ([NEWS](NEWS)) exist - for this release, and include all significant changes since last release. - 2. Update of release date in [NEWS](NEWS), and bump of version number in - [configure.ac](configure.ac) as well as soname numbers in [m4/hooks.m4](m4/hooks.m4). - 3. make distcheck - 4. git tag -s $VERSION - 5. git push && git push $VERSION - 6. gpg --detach-sign gnutls-$VERSION.tar.xz - 7. scp gnutls-$VERSION.tar.xz* ftp.gnupg.org:/home/ftp/gcrypt/gnutls/v$(expr $VERSION : '\([0-9]*\.[0-9]*\)')/ - 8. Create and send announcement email based on previously sent email to the list and - [NEWS](NEWS) file. - 9. Create a NEWS entry at [web-pages repository](https://gitlab.com/gnutls/web-pages/-/tree/master/news-entries), - and/or [a security advisory entry](https://gitlab.com/gnutls/web-pages/-/tree/master/security-entries) - if necessary. The NEWS entry is usually pointing to the announcement email. - A commit auto-generates the [gnutls web site](https://gnutls.gitlab.io/web-pages/) - which is mirrored twice a day by www.gnutls.org. -10. Use the @GnuTLS twitter account to announce the release. -11. Close the current release milestone. +1. Create a new 'milestone' for the next release and move all issues + present in the current release milestone. +1. Verification of release notes: ensure that release notes + ([NEWS](NEWS)) exist for this release, and include all significant + changes since last release. +1. Update of release date in [NEWS](NEWS), and bump of version number + in [configure.ac](configure.ac) as well as soname numbers in + [m4/hooks.m4](m4/hooks.m4). +1. Remove the last section of [devel/libgnutls.abignore], update the + *.abi files under [devel/abi-dump] submodule, and push changes + to the [abi-dump repository]; then do `make abi-check` +1. Create a tarball and detached GPG signature: +```console +make distcheck +git tag -s $VERSION +git push && git push $VERSION +gpg --detach-sign gnutls-$VERSION.tar.xz +``` +1. Upload the tarball and the signature to ftp.gnupg.org: +```console +scp gnutls-$VERSION.tar.xz* ftp.gnupg.org:/home/ftp/gcrypt/gnutls/v$(expr $VERSION : '\([0-9]*\.[0-9]*\)')/ +``` +1. Create and send announcement email based on previously sent email + to the list and [NEWS](NEWS) file. +1. Create a [NEWS entry] and/or a [security advisory entry] at + [web-pages repository] if necessary. The NEWS entry is usually + pointing to the announcement email. A commit auto-generates the + [gnutls web site]. +1. Optionally announce the release on the @GnuTLS twitter account. +1. Close the current release milestone. + +[abi-dump repository]: https://gitlab.com/gnutls/abi-dump +[NEWS entry]: https://gitlab.com/gnutls/web-pages/-/tree/master/news-entries +[security advisory entry]: https://gitlab.com/gnutls/web-pages/-/tree/master/security-entries +[web-pages repository]: https://gitlab.com/gnutls/web-pages/ +[gnutls web site]: https://gnutls.gitlab.io/web-pages/ -- cgit v1.2.1