Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
fa5b2e7
cpp: remove unused macros in fwd.hpp
ahoarau Dec 11, 2025
f61c95e
cpp: add dependency headers wrt a compile def
ahoarau Dec 11, 2025
bd38f60
cpp: merge internal.h into module.cpp
ahoarau Dec 11, 2025
617e716
python: migrate tests to pytest
ahoarau Dec 11, 2025
503ee7f
gersemi: update config
ahoarau Dec 11, 2025
93d5b4f
pixi.toml: we can use forward slash in windows
ahoarau Dec 11, 2025
0443313
pixi.toml: add install and test commands
ahoarau Dec 11, 2025
5f42e0d
pixi.toml: add explicit testing, and build type
ahoarau Dec 11, 2025
20a7e59
git: remove submodules
ahoarau Dec 11, 2025
f07fa0c
gitignore: ignore more stuff
ahoarau Dec 11, 2025
3d6cea9
cmake: refactor CMake files with JRL CMake Modules v2
ahoarau Dec 11, 2025
53479a8
cmake: intregrate get-jrl-cmakemodules.cmake
ahoarau Dec 12, 2025
df7aa77
cmake: format tests/CMakeLists.txt (remove gersemi off/on)
ahoarau Dec 16, 2025
636d6c8
cmake: update jrl url to point to fork
ahoarau Dec 15, 2025
acc7eb4
cmake: require jrl-cmakemodules version 2.0.0
ahoarau Dec 16, 2025
0a4cf1a
cmake: rename test dir
ahoarau Jan 5, 2026
d8fcef7
cmake: require at least nanobind 2.5.0
ahoarau Dec 18, 2025
deb7804
cmake: change message verbosity to STATUS and fix env case
ahoarau Dec 19, 2025
2ed3d2f
cmake: add debug messages to explain what we do with nanobind
ahoarau Dec 18, 2025
f179e5d
ci: add debug and verbose output to ros ci
ahoarau Dec 16, 2025
bc0cd79
ci: use the commands defined in pixi.toml
ahoarau Dec 18, 2025
9f70c5b
pixi.toml: add pytest
ahoarau Dec 13, 2025
39fcbb2
pixi.toml: remove extra cmake lines in configure task
ahoarau Dec 16, 2025
07c6984
pixi.toml: add test packaging
ahoarau Jan 5, 2026
852a502
pixi.toml: override python install dir on windows
ahoarau Dec 19, 2025
2ebec24
changelog: update with jrl v2
ahoarau Jan 5, 2026
7dade87
ci: temporarly disable nix job
ahoarau Jan 5, 2026
29307c7
gitignore: ignore ruff cache
ahoarau Jan 5, 2026
307f026
ci: disable nix job check
ahoarau Jan 5, 2026
111312e
cmake: add check for the quaternion test module
ahoarau Jan 5, 2026
21d80db
cmake: add inria copyright
ahoarau Jan 5, 2026
3294aa3
cmake: remove cmake version range
ahoarau Jan 5, 2026
5a0065b
cmake: update nanobind GIT_TAG to v2.10.2
ahoarau Jan 6, 2026
44782c6
ci: remove warning by passing the explicit arguments to env
ahoarau Jan 6, 2026
ab142bc
ci: remove explicit cache for pixi
ahoarau Jan 6, 2026
22703eb
ci: cosmetics on pixi job
ahoarau Jan 6, 2026
fcc6edd
ci: rosci enable cache and prerelease
ahoarau Jan 6, 2026
4a2ff5c
package.xml: nanobind-dev not yet available
ahoarau Jan 6, 2026
8be070f
ci: ros ci disable fail fast
ahoarau Jan 6, 2026
334d4be
package.xml: add pytest dep
ahoarau Jan 6, 2026
4d6c7fb
ci: name the ros jobs
ahoarau Jan 6, 2026
e26f62c
rosci: configure cache
ahoarau Jan 8, 2026
93ae0b2
ci: relax cache availability
ahoarau Jan 8, 2026
c835b56
cmale: update cmake option docs
ahoarau Jan 10, 2026
27b2d53
changelog: remove the c++17 required.
ahoarau Jan 10, 2026
da848e3
cmake: move dependencies to headers instead of module
ahoarau Jan 10, 2026
237b7cf
cmake: add jrl_generate_ros2_package_files
ahoarau Jan 13, 2026
e64398d
cmake: update jrl_target_generate_header API
ahoarau Jan 17, 2026
1c2a26e
ci: display more info before clearing ccache cache
ahoarau Jan 17, 2026
074b647
rosci: do not use prerelease
ahoarau Feb 9, 2026
3fba63f
cmake: update the get-jrl messages
ahoarau Feb 11, 2026
08f6aa5
cmake: require jrl >=1.2 to get the jrl-v2
ahoarau Feb 16, 2026
ce65f9d
cmake: update python and nanobind min required
ahoarau Feb 16, 2026
f6335d8
pixi: remove the custom python install dir for pixi build
ahoarau Feb 17, 2026
1e2772c
cmake: include project version in config header generation
ahoarau Feb 20, 2026
be450bd
pixi.toml: re-enable pixi build
ahoarau Mar 18, 2026
3607d6d
cmake: format
ahoarau Mar 18, 2026
758e334
pixi: update lock file
ahoarau Jul 28, 2026
54fdc59
ci-pixi: add ${{ matrix.environment }} to avoid cache sharing between…
ahoarau Jul 28, 2026
8a52b56
ci-ros: bump ros-i version
ahoarau Jul 28, 2026
6ec9e20
ci-ros: add lyrical
ahoarau Jul 28, 2026
ea1e48a
cmake: update jrl link to jrl-umi3218 (upstream)
ahoarau Jul 28, 2026
b8c974b
pixi: comment out pixi build
ahoarau Jul 28, 2026
7a74c36
changelog: more updates from jrl-v2 PR
ahoarau Jul 28, 2026
d1e0ed4
cmake: always generate the ros2 pkg files
ahoarau Jul 28, 2026
f00e232
pre-commit: update gersemi repo and version
ahoarau Jul 28, 2026
3f57354
cmake: allow to use jrl FindCHOLMOD.cmake when config is not present
ahoarau Jul 28, 2026
90c2b18
ci-linux: add ubuntu 22/24 CI
ahoarau Jul 28, 2026
d651774
cmake: stubs generations requires typing_extensions >= 4.1.0 on pytho…
ahoarau Jul 28, 2026
8c94cb8
pytest: fix initial value
ahoarau Jul 28, 2026
604414f
tests: conjugate gradients needs a symmetric positive definite matrix
ahoarau Jul 28, 2026
22c890e
cmake: add EXPECTED_TARGETS
ahoarau Jul 29, 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
4 changes: 2 additions & 2 deletions .gersemirc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
definitions: [./CMakeLists.txt, ./cmake, ./tests]
line_length: 80
definitions: [./CMakeLists.txt, ./tests]
line_length: 100
indent: 2
warn_about_unknown_commands: false
113 changes: 113 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: CI - Linux (APT)

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

