Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
7f20936
remove duplicated EIGENPY_STRINGIZE macro
ahoarau Dec 11, 2025
549b608
update pre-commit and switch to gersemi
ahoarau Dec 11, 2025
81e261e
update clang-format to c++17
ahoarau Dec 11, 2025
5874a30
fwd.hpp: remove space in user-defined litteral
ahoarau Dec 11, 2025
60a54f3
ignore more stuff
ahoarau Dec 11, 2025
d42b9c1
add gersemi config
ahoarau Dec 11, 2025
312763a
remove submodules
ahoarau Dec 11, 2025
059da3d
rename main.cpp to bindings.cpp
ahoarau Dec 11, 2025
5adbf24
remove custom python init file
ahoarau Dec 11, 2025
9908328
update pixi.toml tasks
ahoarau Dec 11, 2025
d7af6b4
separate cpp and python tests, and generate variants
ahoarau Dec 11, 2025
35de66a
rewrite CMake files with JRL CMake Modules v2
ahoarau Dec 11, 2025
5d164fc
intregrate get-jrl-cmakemodules.cmake
ahoarau Dec 12, 2025
d604ed4
update jrl url to point to fork
ahoarau Dec 15, 2025
fc11590
require jrl-cmakemodules version 2.0.0
ahoarau Dec 16, 2025
eb8e0eb
include stubs pyi files in the installation
ahoarau Dec 16, 2025
27e85e9
ros-ci: add verbosity
ahoarau Dec 17, 2025
30ccdc6
changelog: add jrl v2 entry
ahoarau Dec 17, 2025
b2b7595
add Copyright 2025-2026 Inria
ahoarau Dec 17, 2025
ffe5844
remove the boost 1.90 restriction
ahoarau Dec 17, 2025
170308b
remove unused options
ahoarau Dec 17, 2025
72f9f04
put back the CNRS copyright
ahoarau Dec 21, 2025
205295f
update get-jrl-cmakemodules to display debug info
ahoarau Dec 21, 2025
59efc96
ci: upgrade ci workflows
ahoarau Dec 21, 2025
17963a6
unittests: fix pythonpath
ahoarau Dec 22, 2025
1852b48
ci: use ${{ github.workspace }}
ahoarau Dec 22, 2025
4f5a84f
ci: make check depends on eigenpy-pixi-build
ahoarau Dec 22, 2025
09f2631
c: add check configs
ahoarau Dec 23, 2025
b53525e
ci: change default path
ahoarau Dec 23, 2025
6fff451
pixi.toml: remove cmake profiling
ahoarau Jan 6, 2026
64f62d7
ci: enable ros ci cache and prerelease
ahoarau Jan 6, 2026
b34124c
rosci: configure cache
ahoarau Jan 8, 2026
f420c92
cmake: set min to 3.22
ahoarau Jan 9, 2026
724f8c2
cmake: use jrl_find_python
ahoarau Jan 9, 2026
2baa633
cmake: generate stubs with GENERATE_PYTHON_STUBS condition
ahoarau Jan 9, 2026
28dc5e5
cmake: install missing EigenBase header
ahoarau Jan 9, 2026
ff51aa9
ci: disable nix tmp
ahoarau Jan 9, 2026
4b7821e
gersemi: add back specific definitions
ahoarau Jan 9, 2026
01e2991
cmake: remove extra pythonpath
ahoarau Jan 9, 2026
573bcc6
cmake: reformat with updated gersemirc
ahoarau Jan 9, 2026
249b1a0
ci: disable pixi explicit cache
ahoarau Jan 9, 2026
48ce4cc
ci: build verbose and limit to 2 cpu
ahoarau Jan 9, 2026
6a01c3e
ci: relax pixi cache
ahoarau Jan 9, 2026
b94ffa8
ci: enable testing
ahoarau Jan 9, 2026
0d9741a
ci: build in debug
ahoarau Jan 9, 2026
da844df
ci: update cache keys
ahoarau Jan 9, 2026
f151f08
cmake: replace jrl_find_package with jrl_check_python_module for scipy
ahoarau Jan 10, 2026
d1241ee
generate generated tests in the build folder
ahoarau Jan 11, 2026
9628762
remove clang-format ignore
ahoarau Jan 11, 2026
98ae5ce
cmake: update jrl_boostpy_add_stubs api
ahoarau Jan 12, 2026
e3d23c6
cmake: add jrl_generate_ros2_package_files
ahoarau Jan 13, 2026
6544185
cmake: generate ros2 python package files with condiition
ahoarau Jan 13, 2026
4ebf088
ci: apt update before install
ahoarau Feb 6, 2026
c33697e
ci: apt update before install
ahoarau Feb 6, 2026
e001ff1
rosci: do not use prerelease
ahoarau Feb 9, 2026
a209454
cmake: update the get-jrl messages
ahoarau Feb 11, 2026
d4e8638
cmake: require jrl >=1.2 to get the jrl-v2
ahoarau Feb 16, 2026
7aef6ae
cmake: update python and nanobind min required
ahoarau Feb 16, 2026
075eed2
pixi: update min python version
ahoarau Feb 16, 2026
ef90a26
pixi: add cxx-compiler to pixi-build feature
ahoarau Feb 17, 2026
8db72f6
cmake: include project version in config header generation
ahoarau Feb 20, 2026
82e628b
pixi: update lock file
ahoarau Mar 18, 2026
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
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
BasedOnStyle: Google
SortIncludes: false
Standard: Cpp11
Standard: c++17
4 changes: 4 additions & 0 deletions .gersemirc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
definitions: [./CMakeLists.txt, ./unittest, ./python]
line_length: 100
indent: 2
warn_about_unknown_commands: false
72 changes: 44 additions & 28 deletions .github/workflows/jrl-cmakemodules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,62 @@ on:
branches:
- devel
paths-ignore:
- 'doc/**'
- '.gitlab-ci.yml'
- '.gitignore'
- '*.md'
- 'LICENSE'
- 'colcon.pkg'
- '.pre-commit-config.yaml'
- "doc/**"
- ".gitlab-ci.yml"
- ".gitignore"
- "*.md"
- "LICENSE"
- "colcon.pkg"
- ".pre-commit-config.yaml"
pull_request:
paths-ignore:
- 'doc/**'
- '.gitlab-ci.yml'
- '.gitignore'
- '*.md'
- 'LICENSE'
- 'colcon.pkg'
- '.pre-commit-config.yaml'
- "doc/**"
- ".gitlab-ci.yml"
- ".gitignore"
- "*.md"
- "LICENSE"
- "colcon.pkg"
- ".pre-commit-config.yaml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
with-submodules:
name: Check configuration with git submodules
standard-config:
name: Use standard configuration (fetchcontent)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- run: sudo apt install libboost-all-dev libeigen3-dev python3-numpy python3-scipy
- run: cmake .

