Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
2909c7e
remove duplicated EIGENPY_STRINGIZE macro
ahoarau Dec 11, 2025
53b3c8b
update pre-commit and switch to gersemi
ahoarau Dec 11, 2025
52ddd0d
update clang-format to c++17
ahoarau Dec 11, 2025
3831fb9
fwd.hpp: remove space in user-defined litteral
ahoarau Dec 11, 2025
0c9bbe3
ignore more stuff
ahoarau Dec 11, 2025
1e616c7
add gersemi config
ahoarau Dec 11, 2025
0f667df
remove submodules
ahoarau Dec 11, 2025
6eabe52
rename main.cpp to bindings.cpp
ahoarau Dec 11, 2025
7b0018d
remove custom python init file
ahoarau Dec 11, 2025
eaa8a48
update pixi.toml tasks
ahoarau Dec 11, 2025
fcf5bab
separate cpp and python tests, and generate variants
ahoarau Dec 11, 2025
47d1ac7
rewrite CMake files with JRL CMake Modules v2
ahoarau Dec 11, 2025
3239d60
intregrate get-jrl-cmakemodules.cmake
ahoarau Dec 12, 2025
d0e57d0
update jrl url to point to fork
ahoarau Dec 15, 2025
7b6a2b9
require jrl-cmakemodules version 2.0.0
ahoarau Dec 16, 2025
33dd58e
include stubs pyi files in the installation
ahoarau Dec 16, 2025
f614ba5
ros-ci: add verbosity
ahoarau Dec 17, 2025
4689f15
changelog: add jrl v2 entry
ahoarau Dec 17, 2025
959c767
add Copyright 2025-2026 Inria
ahoarau Dec 17, 2025
453bba3
remove the boost 1.90 restriction
ahoarau Dec 17, 2025
58bd92e
remove unused options
ahoarau Dec 17, 2025
2207e03
put back the CNRS copyright
ahoarau Dec 21, 2025
3293832
update get-jrl-cmakemodules to display debug info
ahoarau Dec 21, 2025
301b815
ci: upgrade ci workflows
ahoarau Dec 21, 2025
e16b415
unittests: fix pythonpath
ahoarau Dec 22, 2025
3a6b223
ci: use ${{ github.workspace }}
ahoarau Dec 22, 2025
8d6f2c8
c: add check configs
ahoarau Dec 23, 2025
825305a
ci: change default path
ahoarau Dec 23, 2025
044ee18
pixi.toml: remove cmake profiling
ahoarau Jan 6, 2026
6483d6a
ci: enable ros ci cache and prerelease
ahoarau Jan 6, 2026
0f0fb90
rosci: configure cache
ahoarau Jan 8, 2026
fd1b612
cmake: set min to 3.22
ahoarau Jan 9, 2026
7f781b1
cmake: use jrl_find_python
ahoarau Jan 9, 2026
85ca1da
cmake: generate stubs with GENERATE_PYTHON_STUBS condition
ahoarau Jan 9, 2026
ead832f
cmake: install missing EigenBase header
ahoarau Jan 9, 2026
c28fe65
ci: disable nix tmp
ahoarau Jan 9, 2026
d7ca2fb
gersemi: add back specific definitions
ahoarau Jan 9, 2026
5fec75a
cmake: remove extra pythonpath
ahoarau Jan 9, 2026
1e89138
cmake: reformat with updated gersemirc
ahoarau Jan 9, 2026
2f6a7f4
ci: disable pixi explicit cache
ahoarau Jan 9, 2026
fdb848e
ci: build verbose and limit to 2 cpu
ahoarau Jan 9, 2026
8beb3fa
ci: relax pixi cache
ahoarau Jan 9, 2026
6295079
ci: enable testing
ahoarau Jan 9, 2026
119858c
ci: build in debug
ahoarau Jan 9, 2026
aee335d
ci: update cache keys
ahoarau Jan 9, 2026
052f1de
cmake: replace jrl_find_package with jrl_check_python_module for scipy
ahoarau Jan 10, 2026
8686caa
generate generated tests in the build folder
ahoarau Jan 11, 2026
3f667ed
remove clang-format ignore
ahoarau Jan 11, 2026
0b0211d
cmake: update jrl_boostpy_add_stubs api
ahoarau Jan 12, 2026
ee8d37c
cmake: add jrl_generate_ros2_package_files
ahoarau Jan 13, 2026
a595b22
cmake: generate ros2 python package files with condiition
ahoarau Jan 13, 2026
bbc3019
ci: apt update before install
ahoarau Feb 6, 2026
735c909
ci: apt update before install
ahoarau Feb 6, 2026
dde082c
rosci: do not use prerelease
ahoarau Feb 9, 2026
6b88ac6
cmake: update the get-jrl messages
ahoarau Feb 11, 2026
d6bdf49
cmake: require jrl >=1.2 to get the jrl-v2
ahoarau Feb 16, 2026
9464cb3
cmake: update python and nanobind min required
ahoarau Feb 16, 2026
97c2b25
pixi: update min python version
ahoarau Feb 16, 2026
c0310c1
pixi: add cxx-compiler to pixi-build feature
ahoarau Feb 17, 2026
a5d583c
cmake: include project version in config header generation
ahoarau Feb 20, 2026
1f272ec
pre-commit: change to gersemi precommit repo
ahoarau Apr 15, 2026
d6d4424
cmake: use FindCHOLMOD.cmake provided by jrl-v2
ahoarau Jun 26, 2026
df8e87f
ci: update ros-ci
ahoarau Jun 27, 2026
2e8804b
cmake: always generate ros files (c++ and py)
ahoarau Jun 27, 2026
9803b05
tests: Eigenpy -> eigenpy
ahoarau Jun 27, 2026
5a750ae
ci-pixi: add unique name + pur back options and env for cache
ahoarau Jun 27, 2026
13e6aeb
ci-pixi: add --skip-deps to avoid task duplication
ahoarau Jun 27, 2026
ea78c23
pixi: drop pkg-config dep
ahoarau Jun 27, 2026
eb85d48
pre-commit: upgrade to latest version
ahoarau Jun 27, 2026
24ab9ee
tests: use ENVIRONMENT_MODIFICATION
ahoarau Jun 27, 2026
eb72cb3
ci-ubuntu: use docker images
ahoarau Jun 27, 2026
4b497a7
pixi: update lock file
ahoarau Jul 28, 2026
a5d8502
pre-commit: tmp downgrade ruff to 0.15 to avoid breaks
ahoarau Jul 28, 2026
7a696d3
cmake: enforce boost python3
ahoarau Jul 28, 2026
2bfcef5
ros-ci: add lyrical
ahoarau Jul 28, 2026
ef8b1a8
pixi: add jrl-cmakemodules v2 dep
ahoarau Jul 28, 2026
927e01e
gitignore: ignore .conda files
ahoarau Jul 28, 2026
56278ad
pixi: use latest pixi build version
ahoarau Jul 28, 2026
b0b4e27
jrl: update link to jrl-umi3218 (upstream)
ahoarau Jul 28, 2026
26e8306
cmake: DEPENDS is reserved for test names
ahoarau Jul 28, 2026
8d379ff
cmake: add EXPECTED_TARGETS
ahoarau Jul 29, 2026
118aa00
cmake: rename tests names (revert)
ahoarau Aug 6, 2026
9a23ca3
build the documentation via doxygen
ahoarau Aug 6, 2026
5eb58e0
cmake: add APPLE condition on BUILD_WITH_ACCELERATE_SUPPORT
ahoarau Aug 6, 2026
474ee3d
cmake: add SUFFIX_SO_VERSION option
ahoarau Aug 6, 2026
900e3ef
cmake: make jrl_target_enforce_msvc_conformance PUBLIC
ahoarau Aug 6, 2026
2632950
cmake: add jrl_target_set_default_compile_options
ahoarau Aug 6, 2026
2c34494
add missing doxygen+graphviz deps
ahoarau Aug 6, 2026
d008722
cmake: remove useless Boost::numpy
ahoarau Aug 6, 2026
22679e3
doc: Prefix doc target by eigenpy-
jorisv Aug 6, 2026
b3a9578
pixi: Create new-version environment
jorisv Aug 6, 2026
af78a77
dev: Add release instruction
jorisv Aug 6, 2026
a787244
cmake: use target_sources
ahoarau Aug 6, 2026
fbe6504
BUILD_DOCUMENTATION is now OFF by default
ahoarau Aug 6, 2026
c7fd6e7
cmake: install pywrap as TARGET for rpath
ahoarau Aug 7, 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
71 changes: 43 additions & 28 deletions .github/workflows/jrl-cmakemodules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,61 @@ 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@v7
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 doxygen graphviz
- 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@v7
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: jrl-umi3218/jrl-cmakemodules
path: ${{ github.workspace }}/jrl-cmakemodules
- uses: actions/checkout@v7
with:
path: ${{ github.workspace }}/eigenpy
- run: sudo apt-get update && sudo apt-get install -y libboost-all-dev libeigen3-dev python3-numpy python3-scipy doxygen graphviz
- 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) }}
109 changes: 75 additions & 34 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -1,63 +1,104 @@
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.image }} - ${{ matrix.build_type }} (APT)
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
strategy:
fail-fast: false
matrix:
python: [3]
ubuntu: [22, 24]
image: ["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:
- name: Install dependencies via APT
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y \
git \
g++ \
cmake \
ninja-build \
ccache \
doxygen \
graphviz \
libboost-all-dev \
libeigen3-dev \
python3-numpy \
python3-dev \
python3-scipy

- uses: actions/checkout@v7

- name: Setup ccache
uses: actions/cache@v6
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-ubuntu-${{ matrix.image }}-${{ matrix.build_type }}-${{ github.sha }}
restore-keys: ccache-ubuntu-${{ matrix.image }}-${{ matrix.build_type }}-

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

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

- name: CMake Build
run: cmake --build build --verbose --parallel 2

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

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

- name: CMake Install
run: 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) }}
40 changes: 23 additions & 17 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,43 @@ jobs:

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

