main

Project release sequence

Actions listed below are to be done by the release manager.

Release All Projects

The Publish: Release All is a GitHub workflow that will release all the PASS projects in the correct order, build and push docker images, and create GitHub Releases. The Publish: Release All requires GitHub PAT configuration. See GitHub Personal Access Token Setup.

The Publish: Release All workflow is the preferred method of doing a PASS release. If for some reason, a PASS release needs to be done one project at a time, follow the steps in Release Projects One At a Time section.

Release Projects One At a Time

Java projects

The Publish: release all Java modules combines all the Java projects together and then releases them in one single workflow. The Publish: release all Java modules requires GitHub PAT configuration. See GitHub Personal Access Token Setup.

If needed, the individual java components can be released individually. Release these in the order defined here due to dependencies. Between each of these releases, you will need to wait for the Java artifacts to appear on Maven Central. This will give you enough time to do other release activities, such as releasing non-Java artifacts. The release workflows should wait for you, but is good to check anyway.

  1. main
  2. pass-core
  3. pass-support
    • Release workflow
    • Maven Central
    • https://github.com/eclipse-pass/pass-support/pkgs/container/pass-notification-service
    • https://github.com/orgs/eclipse-pass/packages/container/package/jhu-grant-loader
    • https://github.com/orgs/eclipse-pass/packages/container/package/deposit-services-core
    • https://github.com/orgs/eclipse-pass/packages/container/package/pass-journal-loader
    • https://github.com/orgs/eclipse-pass/packages/container/package/pass-nihms-loader

Non-Java projects

These can be released in any order. You should release these between releasing Java components, while waiting for artifacts to become available in Maven Central.

Other projects

This must be released last because it relies on some Docker images that will be published during the release process of some of the above projects.

  1. pass-docker

GitHub code release

You will have to manually create a GitHub release through the GitHub web interface to complete the release of each of these components. This can generally be done any time after the release automation completes successfully, since the release will be made against a tag created by the automation.

Code release section

Triggering a GitHub workflow

Take eclipse-pass/main as an example.

It is recommended that you monitor the automation after triggering it to make sure it completes successfully before moving on to release the next component.

Release page screenshot

GitHub Personal Access Token Setup

Some GitHub workflows depend on the JAVA_RELEASE_PAT secret having permission to access all the eclipse-pass repositories and write packages. You have to create a new classic Personal Access Token (PAT) to do the release (GitHub/Settings/Developer Settings/Personal access tokens/Tokens (classic)). If you do so, set the expiration to 7 days, check the repo and the write:packages scope (subscopes under repo and write:packages will be selected too).

How to set the secret in the main repository using the gh command line tool GitHub CLI:

gh auth login
gh secret set JAVA_RELEASE_PAT --body <PAT_VALUE> --repo eclipse-pass/main