Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
742bb6b
remove duplicated EIGENPY_STRINGIZE macro
ahoarau Dec 11, 2025
36ffad5
update pre-commit and switch to gersemi
ahoarau Dec 11, 2025
e61a294
update clang-format to c++17
ahoarau Dec 11, 2025
5f6ba78
fwd.hpp: remove space in user-defined litteral
ahoarau Dec 11, 2025
98b92f1
ignore more stuff
ahoarau Dec 11, 2025
77f3469
add gersemi config
ahoarau Dec 11, 2025
f6c9797
remove submodules
ahoarau Dec 11, 2025
534e35b
rename main.cpp to bindings.cpp
ahoarau Dec 11, 2025
ccef430
remove custom python init file
ahoarau Dec 11, 2025
453511a
update pixi.toml tasks
ahoarau Dec 11, 2025
8ee91d5
separate cpp and python tests, and generate variants
ahoarau Dec 11, 2025
56f38a3
rewrite CMake files with JRL CMake Modules v2
ahoarau Dec 11, 2025
b4bf80d
intregrate get-jrl-cmakemodules.cmake
ahoarau Dec 12, 2025
db371b1
update jrl url to point to fork
ahoarau Dec 15, 2025
280d460
require jrl-cmakemodules version 2.0.0
ahoarau Dec 16, 2025
4005fbc
include stubs pyi files in the installation
ahoarau Dec 16, 2025
381ec1b
ros-ci: add verbosity
ahoarau Dec 17, 2025
7d93819
changelog: add jrl v2 entry
ahoarau Dec 17, 2025
475b447
add Copyright 2025-2026 Inria
ahoarau Dec 17, 2025
f120c6e
remove the boost 1.90 restriction
ahoarau Dec 17, 2025
f525c05
update pixi.lock
ahoarau Dec 17, 2025
cf4219c
remove unused options
ahoarau Dec 17, 2025
7c174e6
put back the CNRS copyright
ahoarau Dec 21, 2025
d317028
update get-jrl-cmakemodules to display debug info
ahoarau Dec 21, 2025
a04c5d6
ci: upgrade ci workflows
ahoarau Dec 21, 2025
fcbb892
unittests: fix pythonpath
ahoarau Dec 22, 2025
a161a73
ci: use ${{ github.workspace }}
ahoarau Dec 22, 2025
bad4dcf
ci: make check depends on eigenpy-pixi-build
ahoarau Dec 22, 2025
d6928b9
c: add check configs
ahoarau Dec 23, 2025
b0bbb61
ci: change default path
ahoarau Dec 23, 2025
5ebb2dc
pixi.toml: remove cmake profiling
ahoarau Jan 6, 2026
0910dd9
ci: enable ros ci cache and prerelease
ahoarau Jan 6, 2026
598b414
rosci: configure cache
ahoarau Jan 8, 2026
81e1466
cmake: set min to 3.22
ahoarau Jan 9, 2026
f4b4c86
cmake: use jrl_find_python
ahoarau Jan 9, 2026
0d58978
cmake: generate stubs with GENERATE_PYTHON_STUBS condition
ahoarau Jan 9, 2026
ec1302c
cmake: install missing EigenBase header
ahoarau Jan 9, 2026
8994812
ci: disable nix tmp
ahoarau Jan 9, 2026
cbdca17
gersemi: add back specific definitions
ahoarau Jan 9, 2026
3bf6b39
cmake: remove extra pythonpath
ahoarau Jan 9, 2026
99f124e
cmake: reformat with updated gersemirc
ahoarau Jan 9, 2026
e34a392
ci: disable pixi explicit cache
ahoarau Jan 9, 2026
57bf4cf
ci: build verbose and limit to 2 cpu
ahoarau Jan 9, 2026
7ab5b9c
ci: relax pixi cache
ahoarau Jan 9, 2026
b13cfe4
ci: enable testing
ahoarau Jan 9, 2026
832f0b0
ci: build in debug
ahoarau Jan 9, 2026
a5ed572
ci: update cache keys
ahoarau Jan 9, 2026
679fbc7
cmake: replace jrl_find_package with jrl_check_python_module for scipy
ahoarau Jan 10, 2026
3c329d7
generate generated tests in the build folder
ahoarau Jan 11, 2026
2c90794
remove clang-format ignore
ahoarau Jan 11, 2026
39a649f
cmake: update jrl_boostpy_add_stubs api
ahoarau Jan 12, 2026
2384fea
cmake: add jrl_generate_ros2_package_files
ahoarau Jan 13, 2026
1a5bd86
cmake: generate ros2 python package files with condiition
ahoarau Jan 13, 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
68 changes: 42 additions & 26 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: 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
repository: ahoarau/jrl-cmakemodules
ref: jrl-next
path: ${{ github.workspace }}/jrl-cmakemodules
- uses: actions/checkout@v6
with:
path: ${{ github.workspace }}/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
- 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/[email protected]
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/[email protected]
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
4 changes: 1 addition & 3 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,7 +48,7 @@ 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
Expand Down
Loading
Loading