new scripts to automate most of the release process
git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@5609 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
@ -1,17 +1,22 @@
|
||||
update pmd.bat, designer.bat, bgastviewer.*, cygwin-run.sh, cpd.jnlp, cpdgui.bat, build.xml to point to pmd-4.0.jar
|
||||
update PMD.java, xdocs/running.xml, compiling.xml, integrations.xml, installing.xml to reflect pmd-4.0
|
||||
update the release date in the changelog
|
||||
update rulesets/rulesets.properties - add any new ruleset file names
|
||||
update release number and tag name in project.xml
|
||||
|
||||
ensure all the new rules are listed in a rulesets/releases/4.0.xml file
|
||||
run version update script at the top level:
|
||||
|
||||
./etc/update_version.sh <version>
|
||||
|
||||
tasks implemented by script:
|
||||
update pmd.bat, designer.bat, bgastviewer.*, cygwin-run.sh, cpd.jnlp, cpdgui.bat, build.xml to point to pmd-<version>.jar
|
||||
update PMD.java, xdocs/running.xml, compiling.xml, integrations.xml, installing.xml to reflect pmd-<version>
|
||||
update the release date in the changelog
|
||||
update release number and tag name in project.xml
|
||||
|
||||
update rulesets/rulesets.properties - add any new ruleset file names
|
||||
ensure all the new rules are listed in a rulesets/releases/<version>.xml file
|
||||
|
||||
ant clean test
|
||||
Check in everything
|
||||
|
||||
ant dist test
|
||||
Do all the JUnit tests run? OK, then:
|
||||
ant dist
|
||||
|
||||
TESTS: Can you
|
||||
1) run 1 file and get a report
|
||||
@ -20,68 +25,33 @@ TESTS: Can you
|
||||
2) run the Ant 'pmd' task and get a report
|
||||
ant pmd
|
||||
|
||||
cd ..
|
||||
./docs.sh all
|
||||
cd etc
|
||||
run "./generate_release.sh <version>" in etc
|
||||
|
||||
Prepare binary release:
|
||||
rm -rf ~/tmp/pmd-4.0
|
||||
mkdir -p ~/tmp/pmd-4.0/etc
|
||||
mkdir ~/tmp/pmd-4.0/bin
|
||||
mkdir ~/tmp/pmd-4.0/lib
|
||||
mkdir -p ~/tmp/pmd-4.0/java14/lib
|
||||
mkdir ~/tmp/pmd-4.0/java14/bin
|
||||
cp ../LICENSE.txt changelog.txt ~/tmp/pmd-4.0/etc
|
||||
cd ../bin/
|
||||
cp pmd.* cygwin-run.sh build.xml cpd.sh cpdgui.bat designer.* ~/tmp/pmd-4.0/bin
|
||||
cd ../etc/
|
||||
cp ../java14/lib/*.jar ~/tmp/pmd-4.0/java14/lib/
|
||||
cp ../java14/bin/*.bat ../java14/bin/*.sh ~/tmp/pmd-4.0/java14/bin/
|
||||
chmod 755 ~/tmp/pmd-4.0/java14/bin/*
|
||||
cp ../lib/pmd-4.0.jar ../lib/asm-3.0.jar ../lib/jaxen-1.1.1.jar ~/tmp/pmd-4.0/lib/
|
||||
mkdir ~/tmp/pmd-4.0/etc/xslt
|
||||
cp xslt/*.xslt xslt/*.js xslt/*.gif xslt/*.css ~/tmp/pmd-4.0/etc/xslt/
|
||||
cp -R ../target/docs ~/tmp/pmd-4.0
|
||||
cd ~/tmp
|
||||
zip -q -r pmd-bin-4.0.zip pmd-4.0/
|
||||
cd -
|
||||
It will run:
|
||||
|
||||
Time to tag:
|
||||
ant dist
|
||||
./docs.sh all
|
||||
|
||||
cd ../../
|
||||
svn -m "4.0 release tag" copy https://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_4_0
|
||||
generate the binary zip file
|
||||
|
||||
Prepare source release:
|
||||
rm -rf ~/tmp/pmd-4.0
|
||||
rm -rf ~/tmp/pmd-src-4.0.zip
|
||||
cd pmd/bin/
|
||||
ant jarsrc
|
||||
cd ../../
|
||||
rm -rf tmp/
|
||||
mkdir tmp
|
||||
cd tmp
|
||||
svn -q export https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_4_0 pmd
|
||||
mv pmd/ pmd-4.0
|
||||
cd ..
|
||||
cp pmd/lib/pmd-src-4.0.jar tmp/pmd-4.0/lib/
|
||||
mv tmp/pmd-4.0/ ~/tmp/
|
||||
cp pmd/lib/pmd-4.0.jar ~/tmp/pmd-4.0/lib
|
||||
cp -R pmd/target/docs ~/tmp/pmd-4.0/
|
||||
rm -f ~/tmp/pmd-4.0/etc/clover.license
|
||||
cd ~/tmp/
|
||||
zip -q -r pmd-src-4.0.zip pmd-4.0/
|
||||
svn tag if "yes" is pressed
|
||||
|
||||
generate the source zip file
|
||||
|
||||
if you see a bug and fix it, you can delete the release using:
|
||||
svn delete https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_4_0
|
||||
and then retag it
|
||||
|
||||
ncftpput upload.sourceforge.net incoming/ pmd-src-4.0.zip pmd-bin-4.0.zip
|
||||
ncftpput upload.sourceforge.net incoming/ pmd-src-<version>.zip pmd-bin-<version>.zip
|
||||
|
||||
lftp -e "mput -O incoming/ pmd-src-<version>.zip pmd-bin-<version>.zip" upload.sourceforge.net
|
||||
|
||||
|
||||
|
||||
Go to Admin, File Releases, Add release
|
||||
Paste stuff into the changelog/readme boxes
|
||||
Add the pmd-bin-4.0.zip file
|
||||
Add the pmd-src-4.0.zip file
|
||||
Add the pmd-bin-<version>.zip file
|
||||
Add the pmd-src-<version>.zip file
|
||||
Classify the file
|
||||
Click File Releases, Edit Release, set previous version to 'hidden'.
|
||||
|
||||
|
100
pmd/etc/generate_release.sh
Executable file
100
pmd/etc/generate_release.sh
Executable file
@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
|
||||
version=$1
|
||||
|
||||
pmd_top_dir=~/tmp
|
||||
pmd_bin_dir=$pmd_top_dir/pmd-$version
|
||||
pmd_src_dir=$pmd_top_dir/pmd-$version
|
||||
pmd_tmp_dir=$pmd_top_dir/pmd-tmp
|
||||
|
||||
echo
|
||||
echo "Rebuilding everything"
|
||||
echo
|
||||
|
||||
cd ..
|
||||
ant -f bin/build.xml dist
|
||||
|
||||
echo
|
||||
echo "Press [enter] to generate docs"
|
||||
|
||||
read RESP
|
||||
./docs.sh all
|
||||
|
||||
cd etc
|
||||
|
||||
echo
|
||||
echo "generating binary file $pmd_top_dir/pmd-bin-$version.zip"
|
||||
echo
|
||||
|
||||
rm -rf $pmd_bin_dir
|
||||
rm -f $pmd_top_dir/pmd-bin-$version.zip
|
||||
mkdir -p $pmd_bin_dir/etc
|
||||
mkdir $pmd_bin_dir/bin
|
||||
mkdir $pmd_bin_dir/lib
|
||||
mkdir -p $pmd_bin_dir/java14/lib
|
||||
mkdir $pmd_bin_dir/java14/bin
|
||||
cp ../LICENSE.txt changelog.txt $pmd_bin_dir/etc
|
||||
cd ../bin/
|
||||
cp pmd.* cygwin-run.sh build.xml cpd.sh cpdgui.bat designer.* $pmd_bin_dir/bin
|
||||
cd ../etc/
|
||||
cp ../java14/lib/*.jar $pmd_bin_dir/java14/lib/
|
||||
cp ../java14/bin/*.bat ../java14/bin/*.sh $pmd_bin_dir/java14/bin/
|
||||
chmod 755 $pmd_bin_dir/java14/bin/*
|
||||
cp ../lib/pmd-$version.jar ../lib/asm-3.0.jar ../lib/jaxen-1.1.1.jar $pmd_bin_dir/lib/
|
||||
mkdir $pmd_bin_dir/etc/xslt
|
||||
cp xslt/*.xslt xslt/*.js xslt/*.gif xslt/*.css $pmd_bin_dir/etc/xslt/
|
||||
cp -R ../target/docs $pmd_bin_dir
|
||||
cd $pmd_top_dir
|
||||
zip -q -r pmd-bin-$version.zip pmd-$version/
|
||||
cd -
|
||||
|
||||
echo
|
||||
echo "binary package generated"
|
||||
echo
|
||||
|
||||
release_tag=`echo $version|sed -e "s/\./_/g"`
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "Type \"yes\" to tag svn repository using 'pmd_release_$release_tag'"
|
||||
|
||||
read RESP;
|
||||
|
||||
if [ "$RESP" = "yes" ]; then
|
||||
echo
|
||||
echo "Tagging release using"
|
||||
echo "svn -m \"$version release tag\" copy https://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_$release_tag"
|
||||
echo
|
||||
svn -m \"$version release tag\" copy https://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_$release_tag
|
||||
else
|
||||
echo
|
||||
echo "Skipping svn tag!!!"
|
||||
echo
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "generating source file $pmd_top_dir/pmd-src-$version.zip"
|
||||
|
||||
rm -rf $pmd_src_dir
|
||||
rm -f $pmd_top_dir/pmd-src-$version.zip
|
||||
cd ../bin/
|
||||
ant jarsrc
|
||||
cd ..
|
||||
svn -q export https://pmd.svn.sourceforge.net/svnroot/pmd/tags/pmd/pmd_release_$release_tag $pmd_src_dir
|
||||
cp lib/pmd-src-$version.jar $pmd_src_dir/lib/
|
||||
cp lib/pmd-$version.jar $pmd_src_dir/lib
|
||||
cp -R target/docs $pmd_src_dir
|
||||
rm -f $pmd_src_dir/etc/clover.license
|
||||
cd $pmd_top_dir
|
||||
zip -q -r pmd-src-$version.zip pmd-$version/
|
||||
cd -
|
||||
|
||||
echo
|
||||
echo "source package generated"
|
||||
echo
|
||||
|
||||
echo "Use the command below to upload to sourceforge"
|
||||
echo
|
||||
echo "lftp -e \"mput -O incoming/ $pmd_top_dir/pmd-src-$version.zip $pmd_top_dir/pmd-bin-$version.zip\" upload.sourceforge.net"
|
||||
|
64
pmd/etc/update_version.sh
Executable file
64
pmd/etc/update_version.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
update_VERSION_var() {
|
||||
sed -i -e "s/VERSION=.*/VERSION=$1/g" $2
|
||||
}
|
||||
|
||||
update_regexp() {
|
||||
sed -i -e "s/$1/$2/g" $3
|
||||
}
|
||||
|
||||
# update pmd-<version>.jar
|
||||
update_jar() {
|
||||
update_regexp "pmd-[0-9][^; \\]*\.jar" "pmd-$1.jar" $2
|
||||
}
|
||||
|
||||
update_dir() {
|
||||
update_regexp "pmd-[0-9][^ <;\/\\\\]*\/" "pmd-$1\/" $2
|
||||
update_regexp "pmd-[0-9][^ <;\/\\\\]*\\\\" "pmd-$1\\\\" $2
|
||||
}
|
||||
|
||||
echo "Updating version to $1"
|
||||
|
||||
update_VERSION_var $1 bin/bgastviewer.sh
|
||||
update_VERSION_var $1 bin/designer.bat
|
||||
update_VERSION_var $1 bin/bgastviewer.bat
|
||||
update_VERSION_var $1 bin/cpdgui.bat
|
||||
update_VERSION_var $1 bin/cygwin-run.sh
|
||||
update_VERSION_var $1 bin/pmd.bat
|
||||
update_VERSION_var $1 java14/bin/bgastviewer.sh
|
||||
update_VERSION_var $1 java14/bin/designer.bat
|
||||
update_VERSION_var $1 java14/bin/bgastviewer.bat
|
||||
update_VERSION_var $1 java14/bin/cpdgui.bat
|
||||
update_VERSION_var $1 java14/bin/cygwin-run.sh
|
||||
update_VERSION_var $1 java14/bin/pmd.bat
|
||||
|
||||
update_regexp "property name=\\\"version\\\" value=\".*\"" "property name=\\\"version\\\" value=\\\"$1\\\"" bin/build.xml
|
||||
update_regexp "VERSION = \".*\"" "VERSION = \\\"$1\\\"" src/net/sourceforge/pmd/PMD.java
|
||||
update_regexp "pmd-src-.*.zip" "pmd-src-$1.zip" xdocs/compiling.xml
|
||||
update_regexp "pmd-bin-[^x]*.zip" "pmd-bin-$1.zip" xdocs/installing.xml
|
||||
update_regexp "pmd-[0-9].*" "pmd-$1" xdocs/installing.xml
|
||||
update_regexp "PMD [0-9][^\"]*\"" "PMD $1\"" src/site/site.xml
|
||||
update_regexp "PMD [0-9][^\"]*\"" "PMD $1\"" xdocs/navigation.xml
|
||||
update_regexp "PMD version .* exists" "PMD version $1 exists" xdocs/integrations.xml
|
||||
|
||||
update_regexp "currentVersion.*" "currentVersion>$1<\/currentVersion>" project.xml
|
||||
update_regexp "id>[0-9].*<" "id>$1<" project.xml
|
||||
update_regexp "name>[0-9].*<" "name>$1<" project.xml
|
||||
update_regexp "id>[0-9].*<" "id>$1<" project.xml
|
||||
release_tag=`echo $1|sed -e "s/\./_/g"`
|
||||
update_regexp "tag>pmd_release_[0-9].*<" "tag>pmd_release_$release_tag<" project.xml
|
||||
|
||||
update_regexp "^ <version>[0-9].*<" " <version>$1<" pom.xml
|
||||
|
||||
update_jar $1 etc/cpd.jnlp
|
||||
update_jar $1 xdocs/running.xml
|
||||
update_jar $1 xdocs/integrations.xml
|
||||
update_jar $1 etc/bug_closer.txt
|
||||
|
||||
update_dir $1 xdocs/compiling.xml
|
||||
update_dir $1 xdocs/integrations.xml
|
||||
update_dir $1 xdocs/running.xml
|
||||
|
||||
date=`date +"%B %d, %Y"`
|
||||
update_regexp "^????.*" "$date - $1:" etc/changelog.txt
|
Reference in New Issue
Block a user