blob: a9dd7a3c44c094b0dec4dadc10c2d57e89e0f0a0 [file] [log] [blame]
#!/bin/sh
#
# Script to update PTP versions
#
# Usage: update_versions user_id ptp_version [branch]
#
# user_id - user id to use to clone repo
# ptp_version - new version string for PTP and Photran (e.g. "5.0.1")
# branch - alternate branch to use when updating versions
#
# Note: as of 9.1, PTP and Photran versions will be kept in sync
#
# Manual update is required for:
# - the target version in org.eclipse.photran/pom.xml and org.eclipse.ptp/pom.xml
# - MANIFEST.MF in core/org.eclipse.ptp.doc.user
# - pom.xml in core/org.eclipse.ptp.doc.user
#
# A "qualifier" suffix will automatically be added to the version where appropriate
#
# If version numbers are updated on a branch other than master, it is recommended to run
# the command from the master branch:
#
# git merge -s ours origin/branch
#
# to mark the changes as merged.
BRANCH=master
if [ $# -lt 2 ]; then
echo "usage: update_versions user_id ptp_version [branch]"
exit 1
fi
user_id=$1
ptp_version=$2
if [ $# -gt 2 ]; then
BRANCH=$3
fi
if [ -d fix_ptp_versions ]; then
echo "please remove fix_ptp_versions first"
exit 1
fi
mkdir fix_ptp_versions
cd fix_ptp_versions
git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.photran.git
(cd org.eclipse.photran && git checkout $BRANCH)
git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.ptp.git
(cd org.eclipse.ptp && git checkout $BRANCH)
git clone ssh://${user_id}@git.eclipse.org:29418/ptp/org.eclipse.ptp.master.git
(cd org.eclipse.ptp.master && git checkout $BRANCH)
PTP_PLUGINS="\
releng/org.eclipse.ptp.aix \
releng/org.eclipse.ptp.linux \
releng/org.eclipse.ptp.macosx \
releng/org.eclipse.ptp \
debug/org.eclipse.ptp.debug.sdm \
core/org.eclipse.ptp.utils \
core/org.eclipse.ptp.proxy \
core/org.eclipse.ptp.doc.isv \
tools/sci/org.eclipse.ptp.sci"
PTP_PRODUCTS="ptp sysmon"
update_feature() {
sed -e "s/^\([ \t]*\)version=\"[0-9]\.[0-9]\.[0-9]\.qualifier\"/\1version=\"$2\.qualifier\"/" < $1/feature.xml > $1/feature.xml.tmp
mv $1/feature.xml.tmp $1/feature.xml
}
update_product() {
sed -e "s/version=\"[0-9]\.[0-9]\.[0-9]/version=\"$2/" < $1.product > $1.product.tmp
mv $1.product.tmp $1.product
}
update_manifest() {
sed -e "s/^Bundle-Version: *[0-9]\.[0-9]\.[0-9]\.qualifier/Bundle-Version: $2.qualifier/" < $1/META-INF/MANIFEST.MF > $1/META-INF/MANIFEST.MF.tmp
mv $1/META-INF/MANIFEST.MF.tmp $1/META-INF/MANIFEST.MF
}
for product in $PTP_PRODUCTS; do
echo "Updating $product..."
(cd org.eclipse.ptp.master/*.${product}-product && \
update_product $product $ptp_version)
done
for feature in org.eclipse.photran/*-feature; do
echo "Updating $feature..."
update_feature $feature $ptp_version
done
for feature in org.eclipse.ptp/releng/*-feature; do
echo "Updating $feature..."
update_feature $feature $ptp_version
done
for feature in org.eclipse.ptp.master/*-feature; do
echo "Updating $feature..."
update_feature $feature $ptp_version
done
for plugin in $PTP_PLUGINS; do
echo "Updating $plugin..."
update_manifest org.eclipse.ptp/$plugin $ptp_version
done
(cd org.eclipse.photran && \
mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \
mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom)
(cd org.eclipse.ptp && \
mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \
mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom)
(cd org.eclipse.ptp.master && \
mvn versions:set -DnewVersion="${ptp_version}-SNAPSHOT" && \
mvn org.eclipse.tycho:tycho-versions-plugin:0.14.0:update-pom)
find . -name pom.xml.versionsBackup -exec rm -f {} \;
#(cd org.eclipse.photran && git commit -m "Update PTP & Photran versions" && git push)
#(cd org.eclipse.ptp && git commit -m "Update PTP & Photran versions" && git push)
#(cd org.eclipse.ptp.master && git commit -m "Update PTP & Photran versions" && git push)
#
# Cleanup
#
#cd ..
#rm -rf fix_ptp_versions
exit 0