From 333c1feb9ef346f8165c24bf7ca5a04e43a40d25 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 17:24:14 +0200 Subject: [PATCH 01/26] Add quick install script for dev env --- README.md | 18 ++++++++++++++++++ meson.build | 3 +++ scripts/install-development-environment | 5 +++++ test/copyright-license | 4 +++- test/shellcheck | 3 +++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100755 scripts/install-development-environment diff --git a/README.md b/README.md index f933980..a194d55 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,24 @@ need to ask for the distribution the user was having the issue on.)). You should use Arch Linux if you want to modify Cagebreak for yourself. +#### Development Environment + +Cloning the Cagebreak repository and building it is sufficient as a starting point. + +All other dependencies can be installed by invoking + +``` +meson compile devel-install -C build +``` + +if meson is already available or + +``` +./scripts/install-development-environment +``` + +otherwise. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index f9708e7..e9388c2 100644 --- a/meson.build +++ b/meson.build @@ -344,6 +344,9 @@ summary = [ ] message('\n'.join(summary)) +run_target('devel-install', + command : ['scripts/install-development-environment']) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/install-development-environment b/scripts/install-development-environment new file mode 100755 index 0000000..a5df5c4 --- /dev/null +++ b/scripts/install-development-environment @@ -0,0 +1,5 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +sudo pacman -Syu --noconfirm git meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev diff --git a/test/copyright-license b/test/copyright-license index 4fe517f..630f843 100644 --- a/test/copyright-license +++ b/test/copyright-license @@ -10,7 +10,9 @@ readonly test_deps=$(cd "${MESONCURRENTCONFIGDIR}" ; find . -type f | grep test/ readonly examples_deps=$(cd "${MESONCURRENTCONFIGDIR}" ; find . -type f | grep examples/) # shellcheck disable=2155,2164,2046 readonly example_scripts_deps=$(cd "${MESONCURRENTCONFIGDIR}" ; find . -type f | grep example_scripts/) -readonly deps="${declared_deps} ${hardcoded_deps} ${test_deps} ${examples_deps} ${example_scripts_deps}" +# shellcheck disable=2155,2164,2046 +readonly scripts_deps=$(cd "${MESONCURRENTCONFIGDIR}" ; find . -type f | grep scripts/) +readonly deps="${declared_deps} ${hardcoded_deps} ${test_deps} ${examples_deps} ${example_scripts_deps} ${scripts_deps}" # shellcheck disable=2046,2155 readonly curryear=$(date +%Y) diff --git a/test/shellcheck b/test/shellcheck index 0727178..cff3fff 100644 --- a/test/shellcheck +++ b/test/shellcheck @@ -13,4 +13,7 @@ shellcheck --source-path=../example_scripts/ $(ls -Itesting-configurations) || R cd "${MESONCURRENTCONFIGDIR}/example_scripts/" || RESULT=1 shellcheck ./* +cd "${MESONCURRENTCONFIGDIR}/scripts/" || RESULT=1 +shellcheck ./* + exit "${RESULT}" From e130498ecdb9439fa7abae279244dcca6364d5de Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 17:45:00 +0200 Subject: [PATCH 02/26] Add gpg key import --- scripts/install-development-environment | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/install-development-environment b/scripts/install-development-environment index a5df5c4..c69efa1 100755 --- a/scripts/install-development-environment +++ b/scripts/install-development-environment @@ -3,3 +3,11 @@ # SPDX-License-Identifier: MIT sudo pacman -Syu --noconfirm git meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +gpg --import keys/* From 4f38f0f1e1065514c23064b2b8a84ab334aa8415 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 18:40:54 +0200 Subject: [PATCH 03/26] Add fuzzing script --- README.md | 16 ++++++++++++++++ meson.build | 3 +++ meson_options.txt | 1 + scripts/fuzz | 16 ++++++++++++++++ 4 files changed, 36 insertions(+) create mode 100755 scripts/fuzz diff --git a/README.md b/README.md index a194d55..03a0fc2 100644 --- a/README.md +++ b/README.md @@ -278,6 +278,22 @@ if meson is already available or otherwise. +#### Scripts + +Cagebreak provides a few convenience tools to facilitate development. + +##### Fuzzing + +If your fuzzing corpus is located in the directory `fuzz_corpus` you can +just call: + +``` +meson compile fuzz -C build +``` + +If you want to use a different directory, configure cagebreak with +`-Dcorpus=OTHERDIRECTORY` or call `./scripts/fuzz OTHERDIRECTORY`. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index e9388c2..f43de32 100644 --- a/meson.build +++ b/meson.build @@ -347,6 +347,9 @@ message('\n'.join(summary)) run_target('devel-install', command : ['scripts/install-development-environment']) +run_target('fuzz', + command : ['scripts/fuzz', get_option('corpus')]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/meson_options.txt b/meson_options.txt index b7fc956..df62d70 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -4,3 +4,4 @@ option('xwayland', type: 'boolean', value: 'false', description: 'Enable support option('man-pages', type: 'boolean', value: 'false', description: 'Build man pages (requires pandoc)') option('fuzz', type: 'boolean', value: 'false', description: 'Enable building fuzzer targets') option('version_override', type: 'string', description: 'Set the project version to the string specified. Used for creating hashes for reproducible builds.') +option('corpus', type: 'string', value: 'fuzz_corpus', description: 'Set fuzzing corpus directory') diff --git a/scripts/fuzz b/scripts/fuzz new file mode 100755 index 0000000..8792016 --- /dev/null +++ b/scripts/fuzz @@ -0,0 +1,16 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +readonly fuzzing_corpus="${1}" + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +rm -rf fuzzing-directory +CC=clang meson setup fuzzing-directory -Dfuzz=true -Db_sanitize=address,undefined -Db_lundef=false -Db_detect-leaks=0 +ninja -C fuzzing-directory/ +WLR_BACKENDS=headless ./fuzzing-directory/fuzz-parse -jobs=12 -max_len=50000 -close_fd_mask=3 "${fuzzing_corpus}" From 77e2b392ed94aee9ccbc196bcb8934396120d68c Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 18:44:39 +0200 Subject: [PATCH 04/26] Adjust dev install deps --- scripts/install-development-environment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install-development-environment b/scripts/install-development-environment index c69efa1..e5a161e 100755 --- a/scripts/install-development-environment +++ b/scripts/install-development-environment @@ -2,7 +2,7 @@ # Copyright 2023, project-repo and the cagebreak contributors # SPDX-License-Identifier: MIT -sudo pacman -Syu --noconfirm git meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev +sudo pacman -Syu --noconfirm git grep sed meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev if [[ -n ${MESON_SOURCE_ROOT} ]] then From f99c39516dffff6eac94919ffb47d088caf6c7c1 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:17:56 +0200 Subject: [PATCH 05/26] Add adjust-epoch script --- README.md | 15 +++++++++++++++ meson.build | 3 +++ scripts/adjust-epoch | 13 +++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 scripts/adjust-epoch diff --git a/README.md b/README.md index 03a0fc2..2b01291 100644 --- a/README.md +++ b/README.md @@ -294,6 +294,21 @@ meson compile fuzz -C build If you want to use a different directory, configure cagebreak with `-Dcorpus=OTHERDIRECTORY` or call `./scripts/fuzz OTHERDIRECTORY`. +##### Adjusting Epoch + +To facilitate the creation of reproducible man pages an arbitrary release +time has to be set in `meson.build`: + +``` +meson compile adjust-epoch -C build +``` + +or + +``` +./scripts/adjust-epoch +``` + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index f43de32..4d3d01c 100644 --- a/meson.build +++ b/meson.build @@ -350,6 +350,9 @@ run_target('devel-install', run_target('fuzz', command : ['scripts/fuzz', get_option('corpus')]) +run_target('adjust-epoch', + command : ['scripts/adjust-epoch']) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/adjust-epoch b/scripts/adjust-epoch new file mode 100644 index 0000000..362c840 --- /dev/null +++ b/scripts/adjust-epoch @@ -0,0 +1,13 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +# shellcheck disable=2034 +ssepoch=$(date +%s) +sed -i -e "/secssinceepoch \=/s/[0-9]*$/$ssepoch/" meson.build From fb736d79868706ad4ba0336a60a63f97d9698f4e Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:39:53 +0200 Subject: [PATCH 06/26] Adjust permissions --- scripts/adjust-epoch | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/adjust-epoch diff --git a/scripts/adjust-epoch b/scripts/adjust-epoch old mode 100644 new mode 100755 From b732b92cea29cc28ac0d685093ce7dd77fd95cb1 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:50:34 +0200 Subject: [PATCH 07/26] Add git-tag script --- README.md | 18 ++++++++++++++++++ meson.build | 3 +++ meson_options.txt | 1 + 3 files changed, 22 insertions(+) diff --git a/README.md b/README.md index 2b01291..f299362 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,24 @@ or ./scripts/adjust-epoch ``` +##### Git tag + +If you are on the master branch, everything is ready and you want to create +a release tag you can call: + +``` +meson compule git-tag -C build +``` + +If you want to use another signing key than the prespecified one, configure +Cagebreak with `-Dgpg_id=GPGID`. + +``` +./scripts/git-tag GPGID CBVERSION +``` + +can be used alternatively. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index 4d3d01c..501cc4f 100644 --- a/meson.build +++ b/meson.build @@ -353,6 +353,9 @@ run_target('fuzz', run_target('adjust-epoch', command : ['scripts/adjust-epoch']) +run_target('git-tag', + command : ['scripts/git-tag', get_option('gpg_id'), meson.project_version()]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/meson_options.txt b/meson_options.txt index df62d70..eba2f60 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -5,3 +5,4 @@ option('man-pages', type: 'boolean', value: 'false', description: 'Build man pag option('fuzz', type: 'boolean', value: 'false', description: 'Enable building fuzzer targets') option('version_override', type: 'string', description: 'Set the project version to the string specified. Used for creating hashes for reproducible builds.') option('corpus', type: 'string', value: 'fuzz_corpus', description: 'Set fuzzing corpus directory') +option('gpg_id', type: 'string', value: '4E82C72C6B3E58A7BC4FF8554909F84CA83BB867', description: 'Set gpg signing key for cagebreak') From 8af1286c57936b9d4ec3e8bac336cd058a00e36b Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:52:13 +0200 Subject: [PATCH 08/26] Add git-tag script --- scripts/git-tag | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100755 scripts/git-tag diff --git a/scripts/git-tag b/scripts/git-tag new file mode 100755 index 0000000..bd8e541 --- /dev/null +++ b/scripts/git-tag @@ -0,0 +1,8 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +readonly gpg_id="${1}" +readonly version="${2}" + +git tag -u "${gpg_id}" "${version}" HEAD From 6ee279c061c02f7bbcb3e68382dcd74cf55ff19c Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:54:49 +0200 Subject: [PATCH 09/26] Adjust fuzz script --- scripts/fuzz | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/fuzz b/scripts/fuzz index 8792016..7f227ec 100755 --- a/scripts/fuzz +++ b/scripts/fuzz @@ -14,3 +14,4 @@ rm -rf fuzzing-directory CC=clang meson setup fuzzing-directory -Dfuzz=true -Db_sanitize=address,undefined -Db_lundef=false -Db_detect-leaks=0 ninja -C fuzzing-directory/ WLR_BACKENDS=headless ./fuzzing-directory/fuzz-parse -jobs=12 -max_len=50000 -close_fd_mask=3 "${fuzzing_corpus}" +rm -rf fuzzing-directory From d30f590569465377b30f119eb329e3846e3be11a Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 19:57:23 +0200 Subject: [PATCH 10/26] Adjust gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 378eac2..a91faf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ build +fuzz_corpus +fuzzing-directory From 8abd46569a31d48eb3c24080835453f7b867d87a Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 21:03:41 +0200 Subject: [PATCH 11/26] Add output-hashes script --- README.md | 17 +++++++++++++++ meson.build | 3 +++ scripts/output-hashes | 50 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100755 scripts/output-hashes diff --git a/README.md b/README.md index f299362..63b1468 100644 --- a/README.md +++ b/README.md @@ -327,6 +327,23 @@ Cagebreak with `-Dgpg_id=GPGID`. can be used alternatively. +##### Output Hashes + +Hashes of release versions of all binaries can be output to `local-hashes.txt` +via: + +``` +meson compile output-hashes -C build +``` + +Or + +``` +./scripts/output-hashes VERSION +``` + +if meson is unavailable. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index 501cc4f..d00d590 100644 --- a/meson.build +++ b/meson.build @@ -356,6 +356,9 @@ run_target('adjust-epoch', run_target('git-tag', command : ['scripts/git-tag', get_option('gpg_id'), meson.project_version()]) +run_target('output-hashes', + command : ['scripts/output-hashes', meson.project_version()]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/output-hashes b/scripts/output-hashes new file mode 100755 index 0000000..cf7cacf --- /dev/null +++ b/scripts/output-hashes @@ -0,0 +1,50 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +readonly version="${1}" + +rm -rf hashes +meson setup hashes -Dxwayland=true -Dman-pages=true --buildtype=release +ninja -C hashes + +cb256=$(sha256sum hashes/cagebreak | cut -d " " -f1) +cb512=$(sha512sum hashes/cagebreak | cut -d " " -f1) + +cb1man256=$(sha256sum hashes/cagebreak.1 | cut -d " " -f1) +cb1man512=$(sha512sum hashes/cagebreak.1 | cut -d " " -f1) + +cb5man256=$(sha256sum hashes/cagebreak-config.5 | cut -d " " -f1) +cb5man512=$(sha512sum hashes/cagebreak-config.5 | cut -d " " -f1) + +cb7man256=$(sha256sum hashes/cagebreak-socket.7 | cut -d " " -f1) +cb7man512=$(sha512sum hashes/cagebreak-socket.7 | cut -d " " -f1) + +echo "${version} cagebreak + + * sha 256: ${cb256} + * sha 512: ${cb512} + +${version} cagebreak.1 + + * sha 256: ${cb1man256} + * sha 512: ${cb1man512} + +${version} cagebreak-config.5 + + * sha 256: ${cb5man256} + * sha 512: ${cb5man512} + +${version} cagebreak-socket.7 + + * sha 256: ${cb7man256} + * sha 512: ${cb7man512} +" > local-hashes.txt + +rm -rf hashes From 47a24150222c73c15228fe3177074507486cf443 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 21:54:42 +0200 Subject: [PATCH 12/26] Add create-sigs script --- README.md | 17 +++++++++++++++++ meson.build | 3 +++ scripts/create-signatures | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100755 scripts/create-signatures diff --git a/README.md b/README.md index 63b1468..94e812e 100644 --- a/README.md +++ b/README.md @@ -344,6 +344,23 @@ Or if meson is unavailable. +##### Create Signatures + +Creation of signatures for releases can be acchieved through: + +``` +meson compile create-sigs -C build +``` + +Configure Cagebreak with `-Dgpg_id=GPGID` for a different gpg signing +key. + +Withou meson use: + +``` +./scripts/create-signatures GPGID +``` + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index d00d590..7d416ea 100644 --- a/meson.build +++ b/meson.build @@ -359,6 +359,9 @@ run_target('git-tag', run_target('output-hashes', command : ['scripts/output-hashes', meson.project_version()]) +run_target('create-sigs', + command : ['scripts/create-signatures', get_option('gpg_id')]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/create-signatures b/scripts/create-signatures new file mode 100755 index 0000000..68dc2ac --- /dev/null +++ b/scripts/create-signatures @@ -0,0 +1,36 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +readonly gpg_id="${1}" +readonly old_tags=$(git tag| tail -1) + +mv signatures/cagebreak.sig "signatures/${old_tags}-cagebreak.sig" +mv signatures/cagebreak.1.sig "signatures/${old_tags}-cagebreak.1.sig" +mv signatures/cagebreak-config.5.sig "signatures/${old_tags}-cagebreak-config.5.sig" +mv signatures/cagebreak-socket.7.sig "signatures/${old_tags}-cagebreak-socket.7.sig" + +git add "signatures/${old_tags}-cagebreak.sig" +git add "signatures/${old_tags}-cagebreak.1.sig" +git add "signatures/${old_tags}-cagebreak-config.5.sig" +git add "signatures/${old_tags}-cagebreak-socket.7.sig" + +rm -rf temp-sigs +meson setup temp-sigs -Dxwayland=true -Dman-pages=true --buildtype=release +ninja -C temp-sigs + +gpg -u "${gpg_id}" --detach-sign temp-sigs/cagebreak +gpg -u "${gpg_id}" --detach-sign temp-sigs/cagebreak.1 +gpg -u "${gpg_id}" --detach-sign temp-sigs/cagebreak-config.5 +gpg -u "${gpg_id}" --detach-sign temp-sigs/cagebreak-socket.7 + +cp temp-sigs/*.sig signatures/ + + +rm -rf temp-sigs From 47e9f28019ac7c02c5b3a70924d3f98bdf9061ee Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 22:22:18 +0200 Subject: [PATCH 13/26] Add set-ver script --- README.md | 13 +++++++++++++ meson.build | 3 +++ scripts/set-version | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100755 scripts/set-version diff --git a/README.md b/README.md index 94e812e..a88e2d2 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,19 @@ Withou meson use: ./scripts/create-signatures GPGID ``` +##### Set Version Number + +Once the version number is set within meson.build, you can use + +``` +meson compile set-ver -C build +``` + +to set the version number in the man pages and README repology minversion. + +Use of the script without meson is discouraged because meson.build is +not touched by the script. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index 7d416ea..c84ea9a 100644 --- a/meson.build +++ b/meson.build @@ -362,6 +362,9 @@ run_target('output-hashes', run_target('create-sigs', command : ['scripts/create-signatures', get_option('gpg_id')]) +run_target('set-ver', + command : ['scripts/set-version', meson.project_version()]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/set-version b/scripts/set-version new file mode 100755 index 0000000..c4506cb --- /dev/null +++ b/scripts/set-version @@ -0,0 +1,20 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +# TODO man pages + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +# shellcheck disable=2034 +version="${1}" +sed -i -e "s/minversion\=[0-9]*\.[0-9]*.[0-9]*/minversion=$version/" README.md + + +sed -i -e "s/Version [0-9]*\.[0-9]*.[0-9]*/VERSION $version/" man/cagebreak.1.md +sed -i -e "s/Version [0-9]*\.[0-9]*.[0-9]*/VERSION $version/" man/cagebreak-config.5.md +sed -i -e "s/Version [0-9]*\.[0-9]*.[0-9]*/VERSION $version/" man/cagebreak-socket.7.md From 4be769b004e0752a6ba7ecffa2e40cb66d05f93f Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 22:45:28 +0200 Subject: [PATCH 14/26] Fix shellcheck issue --- scripts/create-signatures | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/create-signatures b/scripts/create-signatures index 68dc2ac..3292374 100755 --- a/scripts/create-signatures +++ b/scripts/create-signatures @@ -9,6 +9,7 @@ then fi readonly gpg_id="${1}" +# shellcheck disable=2155 readonly old_tags=$(git tag| tail -1) mv signatures/cagebreak.sig "signatures/${old_tags}-cagebreak.sig" From a3a7e2c1cc55a617bc0c651e78fcc9be8f862a49 Mon Sep 17 00:00:00 2001 From: project-repo Date: Thu, 13 Apr 2023 22:46:19 +0200 Subject: [PATCH 15/26] Adjust to 2.1.1 --- README.md | 2 +- man/cagebreak-config.5.md | 2 +- man/cagebreak-socket.7.md | 2 +- man/cagebreak.1.md | 2 +- meson.build | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a88e2d2..83e8451 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Cagebreak: A Wayland Tiling Compositor -[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6532/badge)](https://bestpractices.coreinfrastructure.org/projects/6532) [![Packaging status](https://repology.org/badge/tiny-repos/cagebreak.svg)](https://repology.org/project/cagebreak/versions) [![AUR package](https://repology.org/badge/version-for-repo/aur/cagebreak.svg?minversion=2.1.0)](https://repology.org/project/cagebreak/versions) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6532/badge)](https://bestpractices.coreinfrastructure.org/projects/6532) [![Packaging status](https://repology.org/badge/tiny-repos/cagebreak.svg)](https://repology.org/project/cagebreak/versions) [![AUR package](https://repology.org/badge/version-for-repo/aur/cagebreak.svg?minversion=2.1.1)](https://repology.org/project/cagebreak/versions) ## Quick Introduction diff --git a/man/cagebreak-config.5.md b/man/cagebreak-config.5.md index 1c65b78..bb04547 100644 --- a/man/cagebreak-config.5.md +++ b/man/cagebreak-config.5.md @@ -1,4 +1,4 @@ -cagebreak-config(5) "Version 2.1.0" "Cagebreak Manual" +cagebreak-config(5) "VERSION 2.1.1" "Cagebreak Manual" # NAME diff --git a/man/cagebreak-socket.7.md b/man/cagebreak-socket.7.md index b8e8d9c..19b7370 100644 --- a/man/cagebreak-socket.7.md +++ b/man/cagebreak-socket.7.md @@ -1,4 +1,4 @@ -cagebreak-socket(7) "Version 2.1.0" "Cagebreak Manual" +cagebreak-socket(7) "VERSION 2.1.1" "Cagebreak Manual" # NAME diff --git a/man/cagebreak.1.md b/man/cagebreak.1.md index b3fd209..fdc2da1 100644 --- a/man/cagebreak.1.md +++ b/man/cagebreak.1.md @@ -1,4 +1,4 @@ -cagebreak(1) "Version 2.1.0" "Cagebreak Manual" +cagebreak(1) "VERSION 2.1.1" "Cagebreak Manual" # NAME diff --git a/meson.build b/meson.build index c84ea9a..b31f8ff 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,7 @@ project( 'cagebreak', 'c', -version : '2.1.0', +version : '2.1.1', license : 'MIT', default_options : ['c_std=c11', 'warning_level=3'] ) @@ -202,8 +202,8 @@ cagebreak_dependencies_dict = { reproducible_build_versions = { 'server_protos': '-1', 'wayland_server': '1.19.0', - 'wayland_client': '1.21.0', - 'wayland_cursor': '1.21.0', + 'wayland_client': '1.22.0', + 'wayland_cursor': '1.22.0', 'wlroots': '0.16.2', 'xkbcommon': '1.5.0', 'fontconfig': '2.14.2', From 3e0372125676ac65f4065df191f5a1fa80726036 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 18:00:25 +0200 Subject: [PATCH 16/26] Add xev as dev dep --- scripts/install-development-environment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install-development-environment b/scripts/install-development-environment index e5a161e..16fb810 100755 --- a/scripts/install-development-environment +++ b/scripts/install-development-environment @@ -2,7 +2,7 @@ # Copyright 2023, project-repo and the cagebreak contributors # SPDX-License-Identifier: MIT -sudo pacman -Syu --noconfirm git grep sed meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev +sudo pacman -Syu --noconfirm git grep sed xev meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev if [[ -n ${MESON_SOURCE_ROOT} ]] then From 3bcaa8122ddae2bcea7b25d2d83f0185935b3fa8 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 22:04:51 +0200 Subject: [PATCH 17/26] Add arch linux notice to install script --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 83e8451..911d402 100644 --- a/README.md +++ b/README.md @@ -262,6 +262,9 @@ for yourself. #### Development Environment +CAVEAT: This script works exclusively on Arch Linux, which, as outlined above, +is the development distribution of Cagebreak. + Cloning the Cagebreak repository and building it is sufficient as a starting point. All other dependencies can be installed by invoking From 03e3b1cab8d7630f6342c696e05e17dd3f1f403b Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 22:06:23 +0200 Subject: [PATCH 18/26] Fix typos --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 83e8451..7e5a5f5 100644 --- a/README.md +++ b/README.md @@ -315,7 +315,7 @@ If you are on the master branch, everything is ready and you want to create a release tag you can call: ``` -meson compule git-tag -C build +meson compile git-tag -C build ``` If you want to use another signing key than the prespecified one, configure @@ -346,7 +346,7 @@ if meson is unavailable. ##### Create Signatures -Creation of signatures for releases can be acchieved through: +Creation of signatures for releases can be achieved through: ``` meson compile create-sigs -C build @@ -355,7 +355,7 @@ meson compile create-sigs -C build Configure Cagebreak with `-Dgpg_id=GPGID` for a different gpg signing key. -Withou meson use: +Without meson use: ``` ./scripts/create-signatures GPGID @@ -473,7 +473,7 @@ find bugs in other areas of the code. #### Caveat Currently, there are memory leaks which do not seem to stem from our code but rather -the code of wl-roots or some other library we depend on. We are working on the problem. +the code of wlroots or some other library we depend on. We are working on the problem. In the meantime, add `-Db_detect-leaks=0` to the meson command to exclude memory leaks. ### Reproducible Builds From 0df01ea8d07b261a884fbf0065a0f96142e2e1b3 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 22:06:43 +0200 Subject: [PATCH 19/26] Adjust dev env deps --- scripts/install-development-environment | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install-development-environment b/scripts/install-development-environment index 16fb810..d1b9793 100755 --- a/scripts/install-development-environment +++ b/scripts/install-development-environment @@ -2,7 +2,7 @@ # Copyright 2023, project-repo and the cagebreak contributors # SPDX-License-Identifier: MIT -sudo pacman -Syu --noconfirm git grep sed xev meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty firefox wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev +sudo pacman -Syu --noconfirm git grep sed xev meson ninja clang gcc shellcheck jq openbsd-netcat gnupg binutils alacritty wlroots wayland libxkbcommon cairo pango fontconfig libinput libevdev systemd-libs # systemd-libs is included because of libudev if [[ -n ${MESON_SOURCE_ROOT} ]] then From d6885cec30c9305ec5d8b8f8e0e36c9f21f79b97 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 22:34:45 +0200 Subject: [PATCH 20/26] Adjust shellcheck test --- test/shellcheck | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/shellcheck b/test/shellcheck index cff3fff..7c96d3d 100644 --- a/test/shellcheck +++ b/test/shellcheck @@ -14,6 +14,6 @@ cd "${MESONCURRENTCONFIGDIR}/example_scripts/" || RESULT=1 shellcheck ./* cd "${MESONCURRENTCONFIGDIR}/scripts/" || RESULT=1 -shellcheck ./* +shellcheck ./* || RESULT=1 exit "${RESULT}" From d39dae68b064abdae21b3f03bbcdaeef6a5c6d78 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 22:54:18 +0200 Subject: [PATCH 21/26] Add create release artefacts script --- README.md | 13 +++++++++++ meson.build | 3 +++ scripts/create-release-artefacts | 39 ++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100755 scripts/create-release-artefacts diff --git a/README.md b/README.md index 02f64d8..02c8912 100644 --- a/README.md +++ b/README.md @@ -377,6 +377,19 @@ to set the version number in the man pages and README repology minversion. Use of the script without meson is discouraged because meson.build is not touched by the script. +##### Create Release Artefacts + +Once a release is completely ready to be published, the commit is tagged with the +version on the master branch etc. release artefacts have to be created. + +To aid this use: + +``` +meson compile create-artefacts -C build +``` + +Use of the script version is discouraged. + ### GCC and -fanalyzer Cagebreak should compile with any reasonably new gcc or clang. Consider diff --git a/meson.build b/meson.build index b31f8ff..57ef6b8 100644 --- a/meson.build +++ b/meson.build @@ -365,6 +365,9 @@ run_target('create-sigs', run_target('set-ver', command : ['scripts/set-version', meson.project_version()]) +run_target('create-artefacts', + command : ['scripts/create-release-artefacts', get_option('gpg_id'), meson.project_version()]) + # Test Suite test('Build without warnings', find_program('test/build-w-o-warnings'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'devel') diff --git a/scripts/create-release-artefacts b/scripts/create-release-artefacts new file mode 100755 index 0000000..2049725 --- /dev/null +++ b/scripts/create-release-artefacts @@ -0,0 +1,39 @@ +#!/bin/bash +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +if [[ -n ${MESON_SOURCE_ROOT} ]] +then + # shellcheck disable=2164 + cd "${MESON_SOURCE_ROOT}" +fi + +readonly gpg_id="${1}" +readonly version="${2}" + +git archive --prefix=cagebreak/ -o "release_${version}".tar.gz tags/version . + +rm -rf "release-artefacts_${version}" +mkdir "release-artefacts_${version}" + +rm -rf temp-rel-artefacts +meson setup temp-rel-artefacts -Dxwayland=true -Dman-pages=true --buildtype=release +ninja -C temp-rel-artefacts + +cp LICENSE "release-artefacts_${version}" +cp SECURITY.md "release-artefacts_${version}" +cp FAQ.md "release-artefacts_${version}" +cp README.md "release-artefacts_${version}" +cp temp-rel-artefacts/cagebreak "release-artefacts_${version}" +cp temp-rel-artefacts/cagebreak.1 "release-artefacts_${version}" +cp temp-rel-artefacts/cagebreak-config.5 "release-artefacts_${version}" +cp temp-rel-artefacts/cagebreak-socket.7 "release-artefacts_${version}" +cp signatures/cagebreak*.sig "release-artefacts_${version}" + +export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) ; tar --sort=name --mtime= --owner=0 --group=0 --numeric-owner -czf release-artefacts_${version}.tar.gz release-artefacts_${version} + +gpg -u "${gpg_id}" --detach-sign "release-artefacts_${version}.tar.gz" +gpg -u "${gpg_id}" --detach-sign "release_${version}.tar.gz" + + +rm -rf temp-rel-artefacts From 58b91b7f42cfb61c026f699a0bb59e29dc510198 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 23:13:14 +0200 Subject: [PATCH 22/26] Adjust release procedure --- README.md | 61 +++++++++++-------------------------------------------- 1 file changed, 12 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 02c8912..ecd7e6b 100644 --- a/README.md +++ b/README.md @@ -586,10 +586,9 @@ The release procedure outlines the process for a release to occur. * [ ] `git checkout development` * [ ] `git pull origin development` * [ ] `git push origin development` - * [ ] New semantic version number determined - * [ ] Adjust version number - * [ ] meson.build - * [ ] git tag + * [ ] Update internal wiki + * [ ] Adjust version number in meson.build + * [ ] `meson compile set-ver -C build` * [ ] Relevant Documentation completed * [ ] New features * [ ] man pages @@ -597,42 +596,32 @@ The release procedure outlines the process for a release to occur. * [ ] cagebreak-config * [ ] cagebreak-socket * [ ] example config - * [ ] Set EPOCH to release day in man generation in meson.build * [ ] FAQ.md * [ ] Changelog.md for major and minor releases but not patches * [ ] Check features for SECURITY.md relevance (changes to socket scope for example) * [ ] Synchronize any socket changes to cagebreak-socket man page - * [ ] Updated internal wiki - * [ ] Added new files to meson.build or hardcoded testing variable * [ ] Fixed bugs documented in Bugs.md * [ ] Include issue discussion from github, where applicable + * [ ] Added new files to meson.build or hardcoded testing variable * [ ] Testing * [ ] Manual testing - * [ ] Libfuzzer testing + * [ ] `meson compile fuzz -C build` for at least one hour * [ ] Arch Build System is up to date - * [ ] wlr_xdg_shell version check - * [ ] Cagebreak is reproducible on multiple machines - * [ ] Documented reproducible build artefacts - * [ ] Hashes of the artefacts in Hashes.md - * [ ] Renamed previous signatures - * [ ] Created gpg signature of the artefacts - * [ ] `gpg --detach-sign -u keyid cagebreak` - * [ ] `gpg --detach-sign -u keyid cagebreak.1` - * [ ] `gpg --detach-sign -u keyid cagebreak-config.5` - * [ ] `gpg --detach-sign -u keyid cagebreak-socket.7` + * [ ] release-non-auto-checks + * [ ] `meson compile create-signatures -C build` + * [ ] Use `meson compile output-hashes -C build` to add Hashes or aid in repro check + * [ ] Commit and push signatures and hashes * [ ] `meson test -C build` * [ ] `git add` relevant files * [ ] `git commit` * [ ] `git push origin development` - * [ ] Determined commit and tag message (Start with "Release version_number\n\n") - * [ ] Mentioned fixed Bugs.md issues ("Fixed Issue n") - * [ ] Mentioned other important changes * [ ] `git checkout master` * [ ] `git merge --squash development` * [ ] `git commit` and insert message - * [ ] `git tag -u keyid version HEAD` and insert message - * [ ] `git tag -v version` and check output + * [ ] `meson compile git-tag -C build` + * [ ] `meson compile create-artefacts -C build` + * [ ] `meson test -C build` THIS MUST PASS WITHOUT ANY FAILURES WHATSOEVER * [ ] `git push --tags origin master` * [ ] `git checkout development` (merge to development depends on whether release was a hotfix) * [ ] `git merge master` @@ -640,32 +629,6 @@ The release procedure outlines the process for a release to occur. * [ ] `git checkout hotfix` (hotfix is to be kept current with master after releases) * [ ] `git merge master` * [ ] `git push --tags origin hotfix` - * [ ] `git archive --prefix=cagebreak/ -o release_version.tar.gz tags/version .` - * [ ] Create release-artefacts_version.tar.gz - * [ ] `mkdir release-artefacts_version` - * [ ] `cp build/cagebreak release-artefacts_version/` - * [ ] `cp build/cagebreak.sig release-artefacts_version/` - * [ ] `cp build/cagebreak.1 release-artefacts_version/` - * [ ] `cp build/cagebreak.1.sig release-artefacts_version/` - * [ ] `cp build/cagebreak-config.5 release-artefacts_version/` - * [ ] `cp build/cagebreak-config.5.sig release-artefacts_version/` - * [ ] `cp build/cagebreak-socket.7 release-artefacts_version/` - * [ ] `cp build/cagebreak-socket.7.sig release-artefacts_version/` - * [ ] `cp LICENSE release-artefacts_version/` - * [ ] `cp README.md release-artefacts_version/` - * [ ] `cp SECURITY.md release-artefacts_version/` - * [ ] `cp FAQ.md release-artefacts_version/` - * [ ] `export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) ; tar --sort=name --mtime= --owner=0 --group=0 --numeric-owner -czf release-artefacts_version.tar.gz release-artefacts_version` - * [ ] Checked archive - * [ ] tar -xvf release_version.tar.gz - * [ ] cd cagebreak - * [ ] meson setup build -Dxwayland=true -Dman-pages=true --buildtype=release - * [ ] ninja -C build - * [ ] gpg --verify ../signatures/cagebreak.sig build/cagebreak - * [ ] cd .. - * [ ] rm -rf cagebreak - * [ ] `gpg --detach-sign -u keyid release_version.tar.gz` - * [ ] `gpg --detach-sign -u keyid release-artefacts_version.tar.gz` * [ ] Upload archives and signatures as release assets ## Roadmap From bb7c7e3ca1dd8b0c0ca60c3c4c85fa945e927847 Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 14 Apr 2023 23:44:00 +0200 Subject: [PATCH 23/26] Add release artefacts test --- meson.build | 1 + scripts/create-release-artefacts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 57ef6b8..1e1f00f 100644 --- a/meson.build +++ b/meson.build @@ -379,3 +379,4 @@ test('Scan-build (static analysis)', find_program('test/scan-build'), env : [ '' test('Arguments', find_program('test/arguments'), args : [ meson.project_version() ], env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'basic') test('Environment Variables', find_program('test/environment-variables'), env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'basic') test('Semantic versioning', find_program('test/versions'), args : [ meson.project_version() ], env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'release') +test('Release-artefacts', find_program('test/check-artefacts'), args : [ meson.project_version() ], env : [ ''.join('MESONCURRENTCONFIGDIR=', meson.current_source_dir()) ], suite: 'release') diff --git a/scripts/create-release-artefacts b/scripts/create-release-artefacts index 2049725..971f72c 100755 --- a/scripts/create-release-artefacts +++ b/scripts/create-release-artefacts @@ -30,7 +30,8 @@ cp temp-rel-artefacts/cagebreak-config.5 "release-artefacts_${version}" cp temp-rel-artefacts/cagebreak-socket.7 "release-artefacts_${version}" cp signatures/cagebreak*.sig "release-artefacts_${version}" -export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) ; tar --sort=name --mtime= --owner=0 --group=0 --numeric-owner -czf release-artefacts_${version}.tar.gz release-artefacts_${version} +# shellcheck disable=2155 +export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) ; tar --sort=name --mtime= --owner=0 --group=0 --numeric-owner -czf "release-artefacts_${version}.tar.gz" "release-artefacts_${version}" gpg -u "${gpg_id}" --detach-sign "release-artefacts_${version}.tar.gz" gpg -u "${gpg_id}" --detach-sign "release_${version}.tar.gz" From 22554f128f8ce4f01de77d15c20697c95adfd734 Mon Sep 17 00:00:00 2001 From: project-repo Date: Sat, 15 Apr 2023 00:17:51 +0200 Subject: [PATCH 24/26] Actually add artefacts test --- test/check-artefacts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 test/check-artefacts diff --git a/test/check-artefacts b/test/check-artefacts new file mode 100644 index 0000000..8e5edb6 --- /dev/null +++ b/test/check-artefacts @@ -0,0 +1,27 @@ +#! /bin/sh +# Copyright 2023, project-repo and the cagebreak contributors +# SPDX-License-Identifier: MIT + +RESULT=0 + +readonly version="${1}" + +# shellcheck disable=SC2164 +cd "${MESONCURRENTCONFIGDIR}" + +gpg --verify "release_${version}.tar.gz.sig" || RESULT=1 +gpg --verify "release-artefacts_${version}.tar.gz.sig" || RESULT=1 + +tar -xvf "release_${version}.tar.gz" +cd cagebreak || RESULT=1 && exit 1 +meson setup build -Dxwayland=true -Dman-pages=true --buildtype=release +ninja -C build +gpg --verify ../signatures/cagebreak.sig build/cagebreak || RESULT=1 +gpg --verify ../signatures/cagebreak.1.sig build/cagebreak.1 || RESULT=1 +gpg --verify ../signatures/cagebreak-config.5.sig build/cagebreak-config.5 || RESULT=1 +gpg --verify ../signatures/cagebreak-socket.7.sig build/cagebreak-socket.7 || RESULT=1 +# shellcheck disable=2103 +cd .. +rm -rf cagebreak + +exit "${RESULT}" From de0f7a091b9dbd26bf24dbff8cd67c7effd4121f Mon Sep 17 00:00:00 2001 From: project-repo Date: Sat, 15 Apr 2023 18:51:58 +0200 Subject: [PATCH 25/26] Slight rewording --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ecd7e6b..1b22bfe 100644 --- a/README.md +++ b/README.md @@ -379,10 +379,9 @@ not touched by the script. ##### Create Release Artefacts -Once a release is completely ready to be published, the commit is tagged with the -version on the master branch etc. release artefacts have to be created. - -To aid this use: +The following command generates the release artefacts which must be created +once a release is completely ready to be published (the commit is tagged with +the version of the master branch, etc.): ``` meson compile create-artefacts -C build From 3b22453ccab3f97507b7c59163bc031233901529 Mon Sep 17 00:00:00 2001 From: project-repo Date: Sat, 15 Apr 2023 18:56:30 +0200 Subject: [PATCH 26/26] Reword --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b22bfe..4ab3b99 100644 --- a/README.md +++ b/README.md @@ -600,7 +600,7 @@ The release procedure outlines the process for a release to occur. * [ ] Check features for SECURITY.md relevance (changes to socket scope for example) * [ ] Synchronize any socket changes to cagebreak-socket man page - * [ ] Fixed bugs documented in Bugs.md + * [ ] Document fixed bugs in Bugs.md * [ ] Include issue discussion from github, where applicable * [ ] Added new files to meson.build or hardcoded testing variable * [ ] Testing