- Let other developers on jgrapht-dev know that you're starting on the release and ask them to hold off on merging changes until the release is complete.
- Check and, if necessary, update dependencies:
mvn versions:display-dendency-updates
. Recompile to check whether any of the version updates introduced errors, e.g. because some methods have been deprecated:mvn -Dmaven.compiler.showWarnings=true -Dmaven.compiler.showDeprecation=true clean compile
- Review the README.md, HISTORY.md, CONTRIBUTORS.md, and update:
- Version
- Dependencies
- Release notes
- Contributors
- Copyright year
- Review/update github issues to make sure they reflect the current state. If there were important bug/feature changes, it is worth mentioning them in the README.md release notes.
- Run
mvn javadoc:aggregate
to build the javadoc and make sure it is generated without errors/warnings. Fix where necessary. Make sure Eclipse build is warning-free. - Run all the JUnit tests via
mvn test
. Fix where necessary. - Reformat all code using Eclipse.
- Commit all work and push to github.
- Run
mvn -Dmaven.artifact.threads=1 clean deploy
to push the latest snapshot to Sonatype. - Run
mvn source:jar; mvn javadoc:jar; mvn release:prepare; mvn release:perform
to create the Maven artifacts and push them to Maven Central - Publish the release using the Sonatype UI.
- Before continuing, restart from a fresh clone to make sure your workspace is clean. Otherwise, if you have old files lying around that are hidden by
.gitignore
, they may get accidentally included in the release archive. - Run
mvn javadoc:aggregate; mvn install
from the new release branch to produce the release archive distribution - Upload the release archive distribution to sourceforge using the File Release System.
- Add the javadocs for the new release to the javadoc repository. To do this, push a commit which replaces the contents of the existing javadoc directory, and also adds an identical copy under a new javadoc-x.y.z directory.
- Update the website with links to the new downloads, version numbers, etc. Be sure to push this commit after the javadoc update from the previous step; this will make sure that the new javadoc gets released to the website at the same time.
- Announce the new version in the mailing lists: [email protected], [email protected]
- Update and commit the version number in HISTORY.md to reflect the beginning of development for the next version. Finally, remove all existing deprecated methods.
- The release artifacts are signed with private keys. In order to sign this release, you'll need to make sure you've already created and published your own key.
- To rebuild the full release package after it has been pushed to github, you can run
git checkout jgrapht-x.y.z
(the tag you published for the release), and then runmvn clean; mvn javadoc:aggregate; mvn package