diff --git a/src/site/markdown/customizing/pmd-release-process.md b/src/site/markdown/customizing/pmd-release-process.md index 368844bca5..bf2ea36fe5 100644 --- a/src/site/markdown/customizing/pmd-release-process.md +++ b/src/site/markdown/customizing/pmd-release-process.md @@ -20,8 +20,8 @@ Make sure code is up to date and everything is committed and pushed with git: * Ensure all the new rules are listed in a the proper file: `pmd-core/src/main/resources/rulesets/releases/.xml` file. * Update version/release info in **src/site/markdown/changelog.md**. -* Update **../pmd.sourceforge.net/.htaccess** of our website, to redirect to the new version -* Update **../pmd.sourceforge.net/index.html** to mention the new release +* Update **../pmd.github.io/latest/index.html** of our website, to redirect to the new version +* Update **../pmd.github.io/index.html** to mention the new release $ mvn clean install @@ -95,12 +95,7 @@ start again with release:clean release:prepare): $ git tag -d pmd_releases/ -## Create new milestone - -Under rename -the bug milestone "PMD-next" to "PMD-<version>" and create a new "PMD-next" milestone. - -## Publish artifacts +## Publish maven artifacts Finally, in order to publish the release to Maven central, you need to release PMD via Sonatype Nexus: @@ -114,15 +109,12 @@ you need to release PMD via Sonatype Nexus: eventually available through [maven central](http://repo.maven.apache.org/maven2/net/sourceforge/pmd/pmd/). -## Publish the release site on sourceforge +## Create and publish the site / documentation -Build it again - you can reuse the cleanly checked out local repository from maven-release-plugin. - -Upload command below will first create the maven site and then upload it: +You can reuse the cleanly checked out local repository from maven-release-plugin. $ cd target/checkout/ - $ mvn clean install site site:stage # it's import to execute install, - # so that all pmd-*.jars are created and included in the zip packages + $ mvn site site:stage * Before you upload the zip files, unzip and test once (just to be on the safe side of the road): @@ -132,16 +124,17 @@ Upload command below will first create the maven site and then upload it: $ ./bin/run.sh pmd -d ../../../pmd-java/src/main/java -language java -f html -R rulesets/java/unusedcode.xml $ cd ..; cd ../.. -* While the site will be deployed to sourceforge, it's still usefull, to have it downloadable at once: +* While the site will be deployed to github, it's still usefull, to have it downloadable at once: $ cd target $ mv staging pmd-doc- $ zip -r pmd-doc-.zip pmd-doc-/ $ cd .. -* Upload the site to sourceforge: +* Add the site to the pmd.github.io repo: - $ rsync -avhzP target/pmd-doc-/ your_sf_login@web.sourceforge.net:/home/project-web/pmd/htdocs/pmd-/ + $ rsync -avhP target/pmd-doc-/ ../../../pmd.github.io/pmd-/ + $ (cd ../../../pmd.github.io; git add pmd-; git commit -m "Added pmd-") * Upload the zip-files to sourceforge's file section: @@ -155,19 +148,27 @@ Upload command below will first create the maven site and then upload it: * Go to [Files](https://sourceforge.net/projects/pmd/files/pmd/), to folder "pmd/<version>", and make the new binary pmd zip file the default download for all platforms. -**Upload changes to pmd.sourceforge.net** +## Push the repos - cd ../pmd.sourceforge.net - rsync -avhpz \ - --exclude=bin/ \ - --exclude=src/ \ - --exclude=.classpath \ - --exclude=.project \ - --exclude=.git \ - \ - ./ your_sf_login@web.sourceforge.net:/home/project-web/pmd/htdocs/ +In case of releasing from master: -## Social side of release + $ git push origin master; git push origin tag pmd_releases/ + +In case of releasing from a release branch: + + $ git push origin pmd/.x; git push origin tag pmd_releases/ + +## Create a new release on github + +Go to + +* Select the just pushed tag: "pmd_releases/" +* Set the title: "PMD (DD-MMMM-YYYY)" +* Copy/Paste the changelog.md file +* Upload the 3 zip files (pmd--{src,bin,doc}.zip). +* Publish the release + +## Submit a news on SF * Submit news to SF on the [PMD Project News](https://sourceforge.net/p/pmd/news/) page. You can use the following template: @@ -175,9 +176,53 @@ Upload command below will first create the maven site and then upload it: PMD released * minor version with lots of bug fixes - * Changelog: http://pmd.sourceforge.net/pmd-/overview/changelog.html - * Download: https://sourceforge.net/projects/pmd/files/pmd// + * Changelog: https://pmd.github.io/pmd-/overview/changelog.html + * Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F * Fixed Bugs: https://sourceforge.net/p/pmd/bugs/milestone/PMD-/ - * Documentation: http://pmd.sourceforge.net/pmd-/ + * Documentation: https://pmd.github.io/pmd-/ + + +## Prepare the next version + +### Create new milestone + +Under close the milestone "PMD-" +and create a new milestone for the next version (PMD-). + +### Update changelog + +* Move version/releaseinfo from **src/site/markdown/overview/changelog.md** to **src/site/markdown/overview/changelog-old.md**. +* Update version/release info in **src/site/markdown/overview/changelog.md**. Use the following template: + + # Changelog + + ## ????? - ${DEVELOPMENT_VERSION} + + **New Supported Languages:** + + **Feature Request and Improvements:** + + **New/Modified/Deprecated Rules:** + + **Pull Requests:** + + **Bugfixes:** + + **API Changes:** + +* Update pmd-java8/pom.xml - the version is probably wrong. + Set it to the parent's=next development version. +* If you released from a release-branch, now merge the branch back into master. +* Commit and push + + $ git commit -m "Prepare next development version" + $ git push origin master + + + + + + + + -* Facebook, Google+, Twitter, LinkedIn and Xing (add whatever you feel is missing here...)