- run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libeigen3-dev python3-numpy python3-scipy
- run: cmake -B build -S .

without-submodules:
name: Check configuration without git submodules
local-config:
name: Use JRL_CMAKEMODULES_SOURCE_DIR on the cmd line
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: false
path: eigenpy
- run: sudo apt install libboost-all-dev libeigen3-dev python3-numpy python3-scipy
- run: cmake -B build -S eigenpy
- run: grep -qvz CMAKE_PROJECT_VERSION:STATIC=0.0 build/CMakeCache.txt
repository: ahoarau/jrl-cmakemodules
ref: jrl-next
path: ${{ github.workspace }}/jrl-cmakemodules
- uses: actions/checkout@v6
with:
path: ${{ github.workspace }}/eigenpy
- run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libeigen3-dev python3-numpy python3-scipy
- run: cmake -B build -S ${{ github.workspace }}/eigenpy -DJRL_CMAKEMODULES_SOURCE_DIR="${{ github.workspace }}/jrl-cmakemodules"

check:
if: always()
name: Check JRL Configs

needs:
- standard-config
- local-config

runs-on: Ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
95 changes: 61 additions & 34 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -1,63 +1,90 @@
name: CI - Linux via APT
name: CI - Linux (APT)

on:
push:
branches:
- devel
paths-ignore:
- 'doc/**'
- '.gitlab-ci.yml'
- '.gitignore'
- '*.md'
- 'LICENSE'
- 'colcon.pkg'
- '.pre-commit-config.yaml'
- "doc/**"
- ".gitlab-ci.yml"
- ".gitignore"
- "*.md"
- "LICENSE"
- "colcon.pkg"
- ".pre-commit-config.yaml"
pull_request:
paths-ignore:
- 'doc/**'
- '.gitlab-ci.yml'
- '.gitignore'
- '*.md'
- 'LICENSE'
- 'colcon.pkg'
- '.pre-commit-config.yaml'
- "doc/**"
- ".gitlab-ci.yml"
- ".gitignore"
- "*.md"
- "LICENSE"
- "colcon.pkg"
- ".pre-commit-config.yaml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: "Test python ${{ matrix.python }} on ${{ matrix.ubuntu }}.04"
runs-on: "ubuntu-${{ matrix.ubuntu }}.04"
ubuntu:
name: CI - ${{ matrix.os }} - ${{ matrix.build_type }} (APT)
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python: [3]
ubuntu: [22, 24]
os: [ubuntu-22.04, ubuntu-24.04]
build_type: [Release, Debug]
env:
CCACHE_BASEDIR: ${{ github.workspace }}
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
steps:
- uses: actions/checkout@v6
- name: Setup ccache
uses: actions/cache@v4
with:
submodules: 'true'
- run: |
sudo apt-get update
sudo apt-get install cmake libboost-all-dev libeigen3-dev python*-numpy python*-dev python*-scipy
echo $(sudo apt list --installed)
echo $(g++ --version)
- run: cmake . -DPYTHON_EXECUTABLE=$(which python${{ matrix.python }}) -DBUILD_TESTING_SCIPY=ON
- run: make -j2
- run: ctest --output-on-failure
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ matrix.os }}-${{ matrix.build_type }}-${{ github.sha }}
restore-keys: ccache-${{ matrix.os }}-${{ matrix.build_type }}-

