cd core
export ISISTMP=/c/tmp # or whatever
export ISISART=isis
export ISISDEV=1.9.0-SNAPSHOT
export ISISREL=1.8.0
export ISISRC=RC1
export ISISCOR="Y"
env | grep ISIS | sort
See also the full release process and the release checklist.
Make sure you are in the correct directory (eg |
if you are releasing core
:
cd core
export ISISTMP=/c/tmp # or whatever
export ISISART=isis
export ISISDEV=1.9.0-SNAPSHOT
export ISISREL=1.8.0
export ISISRC=RC1
export ISISCOR="Y"
env | grep ISIS | sort
See here for details on recreating and releasing an archetype.
Pull down latest, create branch (eg prepare/isis-1.8.0
):
git checkout master
git pull --ff-only
git checkout -b $ISISART-$ISISREL
Check:
parent is org.apache:apache
(non-SNAPSHOT version)
Search for any non-SNAPSHOT
usages (including tck project, if any):
grep SNAPSHOT `/bin/find . -name pom.xml | grep -v target | sort`
or (more thoroughly):
vi `/bin/find . -name pom.xml | grep -v target | sort`
Make sure you are in the correct directory (eg |
Clean all local mvn artifacts and rebuild with -o
flag:
cd core
rm -rf ~/.m2/repository/org/apache/isis
mvn clean install -o
Actually, you may want to defer this and do after cutting the release (ie beginning of a new dev cycle) |
mvn versions:display-plugin-updates > /tmp/foo
grep "\->" /tmp/foo | /bin/sort -u
mvn versions:display-dependency-updates > /tmp/foo
grep "\->" /tmp/foo | /bin/sort -u
mvn org.apache.rat:apache-rat-plugin:check -D rat.numUnapprovedLicenses=50 -o
for a in `/bin/find . -name rat.txt -print`; do grep '!???' $a; done
supplemental-models.xml
mvn license:download-licenses
if [ "$ISISCOR" == "Y" ]; then
groovy ../scripts/checkmissinglicenses.groovy
else
groovy ../../../scripts/checkmissinglicenses.groovy
fi
Commit any changes from the preceding steps:
git commit -am "ISIS-nnnn: updates to pom.xml etc for release"
Make sure you are in the correct directory (eg |
first the dry run:
mvn release:prepare -P apache-release \
-DdryRun=true \
-DreleaseVersion=$ISISREL \
-DdevelopmentVersion=$ISISDEV \
-Dtag=$ISISART-$ISISREL-$ISISRC
then "for real":
mvn release:prepare -P apache-release -DskipTests=true -Dresume=false \
-DreleaseVersion=$ISISREL \
-DdevelopmentVersion=$ISISDEV \
-Dtag=$ISISART-$ISISREL-$ISISRC
rm -rf $ISISTMP/$ISISART-$ISISREL
mkdir $ISISTMP/$ISISART-$ISISREL
if [ "$ISISCOR" == "Y" ]; then
ZIPDIR="$M2_REPO/repository/org/apache/isis/core/$ISISART/$ISISREL"
else
ZIPDIR="$M2_REPO/repository/org/apache/isis/$ISISCPT/$ISISART/$ISISREL"
fi
echo "cp \"$ZIPDIR/$ISISART-$ISISREL-source-release.zip\" $ISISTMP/$ISISART-$ISISREL/."
cp "$ZIPDIR/$ISISART-$ISISREL-source-release.zip" $ISISTMP/$ISISART-$ISISREL/.
pushd $ISISTMP/$ISISART-$ISISREL
unzip $ISISART-$ISISREL-source-release.zip
cd $ISISART-$ISISREL
mvn clean install
cat DEPENDENCIES
popd
mvn release:perform -P apache-release \
-DworkingDirectory=$ISISTMP/$ISISART-$ISISREL/checkout
The |
Log onto repository.apache.org and close the staging repo.
Push branch:
git push -u origin $ISISART-$ISISREL
Then push tag:
git push origin refs/tags/$ISISART-$ISISREL-$ISISRC:refs/tags/$ISISART-$ISISREL-$ISISRC
git fetch