Skip to content

Commit 159f185

Browse files
authored
Merge branch 'moveit:humble' into humble
2 parents 34e0ee1 + 7ffdfd3 commit 159f185

File tree

499 files changed

+4224
-5342
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

499 files changed

+4224
-5342
lines changed

.clang-tidy

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
---
2-
# TODO(henningkayser): Re-enable performance-unnecessary-value-param once #214 is resolved
32
Checks: '-*,
43
performance-*,
5-
-performance-unnecessary-value-param,
64
llvm-namespace-comment,
75
modernize-redundant-void-arg,
86
modernize-use-nullptr,

.docker/ci-testing/Dockerfile

+60-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,68 @@
1-
# ghcr.io/ros-planning/moveit2:${ROS_DISTRO}-ci-testing
1+
# ghcr.io/ros-planning/moveit2:${OUR_ROS_DISTRO}-ci-testing
22
# CI image using the ROS testing repository
33

4-
ARG ROS_DISTRO=rolling
5-
FROM ghcr.io/ros-planning/moveit2:${ROS_DISTRO}-ci
4+
FROM osrf/ros2:testing
65
LABEL maintainer Robert Haschke [email protected]
76

8-
# Switch to ros-testing
9-
RUN echo "deb http://packages.ros.org/ros2-testing/ubuntu $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/ros2-latest.list
7+
ENV TERM xterm
108

