From 0306e2785f7e40791963edbba905435e4b8867c0 Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Thu, 27 Jul 2023 11:15:41 +0200 Subject: [PATCH 1/7] Release Version 3.0.0 (#47) * Release Version 3.0.0 * Fix typo Co-authored-by: Enrico Eberhard <32450951+eeberhard@users.noreply.github.com> --------- Co-authored-by: Enrico Eberhard <32450951+eeberhard@users.noreply.github.com> --- CHANGELOG.md | 10 +++++++++- README.md | 4 ++++ VERSION | 2 +- doxygen/doxygen.conf | 2 +- source/modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 8 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fe5344f5..85cb2b36a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,20 @@ Release Versions: +- [3.0.0](#300) - [2.3.0](#230) - [2.2.0](#220) - [2.1.1](#211) - [2.1.0](#210) -## Upcoming changes (in development) +## 3.0.0 + +### July 26, 2023 + +Version 3.0.0 is a major update to modulo with a breaking change in the way predicates are handled. Instead of +individual topics per predicate, predicates are now published to a global `/predicates` topic. + +### Breaking changes - Refactor component predicates with a single Predicate publisher (#26) diff --git a/README.md b/README.md index e30f01da5..54035e9dd 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ See the package documentation for more information. This package defines custom standard interfaces for modulo components. +## Modulo Utils + +This package contains shared test fixtures. + --- ## Additional resources diff --git a/VERSION b/VERSION index 0bee604df..4a36342fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.3 +3.0.0 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index eaac19cb5..bace86874 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.3.3 +PROJECT_NUMBER = 3.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index a8926d3e9..e411084ce 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 2.3.3 + 3.0.0 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 1611f6334..247f6386c 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 2.3.3 + 3.0.0 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index 1277908f4..110b007b2 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 2.3.3 + 3.0.0 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 3b043e0bc..b758a1ec3 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 2.3.3 + 3.0.0 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From a46db1541074486c2b05188d9be23bc00abd73d1 Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Mon, 7 Aug 2023 17:15:23 +0200 Subject: [PATCH 2/7] Revise test stage to fail on test errors (#48) * Revise test stage to fail on test errors * 3.0.0 -> 3.0.1 * Update CHANGELOG --- CHANGELOG.md | 4 ++++ Dockerfile.ci | 2 +- VERSION | 2 +- doxygen/doxygen.conf | 2 +- source/modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 8 files changed, 11 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85cb2b36a..42a0e14df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ Release Versions: - [2.1.1](#211) - [2.1.0](#210) +## Upcoming changes (in development) + +- Revise test stage to fail on test errors (#48) + ## 3.0.0 ### July 26, 2023 diff --git a/Dockerfile.ci b/Dockerfile.ci index 2d5eaf8ce..bf593de31 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -31,7 +31,7 @@ RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM},uid=1000 \ FROM build as test ARG TARGETPLATFORM -RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM},uid=1000 colcon test +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM},uid=1000 colcon test && colcon test-result --verbose FROM scratch as production COPY --from=build /home/ros2/ws/install /colcon diff --git a/VERSION b/VERSION index 4a36342fc..cb2b00e4f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.0 +3.0.1 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index bace86874..92b7958a7 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.0 +PROJECT_NUMBER = 3.0.1 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index e411084ce..f723c7edf 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.0 + 3.0.1 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 247f6386c..e3910e13e 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.0 + 3.0.1 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index 110b007b2..c0ed9ccb5 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.0 + 3.0.1 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index b758a1ec3..fcdce5bda 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.0 + 3.0.1 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From c16eefa11fbb13e34b20ddb20ac75ae4245613ce Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Tue, 12 Sep 2023 15:45:56 +0200 Subject: [PATCH 3/7] build: unify dockerfiles and add vs code configuration (#50) Unify Dockerfile and Dockerfile.ci and add development stages to it. Add VS Code devcontainer configuration files. Update READMEs and CONTRIBUTING --- .devcontainer/devcontainer.json | 23 ++++++ .github/workflows/build-release.yaml | 1 - .gitignore | 1 + .vscode/c_cpp_properties.json | 20 +++++ .vscode/settings.json | 4 + CHANGELOG.md | 1 + .../CONTRIBUTING.md => CONTRIBUTING.md | 21 ++++- Dockerfile | 81 +++++++++++++------ Dockerfile.ci | 37 --------- VERSION | 2 +- build-server.sh | 48 ----------- build.sh | 59 ++++++++++++++ doxygen/doxygen.conf | 2 +- source/modulo_component_interfaces/README.md | 9 +++ .../modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 18 files changed, 199 insertions(+), 118 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json rename source/modulo_components/CONTRIBUTING.md => CONTRIBUTING.md (57%) delete mode 100644 Dockerfile.ci delete mode 100755 build-server.sh create mode 100755 build.sh diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..8df964ce2 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,23 @@ +{ + "name": "modulo", + "remoteUser": "ros2", + "build": { + "dockerfile": "../Dockerfile", + "context": "..", + "target": "development", + "args": { "CL_VERSION": "v7.1.1" } + }, + "workspaceMount": "source=${localWorkspaceFolder},target=/home/ros2/.devcontainer,type=bind,consistency=cached", + "workspaceFolder": "/home/ros2/.devcontainer", + "mounts": [ + "source=${localWorkspaceFolder}/source,target=/home/ros2/ws/src,type=bind,consistency=cached" + ], + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.cpptools-extension-pack", + "eamodio.gitlens" + ] + } + } +} \ No newline at end of file diff --git a/.github/workflows/build-release.yaml b/.github/workflows/build-release.yaml index 96f792d7c..ad910835a 100644 --- a/.github/workflows/build-release.yaml +++ b/.github/workflows/build-release.yaml @@ -46,7 +46,6 @@ jobs: with: image_name: aica-technology/modulo image_tags: ${{ steps.merge-tags.outputs.list }} - dockerfile_path: Dockerfile.ci token: ${{ secrets.GITHUB_TOKEN }} multi-arch: diff --git a/.gitignore b/.gitignore index 603364d8b..0dbd1beda 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,6 @@ .idea cmake-build-* ./fileList.txt +build doxygen/docs/html diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 000000000..d490efeac --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "AMD", + "includePath": [ + "/opt/ros/humble/include/**", + "/home/ros2/ros2_ws/install/**", + "/home/ros2/ws/install/**", + "/home/ros2/ws/src/modulo_utils/include", + "/home/ros2/ws/src/modulo_core/include", + "/home/ros2/ws/src/modulo_components/include" + ], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "gnu++17", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..00a610035 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "C_Cpp.clang_format_style": "file:/home/ros2/.clang-format", + "cmake.sourceDirectory": "/home/ros2/ws/src/modulo_components", +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a0e14df..4a4ce6967 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Release Versions: ## Upcoming changes (in development) +- build: unify dockerfiles and add vs code configuration (#50) - Revise test stage to fail on test errors (#48) ## 3.0.0 diff --git a/source/modulo_components/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 57% rename from source/modulo_components/CONTRIBUTING.md rename to CONTRIBUTING.md index 27f5cd4b5..53975c37f 100644 --- a/source/modulo_components/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,4 +26,23 @@ Similar to the exceptions, the logging of debug, info, and error messages should - Methods that catch an exception and are not allow to rethrow, log an error with the exception message - `add_xxx` methods use non-throttled logging - Setters and getters as well as all other methods that are expected to be called at a high frequency use throttled - logging \ No newline at end of file + logging + + +## Development Environment + +Our development and testing workflow uses a Docker container to host the project build dependencies. + +The following section describes the configuration steps to use this workflow. Of course, contributors may use whatever +development environment they prefer, as long as they adhere to the overall contribution guidelines. + +### Configuring the development environment + +Prerequisites: Install Docker and Visual Studio Code. + +Step 1: Open VS Code and install the [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension. + +Step 2: Use **Dev Containers: Open Folder in Container...** from the command palette and select this directory. + +Step 3: The CMake profile should be automatically selected, now you can run and debug library and test targets entirely +with the devcontainer toolchain. \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 012b0d11f..b127175ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,56 @@ -ARG BASE_TAG=humble -FROM ghcr.io/aica-technology/ros2-control-libraries:${BASE_TAG} as dependencies -WORKDIR ${HOME}/ros2_ws - - -FROM dependencies as modulo-component-interfaces - -COPY --chown=${USER} ./source/modulo_component_interfaces ./src/modulo_component_interfaces -COPY --chown=${USER} ./source/modulo_utils ./src/modulo_utils -RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/setup.bash; colcon build" - - -FROM modulo-component-interfaces as modulo-core - -COPY --chown=${USER} ./source/modulo_core ./src/modulo_core -RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/setup.bash; colcon build --packages-select modulo_core" - - -FROM modulo-core as modulo-components - -COPY --chown=${USER} ./source/modulo_components ./src/modulo_components -RUN /bin/bash -c "source /opt/ros/$ROS_DISTRO/setup.bash; colcon build --packages-select modulo_components" - -# clean image -RUN sudo apt-get clean && sudo rm -rf /var/lib/apt/lists/* +#syntax=docker/dockerfile:1.4.0 +ARG CL_VERSION=v7.1.1 +ARG ROS2_VERSION=humble +FROM ghcr.io/aica-technology/control-libraries:${CL_VERSION} as cl +FROM ghcr.io/aica-technology/ros2-ws:${ROS2_VERSION} as base +# setup the environment +USER ${USER} +ENV WORKSPACE ${HOME}/ws +WORKDIR ${WORKSPACE} +SHELL ["/bin/bash", "-l", "-c"] + +# create a workspace +RUN source ${HOME}/ros2_ws/install/setup.bash && colcon build +# source the new workspace on login +RUN echo "source ${WORKSPACE}/install/setup.bash" | cat - ${HOME}/.bashrc > tmp && mv tmp ${HOME}/.bashrc +# install deps +COPY --from=cl / / +# install sources +COPY --chown=${USER}:${USER} ./source ${WORKSPACE}/src + +FROM base as utils-development +ARG TARGETPLATFORM +ARG CACHEID +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM}-${CACHEID},uid=1000 \ + colcon build --packages-select modulo_component_interfaces + +FROM utils-development as core-development +ARG TARGETPLATFORM +ARG CACHEID +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM}-${CACHEID},uid=1000 \ + colcon build --packages-select modulo_utils + +FROM core-development as development +ARG TARGETPLATFORM +ARG CACHEID +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM}-${CACHEID},uid=1000 \ + colcon build --packages-select modulo_core + +FROM base as build +ARG TARGETPLATFORM +ARG CACHEID +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM}-${CACHEID},uid=1000 \ + sudo apt-get update && rosdep update \ + && rosdep install --from-paths src --ignore-src -r -y \ + --skip-keys "ros2_control ros2_controllers controller_interface hardware_interface controller_manager" \ + && sudo rm -rf /var/lib/apt/lists/* \ + && colcon build + +FROM build as test +ARG TARGETPLATFORM +ARG CACHEID +RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM}-${CACHEID},uid=1000 \ + colcon test && colcon test-result --verbose + +FROM scratch as production +COPY --from=build /home/ros2/ws/install /colcon diff --git a/Dockerfile.ci b/Dockerfile.ci deleted file mode 100644 index bf593de31..000000000 --- a/Dockerfile.ci +++ /dev/null @@ -1,37 +0,0 @@ -#syntax=docker/dockerfile:1.4.0 -ARG CL_VERSION=v7.1.0 -ARG ROS2_VERSION=humble -FROM ghcr.io/aica-technology/control-libraries:${CL_VERSION} as cl -FROM ghcr.io/aica-technology/ros2-ws:${ROS2_VERSION} as base -# setup the environment -USER ${USER} -ENV WORKSPACE ${HOME}/ws -WORKDIR ${WORKSPACE} -SHELL ["/bin/bash", "-l", "-c"] - -# create a workspace -RUN source ${HOME}/ros2_ws/install/setup.bash && colcon build -# source the new workspace on login -RUN echo "source ${WORKSPACE}/install/setup.bash" | cat - ${HOME}/.bashrc > tmp && mv tmp ${HOME}/.bashrc -# install deps -COPY --from=cl / / -# install sources -COPY --chown=${USER}:${USER} ./source ${WORKSPACE}/src - -FROM base as development - -FROM base as build -ARG TARGETPLATFORM -RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM},uid=1000 \ - sudo apt-get update && rosdep update \ - && rosdep install --from-paths src --ignore-src -r -y \ - --skip-keys "ros2_control ros2_controllers controller_interface hardware_interface controller_manager" \ - && sudo rm -rf /var/lib/apt/lists/* \ - && colcon build - -FROM build as test -ARG TARGETPLATFORM -RUN --mount=type=cache,target=./build,id=${TARGETPLATFORM},uid=1000 colcon test && colcon test-result --verbose - -FROM scratch as production -COPY --from=build /home/ros2/ws/install /colcon diff --git a/VERSION b/VERSION index cb2b00e4f..b50214693 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.1 +3.0.2 diff --git a/build-server.sh b/build-server.sh deleted file mode 100755 index 9290ad4a6..000000000 --- a/build-server.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -BASE_TAG=humble-devel - -IMAGE_NAME=aica-technology/modulo -IMAGE_TAG=latest - -REMOTE_SSH_PORT=4440 -SERVE_REMOTE=false - -HELP_MESSAGE="Usage: build.sh [-p] [-r] -Options: - -d, --development Only target the dependencies layer to prevent - sources from being built or tested - - -c, --core Only target the modulo core layer to prevent - modulo components from being built or tested - - -r, --rebuild Rebuild the image using the docker - --no-cache option - - -v, --verbose Use the verbose option during the building - process - - -s, --serve Start the remove development server -" - -BUILD_FLAGS=(--build-arg BASE_TAG="${BASE_TAG}") -while [[ $# -gt 0 ]]; do - opt="$1" - case $opt in - -d|--development) BUILD_FLAGS+=(--target dependencies) ; IMAGE_TAG=development ; shift ;; - -c|--core) BUILD_FLAGS+=(--target modulo-core) ; IMAGE_TAG=development ; shift ;; - -r|--rebuild) BUILD_FLAGS+=(--no-cache) ; shift ;; - -v|--verbose) BUILD_FLAGS+=(--progress=plain) ; shift ;; - -s|--serve) SERVE_REMOTE=true ; shift ;; - -h|--help) echo "${HELP_MESSAGE}" ; exit 0 ;; - *) echo 'Error in command line parsing' >&2 - echo -e "\n${HELP_MESSAGE}" - exit 1 - esac -done - -docker pull ghcr.io/aica-technology/ros2-control-libraries:"${BASE_TAG}" -DOCKER_BUILDKIT=1 docker build -t "${IMAGE_NAME}:${IMAGE_TAG}" "${BUILD_FLAGS[@]}" . || exit 1 - -if [[ "${SERVE_REMOTE}" == true ]]; then - aica-docker server "${IMAGE_NAME}:${IMAGE_TAG}" -u ros2 -p "${REMOTE_SSH_PORT}" -fi \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..e476419ec --- /dev/null +++ b/build.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +IMAGE_NAME=ghcr.io/aica-technology/modulo +IMAGE_TAG=latest + +ROS2_VERSION=humble +CL_VERSION=v7.1.1 + +SSH_PORT=4440 + +HELP_MESSAGE="Usage: build.sh [options] +Options: + --test Target the test layer to run the tests. + + -s|--serve Start the remote development server on port $SSH_PORT. + + --cl-version Specify the version of the control libraries image to use. + (default: $CL_VERSION) + + -v|--verbose Set the build output to verbose. + + --cache-id Invalidate the mount cache (e.g. CMake build folder) + by providing a new value. + + -r|--no-cache Invalidate all cache (layer + mount). + + -h|--help Show this help message. +" + +TEST=0 +SERVE_REMOTE=0 +BUILD_FLAGS=() +while [ "$#" -gt 0 ]; do + case "$1" in + --test) BUILD_FLAGS+=(--target=test); TEST=1; IMAGE_TAG=test; shift 1;; + -s|--serve) BUILD_FLAGS+=(--target build); SERVE_REMOTE=1; IMAGE_TAG=build; shift 1;; + --cl-version) CL_VERSION=$2; shift 2;; + -v|--verbose) BUILD_FLAGS+=(--progress=plain); shift 1;; + --cache-id) BUILD_FLAGS+=(--build-arg CACHEID=$2); shift 2;; + -r|--no-cache) BUILD_FLAGS+=(--no-cache); BUILD_FLAGS+=(--build-arg CACHEID=$(date +%s)); shift 1;; + -h|--help) echo "$HELP_MESSAGE"; exit 0;; + -*) echo "Unknown option: $1" >&2; echo "$HELP_MESSAGE"; exit 1;; + esac +done + +if [ "$((TEST + SERVE_REMOTE))" -gt 1 ]; then + echo "Error in command line arguments:" >&2 + echo "--test and --serve options are mutually exclusive." >&2 + exit 1 +fi + +BUILD_FLAGS+=(--build-arg CL_VERSION="${CL_VERSION}") +BUILD_FLAGS+=(-t "${IMAGE_NAME}:${IMAGE_TAG}") + +DOCKER_BUILDKIT=1 docker build "${BUILD_FLAGS[@]}" . || exit 1 + +if [ "${SERVE_REMOTE}" -eq 1 ]; then + aica-docker server "${IMAGE_NAME}:${IMAGE_TAG}" --user ros2 --port ${SSH_PORT} +fi diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index 92b7958a7..76c841b4b 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.1 +PROJECT_NUMBER = 3.0.2 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/README.md b/source/modulo_component_interfaces/README.md index 5388a79a0..fe5ed609f 100644 --- a/source/modulo_component_interfaces/README.md +++ b/source/modulo_component_interfaces/README.md @@ -2,6 +2,15 @@ This package defines custom standard interfaces for modulo components. +## Messages + +Modulo component classes broadcast predicates to a global channel in a predicate message. + +### Predicate + +The predicate message contains the component name, the predicate name, and the current value (true or false) of the +predicate. + ## Services Modulo component classes provide a simplified method to add services which trigger a pre-defined callback function. diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index f723c7edf..85630ed87 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.1 + 3.0.2 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index e3910e13e..948951e20 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.1 + 3.0.2 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index c0ed9ccb5..71f9cf3fa 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.1 + 3.0.2 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index fcdce5bda..7fba1f4f6 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.1 + 3.0.2 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From 03e83232f88bc1c3636da102d1538ccc152c1d4e Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Wed, 13 Sep 2023 07:38:37 +0200 Subject: [PATCH 4/7] feat: add on_step_callback for component (#51) Move the on_step_callback to the component interface and add it to the step function of the component. --- CHANGELOG.md | 1 + VERSION | 2 +- doxygen/doxygen.conf | 2 +- source/modulo_component_interfaces/package.xml | 2 +- .../include/modulo_components/ComponentInterface.hpp | 8 ++++++++ .../include/modulo_components/LifecycleComponent.hpp | 7 ------- source/modulo_components/modulo_components/component.py | 1 + .../modulo_components/component_interface.py | 6 ++++++ .../modulo_components/lifecycle_component.py | 6 ------ source/modulo_components/package.xml | 2 +- source/modulo_components/src/Component.cpp | 1 + source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 13 files changed, 23 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a4ce6967..6fe6e5b1d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Release Versions: ## Upcoming changes (in development) +- feat: add on_step_callback for component (#51) - build: unify dockerfiles and add vs code configuration (#50) - Revise test stage to fail on test errors (#48) diff --git a/VERSION b/VERSION index b50214693..75a22a26a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.2 +3.0.3 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index 76c841b4b..8079e1636 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.2 +PROJECT_NUMBER = 3.0.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index 85630ed87..c1a07c93c 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.2 + 3.0.3 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/include/modulo_components/ComponentInterface.hpp b/source/modulo_components/include/modulo_components/ComponentInterface.hpp index 151aef7fd..b9d9eef2d 100644 --- a/source/modulo_components/include/modulo_components/ComponentInterface.hpp +++ b/source/modulo_components/include/modulo_components/ComponentInterface.hpp @@ -99,6 +99,11 @@ class ComponentInterface : public NodeT { */ virtual void step(); + /** + * @brief Steps to execute periodically. To be redefined by derived Component classes. + */ + virtual void on_step_callback(); + /** * @brief Add a parameter. * @details This method stores a pointer reference to an existing Parameter object in the local parameter map and @@ -609,6 +614,9 @@ ComponentInterface::ComponentInterface( template inline void ComponentInterface::step() {} +template +inline void ComponentInterface::on_step_callback() {} + template template inline void ComponentInterface::add_parameter( diff --git a/source/modulo_components/include/modulo_components/LifecycleComponent.hpp b/source/modulo_components/include/modulo_components/LifecycleComponent.hpp index 744e56808..3e8be7c72 100644 --- a/source/modulo_components/include/modulo_components/LifecycleComponent.hpp +++ b/source/modulo_components/include/modulo_components/LifecycleComponent.hpp @@ -94,11 +94,6 @@ class LifecycleComponent : public ComponentInterface::evaluate_periodic_callbacks; }; -inline void LifecycleComponent::on_step_callback() {} - template inline void LifecycleComponent::add_output( const std::string& signal_name, const std::shared_ptr& data, const std::string& default_topic, diff --git a/source/modulo_components/modulo_components/component.py b/source/modulo_components/modulo_components/component.py index d3279c7ed..f178eb90d 100644 --- a/source/modulo_components/modulo_components/component.py +++ b/source/modulo_components/modulo_components/component.py @@ -30,6 +30,7 @@ def _step(self): """ try: self._evaluate_periodic_callbacks() + self.on_step_callback() self._publish_outputs() self._publish_predicates() except Exception as e: diff --git a/source/modulo_components/modulo_components/component_interface.py b/source/modulo_components/modulo_components/component_interface.py index 02bc02538..b6c222e2c 100644 --- a/source/modulo_components/modulo_components/component_interface.py +++ b/source/modulo_components/modulo_components/component_interface.py @@ -72,6 +72,12 @@ def _step(self) -> None: Step function that is called periodically. """ pass + + def on_step_callback(self): + """ + Steps to execute periodically. To be redefined by derived classes. + """ + pass def add_parameter(self, parameter: Union[str, sr.Parameter], description: str, read_only=False) -> None: """ diff --git a/source/modulo_components/modulo_components/lifecycle_component.py b/source/modulo_components/modulo_components/lifecycle_component.py index 79c44faa4..41c4e9bc6 100644 --- a/source/modulo_components/modulo_components/lifecycle_component.py +++ b/source/modulo_components/modulo_components/lifecycle_component.py @@ -307,12 +307,6 @@ def _step(self): self.get_logger().error(f"Failed to execute step function: {e}", throttle_duration_sec=1.0) # TODO handle error in lifecycle component - def on_step_callback(self): - """ - Steps to execute periodically. To be redefined by derived classes. - """ - pass - def __configure_outputs(self) -> bool: """ Configure all outputs. diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 948951e20..1d329f272 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.2 + 3.0.3 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_components/src/Component.cpp b/source/modulo_components/src/Component.cpp index 5106d9568..23ea7bea7 100644 --- a/source/modulo_components/src/Component.cpp +++ b/source/modulo_components/src/Component.cpp @@ -12,6 +12,7 @@ Component::Component(const rclcpp::NodeOptions& node_options, const std::string& void Component::step() { try { this->evaluate_periodic_callbacks(); + this->on_step_callback(); this->publish_outputs(); this->publish_predicates(); } catch (const std::exception& ex) { diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index 71f9cf3fa..c148e538b 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.2 + 3.0.3 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 7fba1f4f6..36b940909 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.2 + 3.0.3 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From fe193733c6512429007edb609907b42f07d72085 Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Wed, 27 Sep 2023 12:00:51 +0200 Subject: [PATCH 5/7] build: use iron as ros2 distro (#53) --- CHANGELOG.md | 5 +++-- Dockerfile | 4 ++-- VERSION | 2 +- build.sh | 13 +++++++++++-- doxygen/doxygen.conf | 2 +- source/modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 9 files changed, 22 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fe6e5b1d..24c7a784c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,10 @@ Release Versions: ## Upcoming changes (in development) -- feat: add on_step_callback for component (#51) -- build: unify dockerfiles and add vs code configuration (#50) - Revise test stage to fail on test errors (#48) +- build: unify dockerfiles and add vs code configuration (#50) +- feat: add on_step_callback for component (#51) +- build: use iron as ros2 distro (#53) ## 3.0.0 diff --git a/Dockerfile b/Dockerfile index b127175ba..ead4f5a2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ #syntax=docker/dockerfile:1.4.0 -ARG CL_VERSION=v7.1.1 -ARG ROS2_VERSION=humble +ARG CL_VERSION=v7.2.0 +ARG ROS2_VERSION=iron FROM ghcr.io/aica-technology/control-libraries:${CL_VERSION} as cl FROM ghcr.io/aica-technology/ros2-ws:${ROS2_VERSION} as base # setup the environment diff --git a/VERSION b/VERSION index 75a22a26a..b0f2dcb32 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.3 +3.0.4 diff --git a/build.sh b/build.sh index e476419ec..dca14ae30 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,8 @@ IMAGE_NAME=ghcr.io/aica-technology/modulo IMAGE_TAG=latest -ROS2_VERSION=humble -CL_VERSION=v7.1.1 +ROS2_VERSION=iron +CL_VERSION=v7.2.0 SSH_PORT=4440 @@ -17,6 +17,12 @@ Options: --cl-version Specify the version of the control libraries image to use. (default: $CL_VERSION) + --ros2-version Specify the version of ROS 2 to use. + (default: $ROS2_VERSION) + + --tag Specify the tag of the generated image. + (default: $IMAGE_TAG) + -v|--verbose Set the build output to verbose. --cache-id Invalidate the mount cache (e.g. CMake build folder) @@ -35,6 +41,8 @@ while [ "$#" -gt 0 ]; do --test) BUILD_FLAGS+=(--target=test); TEST=1; IMAGE_TAG=test; shift 1;; -s|--serve) BUILD_FLAGS+=(--target build); SERVE_REMOTE=1; IMAGE_TAG=build; shift 1;; --cl-version) CL_VERSION=$2; shift 2;; + --ros2-version) ROS2_VERSION=$2; shift 2;; + --tag) IMAGE_TAG=$2; shift 2;; -v|--verbose) BUILD_FLAGS+=(--progress=plain); shift 1;; --cache-id) BUILD_FLAGS+=(--build-arg CACHEID=$2); shift 2;; -r|--no-cache) BUILD_FLAGS+=(--no-cache); BUILD_FLAGS+=(--build-arg CACHEID=$(date +%s)); shift 1;; @@ -50,6 +58,7 @@ if [ "$((TEST + SERVE_REMOTE))" -gt 1 ]; then fi BUILD_FLAGS+=(--build-arg CL_VERSION="${CL_VERSION}") +BUILD_FLAGS+=(--build-arg ROS2_VERSION="${ROS2_VERSION}") BUILD_FLAGS+=(-t "${IMAGE_NAME}:${IMAGE_TAG}") DOCKER_BUILDKIT=1 docker build "${BUILD_FLAGS[@]}" . || exit 1 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index 8079e1636..722b38621 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.3 +PROJECT_NUMBER = 3.0.4 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index c1a07c93c..b7b6b8c20 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.3 + 3.0.4 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 1d329f272..d51e6cd84 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.3 + 3.0.4 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index c148e538b..c99f789cd 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.3 + 3.0.4 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 36b940909..800e55b38 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.3 + 3.0.4 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From fbc03476bdbe86d089f78784ec54427101451a56 Mon Sep 17 00:00:00 2001 From: Dominic Reber <71256590+domire8@users.noreply.github.com> Date: Wed, 27 Sep 2023 14:45:41 +0200 Subject: [PATCH 6/7] ci: change test workflow to docker build (#55) --- .../build-test-humble-devel/action.yml | 6 --- .github/actions/build-test-humble/action.yml | 6 --- .github/common/build-test.sh | 35 --------------- .github/common/entrypoint.sh | 3 -- .github/workflows/build-test.yml | 44 +++++-------------- CHANGELOG.md | 1 + VERSION | 2 +- doxygen/doxygen.conf | 2 +- .../modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 12 files changed, 19 insertions(+), 88 deletions(-) delete mode 100644 .github/actions/build-test-humble-devel/action.yml delete mode 100644 .github/actions/build-test-humble/action.yml delete mode 100755 .github/common/build-test.sh delete mode 100755 .github/common/entrypoint.sh diff --git a/.github/actions/build-test-humble-devel/action.yml b/.github/actions/build-test-humble-devel/action.yml deleted file mode 100644 index 25181c7ef..000000000 --- a/.github/actions/build-test-humble-devel/action.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: 'Build and Test (humble-devel)' -description: 'Build the source packages and run all unit tests' -runs: - using: 'docker' - image: 'ghcr.io/aica-technology/ros2-control-libraries:humble-devel' - entrypoint: '/github/workspace/.github/common/entrypoint.sh' diff --git a/.github/actions/build-test-humble/action.yml b/.github/actions/build-test-humble/action.yml deleted file mode 100644 index dd9a91914..000000000 --- a/.github/actions/build-test-humble/action.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: 'Build and Test (humble)' -description: 'Build the source packages and run all unit tests' -runs: - using: 'docker' - image: 'ghcr.io/aica-technology/ros2-control-libraries:humble' - entrypoint: '/github/workspace/.github/common/entrypoint.sh' diff --git a/.github/common/build-test.sh b/.github/common/build-test.sh deleted file mode 100755 index 13d7d7863..000000000 --- a/.github/common/build-test.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -STEP=1 -build_and_test() { - PACKAGE=$1 - - echo ">>> ${STEP}: Building ${PACKAGE}..." - cp -r /github/workspace/source/"${PACKAGE}" ./src/"${PACKAGE}" - if ! colcon build --packages-select "${PACKAGE}"; then - echo ">>> [ERROR] Build stage ${STEP} failed!" - exit "${STEP}" - fi - echo ">>> Build stage ${STEP} completed successfully!" - STEP=$((STEP+1)) - - echo ">>> ${STEP}: Testing ${PACKAGE}..." - if ! colcon test --packages-select "${PACKAGE}" --return-code-on-test-failure; then - colcon test-result --verbose - echo ">>> [ERROR] Test stage ${STEP} failed!" - exit "${STEP}" - fi - echo ">>> Test stage ${STEP} completed successfully!" - STEP=$((STEP+1)) -} - -source /opt/ros/"${ROS_DISTRO}"/setup.bash -cd /home/ros2/ros2_ws - -build_and_test modulo_component_interfaces -build_and_test modulo_utils -build_and_test modulo_core -build_and_test modulo_components - -echo ">>> All build and test stages completed successfully!" -exit 0 diff --git a/.github/common/entrypoint.sh b/.github/common/entrypoint.sh deleted file mode 100755 index a2d20c182..000000000 --- a/.github/common/entrypoint.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sudo su - ros2 -c /bin/bash -c /github/workspace/.github/common/build-test.sh diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index bf890ebb1..73953132f 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -1,40 +1,31 @@ name: Build and Test -# Run workflow on pushes to main and develop branches, on any pull request, or by manual dispatch on: - push: - branches: - - main - - develop pull_request: workflow_dispatch: -# Define the build test jobs jobs: - - check-contribution: + check: name: Check if changelog and version have been updated runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - - name: Check contributions - if: ${{ github.event.pull_request.base.sha }} + - name: Check changelog run: | git fetch origin main ${{ github.event.pull_request.base.sha }} VER_DIFF=$(git diff ${{ github.event.pull_request.base.sha }} ${{ github.sha }} -- ./VERSION) if ! [ "${VER_DIFF}" ]; then - echo "::warning title=Contribution check failed::VERSION must be updated!" + echo "::warning title=Version check failed::VERSION must be updated!" exit 1 fi CL_DIFF=$(git diff ${{ github.event.pull_request.base.sha }} ${{ github.sha }} -- ./CHANGELOG.md) if ! [ "${CL_DIFF}" ]; then - echo "::warning title=Contribution check failed::CHANGELOG.md must be updated!" + echo "::warning title=CHEANGELOG check failed::CHANGELOG.md must be updated!" exit 1 fi shell: bash - # check if jobs can be skipped check-skippable-changes: name: Check skippable changes runs-on: ubuntu-latest @@ -49,28 +40,17 @@ jobs: paths_ignore: '["**.md"]' skip_after_successful_duplicate: 'true' - build-test-humble: + test: needs: check-skippable-changes if: ${{ needs.check-skippable-changes.outputs.skip != 'true' }} runs-on: ubuntu-latest - name: Humble build and test + name: Run tests steps: - # First check out the repository - - name: Checkout + - name: Checkout repository uses: actions/checkout@v3 - # Load the repository build-test action - - name: Build and Test - uses: ./.github/actions/build-test-humble - build-test-humble-devel: - needs: check-skippable-changes - if: ${{ needs.check-skippable-changes.outputs.skip != 'true' }} - runs-on: ubuntu-latest - name: Humble development build and test - steps: - # First check out the repository - - name: Checkout - uses: actions/checkout@v2 - # Load the repository build-test action - - name: Build and Test - uses: ./.github/actions/build-test-humble-devel \ No newline at end of file + - name: Test + run: | + DOCKER_BUILDKIT=1 docker build --target test . + shell: bash + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 24c7a784c..76896207a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ Release Versions: - build: unify dockerfiles and add vs code configuration (#50) - feat: add on_step_callback for component (#51) - build: use iron as ros2 distro (#53) +- ci: change test workflow to docker build (#55) ## 3.0.0 diff --git a/VERSION b/VERSION index b0f2dcb32..eca690e73 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.4 +3.0.5 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index 722b38621..d01f9adb4 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.4 +PROJECT_NUMBER = 3.0.5 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index b7b6b8c20..2d2299646 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.4 + 3.0.5 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index d51e6cd84..b902a3dcb 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.4 + 3.0.5 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index c99f789cd..a5bf8820a 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.4 + 3.0.5 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 800e55b38..16f9fa523 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.4 + 3.0.5 Modulo utils package for shared test fixtures Dominic Reber GPLv3 From 847d0a85875df503fb52e636473d1c0bdebaf0de Mon Sep 17 00:00:00 2001 From: Dominic Reber Date: Wed, 27 Sep 2023 15:11:11 +0200 Subject: [PATCH 7/7] release: version 3.1.0 --- .devcontainer/devcontainer.json | 2 +- CHANGELOG.md | 21 ++++++++++++++----- VERSION | 2 +- doxygen/doxygen.conf | 2 +- .../modulo_component_interfaces/package.xml | 2 +- source/modulo_components/package.xml | 2 +- source/modulo_core/package.xml | 2 +- source/modulo_utils/package.xml | 2 +- 8 files changed, 23 insertions(+), 12 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 8df964ce2..93b9383c7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,7 +5,7 @@ "dockerfile": "../Dockerfile", "context": "..", "target": "development", - "args": { "CL_VERSION": "v7.1.1" } + "args": { "CL_VERSION": "v7.2.0" } }, "workspaceMount": "source=${localWorkspaceFolder},target=/home/ros2/.devcontainer,type=bind,consistency=cached", "workspaceFolder": "/home/ros2/.devcontainer", diff --git a/CHANGELOG.md b/CHANGELOG.md index 76896207a..5c0d88a99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,19 +2,30 @@ Release Versions: +- [3.1.0](#300) - [3.0.0](#300) - [2.3.0](#230) - [2.2.0](#220) - [2.1.1](#211) - [2.1.0](#210) -## Upcoming changes (in development) +## 3.1.0 + +### September 27, 2023 + +Version 3.1.0 is a minor update to modulo with a new feature in the components and it marks the first official version +that uses `iron` as its ROS2 distribution. + +### Features + +- Add the on_step_callback for components (#51) + +### Behind the scenes - Revise test stage to fail on test errors (#48) -- build: unify dockerfiles and add vs code configuration (#50) -- feat: add on_step_callback for component (#51) -- build: use iron as ros2 distro (#53) -- ci: change test workflow to docker build (#55) +- Unify dockerfiles and add vs code configuration (#50) +- Use iron as ros2 distro (#53) +- Change test workflow to docker build (#55) ## 3.0.0 diff --git a/VERSION b/VERSION index eca690e73..fd2a01863 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.5 +3.1.0 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index d01f9adb4..5585bb895 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 3.0.5 +PROJECT_NUMBER = 3.1.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index 2d2299646..7b9a231f1 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 3.0.5 + 3.1.0 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index b902a3dcb..fc43ca178 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 3.0.5 + 3.1.0 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index a5bf8820a..6ffba21eb 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 3.0.5 + 3.1.0 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 16f9fa523..e449ae2e1 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 3.0.5 + 3.1.0 Modulo utils package for shared test fixtures Dominic Reber GPLv3