diff --git a/.github/workflows/README.md b/.github/workflows/README.md
index 8001a73e..148ccb0d 100644
--- a/.github/workflows/README.md
+++ b/.github/workflows/README.md
@@ -2,8 +2,8 @@
ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
-**Rolling** | [`rolling`](https://github.com/ros-controls/realtime_tools/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-main.yml?branch=master)
[![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-testing.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-main.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-testing.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-source-build.yml?branch=master) | | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling)
-**Humble** | [`humble`](https://github.com/ros-controls/realtime_tools/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-main.yml?branch=master)
[![Humble Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-testing.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-main.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-testing.yml?branch=master)
[![Humble Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-source-build.yml?branch=master) | | [realtime_tools](https://index.ros.org/p/realtime_tools/#humble)
+**Rolling**
**Iron**
**Humble** | [`rolling`](https://github.com/ros-controls/realtime_tools/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml?branch=master) | [API](http://docs.ros.org/en/rolling/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling)
+
### Explanation of different build types
diff --git a/.github/workflows/ci-coverage-build.yml b/.github/workflows/ci-coverage-build.yml
index 2c6efb42..fac54d19 100644
--- a/.github/workflows/ci-coverage-build.yml
+++ b/.github/workflows/ci-coverage-build.yml
@@ -11,39 +11,8 @@ on:
jobs:
coverage:
name: coverage build
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- env:
- ROS_DISTRO: rolling
- steps:
- - uses: ros-tooling/setup-ros@0.7.1
- with:
- required-ros-distributions: ${{ env.ROS_DISTRO }}
- - uses: actions/checkout@v4
- - uses: ros-tooling/action-ros-ci@0.3.6
- with:
- target-ros2-distro: ${{ env.ROS_DISTRO }}
- import-token: ${{ secrets.GITHUB_TOKEN }}
- # build all packages listed in the meta package
- package-name:
- realtime_tools
-
- vcs-repo-file-url: |
- https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/realtime_tools-not-released.${{ env.ROS_DISTRO }}.repos?token=${{ secrets.GITHUB_TOKEN }}
- colcon-defaults: |
- {
- "build": {
- "mixin": ["coverage-gcc"]
- }
- }
- colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- - uses: codecov/codecov-action@v4.0.1
- with:
- file: ros_ws/lcov/total_coverage.info
- flags: unittests
- name: codecov-umbrella
- - uses: actions/upload-artifact@v4.3.1
- with:
- name: colcon-logs-coverage-rolling
- path: ros_ws/log
+ uses: ros-controls/ros2_control_ci/.github/workflows/reusable-build-coverage.yml@master
+ secrets: inherit
+ with:
+ ros_distro: rolling
+ os_name: ubuntu-22.04
diff --git a/.github/workflows/ci-format.yml b/.github/workflows/ci-format.yml
deleted file mode 100644
index a1749c64..00000000
--- a/.github/workflows/ci-format.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# This is a format job. Pre-commit has a first-party GitHub action, so we use
-# that: https://github.com/pre-commit/action
-
-name: Format
-
-on:
- workflow_dispatch:
- pull_request:
-
-jobs:
- pre-commit:
- name: Format
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5.0.0
- with:
- python-version: '3.10'
- - name: Install system hooks
- run: sudo apt install -qq clang-format-14 cppcheck
- - uses: pre-commit/action@v3.0.1
- with:
- extra_args: --all-files --hook-stage manual
diff --git a/.github/workflows/ci-pre-commit.yml b/.github/workflows/ci-pre-commit.yml
new file mode 100644
index 00000000..b0f523d6
--- /dev/null
+++ b/.github/workflows/ci-pre-commit.yml
@@ -0,0 +1,18 @@
+name: Pre-Commit
+
+on:
+ workflow_dispatch:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ pre-commit:
+ uses: ros-controls/ros2_control_ci/.github/workflows/reusable-pre-commit.yml@master
+ strategy:
+ fail-fast: false
+ matrix:
+ ROS_DISTRO: [rolling, iron, humble]
+ with:
+ ros_distro: ${{ matrix.ROS_DISTRO }}
+ os_name: ubuntu-22.04
diff --git a/.github/workflows/ci-ros-lint.yml b/.github/workflows/ci-ros-lint.yml
deleted file mode 100644
index 38a51c65..00000000
--- a/.github/workflows/ci-ros-lint.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: ROS Lint
-on:
- pull_request:
-
-jobs:
- ament_lint:
- name: ament_${{ matrix.linter }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- linter: [copyright, lint_cmake]
- steps:
- - uses: actions/checkout@v4
- - uses: ros-tooling/setup-ros@0.7.1
- - uses: ros-tooling/action-ros-lint@v0.1
- with:
- distribution: rolling
- linter: ${{ matrix.linter }}
- package-name:
- realtime_tools
-
- ament_cpplint:
- name: ament_${{ matrix.linter }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- linter: [cpplint]
- steps:
- - uses: actions/checkout@v4
- - uses: ros-tooling/setup-ros@0.7.1
- - uses: ros-tooling/action-ros-lint@v0.1
- with:
- distribution: rolling
- linter: cpplint
- arguments: "--linelength=100 --filter=-whitespace/newline"
- package-name:
- realtime_tools
-
- ament_cppcheck:
- name: ament_${{ matrix.linter }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- linter: [cppcheck]
- env:
- AMENT_CPPCHECK_ALLOW_SLOW_VERSIONS: true
- steps:
- - uses: actions/checkout@v4
- - uses: ros-tooling/setup-ros@0.7.1
- - uses: ros-tooling/action-ros-lint@v0.1
- with:
- distribution: rolling
- linter: ${{ matrix.linter }}
- arguments: "--language=c++"
- package-name:
- realtime_tools
diff --git a/.github/workflows/update-pre-commit.yml b/.github/workflows/update-pre-commit.yml
new file mode 100644
index 00000000..8b9545df
--- /dev/null
+++ b/.github/workflows/update-pre-commit.yml
@@ -0,0 +1,12 @@
+name: Auto Update pre-commit
+# Update pre-commit config and create PR if changes are detected
+# author: Christoph Fröhlich
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 0 * * 0' # Run every Sunday at midnight
+
+jobs:
+ auto_update_and_create_pr:
+ uses: ros-controls/ros2_control_ci/.github/workflows/reusable-update-pre-commit.yml@master
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 9e166c26..d86df27f 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,3 +1,4 @@
+
# To use:
#
# pre-commit run -a
@@ -15,7 +16,7 @@
repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.4.0
+ rev: v4.5.0
hooks:
- id: check-added-large-files
- id: check-ast
@@ -29,69 +30,58 @@ repos:
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
+ exclude_types: [rst]
- id: fix-byte-order-marker
+
# Python hooks
- repo: https://github.com/asottile/pyupgrade
- rev: v3.3.1
+ rev: v3.15.1
hooks:
- id: pyupgrade
args: [--py36-plus]
- - repo: https://github.com/psf/black
- rev: 22.12.0
- hooks:
- - id: black
- args: ["--line-length=99"]
-
# PyDocStyle
- repo: https://github.com/PyCQA/pydocstyle
- rev: 6.2.2
+ rev: 6.3.0
hooks:
- id: pydocstyle
args: ["--ignore=D100,D101,D102,D103,D104,D105,D106,D107,D203,D212,D404"]
+ - repo: https://github.com/psf/black
+ rev: 24.2.0
+ hooks:
+ - id: black
+ args: ["--line-length=99"]
+
- repo: https://github.com/pycqa/flake8
- rev: 6.0.0
+ rev: 7.0.0
hooks:
- id: flake8
- args: ["--ignore=E501"]
+ args: ["--extend-ignore=E501"]
# CPP hooks
- - repo: local
+ - repo: https://github.com/pre-commit/mirrors-clang-format
+ rev: v17.0.6
hooks:
- id: clang-format
- name: clang-format
- description: Format files with ClangFormat.
- entry: clang-format-14
- language: system
- files: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|proto|vert)$
args: ['-fallback-style=none', '-i']
- # The same options as in ament_cppcheck are used, but its not working...
- #- repo: https://github.com/pocc/pre-commit-hooks
- #rev: v1.1.1
- #hooks:
- #- id: cppcheck
- #args: ['--error-exitcode=1', '-f', '--inline-suppr', '-q', '-rp', '--suppress=internalAstError', '--suppress=unknownMacro', '--verbose']
- repo: local
hooks:
- id: ament_cppcheck
name: ament_cppcheck
description: Static code analysis of C/C++ files.
- stages: [commit]
- entry: ament_cppcheck
+ entry: env AMENT_CPPCHECK_ALLOW_SLOW_VERSIONS=1 ament_cppcheck
language: system
files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
args: ['--language=c++']
- # Maybe use https://github.com/cpplint/cpplint instead
- repo: local
hooks:
- id: ament_cpplint
name: ament_cpplint
description: Static code analysis of C/C++ files.
- stages: [commit]
entry: ament_cpplint
language: system
files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
@@ -103,7 +93,6 @@ repos:
- id: ament_lint_cmake
name: ament_lint_cmake
description: Check format of CMakeLists.txt files.
- stages: [commit]
entry: ament_lint_cmake
language: system
files: CMakeLists\.txt$
@@ -114,7 +103,6 @@ repos:
- id: ament_copyright
name: ament_copyright
description: Check if copyright notice is available in all files.
- stages: [commit]
entry: ament_copyright
language: system
@@ -127,7 +115,7 @@ repos:
exclude: CHANGELOG\.rst$
- repo: https://github.com/pre-commit/pygrep-hooks
- rev: v1.9.0
+ rev: v1.10.0
hooks:
- id: rst-backticks
exclude: CHANGELOG\.rst$
@@ -137,8 +125,18 @@ repos:
# Spellcheck in comments and docs
# skipping of *.svg files is not working...
- repo: https://github.com/codespell-project/codespell
- rev: v2.2.2
+ rev: v2.2.6
hooks:
- id: codespell
args: ['--write-changes']
- exclude: CHANGELOG\.rst|\.(svg|pyc|drawio)$
+ exclude: CHANGELOG\.rst|\.(svg|pyc)$
+
+ - repo: https://github.com/python-jsonschema/check-jsonschema
+ rev: 0.28.0
+ hooks:
+ - id: check-github-workflows
+ args: ["--verbose"]
+ - id: check-github-actions
+ args: ["--verbose"]
+ - id: check-dependabot
+ args: ["--verbose"]
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a1410739..d5670e05 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -52,3 +52,12 @@ Looking at the existing issues is a great way to find something to contribute on
As this project, by default, uses the default GitHub issue labels
(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'][help-wanted] issues
is a great place to start.
+
+## Licensing
+Any contribution that you make to this repository will
+be under the 3-Clause BSD License, as dictated by that
+[license](https://opensource.org/licenses/BSD-3-Clause).
+
+[issues]: https://github.com/ros-controls/realtime_tools/issues
+[closed-issues]: https://github.com/ros-controls/realtime_tools/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20
+[help-wanted]: https://github.com/ros-controls/realtime_tools/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22
diff --git a/README.md b/README.md
index 13e5bdcb..6564534b 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,8 @@
realtime_tools
===========
+[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![codecov](https://codecov.io/gh/ros-controls/realtime_tools/branch/master/graph/badge.svg?token=Osge1FOaAh)](https://app.codecov.io/gh/ros-controls/realtime_tools/tree/master)
-See [control.ros.org](http://control.ros.org) and [realtime_tools](http://wiki.ros.org/realtime_tools) documentation on ros.org
-
## Build status
ROS2 Distro | Branch | Build status | Documentation | Released packages
diff --git a/test/realtime_server_goal_handle_tests.cpp b/test/realtime_server_goal_handle_tests.cpp
index 93d3eee2..69631d35 100644
--- a/test/realtime_server_goal_handle_tests.cpp
+++ b/test/realtime_server_goal_handle_tests.cpp
@@ -124,7 +124,7 @@ struct ActionClientCallbacks
std::shared_ptr send_goal(
rclcpp::Node::SharedPtr node, std::shared_ptr> ac,
- const std::string & server_name, ActionClientCallbacks & client_callbacks)
+ const std::string & /*server_name*/, ActionClientCallbacks & client_callbacks)
{
for (size_t i = 0; i < ATTEMPTS && !ac->action_server_is_ready(); ++i) {
rclcpp::spin_some(node);