Skip to content

Release_Process

Ed Burns edited this page Dec 15, 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, a valid artifact exists in Maven central where the V in the GAV for the artifact is that value.
      • It is possible some component specs may not host their milestone artifacts in maven central. In that case, they will have hosted in a staging repo.

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. For NEXT_VERSION enter the same value as RELEASE_VERSION but remove the -M<N> and append -SNAPSHOT.
    4. For JAVADOC_LICENSE select EFSL.
    5. Uncheck the DRY_RUN checkbox, unless you really want to do a dry run.
    6. 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. For milestone release only:
    1. Select nexus-release. link to job. This job causes the API artifacts stored in the "staging" repository to be released to Maven central.
    2. 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/tree/master/platform
  2. There is a directory here for each version of Jakarta EE.
  3. 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, for example 11. For a milestone release, the -M<N> suffix must be in the filename for the HTML and PDF files.
    2. Updates the _index.md page with all the appropriate links.

3. Update the schema contents

  1. The source code for the schemas is at https://github.com/jakartaee/jakartaee-schemas .
  2. Do not bother with making a -M<N> version of the schema files. We will iterate these files as if they are final.
  3. Follow the steps in this guide. https://jakartaee.github.io/platform/publish-xml-schemas .
    1. As with the preceding step, do not bother with M-<N> filenames. Just iterate as if it is final all along.

4. Have platform TCK team stage the TCK

This is a matter of asking the platform TCK team. PENDING: see JEA-238.

5. Specification committee ballots

This step is only relevant for the final release.

  1. Release the API artifacts
  2. Have the specification committee promote the staged TCK

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.