Skip to content

Commit

Permalink
Merge branch 'master' into rework-python-api
Browse files Browse the repository at this point in the history
  • Loading branch information
rhaschke committed Jan 10, 2023
2 parents cf23150 + a266089 commit 0d4248a
Show file tree
Hide file tree
Showing 322 changed files with 6,645 additions and 3,891 deletions.
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Checks: '-*,
modernize-loop-convert,
modernize-make-shared,
modernize-make-unique,
modernize-avoid-bind,
misc-unused-parameters,
readability-named-parameter,
readability-redundant-smartptr-get,
Expand Down
10 changes: 5 additions & 5 deletions .docker/ci-testing/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# moveit/moveit:noetic-ci-shadow-fixed
# moveit/moveit:noetic-ci-testing
# Sets up a base image to use for running Continuous Integration on Travis

ARG IMAGE=noetic
FROM moveit/moveit:${IMAGE}-ci
MAINTAINER Robert Haschke [email protected]

# Switch to ros-shadow-fixed
RUN echo "deb http://packages.ros.org/ros-shadow-fixed/ubuntu `lsb_release -cs` main" | tee /etc/apt/sources.list.d/ros-latest.list
# Switch to ros-testing
RUN echo "deb http://packages.ros.org/ros-testing/ubuntu `lsb_release -cs` main" | tee /etc/apt/sources.list.d/ros1-latest.list

