Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a356179
chore: update package metadata
ibrahimsel Feb 12, 2026
65c0fdd
refactor: rename package from composer to muto_composer
ibrahimsel Feb 12, 2026
d732ca1
chore: update package metadata for release
ibrahimsel Feb 12, 2026
40d1bc7
fix: add from __future__ import annotations for Python 3.10+ compat
ibrahimsel Feb 12, 2026
72e1c3b
chore: add linting config and run ruff formatting
ibrahimsel Feb 12, 2026
dfe27bf
chore: add pre-commit hooks config
ibrahimsel Feb 12, 2026
7c60d3f
docs: add initial CHANGELOG.rst for 0.42.0 release
ibrahimsel Feb 12, 2026
778f318
ci: add distro matrix (humble+jazzy), linting job, remove setuptools pin
ibrahimsel Feb 12, 2026
e0c4227
docs: add CI badge to README
ibrahimsel Feb 12, 2026
42cef88
ci: use ros-base container, add foxy to distro matrix
ibrahimsel Feb 12, 2026
94a7e98
docs: replace static distro badges with build matrix table
ibrahimsel Feb 12, 2026
b264675
ci: split into per-distro workflows for independent badges
ibrahimsel Feb 12, 2026
9fd316f
test: add pytest config for test discovery
ibrahimsel Feb 13, 2026
ba09b18
ci: install python3-pytest for test discovery
ibrahimsel Feb 13, 2026
80cf748
chore: remove daemon entry point
ibrahimsel Feb 13, 2026
5e1498a
build: add requests dependency
ibrahimsel Feb 13, 2026
620bcc2
ci: fix foxy runner, use pytest directly for test discovery
ibrahimsel Feb 13, 2026
825e4d3
ci: use python3 instead of python for pytest
ibrahimsel Feb 13, 2026
4698693
style: fix all ruff lint and format issues
ibrahimsel Feb 13, 2026
00ffaf5
ci: drop ROS 2 Foxy support
ibrahimsel Feb 22, 2026
1e937cf
build: remove unused docker python dependency
ibrahimsel Feb 22, 2026
be388a2
fix: add missing runtime deps, remove wrong ament_cmake_pytest
ibrahimsel Feb 22, 2026
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
47 changes: 47 additions & 0 deletions .github/workflows/ci-humble.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Humble

