Skip to content

Release_Process

Ed Burns edited this page Nov 4, 2023 · 7 revisions

Overview

Prerequisites

  • Consider the top level Jakarta EE API POM. In the <properties> section there are many properties of the form <jakarta.SPECID-api.version>, where SPECID is something like json, json.bind, authentication, etc. Before executing the release process, we assume the following.
    • The values of these properties are as expected for the release.
      • If this is a milestone release, each value ends with -M<N> where N is the milestone number.
      • If this is a final release, there is no value at the end.
    • For each value, an valid artifact exists in Maven central where the V in the GAV for the artifact is that value.

If these assumptions are not true, make the necessary changes to cause them to be true, then proceed.

1. Cause the API artifacts to be built

  1. Visit https://ci.eclipse.org/jakartaee-platform/ .
  2. Sign in.
  3. Select jakartaee-api-build.
  4. Select Build Now.
  5. Ensure the build completes successfully. Here is a screen grab of a successful build. If the build does not complete successfully, troubleshoot the problem before continuing.
  6. Select Dashboard from the breadcrumbs navigation.
  7. Select StagingRelease. link to job. This job causes the API artifacts to be stored in the "staging" Nexus repository provided to Eclipse by Sonatype.
  8. Select Build With Parameters
    1. Leave PROJECT at its default value.
    2. For RELEASE_VERSION enter the value from the <version> element of the top level POM above.
    3. PENDING: For NEXT_VERSION enter.
    4. Uncheck the DRY_RUN checkbox, unless you really want to do a dry run.
    5. Select Build.
  9. Ensure the build completes successfully. Here is a screen grab of a successful build. If the build does not complete successfully, troubleshoot the problem before continuing.
  10. Select Dashboard from the breadcrumbs navigation.
  11. Select nexus-release. link to job. This job causes the API artifacts stored in the "staging" repository to be released to Maven central.
  12. Select Build With Parameters.
    1. Leave the parameters at their default values.
    2. PENDING: confirm this does all three platforms. It looks like this may need to be run three times, once for each platform.
    3. Be very sure you want to run this, because once you release to maven central, you can't undo it.
    4. Uncheck the DRY_RUN checkbox, unless you really want to do a dry run.

There is some level of documentation for these jobs at https://github.com/jakartaee/platform/tree/main/jenkins .

2. Build the Build the specifications

  1. Visit https://github.com/jakartaee/specifications/platform .

  2. There is a directory here for each version of Jakarta EE.

  3. PENDING: may I create an 11-M1 directory?

  4. Create a PR to this repo that does the following.

    1. Creates HTML and PDF version of the profile specs as children of the release directory.
    2. Updates the _index.md page wiht all the appropriate links.
  5. Update the schema contents

  6. Have platform TCK team stage the TCK

  7. Specification committee ballots

  8. Release the API artifacts

  9. Have the specification committee promote the staged TCK

Job descriptions:

Specifications:

https://github.com/jakartaee/platform

Build the specifications and then create a PR against the https://github.com/jakartaee/specifications repo for each of the core profile, web profile, and platform spec contents.

Schemas: https://github.com/jakartaee/jakarta.ee/tree/src/static/xml/ns

Platform TCK release is handled by the platform TCK team.