fix logic for adding new release notes pages

Start by moving the steps to their own script so they are easier to test
locally. Then fix the logic for inserting new entries into the toctree
so it takes the indentation into account. This version assumes we're
standardizing on listing release notes in reverse chronological order,
and those changes will be made separately.

Change-Id: Ib1f74e05c36ba1d247c324c276cfc2d8d75d9420
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann 2016-09-07 16:45:31 -04:00
parent 58405e9786
commit 5eaaf0ccca
2 changed files with 61 additions and 16 deletions

View File

@ -0,0 +1,60 @@
#!/bin/bash
#
# Script to update release notes in a repository when a new branch
# is created.
#
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set -ex
if [[ $# -lt 2 ]]; then
echo "Usage: $0 series repo_dir"
echo
echo "Example: $0 kilo openstack/oslo.config"
exit 2
fi
TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $TOOLSDIR/functions
SERIES=$1
REPO=$2
cd $REPO
NEW_BRANCH="stable/$SERIES"
commit_msg="Update reno for $NEW_BRANCH"
titlebranch=$(python -c "print('$SERIES'.title())")
cat - > releasenotes/source/${SERIES}.rst <<EOF
===================================
$titlebranch Series Release Notes
===================================
.. release-notes::
:branch: origin/$NEW_BRANCH
EOF
# Look at the indentation of the existing entries and reuse the same
# depth.
spaces=$(grep unreleased releasenotes/source/index.rst | sed -e 's/\w//g')
# Insert the new release after the "unreleased" entry so the
# notes appear in reverse chronological order.
sed --in-place -e "/unreleased/s/unreleased/unreleased\n${spaces}${SERIES}/" releasenotes/source/index.rst
git add releasenotes/source/index.rst releasenotes/source/${SERIES}.rst
git diff
git commit -m "$commit_msg"
git show
git review -t "reno-${SERIES}"

View File

@ -60,22 +60,7 @@ if [[ -d releasenotes/source ]]; then
# Also update the reno settings, in master
echo "Updating reno"
git checkout master
shortbranch=$(basename $NEW_BRANCH)
commit_msg="Update reno for $NEW_BRANCH"
titlebranch=$(python -c "print('$shortbranch'.title())")
cat - > releasenotes/source/${shortbranch}.rst <<EOF
===================================
$titlebranch Series Release Notes
===================================
.. release-notes::
:branch: origin/$NEW_BRANCH
EOF
echo " $shortbranch" >> releasenotes/source/index.rst
git add releasenotes/source/index.rst releasenotes/source/${shortbranch}.rst
git commit -m "$commit_msg"
git show
git review -t "reno-${shortbranch}"
$TOOLSDIR/add_release_note_page.sh $SERIES .
else
echo "$REPO does not use reno, no update needed"
fi