Update lib release instructions for freeze

This updates the instructions for client and non-client lib freeze to
make sure all changes are captured in a final release. Also adds a
helper tool to separate out the two types of libs since they have
different deadlines.

Change-Id: I29ea73bcc5a9649d7d9c502ebc0a05c840e41484
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This commit is contained in:
Sean McGinnis 2019-09-19 16:04:06 -05:00
parent 36ef64762d
commit 73d6e8b1a0
No known key found for this signature in database
GPG Key ID: CE7EE4BFAF8D70C8
3 changed files with 55 additions and 14 deletions

View File

@ -162,12 +162,22 @@ Between Milestone-2 and Milestone-3
#. Two weeks before Milestone-3, include a reminder about the final
library release freeze coming the week before Milestone-3.
#. Run the command from milestone-2 again to get a list of libraries::
#. Run the following command to get a list of libraries::
tools/list_library_unreleased_changes.sh
#. Include list of unreleased libraries in the email to increase visibility.
#. One week before Milestone-3, include a reminder about the final
client library release freeze coming the week of Milestone-3.
#. Run the following command to get a list of client libraries::
tools/list_client_library_unreleased_changes.sh
#. Include list of unreleased client libraries in the email to increase
visibility.
#. Two weeks before Milestone-3, prepare other teams to the final release
rush.
@ -191,15 +201,12 @@ Final Library Release (week before Milestone-3)
===============================================
#. Generate a list of all cycle-with-intermediary libraries (except client
libraries) which did not release since the YYYY-MM-DD date of milestone-2.
libraries) which have commits that have not been included in a release.
For this, run::
tox -e venv -- list-deliverables --unreleased-since YYYY-MM-DD
--model cycle-with-intermediary --type library
./tools/list_library_unrelease_changes.sh
Generate release requests for all cycle-with-intermediary libraries
(except client libraries) which had changes, but did not release since
milestone-2. That patch will be used as a base to communicate with the
That patch will be used as a base to communicate with the
team: if a team wants to wait for a specific patch to make it to the
library, someone from the team can -1 the patch to have it held, or update
that patch with a different commit SHA.
@ -227,14 +234,12 @@ Milestone-3
===========
#. Generate a list of all cycle-with-intermediary client libraries which
did not release since the YYYY-MM-DD date of milestone-2.
have commits that have not been included in a release.
For this, run::
tox -e venv -- list-deliverables --unreleased-since YYYY-MM-DD
--model cycle-with-intermediary --type client-library
./tools/list_client_library_unreleased_changes.sh
Generate release requests for all client libraries which had changes,
but did not release since milestone-2. That patch will be used as a base
That patch will be used as a base
to communicate with the team: if a team wants to wait for a specific patch
to make it to the library, someone from the team can -1 the patch to have
it held, or update that patch with a different commit SHA.

View File

@ -0,0 +1,37 @@
#!/bin/bash
#
# Convenience wrapper to show the unreleased changes in all
# libraries, so we don't have to remember the incantation.
if [[ $# -gt 1 ]]; then
echo "Usage: $(basename $0) <branch>"
exit 1
fi
BRANCH=${1:-master}
if [ "$BRANCH" = "master" ]; then
SERIES=$(ls -1 deliverables | sort | tail -n 1)
else
SERIES=$(basename $BRANCH)
fi
TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BASEDIR=$(dirname $TOOLSDIR)
source $TOOLSDIR/functions
# Set up the virtualenv where the list-deliverables command will be
# found. This is done outside of the invocation below because
# otherwise we get the tox output mixed up in the repo list output and
# try to do things like look at the history of "venv" and
# "installing".
if [[ -z "$VIRTUAL_ENV" ]]; then
if [[ ! -d $BASEDIR/.tox/venv ]]; then
(cd $BASEDIR && tox -e venv --notest)
fi
source $BASEDIR/.tox/venv/bin/activate
fi
echo "Finding $SERIES library repositories..."
repos=$(list-deliverables --repos --type client-library --series $SERIES)
$TOOLSDIR/list_unreleased_changes.sh $BRANCH $repos

View File

@ -32,7 +32,6 @@ if [[ -z "$VIRTUAL_ENV" ]]; then
fi
echo "Finding $SERIES library repositories..."
repos=$(list-deliverables --repos --type library --type client-library \
--series $SERIES)
repos=$(list-deliverables --repos --type library --series $SERIES)
$TOOLSDIR/list_unreleased_changes.sh $BRANCH $repos