jobs:
ubuntu:
name: CI - Ubuntu ${{ matrix.ubuntu_version }} - ${{ matrix.build_type }} (APT)
runs-on: ubuntu-latest
container:
image: ubuntu:${{ matrix.ubuntu_version }}
strategy:
fail-fast: false
matrix:
ubuntu_version: ["22.04", "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
DEBIAN_FRONTEND: noninteractive
steps:
- name: Install dependencies via APT
run: |
apt-get update
apt-get install -y \
git \
g++ \
cmake \
ninja-build \
ccache \
libeigen3-dev \
libsuitesparse-dev \
python3-dev \
python3-numpy \
python3-scipy \
python3-pytest \
python3-typing-extensions

- uses: actions/checkout@v7

- name: Setup ccache
uses: actions/cache@v6
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-ubuntu-${{ matrix.ubuntu_version }}-${{ matrix.build_type }}-${{ github.sha }}
restore-keys: ccache-ubuntu-${{ matrix.ubuntu_version }}-${{ matrix.build_type }}-

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

- name: CMake Configure
run: |
cmake -G Ninja -B build -S . \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DBUILD_TESTING=ON \
-DBUILD_WITH_CHOLMOD_SUPPORT=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:
- 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) }}
41 changes: 20 additions & 21 deletions .github/workflows/macos-linux-windows-pixi.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: CI - MacOS/Linux/Windows via Pixi
name: CI - Pixi (MacOS/Linux/Windows)

on:
push:
Expand Down Expand Up @@ -30,12 +30,12 @@ concurrency:
cancel-in-progress: true

jobs:
nanoeigenpy-pixi:
name: Standard - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }}
pixi:
name: Pixi - ${{ matrix.os }} - Env ${{ matrix.environment }} ${{ matrix.build_type }}
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 All @@ -55,43 +55,44 @@ 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.environment }}-${{ github.sha }}
restore-keys: ccache-macos-linux-windows-pixi-${{ matrix.os }}-${{ matrix.build_type }}-${{ matrix.environment }}-
path: ${{ env.CCACHE_DIR }}
key: ccache-pixi-${{ matrix.environment }}-${{ matrix.os }}-${{ matrix.build_type }}-${{ github.sha }}
restore-keys: ccache-pixi-${{ matrix.environment }}-${{ matrix.os }}-${{ matrix.build_type }}-

- 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 -svz

- name: Build nanoeigenpy [MacOS/Linux/Windows]
- name: Configure nanoeigenpy [MacOS/Linux/Windows]
env:
NANOEIGENPY_BUILD_TYPE: ${{ matrix.build_type }}
run: |
pixi run -e ${{ matrix.environment }} configure

- name: Build nanoeigenpy [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} build

- name: Test nanoeigenpy [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} ctest --test-dir build --output-on-failure
pixi run -e ${{ matrix.environment }} test

