Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .docker/ros/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ RUN pip3 install \
"viser>=1.0.1"

# Create a ROS 2 workspace and copy in the source code.
RUN mkdir -p /workspace/roboplan_ws/src/roboplan
RUN mkdir -p /workspace/roboplan_ws/src/roboplan \
&& git config --global --add safe.directory /workspace/roboplan_ws/src/roboplan
WORKDIR /workspace/roboplan_ws
COPY . src/roboplan

Expand Down
3 changes: 2 additions & 1 deletion .docker/ubuntu/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ RUN PIP_PATH="$(pip3 show pin | grep "Location:" | cut -d' ' -f2)/cmeel.prefix"
echo "export CMAKE_PREFIX_PATH=${PIP_PATH}:\${CMAKE_PREFIX_PATH}" >> /roboplan_env.sh

# Create a workspace and copy in the source code.
RUN mkdir -p /roboplan_ws
RUN mkdir -p /roboplan_ws \
&& git config --global --add safe.directory /roboplan_ws
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there something running in the images that needs this? If not maybe we should just add a .git/* to the Dockerignore so that it isn't copied into the workspace in the container?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a much better option.

Basically I went through a few iterations on where to run this CI check, and without these Dockerfile changes running git commands in the containers failed.

But since we're doing it in the Pixi job now...

WORKDIR /roboplan_ws
COPY . /roboplan_ws

Expand Down
17 changes: 13 additions & 4 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,19 @@ jobs:
manifest-path: pixi.toml
- name: Build and test
run: |
pixi run install_all
pixi run build_tests
pixi run test_all
pixi run -e ci install_all
pixi run -e ci build_tests
pixi run -e ci test_all
- name: Check bindings stub files
run: |
if ! git diff --exit-code --shortstat -- 'bindings/src/roboplan/roboplan_ext/*.pyi'; then
echo "::error::The .pyi stub files are out of sync with the source code. Make sure to rebuild the Python bindings without symlink builds using 'pixi run -e ci install_all' and commit the changes."
echo "Git Diff:"
git diff -- 'bindings/src/roboplan/roboplan_ext/*.pyi'
exit 1
fi
echo "✅ .pyi stub files look good!"
# TODO: Decide on a method for automated benchmark performance testing.
- name: Run benchmarks
run: |
pixi run test_benchmarks
pixi run -e ci test_benchmarks
2 changes: 1 addition & 1 deletion bindings/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ if(GENERATE_PYTHON_STUBS)
DESTINATION "${PYTHON_STUB_INSTALL_DIR}"
# Copy the stub files to the source folder for docs and versioning.
# For now, this step has to be run manually when submitting changes.
# It might be good to make a CI action that generates this and finds mismatches,
# There is a CI action that generates this and finds mismatches,
# prompting the user to regenerate it on their own.
DESTINATION "${CMAKE_SOURCE_DIR}/src/roboplan"
)
Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/core.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Core roboplan module"""

from collections.abc import Sequence
import enum
import os
Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/example_models.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Example models"""

import pathlib


Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/optimal_ik.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Optimal IK solver module"""

from collections.abc import Sequence
from typing import Annotated

Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/rrt.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""RRT module"""

from typing import Annotated

import numpy
Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/simple_ik.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Simple IK solver module"""

from collections.abc import Sequence
from typing import overload

Expand Down
2 changes: 2 additions & 0 deletions bindings/src/roboplan/roboplan_ext/toppra.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""TOPP-RA module"""

import roboplan_ext.core


Expand Down
8,177 changes: 3,293 additions & 4,884 deletions pixi.lock

Large diffs are not rendered by default.

9 changes: 8 additions & 1 deletion pixi.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@ platforms = ["linux-64", "linux-aarch64"]
version = "0.2.0"

[activation.env]
CMAKE_INSTALL_MODE = "SYMLINK"
CMAKE_INSTALL_PREFIX = "$CONDA_PREFIX"
LD_LIBRARY_PATH = "$CONDA_PREFIX/lib"
ASAN_OPTIONS = "symbolize=1:print_stacktrace=1"
ASAN_SYMBOLIZER_PATH = "$CONDA_PREFIX/bin/llvm-symbolizer"

[feature.local.activation.env]
CMAKE_INSTALL_MODE = "SYMLINK"

[feature.ci.activation.env]
CMAKE_INSTALL_MODE = "COPY"

[tasks]
configure = { cmd = [
"cmake",
Expand Down Expand Up @@ -265,4 +270,6 @@ pre-commit = ">=4.1.0,<5"
lint = "pre-commit run --all-files"

[environments]
default = { features = ["local"] }
ci = { features = ["ci"] }
lint = { features = ["lint"], no-default-feature = true }
Loading