Skip to content

How to Release

Alexander Weigl edited this page Sep 15, 2023 · 3 revisions

This manual describes the steps of creating a KeY release.

  1. Feature freeze. The KeY community decides that the current main branch is ready.

    • A new version branch key-2.X.Y is created from main.

      On the release, you are able to commit directly. Please do not abuse this right. Try to make small changes. No new features; only bug fixes.

    • Create a Pull Request from key-2.X.Y back to main

    • Increment the version number on main.

  2. Testing. Freeze the software.

  3. Update the version number in the readme.

  4. Finalize the software. Tag the current in Git

    git tag KeY-2.X.Y
  5. Create a changelog. Write down the significant changes which are done to the KeY software.

    • The complete log is in key-docs
    • It is also the release description in Github Releases
  6. Build the software completely

    $ gradle clean assemble shadowJar --parallel 
  7. Create Github Release with the created tag KeY-2.X.Y and the changelog as description. Upload the executable shadowJars: key-*-exe.jar keyext.proofmanagement-*-exe.jar and key.removegenerics-*.jar.

  8. Deploy to Maven

    $ gradle publish 
    

    (do not use --parallel) This commands creates a staging repository in Nexus, that you need to close and commit. Please read the OSSRH guide for setup and to proceed.

  9. Announce: Send an announcement on following channels.

    • key-project.org: News entry
    • key-all@: E-Mail

Post-Release

  1. Merge the bug fixes on the release branch back into main.

Email for ML

Dear friends of KeY,

It is our pleasure to present the new release 2.X.Y of KeY, your
favourite Java verification application.

    https://github.com/KeYProject/key/releases/latest

Thanks to the effort of researchers and student assistants who invested
a great deal of work into KeY since the last release, we can now proudly
present a new version which

<some new fancy features>

Thanks for everyone's effort! especially for the particular energy
invested during the last few weeks on last-minute fixes and polishes to
the tool. Thanks, Alexander and Wolfram for finalising the release.

Best regards,
   <name>