- uses: actions/cache@v6
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-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}-${{ github.sha }}
restore-keys: ccache-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.cxx_options }}-${{ matrix.environment }}-

- uses: prefix-dev/setup-pixi@v0.10.0
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 }} test
pixi run -e ${{ matrix.environment }} configure

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

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

- name: Install EigenPy [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} --skip-deps install

- 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 +113,12 @@ jobs:

# steps:
# - uses: actions/checkout@v7
# with:
# submodules: recursive

# - uses: prefix-dev/setup-pixi@v0.10.0
# env:
# CMAKE_BUILD_PARALLEL_LEVEL: 2
# with:
# cache: true
# cache: false # ⚠️ Disabling cache for testing ⚠️
# environments: test-pixi-build

# - name: Test package [MacOS/Linux/Windows]
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ concurrency:
cancel-in-progress: true
jobs:
nix:
# ⚠️ temporarly disable the Nix job ⚠️
if: false

runs-on: "${{ matrix.os }}-latest"
strategy:
matrix:
Expand All @@ -24,7 +27,10 @@ jobs:
- run: nix flake check -L
- run: nix build -L ".#${{ matrix.extends }}"
check:
if: always()
# ⚠️ temporarly disable the Nix job ⚠️
if: false
# if: always()

name: check-macos-linux-nix
runs-on: ubuntu-latest
needs:
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/reloc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,6 @@ jobs:

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

- uses: actions/cache@v6
with:
path: ${{ env.CCACHE_DIR }}
Expand All @@ -50,10 +47,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 doxygen graphviz

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