diff --git a/milestone.sh b/milestone.sh index 3dd8701..033f46f 100755 --- a/milestone.sh +++ b/milestone.sh @@ -29,6 +29,7 @@ fi MILESTONE=$1 SHA=$2 PROJECT=$3 +LPROJECT="$PROJECT" TOOLSDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -49,12 +50,18 @@ if [[ "$PROJECT" == "oslo-incubator" ]]; then SKIPUPLOAD=1 fi +if [[ "$PROJECT" == neutron-* ]]; then + echo "Neutron advanced services mode: skipping bugs and upload to neutron" + SKIPBUGS=1 + LPROJECT="neutron" +fi + title "Resolving $MILESTONE to version" if [[ "$IS_RELEASE" == "1" ]]; then VERSION=$MILESTONE RELVERSION=$MILESTONE else - VERSION=`$TOOLSDIR/ms2version.py $PROJECT $MILESTONE` + VERSION=`$TOOLSDIR/ms2version.py $LPROJECT $MILESTONE` RELVERSION=${VERSION:0:8} fi echo "$MILESTONE is $VERSION (final being $RELVERSION)" @@ -100,18 +107,20 @@ fi if [[ "$SKIPBUGS" != "1" ]]; then title "Setting FixCommitted bugs to FixReleased" - $TOOLSDIR/process_bugs.py $PROJECT --settarget=$MILESTONE --fixrelease + $TOOLSDIR/process_bugs.py $LPROJECT --settarget=$MILESTONE --fixrelease read -sn 1 -p "Fix any leftover bugs manually and press key to continue..." fi if [[ "$SKIPUPLOAD" != "1" ]]; then title "Uploading tarball to Launchpad" if [[ "$IS_RELEASE" == "1" ]]; then - $TOOLSDIR/upload_release.py $PROJECT $RELVERSION + $TOOLSDIR/upload_release.py $LPROJECT $RELVERSION --deliverable=$PROJECT else - $TOOLSDIR/upload_release.py $PROJECT $RELVERSION --milestone=$MILESTONE + $TOOLSDIR/upload_release.py $LPROJECT $RELVERSION --deliverable=$PROJECT \ + --milestone=$MILESTONE fi else title "Marking milestone as released in Launchpad" - $TOOLSDIR/upload_release.py $PROJECT $RELVERSION --milestone=$MILESTONE --nop + $TOOLSDIR/upload_release.py $LPROJECT $RELVERSION --deliverable=$PROJECT \ + --milestone=$MILESTONE --nop fi diff --git a/rccut.sh b/rccut.sh index adbeb07..e24699e 100755 --- a/rccut.sh +++ b/rccut.sh @@ -30,12 +30,19 @@ fi SHA=$1 SERIES=$2 PROJECT=$3 +LPROJECT="$PROJECT" if [[ "$PROJECT" == "oslo-incubator" ]]; then echo "Oslo-incubator mode: skipping tarball check" SKIPTARBALL=1 fi +if [[ "$PROJECT" == neutron-* ]]; then + echo "Neutron advanced services mode: skipping bugs" + SKIPBUGS=1 + LPROJECT="neutron" +fi + if [[ "$PROJECT" == "swift" ]]; then if [[ $# -eq 4 ]]; then RC1MILESTONE="$4-rc1" @@ -55,7 +62,7 @@ function title { } title "Checking that $RC1MILESTONE exists" -$TOOLSDIR/ms2version.py --onlycheck $PROJECT $RC1MILESTONE +$TOOLSDIR/ms2version.py --onlycheck $LPROJECT $RC1MILESTONE title "Cloning repository for $PROJECT" MYTMPDIR=`mktemp -d` @@ -85,5 +92,7 @@ if [[ "$SKIPTARBALL" != "1" ]]; then $TOOLSDIR/wait_for_tarball.py $REALSHA fi -title "Setting FixCommitted bugs to FixReleased" -$TOOLSDIR/process_bugs.py $PROJECT --settarget=$RC1MILESTONE --fixrelease +if [[ "$SKIPBUGS" != "1" ]]; then + title "Setting FixCommitted bugs to FixReleased" + $TOOLSDIR/process_bugs.py $LPROJECT --settarget=$RC1MILESTONE --fixrelease +fi diff --git a/rcdelivery.sh b/rcdelivery.sh index 9a57bb5..f39c282 100755 --- a/rcdelivery.sh +++ b/rcdelivery.sh @@ -30,6 +30,7 @@ fi SERIES=$1 RC=$2 PROJECT=$3 +LPROJECT="$PROJECT" if [[ "$PROJECT" == "oslo-incubator" ]]; then echo "Oslo-incubator mode: skipping tarball generation and upload" @@ -37,6 +38,11 @@ if [[ "$PROJECT" == "oslo-incubator" ]]; then SKIPUPLOAD=1 fi +if [[ "$PROJECT" == neutron-* ]]; then + echo "Neutron advanced services mode: upload to Neutron Launchpad project" + LPROJECT="neutron" +fi + if [[ "$PROJECT" == "swift" ]]; then if [[ $# -eq 4 ]]; then FINALVERSION=$4 @@ -53,25 +59,25 @@ function title { echo "$(tput bold)$(tput setaf 1)[ $1 ]$(tput sgr0)" } -title "Resolving $PROJECT $SERIES $RC to version" +title "Resolving $LPROJECT $SERIES $RC to version" if [[ "$RC" == "final" ]]; then - if [[ "$PROJECT" != "swift" ]]; then - RC1VERSION=`$TOOLSDIR/ms2version.py $PROJECT $SERIES-rc1` + if [[ "$LPROJECT" != "swift" ]]; then + RC1VERSION=`$TOOLSDIR/ms2version.py $LPROJECT $SERIES-rc1` FINALVERSION=${RC1VERSION:0:8} fi MILESTONE=$FINALVERSION VERSION=$FINALVERSION - $TOOLSDIR/ms2version.py --onlycheck $PROJECT $MILESTONE + $TOOLSDIR/ms2version.py --onlycheck $LPROJECT $MILESTONE else - if [[ "$PROJECT" != "swift" ]]; then + if [[ "$LPROJECT" != "swift" ]]; then MILESTONE="$SERIES-$RC" - VERSION=`$TOOLSDIR/ms2version.py $PROJECT $MILESTONE` + VERSION=`$TOOLSDIR/ms2version.py $LPROJECT $MILESTONE` FINALVERSION=${VERSION:0:8} else MILESTONE="$FINALVERSION-$RC" VERSION="${FINALVERSION}$RC" - $TOOLSDIR/ms2version.py --onlycheck $PROJECT $MILESTONE + $TOOLSDIR/ms2version.py --onlycheck $LPROJECT $MILESTONE fi fi echo "$SERIES $RC (milestone $MILESTONE) is version $VERSION" @@ -106,16 +112,19 @@ fi if [[ "$SKIPUPLOAD" != "1" ]]; then title "Uploading tarball to Launchpad" if [[ "$RC" == "final" ]]; then - $TOOLSDIR/upload_release.py $PROJECT $FINALVERSION + $TOOLSDIR/upload_release.py $LPROJECT $FINALVERSION --deliverable=$PROJECT else - $TOOLSDIR/upload_release.py $PROJECT $FINALVERSION --milestone=$MILESTONE + $TOOLSDIR/upload_release.py $LPROJECT $FINALVERSION \ + --deliverable=$PROJECT --milestone=$MILESTONE fi else title "Marking milestone as released in Launchpad" if [[ "$RC" == "final" ]]; then - $TOOLSDIR/upload_release.py $PROJECT $FINALVERSION --nop + $TOOLSDIR/upload_release.py $LPROJECT $FINALVERSION \ + --deliverable=$PROJECT --nop else - $TOOLSDIR/upload_release.py $PROJECT $FINALVERSION --milestone=$MILESTONE --nop + $TOOLSDIR/upload_release.py $LPROJECT $FINALVERSION \ + --deliverable=$PROJECT --milestone=$MILESTONE --nop fi fi diff --git a/upload_release.py b/upload_release.py index e083a3e..918cc7e 100755 --- a/upload_release.py +++ b/upload_release.py @@ -37,9 +37,11 @@ def abort(code, errmsg): # Argument parsing parser = argparse.ArgumentParser(description='Grab tarball and release it ' 'on LP as milestone or version.') -parser.add_argument('project', help='Project to publish release for (nova)') +parser.add_argument('project', help='LP project to publish release for (nova)') parser.add_argument('version', help='Version under development (2015.1.0)') parser.add_argument("--milestone", help='Milestone to publish (kilo-2)') +parser.add_argument("--deliverable", help='Project name in the tarball. ' + 'Defaults to project') parser.add_argument("--nop", action='store_true', help='Only create release, do not upload tarball') parser.add_argument("--tarball", @@ -53,6 +55,9 @@ if args.milestone is None: else: milestone = args.milestone +if args.deliverable is None: + args.deliverable = args.project + # Connect to LP print "Connecting to Launchpad..." try: @@ -70,7 +75,12 @@ except KeyError: for lp_milestone in lp_proj.all_milestones: if lp_milestone.name == milestone: if lp_milestone.release: - abort(2, 'Milestone %s was already released !' % milestone) + print 'Milestone %s is already released' % milestone + if args.deliverable != args.project: + print 'We are probably just trying to add %s to LP %s.' % \ + (args.deliverable, args.project) + else: + abort(2, 'That looks like an error!') if args.milestone: short_ms = lp_milestone.code_name.lower() if not short_ms.startswith("rc"): @@ -88,10 +98,13 @@ if not args.nop: print "Downloading tarball..." tmpdir = tempfile.mkdtemp() if args.tarball is None: - base_tgz = "%s-%s%s.tar.gz" % (args.project, args.version, preversion) + base_tgz = "%s-%s%s.tar.gz" % \ + (args.deliverable, args.version, preversion) else: - base_tgz = "%s-%s.tar.gz" % (args.project, args.tarball) - url_tgz = "http://tarballs.openstack.org/%s/%s" % (args.project, base_tgz) + base_tgz = "%s-%s.tar.gz" % \ + (args.deliverable, args.tarball) + url_tgz = "http://tarballs.openstack.org/%s/%s" % \ + (args.deliverable, base_tgz) tgz = os.path.join(tmpdir, base_tgz) (tgz, message) = urllib.urlretrieve(url_tgz, filename=tgz) @@ -129,9 +142,12 @@ else: rel_notes = "This is %s %s release." \ % (args.project.capitalize(), args.version) -lp_release = lp_milestone.createProductRelease( - date_released=datetime.datetime.utcnow(), - release_notes=rel_notes) +if lp_milestone.release: + lp_release = lp_milestone.release +else: + lp_release = lp_milestone.createProductRelease( + date_released=datetime.datetime.utcnow(), + release_notes=rel_notes) # Mark milestone inactive print "Marking milestone inactive..." @@ -141,13 +157,14 @@ lp_milestone.lp_save() if not args.nop: # Upload file print "Uploading release files..." - final_tgz = "%s-%s%s.tar.gz" % (args.project, args.version, preversion) + final_tgz = "%s-%s%s.tar.gz" % \ + (args.deliverable, args.version, preversion) if args.milestone: description = '%s "%s" milestone' % \ - (args.project.capitalize(), args.milestone) + (args.deliverable.capitalize(), args.milestone) else: description = '%s %s release' % \ - (args.project.capitalize(), args.version) + (args.deliverable.capitalize(), args.version) lp_file = lp_release.add_file(file_type='Code Release Tarball', description=description,