* [LTP] [PATCH v2 1/6] tools: Add a script for tagging the release
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 2/6] tools: Add script for creating tarballs and metadata Petr Vorel
` (5 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
A helper for new releases.
Functions will be reused in another script (next commit).
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
tools/lib.sh | 31 ++++++++++++++++++++++++++++++
tools/tag-release.sh | 45 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100755 tools/lib.sh
create mode 100755 tools/tag-release.sh
diff --git a/tools/lib.sh b/tools/lib.sh
new file mode 100755
index 000000000..c96433d28
--- /dev/null
+++ b/tools/lib.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# Copyright (c) 2023 Petr Vorel <pvorel@suse.cz>
+
+ask()
+{
+ local msg="$1"
+ local answer
+
+ printf "\n$msg. Proceed? [N/y]: "
+ read answer
+ case "$answer" in
+ [Yy]*) : ;;
+ *) exit 2
+ esac
+}
+
+quit()
+{
+ printf "\n$@\n" >&2
+ exit 1
+}
+
+rod()
+{
+ eval "$@" || quit "$@ failed"
+}
+
+title()
+{
+ echo "===== $1 ====="
+}
diff --git a/tools/tag-release.sh b/tools/tag-release.sh
new file mode 100755
index 000000000..2967c7b4d
--- /dev/null
+++ b/tools/tag-release.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+# Copyright (c) 2023 Petr Vorel <pvorel@suse.cz>
+# Tag LTP release.
+# https://github.com/linux-test-project/ltp/wiki/LTP-Release-Procedure
+set -e
+
+upstream_git="linux-test-project/ltp"
+tag="$(date +%Y%m%d)"
+old_tag="$(git describe --abbrev=0)"
+tag_msg="LTP $tag"
+
+. $(dirname "$0")/lib.sh
+
+cd $(dirname "$0")/..
+
+if ! git ls-remote --get-url origin | grep -q $upstream_git; then
+ quit "Not an upstream project"
+fi
+
+if ! git --no-pager diff --exit-code; then
+ quit "Please commit your changes before making new release"
+fi
+
+if git show $tag 2> /dev/null; then
+ quit "Tag '$tag' already exists"
+fi
+
+if grep -q "$tag" VERSION; then
+ quit "Tag '$tag' already in VERSION file"
+fi
+
+title "git tag"
+echo "new tag: '$tag', previous tag: '$old_tag'"
+echo "$tag" > VERSION
+git add VERSION
+rod git commit -S --signoff --message \"$tag_msg\" VERSION
+rod git tag --sign --annotate $tag --message \"$tag_msg\"
+git --no-pager show $tag --show-signature
+
+ask "Please check tag and signature"
+
+title "git push"
+ask "Pushing changes to upstream git"
+rod git push origin master:master
+git push origin $tag
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 2/6] tools: Add script for creating tarballs and metadata
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 1/6] tools: Add a script for tagging the release Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 3/6] doc: Rename files to names from ltp.wiki.git Petr Vorel
` (4 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
A helper for new releases.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
tools/create-tarballs-metadata.sh | 56 +++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100755 tools/create-tarballs-metadata.sh
diff --git a/tools/create-tarballs-metadata.sh b/tools/create-tarballs-metadata.sh
new file mode 100755
index 000000000..e7f93d5c0
--- /dev/null
+++ b/tools/create-tarballs-metadata.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+# Copyright (c) 2023 Petr Vorel <pvorel@suse.cz>
+# Create tarballs and metadata for uploading after tagging release.
+# https://github.com/linux-test-project/ltp/wiki/LTP-Release-Procedure
+set -e
+
+tag="$(date +%Y%m%d)"
+tarball_dir="ltp-full-$tag"
+extensions="bz2 xz"
+checksums="md5 sha1 sha256"
+git_dir=$(cd $(dirname "$0")/..; pwd)
+dir="$(cd $git_dir/../; pwd)/ltp-release-$tag"
+
+. $(dirname "$0")/lib.sh
+
+if [ -d $dir ]; then
+ ask "Directory '$dir' exists, will be deleted"
+ rm -rf $dir
+fi
+rod mkdir $dir
+cd $dir
+dir=$PWD
+
+# git clone (local)
+title "git clone"
+rod git clone $git_dir $tarball_dir
+rod cd $tarball_dir
+
+title "Update submodules"
+rod git submodule update --init
+
+title "Generate configure script"
+rod make autotools
+
+# tarballs, checksums
+title "Generate tarballs"
+cd ..
+rod tar --exclude .git -cjf $tarball_dir.tar.bz2 $tarball_dir
+rod tar --exclude .git -cJf $tarball_dir.tar.xz $tarball_dir
+
+title "Generate checksums"
+for alg in $checksums; do
+ for ext in $extensions; do
+ file="$tarball_dir.tar.$ext"
+ ${alg}sum $file > "$file.$alg"
+ done
+done
+
+# metadata documentation
+title "Generate metadata documentation"
+cd $tarball_dir
+rod ./configure --with-metadata-generator=asciidoctor
+rod make -C metadata
+cp -v docparse/metadata.html $dir/metadata.$tag.html
+
+echo "Generated files are in '$dir', upload them to github"
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 3/6] doc: Rename files to names from ltp.wiki.git
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 1/6] tools: Add a script for tagging the release Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 2/6] tools: Add script for creating tarballs and metadata Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 4/6] doc: Add Release procedure Petr Vorel
` (3 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
Keeping the original extension from LTP wiki git brings:
* add syntax highlight for editors
* no need to add new file (only new extension)
Reviwed-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
.github/workflows/wiki-mirror.yml | 16 +++-------------
...{build-system-guide.txt => Build-System.rest} | 0
doc/{c-test-api.txt => C-Test-API.asciidoc} | 0
...-simple.txt => C-Test-Case-Tutorial.asciidoc} | 0
...ork-c-api.txt => C-Test-Network-API.asciidoc} | 0
doc/{kvm-test-api.txt => KVM-Test-API.asciidoc} | 0
... LTP-Library-API-Writing-Guidelines.asciidoc} | 0
...> Maintainer-Patch-Review-Checklist.asciidoc} | 0
...hell-test-api.txt => Shell-Test-API.asciidoc} | 0
...ed-kernel,-libc,-toolchain-versions.asciidoc} | 0
...ines.txt => Test-Writing-Guidelines.asciidoc} | 0
doc/{user-guide.txt => User-Guidelines.asciidoc} | 0
12 files changed, 3 insertions(+), 13 deletions(-)
rename doc/{build-system-guide.txt => Build-System.rest} (100%)
rename doc/{c-test-api.txt => C-Test-API.asciidoc} (100%)
rename doc/{c-test-tutorial-simple.txt => C-Test-Case-Tutorial.asciidoc} (100%)
rename doc/{network-c-api.txt => C-Test-Network-API.asciidoc} (100%)
rename doc/{kvm-test-api.txt => KVM-Test-API.asciidoc} (100%)
rename doc/{library-api-writing-guidelines.txt => LTP-Library-API-Writing-Guidelines.asciidoc} (100%)
rename doc/{maintainer-patch-review-checklist.txt => Maintainer-Patch-Review-Checklist.asciidoc} (100%)
rename doc/{shell-test-api.txt => Shell-Test-API.asciidoc} (100%)
rename doc/{supported-kernel-libc-versions.txt => Supported-kernel,-libc,-toolchain-versions.asciidoc} (100%)
rename doc/{test-writing-guidelines.txt => Test-Writing-Guidelines.asciidoc} (100%)
rename doc/{user-guide.txt => User-Guidelines.asciidoc} (100%)
diff --git a/.github/workflows/wiki-mirror.yml b/.github/workflows/wiki-mirror.yml
index 883892bf5..2ac0caf74 100644
--- a/.github/workflows/wiki-mirror.yml
+++ b/.github/workflows/wiki-mirror.yml
@@ -38,20 +38,10 @@ jobs:
commit=$(git log --pretty=format:"%h (\"%s\")" -1 .)
cd $GITHUB_WORKSPACE/ltp.wiki
-
- # Don't forget to update this list, keep it sorted
- cp -v $dir/c-test-api.txt C-Test-API.asciidoc
- cp -v $dir/c-test-tutorial-simple.txt C-Test-Case-Tutorial.asciidoc
- cp -v $dir/library-api-writing-guidelines.txt LTP-Library-API-Writing-Guidelines.asciidoc
- cp -v $dir/maintainer-patch-review-checklist.txt Maintainer-Patch-Review-Checklist.asciidoc
- cp -v $dir/network-c-api.txt C-Test-Network-API.asciidoc
- cp -v $dir/shell-test-api.txt Shell-Test-API.asciidoc
- cp -v $dir/supported-kernel-libc-versions.txt Supported-kernel,-libc,-toolchain-versions.asciidoc
- cp -v $dir/test-writing-guidelines.txt Test-Writing-Guidelines.asciidoc
- cp -v $dir/user-guide.txt User-Guidelines.asciidoc
- cp -v $dir/kvm-test-api.txt KVM-Test-API.asciidoc
-
+ # don't forget to add new extensions
+ cp -v $dir/*.asciidoc $dir/*.rest .
git add .
+
# only commit if there are changes
git diff-index --quiet HEAD -- || git commit -m "Update to $commit" .
git push
diff --git a/doc/build-system-guide.txt b/doc/Build-System.rest
similarity index 100%
rename from doc/build-system-guide.txt
rename to doc/Build-System.rest
diff --git a/doc/c-test-api.txt b/doc/C-Test-API.asciidoc
similarity index 100%
rename from doc/c-test-api.txt
rename to doc/C-Test-API.asciidoc
diff --git a/doc/c-test-tutorial-simple.txt b/doc/C-Test-Case-Tutorial.asciidoc
similarity index 100%
rename from doc/c-test-tutorial-simple.txt
rename to doc/C-Test-Case-Tutorial.asciidoc
diff --git a/doc/network-c-api.txt b/doc/C-Test-Network-API.asciidoc
similarity index 100%
rename from doc/network-c-api.txt
rename to doc/C-Test-Network-API.asciidoc
diff --git a/doc/kvm-test-api.txt b/doc/KVM-Test-API.asciidoc
similarity index 100%
rename from doc/kvm-test-api.txt
rename to doc/KVM-Test-API.asciidoc
diff --git a/doc/library-api-writing-guidelines.txt b/doc/LTP-Library-API-Writing-Guidelines.asciidoc
similarity index 100%
rename from doc/library-api-writing-guidelines.txt
rename to doc/LTP-Library-API-Writing-Guidelines.asciidoc
diff --git a/doc/maintainer-patch-review-checklist.txt b/doc/Maintainer-Patch-Review-Checklist.asciidoc
similarity index 100%
rename from doc/maintainer-patch-review-checklist.txt
rename to doc/Maintainer-Patch-Review-Checklist.asciidoc
diff --git a/doc/shell-test-api.txt b/doc/Shell-Test-API.asciidoc
similarity index 100%
rename from doc/shell-test-api.txt
rename to doc/Shell-Test-API.asciidoc
diff --git a/doc/supported-kernel-libc-versions.txt b/doc/Supported-kernel,-libc,-toolchain-versions.asciidoc
similarity index 100%
rename from doc/supported-kernel-libc-versions.txt
rename to doc/Supported-kernel,-libc,-toolchain-versions.asciidoc
diff --git a/doc/test-writing-guidelines.txt b/doc/Test-Writing-Guidelines.asciidoc
similarity index 100%
rename from doc/test-writing-guidelines.txt
rename to doc/Test-Writing-Guidelines.asciidoc
diff --git a/doc/user-guide.txt b/doc/User-Guidelines.asciidoc
similarity index 100%
rename from doc/user-guide.txt
rename to doc/User-Guidelines.asciidoc
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 4/6] doc: Add Release procedure
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
` (2 preceding siblings ...)
2023-09-27 20:21 ` [LTP] [PATCH v2 3/6] doc: Rename files to names from ltp.wiki.git Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-27 20:21 ` [LTP] [PATCH v2 5/6] doc: Update release procedure Petr Vorel
` (2 subsequent siblings)
6 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
This slightly outdated document exists in LTP wiki, start versioning it
in the original repository. The only unversioned file in the wiki is
now Home.rest.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
doc/LTP-Release-Procedure.asciidoc | 67 ++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 doc/LTP-Release-Procedure.asciidoc
diff --git a/doc/LTP-Release-Procedure.asciidoc b/doc/LTP-Release-Procedure.asciidoc
new file mode 100644
index 000000000..cd7682fb8
--- /dev/null
+++ b/doc/LTP-Release-Procedure.asciidoc
@@ -0,0 +1,67 @@
+LTP Release Procedure
+=====================
+
+This page contains quick summary of what needs to be done to do a LTP release. It's expected that LTP git is frozen and git HEAD was properly tested and that LTP git tree is cloned to a directory named 'ltp'.
+
+NOTE: The string YYYYMMDD should be substituted to the current date.
+
+1. Tag the git
+--------------
+
+[source,sh]
+--------------------------------------------------------------------
+cd ltp
+echo YYYYMMDD > VERSION
+git commit -s -m 'LTP YYYYMMDD' VERSION
+git tag -a YYYYMMDD -m 'LTP YYYYMMDD'
+--------------------------------------------------------------------
+
+2. Push changes to github
+-------------------------
+[source,sh]
+--------------------------------------------------------------------
+git push
+git push --tags
+--------------------------------------------------------------------
+
+3. Prepare tarballs
+-------------------
+[source,sh]
+--------------------------------------------------------------------
+cd ..
+git clone ltp ltp-full-YYYYMMDD
+cd ltp-full-YYYYMMDD
+# Update mce-inject submodule
+git submodule init
+git submodule update
+# Generate configure script
+make autotools
+# Prepare the archives
+cd ..
+tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
+tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
+--------------------------------------------------------------------
+
+4. Upload the tarballs to GitHub
+--------------------------------
+
+Click on 'releases' then switch to 'tags' then click on 'Add release notes' there should be 'Attach binaries ...' link at the bottom of the page.
+
+Don't forget to upload md5 and sha-1 sums for the tarballs as well.
+
+5. Send release announcement
+----------------------------
+
+Have a look at http://sourceforge.net/p/ltp/mailman/message/34429656/ to get the idea how it should look.
+
+The announcement is send to:
+
+* ltp at lists.linux.it
+* linux-kernel at vger.kernel.org
+* libc-alpha at sourceware.org
+
+CCed to:
+
+* lwn at lwn.net
+* akpm at linux-foundation.org
+* torvalds at linux-foundation.org.
\ No newline at end of file
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* [LTP] [PATCH v2 5/6] doc: Update release procedure
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
` (3 preceding siblings ...)
2023-09-27 20:21 ` [LTP] [PATCH v2 4/6] doc: Add Release procedure Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-29 5:30 ` Avinesh Kumar
2023-09-27 20:21 ` [LTP] [PATCH v2 6/6] Remove Makefile.release Petr Vorel
2023-09-28 7:56 ` [LTP] [PATCH v2 0/6] Release scripts and docs Li Wang
6 siblings, 1 reply; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
* Completely rewrite Release preparation (Cyril).
* Update command examples.
* Document helper scripts.
* Update link to the release announcement.
Co-developed-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
"LTP Release Procedure" wiki page is (temporarily) visible on:
https://github.com/pevik/ltp/wiki/TEST
doc/LTP-Release-Procedure.asciidoc | 160 +++++++++++++++++++++++++----
1 file changed, 138 insertions(+), 22 deletions(-)
diff --git a/doc/LTP-Release-Procedure.asciidoc b/doc/LTP-Release-Procedure.asciidoc
index cd7682fb8..101a1b8cb 100644
--- a/doc/LTP-Release-Procedure.asciidoc
+++ b/doc/LTP-Release-Procedure.asciidoc
@@ -1,59 +1,175 @@
LTP Release Procedure
=====================
-This page contains quick summary of what needs to be done to do a LTP release. It's expected that LTP git is frozen and git HEAD was properly tested and that LTP git tree is cloned to a directory named 'ltp'.
+1. Release preparations
+-----------------------
+
+The release procedure generally takes a few weeks. In the first week or two
+patches that should go into the release are reviewed and possibly merged. These
+patches are either fixes or patches pointed out by the community.
+
+Patch review, when finished, is followed by a git freeze, which is a period
+where only fixes are pushed to the git. During that period community is
+expected to run a LTP pre-release tests, reports problems, and/or send fixes to
+the mailing list. In this period we are especially making sure that there are
+no regressions in the test results on a wide range of distributions and
+architectures.
+
+Once the stabilization period has ended the time has finally come to proceed
+with the release.
NOTE: The string YYYYMMDD should be substituted to the current date.
-1. Tag the git
---------------
+2. Prepare the release notes
+----------------------------
+
+Part of the preparation is also to write the release notes, which are then add
+to GitHub release and also send as announcement to various mailing list (see below).
+
+Have a look at https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/ to get the
+idea how it should look.
+
+3. Tag the git and push changes to github
+-----------------------------------------
[source,sh]
--------------------------------------------------------------------
cd ltp
echo YYYYMMDD > VERSION
-git commit -s -m 'LTP YYYYMMDD' VERSION
-git tag -a YYYYMMDD -m 'LTP YYYYMMDD'
+git commit -S -s -m 'LTP YYYYMMDD' VERSION
+git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD'
+git push origin master:master
+git push origin YYYYMMDD
--------------------------------------------------------------------
-2. Push changes to github
--------------------------
+NOTE: You can use './tools/tag-release.sh' script to have the above automated.
+ It allows you to verify the tag before pushing it and does other checks.
+
[source,sh]
--------------------------------------------------------------------
-git push
-git push --tags
+$ ./tools/tag-release.sh
+===== git push =====
+echo "new tag: 'YYYYMMDD', previous tag: '20230127'"
+tag YYYYMMDD
+Tagger: Person-who-released LTP <foo@example.com>
+Date: Tue May 16 07:08:27 2023 +0200
+
+LTP YYYYMMDD
+-----BEGIN PGP SIGNATURE-----
+
+iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmRjD8sPHHB2b3JlbEBz
+...
+-----END PGP SIGNATURE-----
+
+commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7
+gpg: Signature made Tue 16 May 2023 07:08:08 AM CEST
+gpg: using RSA key 2016FEA4858B1C36B32E833AC0DEC2EE72F33A5F
+...
+Primary key fingerprint: 2016 FEA4 858B 1C36 B32E 833A C0DE C2EE 72F3 3A5F
+Author: Person-who-released LTP <foo@example.com>
+Date: Tue May 16 07:08:08 2023 +0200
+
+ LTP YYYYMMDD
+
+ Signed-off-by: Person-who-released LTP <foo@example.com>
+
+diff --git a/VERSION b/VERSION
+index af4c41fec..ae488c0e7 100644
+--- a/VERSION
++++ b/VERSION
+@@ -1 +1 @@
+-20230127
++YYYYMMDD
+
+Please check tag and signature. Proceed? [N/y]: y
+Pushing changes to upstream git. Proceed? [N/y]: y
+Enumerating objects: 1, done.
+Counting objects: 100% (1/1), done.
+Writing objects: 100% (1/1), 811 bytes | 811.00 KiB/s, done.
+Total 1 (delta 0), reused 1 (delta 0), pack-reused 0
+To github.com:linux-test-project/ltp.git
+ * [new tag] YYYYMMDD -> YYYYMMDD
--------------------------------------------------------------------
-3. Prepare tarballs
--------------------
+4. Prepare tarballs and metadata documentation
+----------------------------------------------
+
[source,sh]
--------------------------------------------------------------------
+# clone already clonned git repository to new folder
cd ..
git clone ltp ltp-full-YYYYMMDD
cd ltp-full-YYYYMMDD
-# Update mce-inject submodule
-git submodule init
-git submodule update
+
+# update all submodules
+git submodule update --init
+
# Generate configure script
make autotools
-# Prepare the archives
+
+# Generate tarballs
cd ..
tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
+
+# Generate checksums
+md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5
+sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1
+sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256
+
+# Generate metadata documentation
+./configure --with-metadata-generator=asciidoctor
+make -C metadata
+cp -v docparse/metadata.html ../metadata.YYYYMMDD.html
--------------------------------------------------------------------
-4. Upload the tarballs to GitHub
---------------------------------
+NOTE: You can use './tools/create-tarballs-metadata.sh' script to have the
+ above automated. All generated files are placed in ltp-release-YYYYMMDD
+ directory.
-Click on 'releases' then switch to 'tags' then click on 'Add release notes' there should be 'Attach binaries ...' link at the bottom of the page.
+[source,sh]
+--------------------------------------------------------------------
+$ ./tools/create-tarballs-metadata.sh
+===== git clone =====
+Cloning into 'ltp-full-YYYYMMDD'...
+done.
+===== Update submodules =====
+Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git) registered for path 'tools/kirk'
+Submodule 'tools/ltx/ltx-src' (https://github.com/linux-test-project/ltx.git) registered for path 'tools/ltx/ltx-src'
+Submodule 'tools/sparse/sparse-src' (git://git.kernel.org/pub/scm/devel/sparse/sparse.git) registered for path 'tools/sparse/sparse-src'
+...
+===== Generate configure script =====
+sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION > m4/ltp-version.m4
+aclocal -I m4
+autoconf
+autoheader
+automake -c -a
+configure.ac:21: installing './compile'
+...
+make[1]: Leaving directory '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/testcases/open_posix_testsuite'
+===== Generate tarballs =====
+===== Generate checksums =====
+===== Generate metadata documentation =====
+checking for a BSD-compatible install... /usr/bin/install -c
+...
+asciidoctor -d book metadata.txt -b xhtml
+make[1]: Leaving directory '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/docparse'
+make: Leaving directory '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/metadata'
+'docparse/metadata.html' -> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html'
+Generated files are in '/home/foo/ltp-release-YYYYMMDD', upload them to github
+--------------------------------------------------------------------
-Don't forget to upload md5 and sha-1 sums for the tarballs as well.
+5. Upload the generated files to GitHub
+---------------------------------------
+
+Click on 'releases' then switch to 'tags', then click on 'Add release notes'.
+There should be 'Attach binaries ...' link at the bottom of the page.
+
+Don't forget to upload checksums for the tarballs and metadata documentation as well.
5. Send release announcement
----------------------------
-Have a look at http://sourceforge.net/p/ltp/mailman/message/34429656/ to get the idea how it should look.
-
The announcement is send to:
* ltp at lists.linux.it
@@ -64,4 +180,4 @@ CCed to:
* lwn at lwn.net
* akpm at linux-foundation.org
-* torvalds at linux-foundation.org.
\ No newline at end of file
+* torvalds at linux-foundation.org.
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 5/6] doc: Update release procedure
2023-09-27 20:21 ` [LTP] [PATCH v2 5/6] doc: Update release procedure Petr Vorel
@ 2023-09-29 5:30 ` Avinesh Kumar
2023-09-29 7:06 ` Petr Vorel
0 siblings, 1 reply; 10+ messages in thread
From: Avinesh Kumar @ 2023-09-29 5:30 UTC (permalink / raw)
To: Petr Vorel; +Cc: Richard Palethorpe, ltp
Hi Petr,
Thank you for these scripts and documentation, makes the release process very
clear.
I didn't try running the scripts but looks fine.
Few minor spelling and grammatical nits below:
Reviewed-by: Avinesh Kumar <akumar@suse.de>
for all the patches.
On Thursday, September 28, 2023 1:51:20 AM IST Petr Vorel wrote:
> * Completely rewrite Release preparation (Cyril).
> * Update command examples.
> * Document helper scripts.
> * Update link to the release announcement.
>
> Co-developed-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> "LTP Release Procedure" wiki page is (temporarily) visible on:
> https://github.com/pevik/ltp/wiki/TEST
>
> doc/LTP-Release-Procedure.asciidoc | 160 +++++++++++++++++++++++++----
> 1 file changed, 138 insertions(+), 22 deletions(-)
>
> diff --git a/doc/LTP-Release-Procedure.asciidoc
> b/doc/LTP-Release-Procedure.asciidoc index cd7682fb8..101a1b8cb 100644
> --- a/doc/LTP-Release-Procedure.asciidoc
> +++ b/doc/LTP-Release-Procedure.asciidoc
> @@ -1,59 +1,175 @@
> LTP Release Procedure
> =====================
>
> -This page contains quick summary of what needs to be done to do a LTP
> release. It's expected that LTP git is frozen and git HEAD was properly
> tested and that LTP git tree is cloned to a directory named 'ltp'. +1.
> Release preparations
> +-----------------------
> +
> +The release procedure generally takes a few weeks. In the first week or two
> +patches that should go into the release are reviewed and possibly merged.
s/two patches/two, patches/
> These +patches are either fixes or patches pointed out by the community. +
> +Patch review, when finished, is followed by a git freeze, which is a period
> +where only fixes are pushed to the git. During that period community is
> +expected to run a LTP pre-release tests, reports problems, and/or send
> fixes to +the mailing list. In this period we are especially making sure
> that there are +no regressions in the test results on a wide range of
> distributions and +architectures.
> +
> +Once the stabilization period has ended the time has finally come to
> proceed +with the release.
>
> NOTE: The string YYYYMMDD should be substituted to the current date.
probably this note should be moved down in the
"3. Tag the git and push changes to github" section.
>
> -1. Tag the git
> ---------------
> +2. Prepare the release notes
> +----------------------------
> +
> +Part of the preparation is also to write the release notes, which are then
> add +to GitHub release and also send as announcement to various mailing
s/add to Github/added to the GitHub
s/also send/also sent
> list (see below). +
s/list/lists
> +Have a look at https://lore.kernel.org/ltp/ZGNiQ1sMGvPU_ETp@yuki/ to get
> the +idea how it should look.
> +
> +3. Tag the git and push changes to github
> +-----------------------------------------
>
> [source,sh]
> --------------------------------------------------------------------
> cd ltp
> echo YYYYMMDD > VERSION
> -git commit -s -m 'LTP YYYYMMDD' VERSION
> -git tag -a YYYYMMDD -m 'LTP YYYYMMDD'
> +git commit -S -s -m 'LTP YYYYMMDD' VERSION
> +git tag -s -a YYYYMMDD -m 'LTP YYYYMMDD'
> +git push origin master:master
> +git push origin YYYYMMDD
> --------------------------------------------------------------------
>
> -2. Push changes to github
> --------------------------
> +NOTE: You can use './tools/tag-release.sh' script to have the above
> automated. + It allows you to verify the tag before pushing it and
> does other checks. +
> [source,sh]
> --------------------------------------------------------------------
> -git push
> -git push --tags
> +$ ./tools/tag-release.sh
> +===== git push =====
> +echo "new tag: 'YYYYMMDD', previous tag: '20230127'"
> +tag YYYYMMDD
> +Tagger: Person-who-released LTP <foo@example.com>
> +Date: Tue May 16 07:08:27 2023 +0200
> +
> +LTP YYYYMMDD
> +-----BEGIN PGP SIGNATURE-----
> +
> +iQJDBAABCAAtFiEEIBb+pIWLHDazLoM6wN7C7nLzOl8FAmRjD8sPHHB2b3JlbEBz
> +...
> +-----END PGP SIGNATURE-----
> +
> +commit 3ebc2dfa85c2445bb68d8c0d66e33c4da1e1b3a7
> +gpg: Signature made Tue 16 May 2023 07:08:08 AM CEST
> +gpg: using RSA key 2016FEA4858B1C36B32E833AC0DEC2EE72F33A5F
> +...
> +Primary key fingerprint: 2016 FEA4 858B 1C36 B32E 833A C0DE C2EE 72F3 3A5F
> +Author: Person-who-released LTP <foo@example.com>
> +Date: Tue May 16 07:08:08 2023 +0200
> +
> + LTP YYYYMMDD
> +
> + Signed-off-by: Person-who-released LTP <foo@example.com>
> +
> +diff --git a/VERSION b/VERSION
> +index af4c41fec..ae488c0e7 100644
> +--- a/VERSION
> ++++ b/VERSION
> +@@ -1 +1 @@
> +-20230127
> ++YYYYMMDD
> +
> +Please check tag and signature. Proceed? [N/y]: y
> +Pushing changes to upstream git. Proceed? [N/y]: y
> +Enumerating objects: 1, done.
> +Counting objects: 100% (1/1), done.
> +Writing objects: 100% (1/1), 811 bytes | 811.00 KiB/s, done.
> +Total 1 (delta 0), reused 1 (delta 0), pack-reused 0
> +To github.com:linux-test-project/ltp.git
> + * [new tag] YYYYMMDD -> YYYYMMDD
> --------------------------------------------------------------------
>
> -3. Prepare tarballs
> --------------------
> +4. Prepare tarballs and metadata documentation
> +----------------------------------------------
> +
> [source,sh]
> --------------------------------------------------------------------
> +# clone already clonned git repository to new folder
> cd ..
> git clone ltp ltp-full-YYYYMMDD
> cd ltp-full-YYYYMMDD
> -# Update mce-inject submodule
> -git submodule init
> -git submodule update
> +
> +# update all submodules
> +git submodule update --init
> +
> # Generate configure script
> make autotools
> -# Prepare the archives
> +
> +# Generate tarballs
> cd ..
> tar -cjf ltp-full-YYYYMMDD.tar.bz2 ltp-full-YYYYMMDD --exclude .git
> tar -cJf ltp-full-YYYYMMDD.tar.xz ltp-full-YYYYMMDD --exclude .git
> +
> +# Generate checksums
> +md5 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.md5
> +sha1 ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha1
> +sha256sum ltp-full-YYYYMMDD.tar.xz > ltp-full-YYYYMMDD.tar.xz.sha256
> +
> +# Generate metadata documentation
> +./configure --with-metadata-generator=asciidoctor
> +make -C metadata
> +cp -v docparse/metadata.html ../metadata.YYYYMMDD.html
> --------------------------------------------------------------------
>
> -4. Upload the tarballs to GitHub
> ---------------------------------
> +NOTE: You can use './tools/create-tarballs-metadata.sh' script to have the
> + above automated. All generated files are placed in ltp-release-
YYYYMMDD
> + directory.
>
> -Click on 'releases' then switch to 'tags' then click on 'Add release notes'
> there should be 'Attach binaries ...' link at the bottom of the page.
> +[source,sh]
> +--------------------------------------------------------------------
> +$ ./tools/create-tarballs-metadata.sh
> +===== git clone =====
> +Cloning into 'ltp-full-YYYYMMDD'...
> +done.
> +===== Update submodules =====
> +Submodule 'tools/kirk' (https://github.com/linux-test-project/kirk.git)
> registered for path 'tools/kirk' +Submodule 'tools/ltx/ltx-src'
> (https://github.com/linux-test-project/ltx.git) registered for path
> 'tools/ltx/ltx-src' +Submodule 'tools/sparse/sparse-src'
> (git://git.kernel.org/pub/scm/devel/sparse/sparse.git) registered for path
> 'tools/sparse/sparse-src' +...
> +===== Generate configure script =====
> +sed -n '1{s:LTP-:m4_define([LTP_VERSION],[:;s:$:]):;p;q}' VERSION >
> m4/ltp-version.m4 +aclocal -I m4
> +autoconf
> +autoheader
> +automake -c -a
> +configure.ac:21: installing './compile'
> +...
> +make[1]: Leaving directory
> '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/testcases/open_posix_test
> suite' +===== Generate tarballs =====
> +===== Generate checksums =====
> +===== Generate metadata documentation =====
> +checking for a BSD-compatible install... /usr/bin/install -c
> +...
> +asciidoctor -d book metadata.txt -b xhtml
> +make[1]: Leaving directory
> '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/docparse' +make: Leaving
> directory '/home/foo/ltp-release-YYYYMMDD/ltp-full-YYYYMMDD/metadata'
> +'docparse/metadata.html' ->
> '/home/foo/ltp-release-YYYYMMDD/metadata.YYYYMMDD.html' +Generated files
> are in '/home/foo/ltp-release-YYYYMMDD', upload them to github
> +--------------------------------------------------------------------
>
> -Don't forget to upload md5 and sha-1 sums for the tarballs as well.
> +5. Upload the generated files to GitHub
> +---------------------------------------
> +
> +Click on 'releases' then switch to 'tags', then click on 'Add release
> notes'. +There should be 'Attach binaries ...' link at the bottom of the
> page. +
> +Don't forget to upload checksums for the tarballs and metadata
> documentation as well.
>
> 5. Send release announcement
> ----------------------------
>
> -Have a look at http://sourceforge.net/p/ltp/mailman/message/34429656/ to
> get the idea how it should look. -
> The announcement is send to:
s/send/sent
>
> * ltp at lists.linux.it
> @@ -64,4 +180,4 @@ CCed to:
>
> * lwn at lwn.net
> * akpm at linux-foundation.org
> -* torvalds at linux-foundation.org.
> \ No newline at end of file
> +* torvalds at linux-foundation.org.
--
Regards,
Avinesh
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 5/6] doc: Update release procedure
2023-09-29 5:30 ` Avinesh Kumar
@ 2023-09-29 7:06 ` Petr Vorel
0 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-29 7:06 UTC (permalink / raw)
To: Avinesh Kumar; +Cc: Richard Palethorpe, ltp
Hi Avinesh, Li, Cyril, all,
> Hi Petr,
> Thank you for these scripts and documentation, makes the release process very
> clear.
> I didn't try running the scripts but looks fine.
> Few minor spelling and grammatical nits below:
Avines, thanks a lot for your review and catching typos.
I shortened the output of the examples a bit and merged.
https://github.com/linux-test-project/ltp/wiki/LTP-Release-Procedure
Now waiting for CI to finish the build (just for sure) before tagging the
release and doing the rest the work.
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread
* [LTP] [PATCH v2 6/6] Remove Makefile.release
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
` (4 preceding siblings ...)
2023-09-27 20:21 ` [LTP] [PATCH v2 5/6] doc: Update release procedure Petr Vorel
@ 2023-09-27 20:21 ` Petr Vorel
2023-09-28 7:56 ` [LTP] [PATCH v2 0/6] Release scripts and docs Li Wang
6 siblings, 0 replies; 10+ messages in thread
From: Petr Vorel @ 2023-09-27 20:21 UTC (permalink / raw)
To: ltp; +Cc: Richard Palethorpe
We now prefer to do local clone instead of make distclean.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Makefile.release | 46 ----------------------------------------------
1 file changed, 46 deletions(-)
delete mode 100644 Makefile.release
diff --git a/Makefile.release b/Makefile.release
deleted file mode 100644
index c81925de5..000000000
--- a/Makefile.release
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Release Makefile for LTP.
-#
-# Copyright (C) 2010, Copyrights-are-for-losers, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Invoke like:
-#
-# make -f Makefile.release release TARBALL_VERSION=FOO
-#
-# Cheers.
-#
-
-top_srcdir ?= $(CURDIR)
-
-include $(top_srcdir)/include/mk/env_pre.mk
-include $(top_srcdir)/include/mk/automake.mk
-
-TARBALL_PREFIX ?= ltp
-
-ifneq ($(wildcard $(top_srcdir)/Version),)
-TARBALL_VERSION ?= $(shell $(top_srcdir)/Version)
-endif
-
-TARBALL_VERSION ?= $(error you must either make Version via make $$PWD/Version or specify an LTP version via TARBALL_VERSION)
-
-TARBALL := $(TARBALL_PREFIX)-$(TARBALL_VERSION).tgz
-
-clean:
- $(MAKE) -f Makefile $@
-
-release: | autotools distclean
- tar -cvz --exclude "$(TARBALL)" -f $(TARBALL) .
--
2.40.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [LTP] [PATCH v2 0/6] Release scripts and docs
2023-09-27 20:21 [LTP] [PATCH v2 0/6] Release scripts and docs Petr Vorel
` (5 preceding siblings ...)
2023-09-27 20:21 ` [LTP] [PATCH v2 6/6] Remove Makefile.release Petr Vorel
@ 2023-09-28 7:56 ` Li Wang
6 siblings, 0 replies; 10+ messages in thread
From: Li Wang @ 2023-09-28 7:56 UTC (permalink / raw)
To: Petr Vorel; +Cc: Richard Palethorpe, ltp
Nice work!
I didn't verify the shell script work but generally looks good.
It should be safe to add those patches in the new release
as most changes focus on documentation.
Reviewed-by: Li Wang <liwang@redhat.com>
On Thu, Sep 28, 2023 at 4:21 AM Petr Vorel <pvorel@suse.cz> wrote:
> TL;DR
> * "LTP Release Procedure" wiki page is (temporarily) visible on:
> https://github.com/pevik/ltp/wiki/TEST
>
> NOTE due a public holiday in the Czech Republic tomorrow, I don't expect
> Cyril will have time to have look into this before release (which should
> be on Friday).
>
> Changes v1->v2:
> "LTP Release Procedure" wiki page
> * Create "1. Release preparations" paragraph, use Cyril's text for it.
> * Add section "2. Prepare the release notes" (important part as which takes
> some time, thus deserve it's own section, 5th section with sending
> announcement is of course kept).
> * Kept command examples (Li), update them (e.g. not pushing all tags,
> but only one created - this can avoid pushing tags from forks - e.g.
> from AOSP).
> * Mention tools/tag-release.sh tools/create-tarballs-metadata.sh scripts.
> * s/20230516/YYYYMMDD/ in wiki doc (previous tag kept as 20230127, Cyril).
>
> tools/tag-release.sh
> * Remove skeleton generation (Cyril).
>
> Other
> * resend "Remove Makefile.release" in this series.
> (it's separated, but let's remove it once we agree on this).
>
> Kind regards,
> Petr
>
> Petr Vorel (6):
> tools: Add a script for tagging the release
> tools: Add script for creating tarballs and metadata
> doc: Rename files to names from ltp.wiki.git
> doc: Add Release procedure
> doc: Update release procedure
> Remove Makefile.release
>
> .github/workflows/wiki-mirror.yml | 16 +-
> Makefile.release | 46 -----
> ...ild-system-guide.txt => Build-System.rest} | 0
> doc/{c-test-api.txt => C-Test-API.asciidoc} | 0
> ...mple.txt => C-Test-Case-Tutorial.asciidoc} | 0
> ...-c-api.txt => C-Test-Network-API.asciidoc} | 0
> ...kvm-test-api.txt => KVM-Test-API.asciidoc} | 0
> ...P-Library-API-Writing-Guidelines.asciidoc} | 0
> doc/LTP-Release-Procedure.asciidoc | 183 ++++++++++++++++++
> ...aintainer-Patch-Review-Checklist.asciidoc} | 0
> ...l-test-api.txt => Shell-Test-API.asciidoc} | 0
> ...kernel,-libc,-toolchain-versions.asciidoc} | 0
> ...s.txt => Test-Writing-Guidelines.asciidoc} | 0
> ...ser-guide.txt => User-Guidelines.asciidoc} | 0
> tools/create-tarballs-metadata.sh | 56 ++++++
> tools/lib.sh | 31 +++
> tools/tag-release.sh | 45 +++++
> 17 files changed, 318 insertions(+), 59 deletions(-)
> delete mode 100644 Makefile.release
> rename doc/{build-system-guide.txt => Build-System.rest} (100%)
> rename doc/{c-test-api.txt => C-Test-API.asciidoc} (100%)
> rename doc/{c-test-tutorial-simple.txt => C-Test-Case-Tutorial.asciidoc}
> (100%)
> rename doc/{network-c-api.txt => C-Test-Network-API.asciidoc} (100%)
> rename doc/{kvm-test-api.txt => KVM-Test-API.asciidoc} (100%)
> rename doc/{library-api-writing-guidelines.txt =>
> LTP-Library-API-Writing-Guidelines.asciidoc} (100%)
> create mode 100644 doc/LTP-Release-Procedure.asciidoc
> rename doc/{maintainer-patch-review-checklist.txt =>
> Maintainer-Patch-Review-Checklist.asciidoc} (100%)
> rename doc/{shell-test-api.txt => Shell-Test-API.asciidoc} (100%)
> rename doc/{supported-kernel-libc-versions.txt =>
> Supported-kernel,-libc,-toolchain-versions.asciidoc} (100%)
> rename doc/{test-writing-guidelines.txt =>
> Test-Writing-Guidelines.asciidoc} (100%)
> rename doc/{user-guide.txt => User-Guidelines.asciidoc} (100%)
> create mode 100755 tools/create-tarballs-metadata.sh
> create mode 100755 tools/lib.sh
> create mode 100755 tools/tag-release.sh
>
> --
> 2.40.1
>
>
--
Regards,
Li Wang
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 10+ messages in thread