Skip to content

Release and RC Procedure

Peter Chang edited this page Oct 2, 2019 · 19 revisions

Releases are made by promoting builds on https://ci.eclipse.org/january.

Each successful January build is uploaded to the latest directory for that build name on download.eclipse.org, this is shown by having 1 star next to the job. See individual jobs for exact locations. In addition, each build saves its build artifacts in hudson. Those build artifacts can be uploaded manually as a Release Candidate or a Release build placing the artifacts in the correct location on download.eclipse.org. When builds are promoted to RC or Release additional promotion stars are placed on the build and the build is marked as keep forever (the lock icon).

To promote a build to a Release Candidate:

  1. Ensure build has successfully built (i.e. Green) and that it has promoted and works in the latest directory on download.eclipse.org.
  2. Open the job's promotion page (click on the star next to the job, or Promotion Status on the job). The URL should be something like https://ci.eclipse.org/january/job/january-2.0/6/promotion/
  3. Under the Release Candidate promotion enter the new RCNAME and press Approve
  4. When the job is done, test the repository on download.eclipse.org (the next step may help)
  5. Update the JanuaryExamples.tpd on the same branch to point at the new RC
  6. Deploy the snapshopt to Maven. 0. Set-up and configure Maven central, see Maven Central Configuration
    1. Ensure version numbers have -SNAPSHOT in them
    2. Deploy to Maven Central with mvn deploy -P sign-gpg
    3. The SNAPSHOT should now be uploaded to https://oss.sonatype.org/content/repositories/snapshots/org/eclipse/january/org.eclipse.january/
  7. Announce the promotion on january-dev@eclipse.org. Here is an example email:
    Subject: Eclipse January 2.0 RC1 posted

    Hi everyone

    The Eclipse January 2.0.0 RC1 build is now posted:
    http://download.eclipse.org/january/releasecandidates/2.0RC1/repository/

    zipfile: http://download.eclipse.org/january/releasecandidates/2.0RC1/repository.zip

    It is based on commit: 4d2d8221e1f58671ae2c5a42542c31a76de90d55

    Unless someone finds something wrong, this is our last build for the
    2.0.0 release.

    Thanks for all the good work everyone!

    Jonah

To promote a build to a Release:

  1. Ensure build has successfully built (i.e. Green) and that it has been promoted as an RC

  2. Open the job's promotion page (click on the star next to the job, or Promotion Status on the job). The URL should be something like https://ci.eclipse.org/january/job/january-2.0/6/promotion/

  3. Under the Release promotion enter the new RNAME and press Approve

  4. When the job is done, test the repository on download.eclipse.org (the next step may help)

  5. Update the JanuaryExamples.tpd on the same branch to point at the new Release.

  6. Deploy the release to Maven. 0. Set-up and configure Maven central, see Maven Central Configuration

    1. Update versions to non-SNAPSHOT using mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=2.0.3 and then do git grep 2\\.0\\.2 to find the places that tycho-versions does not update.
      • The two places that don't update properly are category.xml for source bundles and the reference to the target platform in the releng pom.xml.
    2. Deploy to Maven Central with mvn deploy -P sign-gpg
    3. Test & Release the deployed version. See releasing the deployment, summary is:
      1. Log in to https://oss.sonatype.org/#stagingRepositories
      2. Find repository orgeclipsejanuary-XXXX in the list, where XXXX is auto generated number
      3. Examine the staging repo
      4. If good, press Close, if there is a problem press Drop, fix the problem and redeploy. The close process can take a while to run its checks.
      5. Once the Close checks pass, select the staged repo again and press Release. There is a further delay until the release ends up on maven central, and another delay after that before it is in search results.
      6. Once ready the release will be in the repo and search
    4. Update version to next version-SNAPSHOT using mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=2.0.4-SNAPSHOT and then do git grep 2\\.0\\.3 to find the places that tycho-versions does not update.
  7. Tag the commit as JANUARY_<major>_<minor>_<patch>, where major and minor match the branch name.

    (For January 1.0.0 the release is based off commit without tpd update, but the tag includes it. Need to get it right for 2.0. It is a little chicken and egg, I can't test the tpd change until I have promoted the build and I can't promote the build until the tpd change is in.

    For January 2.0.0 I set two tags, one with _EXAMPLES suffix pointing at the commit with the examples, and the JANUARY_2_0_0 tag pointing at the commit the build was actually based off of. At the moment I am not satisfied with either model. Perhaps we should have examples in its own repo????)

  8. Update download links on Project Page: https://projects.eclipse.org/projects/science.january/downloads

  9. Add new release info on https://github.com/eclipse/january/releases

  10. Add description of build on CI to label version there. Open the build and press "Add description" Example URL is: https://ci.eclipse.org/january/job/january-2.0/9/editDescription

  11. Update contents of http://www.eclipse.org/january by modifying git repo https://git.eclipse.org/c/www.eclipse.org/january.git/

    1. Update index.html to point download to release
    2. Add contents of apidocs.zip in apidocs/<version>
    3. Update version in apidocs/index.php to point at <version>
    4. Push and test
  12. Announce the promotion on january-dev@eclipse.org. Here is an example email - remember to update the versions:

    Subject: Eclipse January 2.0 Final posted

    Hi everyone

    The Eclipse January 2.0.0 Final build is now posted:
    http://download.eclipse.org/january/releases/2.0.0/repository/

    zipfile: http://download.eclipse.org/january/releases/2.0.0/repository.zip

    It is based on commit: 4d2d8221e1f58671ae2c5a42542c31a76de90d55
    Which is tagged: JANUARY_2_0_0

    The release is also available on Maven Central, add it to your project with:

      <dependency>
        <groupId>org.eclipse.january</groupId>
        <artifactId>org.eclipse.january</artifactId>
        <version>2.0.0</version>
      </dependency>


    The example projects have been updated to point to the release repository in commit: 2104e591d99470f49726343358addf0638bf9977
    Which is tagged: JANUARY_2_0_0_EXAMPLES
    URL: https://github.com/eclipse/january/tree/JANUARY_2_0_0_EXAMPLES

    Thanks for all the good work everyone!

    Jonah