# Upgrade packages to ros-shadow-fixed and clean apt-cache within one RUN command
# Upgrade packages to ros-testing and clean apt-cache within one RUN command
RUN apt-get -qq update && \
apt-get -qq dist-upgrade && \
apt-get -qq -y dist-upgrade && \
#
# Clear apt-cache to reduce image size
rm -rf /var/lib/apt/lists/*
5 changes: 4 additions & 1 deletion .docker/ci/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,10 @@ RUN \
rm -rf src && \
#
# Clear apt-cache to reduce image size
rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/apt/lists/* && \
# Globally disable git security
# https://github.blog/2022-04-12-git-security-vulnerability-announced
git config --global --add safe.directory "*"

# Continous Integration Setting
ENV IN_DOCKER 1
17 changes: 17 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "🛠️"
ignore:
# Official actions have moving tags like v1, v2, ... They don't need updates to specific versions
- dependency-name: "actions/checkout"
- dependency-name: "actions/setup-python"
- dependency-name: "actions/cache"
- dependency-name: "actions/upload-artifact"
- dependency-name: "actions/download-artifact"
- dependency-name: "actions/labeler"
42 changes: 27 additions & 15 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ on:
branches:
- master

permissions:
contents: read # to fetch code (actions/checkout)

concurrency: # cancel any previous workflow(s) from the same PR or branch/tag
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
default:
strategy:
Expand All @@ -19,15 +26,14 @@ jobs:
- IMAGE: noetic-ci
CCOV: true
BUILDER: catkin_tools_devel
- IMAGE: noetic-ci-shadow-fixed
- IMAGE: noetic-ci-testing
IKFAST_TEST: true
CATKIN_LINT: true
CLANG_TIDY: pedantic
- IMAGE: master-ci # ROS Melodic with all dependencies required for master
CATKIN_LINT: true
env:
CXXFLAGS: >-
-Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls
CXXFLAGS: -Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls
CLANG_TIDY_ARGS: --fix --fix-errors --format-style=file
DOCKER_IMAGE: moveit/moveit:${{ matrix.env.IMAGE }}
UPSTREAM_WORKSPACE: .github/workflows/upstream.rosinstall
Expand All @@ -40,10 +46,10 @@ jobs:
AFTER_SETUP_CCACHE: ccache --zero-stats --max-size=10.0G
AFTER_BUILD_TARGET_WORKSPACE: ccache --show-stats
AFTER_BUILD_DOWNSTREAM_WORKSPACE: ccache --show-stats
# Compile CCOV with Debug. Enable -Werror (except CLANG_TIDY=pedantic, which makes the clang-tidy step fail on warnings)
# Compile CCOV with Debug. Enable -Werror.
TARGET_CMAKE_ARGS: >
-DCMAKE_BUILD_TYPE=${{ matrix.env.CCOV && 'Debug' || 'Release'}}
-DCMAKE_CXX_FLAGS="${{ matrix.env.CLANG_TIDY != 'pedantic' && '-Werror ' || '' }}$CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer'}}"
-DCMAKE_CXX_FLAGS="-Werror $CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer'}}"
UPSTREAM_CMAKE_ARGS: "-DCMAKE_CXX_FLAGS=''"
DOWNSTREAM_CMAKE_ARGS: -DCMAKE_CXX_FLAGS="-Wall -Wextra"
CCACHE_DIR: ${{ github.workspace }}/.ccache
Expand All @@ -59,7 +65,7 @@ jobs:
CXX: ${{ matrix.env.CLANG_TIDY && 'clang++' }}

name: "${{ matrix.env.IMAGE }}${{ matrix.env.CATKIN_LINT && ' + catkin_lint' || ''}}${{ matrix.env.CCOV && ' + ccov' || ''}}${{ matrix.env.IKFAST_TEST && ' + ikfast' || ''}}${{ matrix.env.CLANG_TIDY && (github.event_name != 'workflow_dispatch' && ' + clang-tidy (delta)' || ' + clang-tidy (all)') || '' }}"
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- name: "Free up disk space"
if: matrix.env.CCOV
Expand All @@ -75,43 +81,47 @@ jobs:
# free up a lot of stuff from /usr/local
sudo rm -rf /usr/local
df -h
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Cache upstream workspace
uses: pat-s/always-upload-cache@v2.1.5
uses: rhaschke/cache@main
with:
path: ${{ env.BASEDIR }}/upstream_ws
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
restore-keys: ${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: upstream_ws-${{ matrix.env.IMAGE }}-${{ hashFiles('.github/workflows/upstream.rosinstall', '.github/workflows/ci.yaml') }}
- name: Cache downstream workspace
uses: pat-s/always-upload-cache@v2.1.5
uses: rhaschke/cache@main
with:
path: ${{ env.BASEDIR }}/downstream_ws
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
restore-keys: ${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: downstream_ws-${{ matrix.env.IMAGE }}-${{ hashFiles('.github/workflows/downstream.rosinstall', '.github/workflows/ci.yaml') }}
# The target directory cache doesn't include the source directory because
# that comes from the checkout. See "prepare target_ws for cache" task below
- name: Cache target workspace
if: "!matrix.env.CCOV"
uses: pat-s/always-upload-cache@v2.1.5
uses: rhaschke/cache@main
with:
path: ${{ env.BASEDIR }}/target_ws
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
restore-keys: ${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: target_ws${{ matrix.env.CCOV && '-ccov' || '' }}-${{ matrix.env.IMAGE }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml', '.github/workflows/ci.yaml') }}
- name: Cache ccache
uses: pat-s/always-upload-cache@v2.1.5
uses: rhaschke/cache@main
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ env.CACHE_PREFIX }}-${{ github.sha }}
${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: ccache-${{ matrix.env.IMAGE }}${{ matrix.env.CCOV && '-ccov' || '' }}

- name: Generate ikfast packages
Expand All @@ -123,7 +133,7 @@ jobs:
env: ${{ matrix.env }}

- name: Upload test artifacts (on failure)
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: failure() && (steps.ici.outputs.run_target_test || steps.ici.outputs.target_test_results)
with:
name: test-results-${{ matrix.env.IMAGE }}
Expand All @@ -136,7 +146,7 @@ jobs:
workdir: ${{ env.BASEDIR }}/target_ws
ignore: '"*/target_ws/build/*" "*/target_ws/install/*" "*/test/*"'
- name: Upload codecov report
uses: codecov/codecov-action@v2
uses: codecov/codecov-action@v3
if: always() && matrix.env.CCOV && steps.ici.outputs.target_test_results == '0'
with:
files: ${{ env.BASEDIR }}/target_ws/coverage.info
Expand All @@ -151,16 +161,18 @@ jobs:
run: |
du -sh ${{ env.BASEDIR }}/target_ws
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src ${{ env.BASEDIR }}/target_ws/logs
du -sh ${{ env.BASEDIR }}/target_ws
# Sync noetic-devel branch with master on successful build
sync-noetic-devel:
runs-on: ubuntu-latest
needs: default # only trigger on success of default build job
if: github.event_name == 'push' && github.repository_owner == 'ros-planning' && github.ref == 'refs/heads/master'
permissions:
contents: write # allow pushing
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Fast-forward noetic-devel to sync with master
run: |
# Configure push user+url
Expand Down
36 changes: 20 additions & 16 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ on:
branches:
- master

concurrency: # cancel any previous workflow(s) from the same PR or branch/tag
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
release:
strategy:
Expand All @@ -32,17 +36,17 @@ jobs:
run: |
apt-get update
have_updates=$(apt-get --simulate upgrade | grep -q "^0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.$" && echo false || echo true)
echo "::set-output name=no_cache::$have_updates"
echo "no_cache=$have_updates" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
- name: Login to Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
with:
file: .docker/${{ github.job }}/Dockerfile
Expand Down Expand Up @@ -76,17 +80,17 @@ jobs:
run: |
apt-get update
have_updates=$(apt-get --simulate upgrade | grep -q "^0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.$" && echo false || echo true)
echo "::set-output name=no_cache::$have_updates"
echo "no_cache=$have_updates" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
- name: Login to Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
with:
file: .docker/${{ github.job }}/Dockerfile
Expand Down Expand Up @@ -120,17 +124,17 @@ jobs:
run: |
apt-get update
have_updates=$(apt-get --simulate upgrade | grep -q "^0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.$" && echo false || echo true)
echo "::set-output name=no_cache::$have_updates"
echo "no_cache=$have_updates" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
- name: Login to Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
if: ${{ github.event_name == 'workflow_dispatch' || github.event_name != 'schedule' || steps.apt.outputs.no_cache }}
with:
file: .docker/${{ github.job }}/Dockerfile
Expand All @@ -157,18 +161,18 @@ jobs:
IMAGE: moveit/moveit:${{ matrix.IMAGE }}-${{ github.job }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
- name: Login to Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: "Remove .dockerignore"
run: rm .dockerignore # enforce full source context
- name: Build and Push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: .
file: .docker/${{ github.job }}/Dockerfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/downstream.rosinstall
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
- git:
local-name: panda_moveit_config
uri: https://github.com/ros-planning/panda_moveit_config.git
version: melodic-devel
version: noetic-devel
10 changes: 6 additions & 4 deletions .github/workflows/format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ on:
pull_request:
push:

permissions:
contents: read # to fetch code (actions/checkout)

jobs:
pre-commit:
name: pre-commit
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- name: Install clang-format-10
run: sudo apt-get install clang-format-10
- uses: rhaschke/[email protected]
- uses: pre-commit/action@v2.0.3
- uses: pre-commit/action@v3.0.0
id: precommit
- name: Upload pre-commit changes
if: failure() && steps.precommit.outcome == 'failure'
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/prerelease.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ name: pre-release
on:
workflow_dispatch:

permissions:
contents: read # to fetch code (actions/checkout)

jobs:
default:
strategy:
Expand All @@ -32,6 +35,6 @@ jobs:
# free up a lot of stuff from /usr/local
sudo rm -rf /usr/local
df -h
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: industrial_ci
uses: ros-industrial/industrial_ci@master
4 changes: 2 additions & 2 deletions .github/workflows/robostack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Set up Build Dependencies
uses: mamba-org/provision-with-micromamba@v11
uses: mamba-org/provision-with-micromamba@v14
with:
environment-file: .github/robostack_env.yaml
micromamba-version: 0.17.0
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/upstream.rosinstall
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@
local-name: geometric_shapes
uri: https://github.com/ros-planning/geometric_shapes.git
version: noetic-devel
- git:
local-name: srdfdom
uri: https://github.com/ros-planning/srdfdom
version: noetic-devel
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ repos:
- id: trailing-whitespace

- repo: https://github.com/psf/black
rev: 20.8b1
rev: 22.3.0
hooks:
- id: black

Expand Down
4 changes: 4 additions & 0 deletions MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ API changes in MoveIt releases
- In case you start RViz in a namespace, the default topic for the trajectory visualization display now uses the relative instead of the absolute namespace (i.e. `<ns>/move_group/display_planned_path` instead of `/move_group/display_planned_path`).
- `RobotState::attachBody()` now takes a unique_ptr instead of an owning raw pointer.
- Moved the class `MoveItErrorCode` from both `moveit_ros_planning` and `moveit_ros_planning_interface` to `moveit_core`. The class now is in namespace `moveit::core`, access via `moveit::planning_interface` or `moveit_cpp::PlanningComponent` is deprecated.
- End-effector markers in rviz are shown only if the eef's parent group is active _and_ the parent link is part of that group. Before, these conditions were _OR_-connected.
You might need to define additional end-effectors.
- Removed `ConstraintSampler::project()` as there was no real difference to `sample()`.
- Removed `TrajectoryExecutionManager::pushAndExecute()` and the code associated to it. The code was unused and broken.
- Thoroughly reworked Python API
- Migrated C++ wrapper to pybind11, renaming libs to pymoveit_*.so
- Moved `py_bindings_tools` from `moveit_ros_planning_interface` to `moveit_core`
Expand Down
Loading

0 comments on commit 0d4248a

Please sign in to comment.