From 7d2348482772945e7980bbdb9237b5177aabc0bb Mon Sep 17 00:00:00 2001 From: Jose Carlos Venegas Munoz Date: Thu, 30 Aug 2018 22:22:09 -0500 Subject: [PATCH] release: Add release notes automation. Add script to generate release notes template for runtime. Will get the range of changes from two tags. Get assets information from versions.yaml file. Fixes: #169 Signed-off-by: Jose Carlos Venegas Munoz --- release/runtime-release-notes.sh | 151 +++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100755 release/runtime-release-notes.sh diff --git a/release/runtime-release-notes.sh b/release/runtime-release-notes.sh new file mode 100755 index 000000000..028c4e884 --- /dev/null +++ b/release/runtime-release-notes.sh @@ -0,0 +1,151 @@ +#!/bin/bash +# Copyright (c) 2018 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +[ -z "${DEBUG}" ] || set -x +set -o errexit +set -o nounset +set -o pipefail + +script_dir=$(dirname "$0") + +readonly script_name="$(basename "${BASH_SOURCE[0]}")" +readonly script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +readonly project="kata-containers" +readonly tmp_dir=$(mktemp -d -t release-notes-tmp.XXXXXXXXXX) + +# shellcheck source=../scripts/lib.sh +source "${script_dir}/../scripts/lib.sh" + +exit_handler() { + [ -d "${tmp_dir}" ] || rm -rf "${tmp_dir}" +} +trap exit_handler EXIT + +usage() { + return_code=${1:-} + cat < + +Args: + +previous-release: will be used as start point to get release notes +new-release: new release version that will have the + +Example: +./${script_name} 1.2.0 1.2.1 > notes.md + +EOT + exit "${return_code}" +} + +get_release_info() { + + docker_version=$(get_from_kata_deps "externals.docker.version" "${new_release}") + crio_version=$(get_from_kata_deps "externals.crio.version") + cri_containerd_version=$(get_from_kata_deps "externals.cri-containerd.version" "${new_release}") + oci_spec_version=$(get_from_kata_deps "specs.oci.version" "${new_release}") + + #Image information + image_info=$(get_from_kata_deps "assets.image" "${new_release}") + + # Initrd information + initrd_info=$(get_from_kata_deps "assets.initrd" "${new_release}") + + kernel_version=$(get_from_kata_deps "assets.kernel.version" "${new_release}") + kernel_url=$(get_from_kata_deps "assets.kernel.url" "${new_release}") + + kata_kernel_config_version="${new_release}-kernel-config" + kata_kernel_config_version="${new_release}-kernel-config" + + runtime_version=$(cat "./VERSION") +} + +changes() { + echo "## Changes" + echo "**FIXME - massage this section by hand to produce a summary please**" + git log --merges "${previous_release}".."${new_release}" | awk '/Merge pull/{getline; getline;print }' | + while read -r pr; do + echo "- ${pr}" + done + + echo "" + + echo "## Shortlog" + for cr in $(git log --merges "${previous_release}".."${new_release}" | grep 'Merge:' | awk '{print $2".."$3}'); do + git log --oneline "$cr" + done +} + +print_release_notes() { + cat <>/dev/null + if [ -z "${previous_release}" ]; then + echo "previous-release not provided" + usage 1 + fi + if [ -z "${new_release}" ]; then + echo "new-release not provided" + usage 1 + fi + get_release_info + print_release_notes + popd >>/dev/null +} + +main "$@"