Skip to content

Latest commit

 

History

History
29 lines (27 loc) · 3.27 KB

ReleaseProcess.md

File metadata and controls

29 lines (27 loc) · 3.27 KB

JGraphT Release Process

  1. 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.
  2. 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
  3. Review the README.md, HISTORY.md, CONTRIBUTORS.md, and update:
    • Version
    • Dependencies
    • Release notes
    • Contributors
    • Copyright year
  4. 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.
  5. 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.
  6. Run all the JUnit tests via mvn test. Fix where necessary.
  7. Reformat all code using Eclipse.
  8. Commit all work and push to github.
  9. Run mvn -Dmaven.artifact.threads=1 clean deploy to push the latest snapshot to Sonatype.
  10. Run mvn source:jar; mvn javadoc:jar; mvn release:prepare; mvn release:perform to create the Maven artifacts and push them to Maven Central
  11. Publish the release using the Sonatype UI.
  12. 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.
  13. Run mvn javadoc:aggregate; mvn install from the new release branch to produce the release archive distribution
  14. Upload the release archive distribution to sourceforge using the File Release System.
  15. 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.
  16. 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.
  17. Announce the new version in the mailing lists: [email protected], [email protected]
  18. 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.

Notes

  • 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 run mvn clean; mvn javadoc:aggregate; mvn package