- name: Install nanoeigenpy [MacOS/Linux/Windows]
run: |
pixi run -e ${{ matrix.environment }} cmake --build build --target install
pixi run -e ${{ matrix.environment }} install

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

# nanoeigenpy-pixi-build:
# pixi-build:
# name: Pixi build - ${{ matrix.os }}
# runs-on: ${{ matrix.os }}

Expand All @@ -102,14 +103,11 @@ 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
# environments: test-pixi-build

# - name: Test package [MacOS/Linux/Windows]
Expand All @@ -121,9 +119,10 @@ jobs:
name: check-macos-linux-windows-pixi

needs:
- nanoeigenpy-pixi
- pixi
# - pixi-build

runs-on: Ubuntu-latest
runs-on: ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ on:

jobs:
nix:
# ⚠️ temporarly disable the Nix job for https://github.com/Simple-Robotics/nanoeigenpy/pull/40 ⚠️
if: false

runs-on: "${{ matrix.os }}-latest"
strategy:
matrix:
Expand All @@ -25,7 +28,10 @@ jobs:
- run: nix build -L ".#nanoeigenpy${{ matrix.eigen }}"

check:
if: always()
# ⚠️ temporarly disable the Nix job for https://github.com/Simple-Robotics/nanoeigenpy/pull/40 ⚠️
if: false
# if: always()

name: check-macos-linux-nix

needs:
Expand Down
48 changes: 34 additions & 14 deletions .github/workflows/ros_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,54 @@ concurrency:
cancel-in-progress: true

jobs:
CI:
ros:
name: ROS ${{ matrix.ROS_DISTRO }} - ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
env:
- {ROS_DISTRO: humble}
- {ROS_DISTRO: jazzy}
- {ROS_DISTRO: kilted}
- {ROS_DISTRO: rolling}
include:
# ROS2 Humble Hawksbill (May 2022 - May 2027)
- ROS_DISTRO: humble
os: Ubuntu 22.04 (Jammy)

# ROS2 Jazzy Jalisco (May 2024 - May 2029)
- ROS_DISTRO: jazzy
os: Ubuntu 24.04 (Noble)

# ROS2 Kilted Kayu (May 2025 - December 2026)
- ROS_DISTRO: kilted
os: Ubuntu 24.04 (Noble)

# ROS2 Rolling Ridley
- ROS_DISTRO: rolling
os: Ubuntu 26.04 (Resolute)

# ROS2 Lyrical Luth (May 2026 - May 2031)
- ROS_DISTRO: lyrical
os: Ubuntu 26.04 (Resolute)
env:
# PRERELEASE: true # Fails due to issues in the underlying Docker image
BUILDER: colcon
VERBOSE_OUTPUT: true
VERBOSE_TESTS: true
ROS_DISTRO: ${{ matrix.ROS_DISTRO }}
CCACHE_DIR: ${{ github.workspace }}/.ccache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/cache@v6
with:
submodules: recursive
# Run industrial_ci
- uses: 'ros-industrial/industrial_ci@125164b9f1883cdf1858897a7146d1bebf2be5c6'
env: ${{ matrix.env }}
path: ${{ env.CCACHE_DIR }}
key: ccache-ros-${{ matrix.ROS_DISTRO }}-${{github.run_id}}
restore-keys: ccache-ros-${{ matrix.ROS_DISTRO }}-
- uses: ros-industrial/industrial_ci@125164b9f1883cdf1858897a7146d1bebf2be5c6

check:
if: always()
name: check-ros-ci

needs:
- CI
- ros

runs-on: Ubuntu-latest
runs-on: ubuntu-latest

steps:
- name: Decide whether the needed jobs succeeded or failed
Expand Down
18 changes: 13 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
build*/
install*/
.pytest_cache/
.cache/
__pycache__
.pytest_cache

# pixi environments
.pixi
.pixi/
__pycache__/
Xcode*
*.pyc
*~
*.egg-info
.ruff_cache/
.DS_Store
compile_commands.json
cmake-profiling.json
result
*.conda
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ repos:
args: [ --fix ]
# Run the formatter.
- id: ruff-format
- repo: https://github.com/BlankSpruce/gersemi
rev: 0.19.2
- repo: https://github.com/BlankSpruce/gersemi-pre-commit
rev: 0.28.0
hooks:
- id: gersemi
- repo: https://github.com/Lucas-C/pre-commit-hooks
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Python version update ([#25](https://github.com/Simple-Robotics/nanoeigenpy/pull/25)):
- Project is now tested with Python 3.10 and 3.14
- Python 3.10 is the minimal supported Python version
- Switch to [JRL CMake modules v2](https://github.com/jrl-umi3218/jrl-cmakemodules/pull/798) ([#28](https://github.com/Simple-Robotics/nanoeigenpy/pull/28))
- Remove submodules: archives can now be used
- Migrate python tests to pytest

### Added
- Add pixi-build support ([#25](https://github.com/Simple-Robotics/nanoeigenpy/pull/25))
Expand Down
Loading
Loading