11-
# Upgrade packages to ros-shadow-fixed and clean apt-cache within one RUN command
12-
RUN apt-get -qq update && \
13-
apt-get -qq upgrade && \
9+
# Overwrite the ROS_DISTRO set in osrf/ros2:testing to the distro tied to this Dockerfile (OUR_ROS_DISTRO).
10+
# In case ROS_DISTRO is now different from what was set in osrf/ros2:testing, run `rosdep update` again
11+
# to get any missing dependencies.
12+
# https://docs.docker.com/engine/reference/builder/#using-arg-variables explains why ARG and ENV can't have
13+
# the same name (ROS_DISTRO is an ENV in the osrf/ros2:testing image).
14+
ARG OUR_ROS_DISTRO=rolling
15+
ENV ROS_DISTRO=${OUR_ROS_DISTRO}
16+
RUN rosdep update --rosdistro $ROS_DISTRO
17+
18+
# Install ROS 2 base packages and build tools
19+
# We are installing ros-<distro>-ros-base here to mimic the behavior of the ros:<distro>-ros-base images.
20+
# This step is split into a separate layer so that we can rely on cached dependencies instead of having
21+
# to install them with every new build. The testing image and packages will only update every couple weeks.
22+
RUN \
23+
# Update apt package list as previous containers clear the cache
24+
apt-get -q update && \
25+
apt-get -q -y upgrade && \
26+
#
27+
# Install base dependencies
28+
apt-get -q install --no-install-recommends -y \
29+
# Some basic requirements
30+
wget git sudo curl \
31+
# Preferred build tools
32+
clang clang-format-14 clang-tidy clang-tools \
33+
ccache \
34+
ros-"$ROS_DISTRO"-ros-base && \
35+
#
36+
# Clear apt-cache to reduce image size
37+
rm -rf /var/lib/apt/lists/*
38+
39+
# Setup (temporary) ROS workspace
40+
WORKDIR /root/ws_moveit
41+
42+
# Copy MoveIt sources from docker context
43+
COPY . src/moveit2
44+
45+
# Commands are combined in single RUN statement with "apt/lists" folder removal to reduce image size
46+
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#minimize-the-number-of-layers
47+
RUN \
48+
# Update apt package list as previous containers clear the cache
49+
apt-get -q update && \
50+
apt-get -q -y upgrade && \
51+
#
52+
# Globally disable git security
53+
# https://github.blog/2022-04-12-git-security-vulnerability-announced
54+
git config --global --add safe.directory "*" && \
55+
#
56+
# Fetch all dependencies from moveit2.repos
57+
vcs import src < src/moveit2/moveit2.repos && \
58+
if [ -r src/moveit2/moveit2_"$ROS_DISTRO".repos ] ; then vcs import src < src/moveit2/moveit2_"$ROS_DISTRO".repos ; fi && \
59+
#
60+
# Download all dependencies of MoveIt
61+
rosdep update && \
62+
DEBIAN_FRONTEND=noninteractive \
63+
rosdep install -y --from-paths src --ignore-src --rosdistro "$ROS_DISTRO" --as-root=apt:false && \
64+
# Remove the source code from this container
65+
rm -rf src && \
1466
#
1567
# Clear apt-cache to reduce image size
1668
rm -rf /var/lib/apt/lists/*

.docker/ci/Dockerfile

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ FROM ros:${ROS_DISTRO}-ros-base
66
LABEL maintainer Robert Haschke [email protected]
77

88
ENV TERM xterm
9+
# Allow non-interactive installation of ros-humble-rmw-connextdds
10+
ENV RTI_NC_LICENSE_ACCEPTED yes
911

1012
# Setup (temporary) ROS workspace
1113
WORKDIR /root/ws_moveit
@@ -18,14 +20,14 @@ COPY . src/moveit2
1820
RUN \
1921
# Update apt package list as previous containers clear the cache
2022
apt-get -q update && \
21-
apt-get -q -y upgrade && \
23+
apt-get -q -y upgrade --with-new-pkgs && \
2224
#
2325
# Install some base dependencies
2426
apt-get -q install --no-install-recommends -y \
2527
# Some basic requirements
2628
wget git sudo curl \
2729
# Preferred build tools
28-
clang clang-format-12 clang-tidy clang-tools \
30+
clang clang-format-14 clang-tidy clang-tools \
2931
ccache && \
3032
#
3133
# Globally disable git security

.docker/release/Dockerfile

+3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ ARG ROS_DISTRO=rolling
55
FROM ros:${ROS_DISTRO}-ros-base
66
LABEL maintainer Robert Haschke [email protected]
77

8+
# Allow non-interactive installation of ros-humble-rmw-connextdds
9+
ENV RTI_NC_LICENSE_ACCEPTED yes
10+
811
# Commands are combined in single RUN statement with "apt/lists" folder removal to reduce image size
912
RUN apt-get update -q && \
1013
apt-get upgrade -q -y && \

.docker/source/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Downloads the moveit source code and install remaining debian dependencies
55

66
ARG ROS_DISTRO=rolling
7-
FROM ghcr.io/ros-planning/moveit2:${ROS_DISTRO}-ci-testing
7+
FROM moveit/moveit2:${ROS_DISTRO}-ci-testing
88
LABEL maintainer Robert Haschke [email protected]
99

1010
# Export ROS_UNDERLAY for downstream docker containers

.github/workflows/ci.yaml

+17-8
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,36 @@ jobs:
2323
ROS_DISTRO: humble
2424
IKFAST_TEST: true
2525
CLANG_TIDY: pedantic
26+
# Silent gmock/gtest warnings by picking more recent googletest version
27+
AFTER_BUILD_UPSTREAM_WORKSPACE: |
28+
git clone --depth 1 --quiet --branch 1.11.9000 https://github.com/ament/googletest "${BASEDIR}/upstream_ws/src/googletest"
29+
builder_run_build "/opt/ros/${ROS_DISTRO}" "${BASEDIR}/upstream_ws" --packages-select gtest_vendor gmock_vendor
2630
env:
2731
CXXFLAGS: >-
2832
-Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls
2933
CLANG_TIDY_ARGS: --fix --fix-errors --format-style=file
30-
DOCKER_IMAGE: ghcr.io/ros-planning/moveit2:${{ matrix.env.IMAGE }}
31-
UPSTREAM_WORKSPACE: moveit2.repos $(f="moveit2_$(sed 's/-.*$//' <<< "${{ matrix.env.IMAGE }}").repos"; test -r $f && echo $f)
34+
DOCKER_IMAGE: moveit/moveit2:${{ matrix.env.IMAGE }}
35+
UPSTREAM_WORKSPACE: >
36+
moveit2.repos
37+
$(f="moveit2_$(sed 's/-.*$//' <<< "${{ matrix.env.IMAGE }}").repos"; test -r $f && echo $f)
3238
# Pull any updates to the upstream workspace (after restoring it from cache)
3339
AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src
40+
# Uninstall binaries that are duplicated in the .repos file
41+
# TODO(andyz): remove this once a sync containing 35b93c8 happens
42+
AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED: sudo apt remove ros-${{ matrix.env.ROS_DISTRO }}-moveit-msgs -y
3443
AFTER_SETUP_DOWNSTREAM_WORKSPACE: vcs pull $BASEDIR/downstream_ws/src
3544
# Clear the ccache stats before and log the stats after the build
3645
AFTER_SETUP_CCACHE: ccache --zero-stats --max-size=10.0G
3746
BEFORE_BUILD_UPSTREAM_WORKSPACE: ccache -z
3847
AFTER_BUILD_TARGET_WORKSPACE: ccache -s
3948
# Changing linker to lld as ld has a behavior where it takes a long time to finish
40-
# Compile CCOV with Debug. Enable -Werror (except CLANG_TIDY=pedantic, which makes the clang-tidy step fail on warnings)
49+
# Compile CCOV with Debug. Enable -Werror.
4150
TARGET_CMAKE_ARGS: >
4251
-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld
4352
-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld
4453
-DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld
4554
-DCMAKE_BUILD_TYPE=${{ matrix.env.CCOV && 'Debug' || 'Release'}}
46-
-DCMAKE_CXX_FLAGS="${{ matrix.env.CLANG_TIDY != 'pedantic' && '-Werror ' || '' }}$CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer'}}"
55+
-DCMAKE_CXX_FLAGS="-Werror $CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer'}}"
4756
UPSTREAM_CMAKE_ARGS: "-DCMAKE_CXX_FLAGS=''"
4857
DOWNSTREAM_CMAKE_ARGS: -DCMAKE_CXX_FLAGS="-Wall -Wextra"
4958
CCACHE_DIR: ${{ github.workspace }}/.ccache
@@ -75,7 +84,7 @@ jobs:
7584
# free up a lot of stuff from /usr/local
7685
sudo rm -rf /usr/local
7786
df -h
78-
- uses: actions/checkout@v3
87+
- uses: actions/checkout@v4
7988
- uses: testspace-com/setup-testspace@v1
8089
if: github.repository == 'ros-planning/moveit2'
8190
with:
@@ -91,7 +100,7 @@ jobs:
91100
with:
92101
file: moveit2.repos
93102
- name: Cache upstream workspace
94-
uses: pat-s/[email protected].1
103+
uses: pat-s/[email protected].11
95104
with:
96105
path: ${{ env.BASEDIR }}/upstream_ws
97106
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
@@ -102,15 +111,15 @@ jobs:
102111
# that comes from the checkout. See "prepare target_ws for cache" task below
103112
- name: Cache target workspace
104113
if: "!matrix.env.CCOV"
105-
uses: pat-s/[email protected].1
114+
uses: pat-s/[email protected].11
106115
with:
107116
path: ${{ env.BASEDIR }}/target_ws
108117
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
109118
restore-keys: ${{ env.CACHE_PREFIX }}
110119
env:
111120
CACHE_PREFIX: target_ws${{ matrix.env.CCOV && '-ccov' || '' }}-${{ matrix.env.IMAGE }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml', '.github/workflows/ci.yaml') }}
112121
- name: Cache ccache
113-
uses: pat-s/[email protected].1
122+
uses: pat-s/[email protected].11
114123
with:
115124
path: ${{ env.CCACHE_DIR }}
116125
key: ${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}

.github/workflows/docker.yaml

+18-19
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,22 @@ jobs:
3131

3232
steps:
3333
- name: Set up Docker Buildx
34-
uses: docker/setup-buildx-action@v2
34+
uses: docker/setup-buildx-action@v3
3535
- name: Login to Github Container Registry
3636
if: env.PUSH == 'true'
37-
uses: docker/login-action@v2
37+
uses: docker/login-action@v3
3838
with:
3939
registry: ghcr.io
4040
username: ${{ github.repository_owner }}
4141
password: ${{ secrets.GITHUB_TOKEN }}
4242
- name: Login to DockerHub
4343
if: env.PUSH == 'true'
44-
uses: docker/login-action@v2
44+
uses: docker/login-action@v3
4545
with:
4646
username: ${{ secrets.DOCKERHUB_USERNAME }}
4747
password: ${{ secrets.DOCKERHUB_TOKEN }}
4848
- name: Build and Push
49-
uses: docker/build-push-action@v3
49+
uses: docker/build-push-action@v5
5050
with:
5151
file: .docker/${{ github.job }}/Dockerfile
5252
build-args: ROS_DISTRO=${{ matrix.ROS_DISTRO }}
@@ -72,22 +72,22 @@ jobs:
7272

7373
steps:
7474
- name: Set up Docker Buildx
75-
uses: docker/setup-buildx-action@v2
75+
uses: docker/setup-buildx-action@v3
7676
- name: Login to Github Container Registry
7777
if: env.PUSH == 'true'
78-
uses: docker/login-action@v2
78+
uses: docker/login-action@v3
7979
with:
8080
registry: ghcr.io
8181
username: ${{ github.repository_owner }}
8282
password: ${{ secrets.GITHUB_TOKEN }}
8383
- name: Login to DockerHub
8484
if: env.PUSH == 'true'
85-
uses: docker/login-action@v2
85+
uses: docker/login-action@v3
8686
with:
8787
username: ${{ secrets.DOCKERHUB_USERNAME }}
8888
password: ${{ secrets.DOCKERHUB_TOKEN }}
8989
- name: Build and Push
90-
uses: docker/build-push-action@v3
90+
uses: docker/build-push-action@v5
9191
with:
9292
file: .docker/${{ github.job }}/Dockerfile
9393
build-args: ROS_DISTRO=${{ matrix.ROS_DISTRO }}
@@ -98,7 +98,6 @@ jobs:
9898
${{ env.DH_IMAGE }}
9999
100100
ci-testing:
101-
needs: ci
102101
strategy:
103102
fail-fast: false
104103
matrix:
@@ -114,25 +113,25 @@ jobs:
114113

115114
steps:
116115
- name: Set up Docker Buildx
117-
uses: docker/setup-buildx-action@v2
116+
uses: docker/setup-buildx-action@v3
118117
- name: Login to Github Container Registry
119118
if: env.PUSH == 'true'
120-
uses: docker/login-action@v2
119+
uses: docker/login-action@v3
121120
with:
122121
registry: ghcr.io
123122
username: ${{ github.repository_owner }}
124123
password: ${{ secrets.GITHUB_TOKEN }}
125124
- name: Login to DockerHub
126125
if: env.PUSH == 'true'
127-
uses: docker/login-action@v2
126+
uses: docker/login-action@v3
128127
with:
129128
username: ${{ secrets.DOCKERHUB_USERNAME }}
130129
password: ${{ secrets.DOCKERHUB_TOKEN }}
131130
- name: Build and Push
132-
uses: docker/build-push-action@v3
131+
uses: docker/build-push-action@v5
133132
with:
134133
file: .docker/${{ github.job }}/Dockerfile
135-
build-args: ROS_DISTRO=${{ matrix.ROS_DISTRO }}
134+
build-args: OUR_ROS_DISTRO=${{ matrix.ROS_DISTRO }}
136135
push: ${{ env.PUSH }}
137136
no-cache: true
138137
tags: |
@@ -155,26 +154,26 @@ jobs:
155154
PUSH: ${{ (github.event_name != 'pull_request') && (github.repository == 'ros-planning/moveit2') }}
156155

157156
steps:
158-
- uses: actions/checkout@v3
157+
- uses: actions/checkout@v4
159158
- name: Set up Docker Buildx
160-
uses: docker/setup-buildx-action@v2
159+
uses: docker/setup-buildx-action@v3
161160
- name: Login to Github Container Registry
162161
if: env.PUSH == 'true'
163-
uses: docker/login-action@v2
162+
uses: docker/login-action@v3
164163
with:
165164
registry: ghcr.io
166165
username: ${{ github.repository_owner }}
167166
password: ${{ secrets.GITHUB_TOKEN }}
168167
- name: Login to DockerHub
169168
if: env.PUSH == 'true'
170-
uses: docker/login-action@v2
169+
uses: docker/login-action@v3
171170
with:
172171
username: ${{ secrets.DOCKERHUB_USERNAME }}
173172
password: ${{ secrets.DOCKERHUB_TOKEN }}
174173
- name: "Remove .dockerignore"
175174
run: rm .dockerignore # enforce full source context
176175
- name: Build and Push
177-
uses: docker/build-push-action@v3
176+
uses: docker/build-push-action@v5
178177
with:
179178
context: .
180179
file: .docker/${{ github.job }}/Dockerfile

.github/workflows/docker_lint.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
name: Lint Dockerfiles
2222
runs-on: ubuntu-latest
2323
steps:
24-
- uses: actions/checkout@v3
25-
- uses: hadolint/hadolint-action@v2.1.0
24+
- uses: actions/checkout@v4
25+
- uses: hadolint/hadolint-action@v3.1.0
2626
with:
2727
dockerfile: .docker/${{ matrix.DOCKERFILE_PATH }}/Dockerfile
2828
config: .docker/.hadolint.yaml

.github/workflows/format.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ jobs:
1515
name: Format
1616
runs-on: ubuntu-22.04
1717
steps:
18-
- uses: actions/checkout@v3
19-
- uses: actions/setup-python@v4
18+
- uses: actions/checkout@v4
19+
- uses: actions/setup-python@v5
2020
with:
2121
python-version: '3.10'
2222
- name: Install clang-format-12

.github/workflows/prerelease.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ jobs:
2121
name: "${{ matrix.distro }}"
2222
runs-on: ubuntu-latest
2323
steps:
24-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@v4
2525
- name: industrial_ci
2626
uses: ros-industrial/industrial_ci@master

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ qtcreator-*
5151
# Vim
5252
*.swp
5353

54-
# Continous Integration
54+
# Continuous Integration
5555
.moveit_ci
5656

5757
*.pyc

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ repos:
4242
- id: clang-format
4343
name: clang-format
4444
description: Format files with ClangFormat.
45-
entry: clang-format-12
45+
entry: clang-format-14
4646
language: system
4747
files: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|proto|vert)$
4848
args: ['-fallback-style=none', '-i']

Doxyfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2081,7 +2081,7 @@ TAGFILES =
20812081
# tag file that is based on the input files it reads. See section "Linking to
20822082
# external documentation" for more information about the usage of tag files.
20832083

2084-
GENERATE_TAGFILE =
2084+
GENERATE_TAGFILE = $(DOXYGEN_OUTPUT_DIRECTORY)/MoveIt.tag
20852085

20862086
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
20872087
# the class index. If set to NO, only the inherited external classes will be

0 commit comments

Comments
 (0)