- name: Update APT repositories
run: sudo apt-get update

- name: Install dependencies via APT
run: sudo apt-get install -y cmake ninja-build ccache libboost-all-dev libeigen3-dev python3-numpy python3-dev python3-scipy

- name: Clear ccache stats
run: ccache --show-stats --zero-stats --verbose

- name: CMake Configure
run: /usr/bin/cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DBUILD_TESTING_SCIPY=ON

- name: CMake Build
run: /usr/bin/cmake --build build --verbose --parallel 2

- name: Show ccache stats
run: ccache --show-stats --verbose

- name: CTest
run: /usr/bin/ctest --test-dir build --output-on-failure

- name: CMake Install
run: /usr/bin/cmake --install build --prefix install

check:
if: always()
name: check-linux

needs:
- test
- ubuntu

runs-on: Ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
36 changes: 20 additions & 16 deletions .github/workflows/macos-linux-windows-pixi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ concurrency:

jobs:
eigenpy-pixi:
name: Standard - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.cxx_options }} ${{ matrix.compiler }}
name: Pixi - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }} ${{ matrix.cxx_options }}
runs-on: ${{ matrix.os }}
env:
CCACHE_BASEDIR: "${GITHUB_WORKSPACE}"
CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache"
CCACHE_BASEDIR: ${{ github.workspace }}
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6
# Since pixi will install a compiler, the compiler mtime will be changed.
Expand Down Expand Up @@ -64,35 +64,41 @@ jobs:

steps:
- uses: actions/checkout@v6
with:
submodules: recursive

- uses: actions/cache@v5
with:
path: .ccache
key: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}-${{ github.sha }}
restore-keys: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}-
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ matrix.os }}-${{ matrix.build_type }}-${{ github.sha }}
restore-keys: ccache-${{ matrix.os }}-${{ matrix.build_type }}-

- uses: prefix-dev/setup-pixi@v0.9.4
with:
cache: true
environments: ${{ matrix.environment }}

- name: Clear ccache statistics [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} ccache -z
pixi run -e ${{ matrix.environment }} ccache --show-stats --zero-stats --verbose

- name: Build EigenPy [MacOS/Linux/Windows]
- name: Configure EigenPy [MacOS/Linux/Windows]
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
EIGENPY_BUILD_TYPE: ${{ matrix.build_type }}
EIGENPY_CXX_FLAGS: ${{ matrix.cxx_options }}
run: |
pixi run -e ${{ matrix.environment }} configure

- name: Build EigenPy [MacOS/Linux/Windows]
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
run: |
pixi run -e ${{ matrix.environment }} build --verbose --parallel 2

- name: Test EigenPy [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} test

- name: Show ccache statistics [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} ccache -sv
pixi run -e ${{ matrix.environment }} ccache --show-stats --verbose

eigenpy-pixi-build:
name: Pixi build - ${{ matrix.os }}
Expand All @@ -105,14 +111,11 @@ jobs:

steps:
- uses: actions/checkout@v6
with:
submodules: recursive

- uses: prefix-dev/setup-pixi@v0.9.4
env:
CMAKE_BUILD_PARALLEL_LEVEL: 2
with:
cache: true
environments: test-pixi-build

- name: Test package [MacOS/Linux/Windows]
Expand All @@ -125,6 +128,7 @@ jobs:

needs:
- eigenpy-pixi
- eigenpy-pixi-build

runs-on: Ubuntu-latest

Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ concurrency:

jobs:
nix:
# ⚠️ temporarly disable the Nix job ⚠️
if: false

runs-on: "${{ matrix.os }}-latest"
strategy:
fail-fast: false
Expand All @@ -27,7 +30,10 @@ jobs:
- run: nix build -L ".#eigenpy${{ matrix.eigen }}"

check:
if: always()
# ⚠️ temporarly disable the Nix job ⚠️
if: false
# if: always()

name: check-macos-linux-nix

needs:
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/reloc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ jobs:

steps:
- uses: actions/checkout@v6
with:
submodules: recursive

- uses: actions/cache@v5
with:
Expand All @@ -50,10 +48,10 @@ jobs:
run: sudo mkdir -p /RELOC/SRC && sudo chown -R $(id -un) /RELOC

- name: clone in /RELOC/SRC
run: git -C /RELOC/SRC clone --recursive $(pwd)
run: git -C /RELOC/SRC clone $(pwd)

- name: install dependencies
run: sudo apt install libboost-all-dev libeigen3-dev python-is-python3 python3-numpy python3-pip python3-scipy ccache
run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libeigen3-dev python-is-python3 python3-numpy python3-pip python3-scipy ccache

- name: update CMake
run: pip install -U pip && pip install -U cmake
Expand Down
Loading
Loading