on:
push:
branches: [main, chore/*, feat/*, fix/*]
pull_request:
branches: [main]

jobs:
build-and-test:
runs-on: ubuntu-22.04
container: ros:humble-ros-base
env:
PIP_BREAK_SYSTEM_PACKAGES: "1"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: src/composer

- name: Clone muto_msgs
run: |
mkdir -p /tmp/ws/src
ln -s $GITHUB_WORKSPACE/src/composer /tmp/ws/src/composer
git clone https://github.com/eclipse-muto/messages.git /tmp/ws/src/messages

- name: Install dependencies
run: |
apt-get update -y
apt-get install -y python3-pip python3-colcon-common-extensions python3-pytest git
cd /tmp/ws
. /opt/ros/humble/setup.sh
rosdep update
rosdep install --from-paths src --ignore-src -r -y --rosdistro humble

- name: Build
run: |
cd /tmp/ws
. /opt/ros/humble/setup.sh
colcon build --packages-select muto_msgs muto_composer

- name: Test
run: |
cd /tmp/ws
. /opt/ros/humble/setup.sh
. install/setup.sh
python3 -m pytest src/composer/test/ -v
47 changes: 47 additions & 0 deletions .github/workflows/ci-jazzy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Jazzy

on:
push:
branches: [main, chore/*, feat/*, fix/*]
pull_request:
branches: [main]

jobs:
build-and-test:
runs-on: ubuntu-24.04
container: ros:jazzy-ros-base
env:
PIP_BREAK_SYSTEM_PACKAGES: "1"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: src/composer

- name: Clone muto_msgs
run: |
mkdir -p /tmp/ws/src
ln -s $GITHUB_WORKSPACE/src/composer /tmp/ws/src/composer
git clone https://github.com/eclipse-muto/messages.git /tmp/ws/src/messages

- name: Install dependencies
run: |
apt-get update -y
apt-get install -y python3-pip python3-colcon-common-extensions python3-pytest git
cd /tmp/ws
. /opt/ros/jazzy/setup.sh
rosdep update
rosdep install --from-paths src --ignore-src -r -y --rosdistro jazzy

- name: Build
run: |
cd /tmp/ws
. /opt/ros/jazzy/setup.sh
colcon build --packages-select muto_msgs muto_composer

- name: Test
run: |
cd /tmp/ws
. /opt/ros/jazzy/setup.sh
. install/setup.sh
python3 -m pytest src/composer/test/ -v
80 changes: 0 additions & 80 deletions .github/workflows/colcon-build.yml

This file was deleted.

24 changes: 24 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Lint

on:
push:
branches: [main, chore/*, feat/*, fix/*]
pull_request:
branches: [main]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- run: pip install ruff mypy
- name: Ruff check
run: ruff check .
- name: Ruff format check
run: ruff format --check .
- name: Mypy
run: mypy muto_composer/
continue-on-error: true
19 changes: 19 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.0
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-xml
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v4.0.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]
21 changes: 21 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package muto_composer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Forthcoming
-----------
* Initial release preparation for packages.ros.org
* Renamed package from ``composer`` to ``muto_composer`` to avoid name collisions
* Added pipeline-based stack deployment and orchestration engine
* Added pluggable stack handlers for archive, JSON, and Ditto content types
* Added provision, compose, and launch plugin architecture
* Added process monitoring with crash detection and event handling
* Added rollback support with persistent state management
* Added launch file introspection and composable node support
* Added managed (lifecycle) node support
* Added watchdog for deployment health monitoring
* Standardized copyright headers to SPDX EPL-2.0 format
* Added ruff and mypy linting configuration
* Added pre-commit hooks for code quality enforcement
* Set python_requires>=3.10 for Humble/Jazzy compatibility
* Contributors: Alp Sarıca, Deniz Memis, Ibrahim Sel, Naci Dai, Nazli Eker, Samet Karabulut
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Composer
# Muto Composer

**Composer** is a ROS 2 package designed to organize and automate the software deployment process to a fleet of vehicles. It streamlines the workflow by managing stack definitions, resolving dependencies, handling buildjobs and orchestrating the execution of various pipelines.
| ROS 2 Distro | Ubuntu | Python | Status |
|---|---|---|---|
| Humble | 22.04 | 3.10 | [![Humble](https://github.com/ibrahimsel/composer/actions/workflows/ci-humble.yml/badge.svg)](https://github.com/ibrahimsel/composer/actions/workflows/ci-humble.yml) |
| Jazzy | 24.04 | 3.12 | [![Jazzy](https://github.com/ibrahimsel/composer/actions/workflows/ci-jazzy.yml/badge.svg)](https://github.com/ibrahimsel/composer/actions/workflows/ci-jazzy.yml) |

**Muto Composer** is a ROS 2 package designed to organize and automate the software deployment process to a fleet of vehicles. It streamlines the workflow by managing stack definitions, resolving dependencies, handling buildjobs and orchestrating the execution of various pipelines.

## Table of Contents

Expand Down Expand Up @@ -58,8 +63,8 @@ For a detailed overview, refer to the [Architecture Documentation](docs/architec

### Prerequisites

- **ROS 2 Foxy** or later installed on your system.
- **Python 3.8** or later.
- **ROS 2 Humble** or later installed on your system.
- **Python 3.10** or later.
- Ensure that you have `colcon` and `rosdep` installed for building and dependency management.

```bash
Expand Down
File renamed without changes.
File renamed without changes.
Loading
Loading