Trace-X using semantic versioning three-part version number. https://semver.org/
- If there are any incompatible API changes.
- Changes with high impact
- Contains new features and changes with critical business impact.
- Full regression tests are covered.
- Add functionality in a backwards compatible manner
- Features (backwards compatible has to be ensured)
- Minor release does not add features or changes with critical business impact.
- Regression impact should be low.
- No training effort necessary
- INT Test environment should be stable. No changes on depending on systems required. No changes on consumer side necessary.
- Operational risks should be low.
- Backwards compatible bug fixes
- Bug fixes and Hotfixes
- Covers Bug fixes and changes with no critical business impact.
- No changes on depending on or consuming systems required.
- INT Test environment should be stable. No changes on depending on systems required. No changes on consumer side necessary.
- Defined software state.
- Make sure the Eclipse Git repository is in sync
- Before releasing Trace-X, it is required to go through the IRS Library Release steps
The goal is to not use a -SNAPSHOT version in the Trace-X Release.
- Check if the irs-registry-client version has a -SNAPSHOT suffix: IRS Repo
- If yes, continue with the next steps. If no, skip to the Trace-X Release process
- Click on the Update irs-registry-client Version workflow.
- Select "Run workflow" select the type of version increment major, minor or patch (Can be adjusted on generated PR branch). Check the box to remove the snapshot. Click on "Run".
- A pull request (name: Update irs-registry-client to "Version") will be generated in which you have to make sure the irs lib version is now correct (change it manually if necessary).
- Merge the generated Pull request
- The GitHub action Upload to Central Maven Registry will automatically release the irs-registry-client library with the new version defined in step 4
- Decide which to which version the release trace-x will be incremented. Following shows example for releasing a version 1.0.0
- Create and checkout release branch /release/1.0.0. The name must always be exactly
/release/<releaseVersion>
. - Optional: If IRS Library Release was needed:
- If the action of IRS Library Release step 7 was executed successfully
- Update <irs-client-lib.version> in the above created release
- Edit changelog: Align the new version (1.0.0) with the changes and add a new UNRELEASED section
- Edit /charts/traceability-foss/CHANGELOG.md
- Add an Entry for an incremented (patch) version (1.0.0 -> 1.0.1)
- Update the Compatability Matrix with a new entry for the release version
- Push onto /release/1.0.0
- Open releases page: https://github.com/eclipse-tractusx/traceability-foss/releases
- Draft a new release
- On dropdown choose a tag - use the version 1.0.0 (Create new tag will appear - select it)
- On dropdown target use your /release/1.0.0
- Title = Version of app -> 1.0.0
- Description = Changelog Content of app
- Checkbox set as latest release
- Verify that GitHub action Release generation has been triggered
- Verify that this pull request has been opened:
Prepare Helm release for next version
and merge it - Execute GitHub action Update OpenAPI spec
- Verify that this pull request has been opened:
chore: update OpenAPI spec
and merge it - Merge release branch into main (when merging make sure to restore release branch since it should stay)
- Open the GitHub action for helm release generation: https://github.com/eclipse-tractusx/traceability-foss/actions/workflows/helm-chart-release.yaml
- Execute it from main branch
- Validate that the helm charts release has been generated within the release page
- Create a new branch from release/1.0.0 and name it release/helm-environments-1.0.0 (helm app version not chart version)
- Create a message in the Trace-X channel of the Eclipse Foundation Chat to notify the community about the new release (add a link to the tractus-x release)