make sure code is up to date and everything is in svn: ant -f bin/build.xml delete svn update svn status run version update script at the top level: ./etc/update_version.sh tasks implemented by script: update pmd.bat, designer.bat, bgastviewer.*, cygwin-run.sh, cpd.jnlp, cpdgui.bat, build.xml to point to pmd-.jar update PMD.java, xdocs/running.xml, compiling.xml, integrations.xml, installing.xml to reflect pmd- update the release date in the changelog update release number and tag name in project.xml then, run the script that will generate the proper rulesets/rulesets.properties ./etc/updating_rulesets.sh update rulesets/rulesets.properties - add any new ruleset file names ensure all the new rules are listed in a rulesets/releases/.xml file ant -f bin/build.xml pmdOnPmd ant -f bin/build.xml clean regress test Check in everything ant -f bin/build.xml dist regress regress14 Do all the JUnit tests run? OK, then: TESTS: Can you 1) run 1 file and get a report ./bin/pmd.sh ~/tmp/Test.java xml unusedcode ./bin/pmd.sh ~/tmp/Test.java html rulesets/unusedcode.xml 2) run the Ant 'pmd' task and get a report ant -f bin/build.xml pmd run "./generate_release.sh " in etc It will run: ant dist ./docs.sh all generate the binary zip file 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_ and then retag it ncftpput upload.sourceforge.net incoming/ pmd-src-.zip pmd-bin-.zip lftp -e "mput -O incoming/ pmd-src-.zip pmd-bin-.zip" upload.sourceforge.net Go to Admin, File Releases, Add release Paste stuff into the changelog/readme boxes Add the pmd-bin-.zip file Add the pmd-src-.zip file Classify the file Click File Releases, Edit Release, set previous version to 'hidden'. upload command below will create and upload the maven artifacts to sourceforge. Login info for 'pmd-repo' must be defined in ~/.m2/settings.xml cd ~/pmd/pmd/ update the "download" and "what's new" link in navigation.xml ./docs.sh all ./docs.sh upload update cpd.jnlp by running: ant -f bin/build.xml cpdjnlp Submit news to SF Go to http://freshmeat.net/ Submit news to java.net Do a blog entry