Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/RELEASE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Module Release Notes

**Module Name:** lifecycle
**Release Tag:** $RELEASE_TAG
**Origin Release Tag:** $PREVIOUS_RELEASE_TAG
**Release Commit Hash:** $COMMIT_SHA
**Release Date:** $RELEASE_DATE

## Overview
This document provides an overview of the changes, improvements, and bug fixes included in the software module release version $RELEASE_TAG
as compared to the module's origin release (which is usually the previous release).

## Disclaimer
This release is not intended for production use, as it does not include a safety argumentation or a completed safety assessment.
The work products compiled in the safety package are created with care according to the [S-CORE process](https://eclipse-score.github.io/process_description/main/index.html). However, as a non-profit, open-source organization, the project cannot assume any liability for its content.

For details on the features, see https://eclipse-score.github.io/score/main/features/lifecycle/index.html

116 changes: 116 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************
#
# This workflow automates the release process for the lifecycle repository.
# It is triggered manually to build, test, and validate release artifacts.
# The workflow creates a draft release with a filled-out description for
# maintainers to approve and publish.

name: Release
run-name: Release ${{ inputs.tag }}
permissions:
contents: read
on:
workflow_dispatch:
inputs:
tag:
description: 'Release tag (e.g., v1.0.0)'
required: true
type: string
concurrency:
group: release
jobs:
build-linux:
uses: ./.github/workflows/build.yml

build-qnx:
uses: ./.github/workflows/build_qnx8.yml
permissions:
contents: read
pull-requests: read
secrets: inherit

coverage-report:
uses: ./.github/workflows/code_coverage.yml

# lint:
# uses: ./.github/workflows/lint.yml
# sanitizers:
# uses: ./.github/workflows/sanitizers_linux.yml

create-release:
needs: [build-linux, build-qnx, coverage-report]
runs-on: ubuntu-latest
permissions:
contents: write
env:
COVERAGE_ARCHIVE: ${{ github.event.repository.name }}-${{ inputs.tag }}-cpp-coverage
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Get Current Date and Previous Release Tag
env:
GH_TOKEN: ${{ github.token }}
run: |
PREVIOUS_TAG=$(gh release view --json tagName --jq '.tagName' 2>/dev/null || echo "N/A")
echo "RELEASE_DATE=$(date --rfc-3339=date)" >> $GITHUB_ENV
echo "PREVIOUS_RELEASE_TAG=$PREVIOUS_TAG" >> $GITHUB_ENV
- name: Generate Release Body
env:
RELEASE_TAG: ${{ inputs.tag }}
COMMIT_SHA: ${{ github.sha }}
ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
run: |
envsubst '$RELEASE_TAG $PREVIOUS_RELEASE_TAG $COMMIT_SHA $RELEASE_DATE $ACTION_RUN_URL' < .github/RELEASE_TEMPLATE.md > release_body.md
- name: Find Latest Release Note
run: |
LATEST_RELEASE_NOTE=$(
for f in docs/release_notes/release_note_v_*.rst; do
[ -e "$f" ] || continue
ver=$(basename "$f" .rst | sed 's/release_note_v_//' | tr '_' '.')
echo "$ver $f"
done | sort -t '.' -k1,1n -k2,2n -k3,3n | tail -1 | awk '{print $2}'
)
echo "LATEST_RELEASE_NOTE=$LATEST_RELEASE_NOTE" >> "$GITHUB_ENV"
- name: Append Release Note to Release Body
if: env.LATEST_RELEASE_NOTE != ''
run: |
printf '\n---\n\n## Changes to the Module\n\n' >> release_body.md
sed -n '/^Changes to the Module$/,$p' "$LATEST_RELEASE_NOTE" | sed '1,2d' >> release_body.md
- name: Download Coverage Report Artifact
uses: actions/download-artifact@v7
with:
name: ${{ format('{0}_cpp_coverage{1}', github.event.repository.name, '_cpp') }}
path: ${{ env.COVERAGE_ARCHIVE }}
- name: Create Coverage Report Archive
run: |
tar --sort=name --owner=0 --group=0 --numeric-owner \
-cJf "$COVERAGE_ARCHIVE.tar.xz" "$COVERAGE_ARCHIVE"
- name: Create Draft Release
uses: softprops/action-gh-release@v2
id: draft_release
with:
tag_name: ${{ inputs.tag }}
body_path: release_body.md
draft: true
generate_release_notes: true
target_commitish: ${{ github.sha }}
files: |
${{ env.COVERAGE_ARCHIVE }}.tar.xz
- name: Summary
run: |
echo "### Draft Release Created :rocket:" >> $GITHUB_STEP_SUMMARY
echo "Tag: **${{ inputs.tag }}**" >> $GITHUB_STEP_SUMMARY
echo "Branch: \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
echo "Commit: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "Maintainers can review at: ${{ steps.draft_release.outputs.url }}" >> $GITHUB_STEP_SUMMARY
11 changes: 11 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,14 @@ To run tests:
.. code-block:: bash
bazel test //tests/...
Release Notes
-------------

Release notes collection.

.. toctree::
:maxdepth: 1

release_notes/index
37 changes: 37 additions & 0 deletions docs/release_notes/index.rst
Comment thread
S-MOHAMD marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
..
# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _lifecycle_release_notes:

Release notes
=============

Overview
--------

This document provides an overview of the changes, improvements, and bug fixes included in the software module release version v0.2.0
as compared to the module's origin release (which is usually the previous release).

Disclaimer
----------

This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment.
The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project,
being a non-profit and open source organization, can not take over any liability for its content.

.. toctree::
:maxdepth: 1
:caption: Content

./release_note_v_0_2_0.rst
94 changes: 94 additions & 0 deletions docs/release_notes/release_note_v_0_2_0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************


.. document:: lifecycle Release Note
:id: doc__lifecycle_release_note
:status: valid
:safety: ASIL_B
:security: NO
:realizes: wp__module_sw_release_note
:tags:


Overview
========

This document provides an overview of the changes, improvements, and bug fixes included in the software module release version vx.x.z
as compared to the module's origin release (which is usually the previous release).

Disclaimer
==========

This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment.
The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project,
being a non-profit and open source organization, can not take over any liability for its content.

Changes to the Module
=====================

New Features
------------

- **New Configuration Schema:** Introduce first version of JSON schema intended for Launch Manager configuration.
- **Heartbeat monitor API:** Health monitoring library provides heartbeat monitor API.
- **Logic monitor API:** Health monitoring library provides logic monitor API.

Improvements
------------

- **Quality improvements:** testing and documentation updates.

Bug Fixes
---------

-

Other Changes by Label
----------------------

-

Compatibility
-------------

- The following platforms are supported using the [bazel_cpp_toolchains](https://github.com/eclipse-score/bazel_cpp_toolchains):

- `x86_64-unknown-linux-gnu`
- `aarch64-unknown-linux-gnu`
- `x86_64-unknown-nto-qnx800`
- `aarch64-unknown-nto-qnx800`

Performed Verification
----------------------

- Build on all supported platforms
- Unit test execution on all supported platforms

Known Issues
------------

-

Known Vulnerabilities
---------------------

-

Upgrade Instructions
--------------------

- Backward compatibility with the previous release is not guaranteed.

*For any questions or support, please contact the [Project Team](https://github.com/orgs/eclipse-score/projects/33) or raise an issue/discussion.*
Loading