Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/dockercentos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- { img: 'lebarsfa/manylinux_2_28_aarch64-for-codac', os: ubuntu-24.04-arm, shell: bash, arch: aarch64, bitness: 64, runtime: manylinux_2_28, docker_flags: '--platform linux/arm64', desc: 'CentOS manylinux_2_28 aarch64' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dockermatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
#- { img: 'lebarsfa/pi-64:focal-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: focal , cmake_flags: '-fPIC', deb: true, desc: 'Ubuntu 20.04 arm64' }
- { img: 'lebarsfa/amd64:trixie-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie amd64' }
- { img: 'lebarsfa/pi-64:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Debian Trixie arm64' }
#- { img: 'lebarsfa/pi:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Trixie armv6hf' } # No base image available...
- { img: 'lebarsfa/pi:trixie-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: trixie , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Trixie armv6hf' }
- { img: 'lebarsfa/amd64:bookworm-for-codac' , os: ubuntu-latest , shell: bash, arch: amd64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm amd64' }
- { img: 'lebarsfa/pi-64:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: arm64 , bitness: 64, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Debian Bookworm arm64' }
- { img: 'lebarsfa/pi:bookworm-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: bookworm , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Bookworm armv6hf' }
Expand All @@ -42,7 +42,7 @@ jobs:
#- { img: 'lebarsfa/pi:buster-for-codac' , os: ubuntu-24.04-arm, shell: bash, arch: armhf , bitness: 32, runtime: buster , cmake_flags: '-fPIC', deb: true, desc: 'Raspbian Buster armv6hf' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/macosmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- { os: macos-15-intel , shell: bash, arch: x86_64 , runtime: sequoia , cmake_flags: '-fPIC', trgt: '10.16', cpcfg: '-macosx_10_16_x86_64', py_v_maj: 3, py_v_min: 8 , desc: 'macOS Sequoia Python 3.8 x86_64' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand All @@ -54,7 +54,7 @@ jobs:
# if: runner.os=='macOS'
- run: brew install catch2 # Issues with binary packages when cross-compiling...
if: (runner.os=='macOS')&&(matrix.cfg.cross!=true)
- run: brew install graphviz ; brew install --formula doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects furo sphinx-math-dollar sympy
- run: brew install graphviz ; brew install --formula doxygen ; python -m pip install --upgrade pip ; pip install --upgrade wheel setuptools sphinx breathe sphinx_rtd_theme sphinx-tabs sphinx-issues sphinx-reredirects furo sphinx-math-dollar sphinx_togglebutton sympy
if: runner.os=='macOS'
- run: |
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex_${{ matrix.cfg.arch }}_${{ matrix.cfg.runtime }}.zip --no-check-certificate -nv
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- { os: ubuntu-22.04 , gcc_v: 11, py_v_maj: 3, py_v_min: 10, with_capd: ON , desc: 'Ubuntu 22.04 GCC 11 Python 3.10 CAPD tests' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unixmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
if: (github.event_name!='pull_request')&&((github.ref_name=='codac1')||(github.ref_name=='codac2')||(github.ref_name=='codac2_codac4matlab'))
steps:
- uses: softprops/action-gh-release@v2
- uses: softprops/action-gh-release@v3
id: create_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
- { os: macos-14 , shell: bash, arch: x86_64 , bitness: 64, runtime: sonoma , cmake_params: '-D CMAKE_SYSTEM_NAME=Darwin -D CMAKE_OSX_ARCHITECTURES=x86_64 -D CMAKE_OSX_DEPLOYMENT_TARGET=14.0', cmake_flags: '-fPIC', cross: true, desc: 'macOS Sonoma x86_64 (cross)' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/vcmatrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- { os: windows-2022 , shell: cmd , arch: x64 , runtime: vc17 , cmake_params: '-G "Visual Studio 17" -T v143 -A x64' , cpcfg: '-win_amd64', py_v_maj: 3, py_v_min: 8 , desc: 'Windows Visual Studio 2022 x64 Python 3.8' }
name: ${{ matrix.cfg.desc }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
submodules: true
fetch-depth: 0
Expand All @@ -56,7 +56,7 @@ jobs:
if: runner.os=='Windows'
#- run: choco install -y -r --no-progress eigen --version=3.4.0.20240224 ${{ matrix.cfg.choco_flags }}
# if: runner.os=='Windows'
- run: choco install -y -r --no-progress graphviz doxygen.install & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects furo sphinx-math-dollar sympy
- run: choco install -y -r --no-progress graphviz doxygen.install & python -m pip install --upgrade pip & pip install --upgrade wheel setuptools sphinx breathe sphinx-issues sphinx-tabs sphinx_rtd_theme sphinx-reredirects furo sphinx-math-dollar sphinx_togglebutton sympy
if: runner.os=='Windows'
- run: |
wget https://github.com/lebarsfa/ibex-lib/releases/download/ibex-2.8.9.20250626/ibex.2.8.9.20250626.nupkg --no-check-certificate -nv
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ This list is in alphabetical order by surname.
- [Peter Franek](http://www.cs.cas.cz/~franek)
- [Maël Godard](https://godardma.github.io)
- [Nuwan Herath M.](https://members.loria.fr/NHerathMudiyanselage)
- [Luc Jaulin](https://www.ensta-bretagne.fr/jaulin)
- [Fabrice Le Bars](https://www.ensta-bretagne.fr/lebars)
- [Luc Jaulin](https://webperso.ensta.fr/jaulin)
- [Fabrice Le Bars](https://webperso.ensta.fr/lebars)
- [Morgan Louédec](https://morgan-louedec.fr)
- [Damien Massé](https://lab-sticc.univ-brest.fr/~dmasse)
- [Bertrand Neveu](http://imagine.enpc.fr/~neveub)
Expand All @@ -91,7 +91,7 @@ This list is in alphabetical order by surname.
- [Simon Rohou](http://simon-rohou.fr/research)
- [Joris Tillet](https://perso.ensta-paris.fr/~tillet/)
- [Gilles Trombettoni](https://www.lirmm.fr/~trombetton)
- [Christophe Viel](https://www.ensta-bretagne.fr/viel/)
- [Christophe Viel](https://webperso.ensta.fr/viel/)
- [Raphael Voges](https://raphael-voges.de)

We appreciate all contributions, whether they are code, documentation, bug reports, or suggestions. If you believe you should be listed here and are not, please contact us to update the list.
Expand Down
13 changes: 7 additions & 6 deletions doc/manual/development/info_dev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ Building the Manual with Sphinx

To build this manual using Sphinx, follow these steps:

1. **Requirements**: Install `Sphinx <https://www.sphinx-doc.org/>`_ together with the extensions used by Codac, if they are not already installed.
1. **Requirements**: Install `Sphinx <https://www.sphinx-doc.org/>`_ together with the extensions used by Codac, if they are not already installed. You will need also the ``dot`` command from `Graphviz <https://graphviz.org/>`_.

.. code-block:: bash

sudo apt-get install sphinx-common graphviz
pip install sphinx sphinx_rtd_theme furo sphinx-math-dollar sphinx_tabs breathe sphinx_togglebutton

2. **Building the manual**: After configuring the CMake project, the manual can be build with:
Expand Down Expand Up @@ -41,8 +42,8 @@ If you simply want to use the latest Codac release in Python, you can download t

sudo apt-get install -y g++ gcc cmake git flex bison

- a supported version of Python (>=3.6).
- a recent `Doxygen <https://www.doxygen.nl>`_ version (for instance, release 1.13.0 or newest). On Linux systems, latest releases are not available as Debian packages, so we advice to install Doxygen from the sources:
- a supported version of Python (>=3.8).
- a recent `Doxygen <https://www.doxygen.nl>`_ version (for instance, release 1.16.1 or newest). On Linux systems, latest releases are not available as Debian packages, so we advise to install Doxygen from the sources:

.. code-block:: bash

Expand Down Expand Up @@ -95,12 +96,12 @@ If you simply want to use the latest Codac release in Python, you can download t

Note that you will then have to ``import codac2`` instead of ``import codac`` in your Python scripts.

In addition to the ``-fPIC`` options, you will have to configure ``WITH_PYTHON=ON`` and ``PYBIND11_FINDPYTHON=OFF``. Note that CMake will automatically get the `pybind11 <https://pybind11.readthedocs.io>`_ files required for the binding.
In addition to the ``-fPIC`` options, you will have to configure ``WITH_PYTHON=ON`` and ``PYBIND11_FINDPYTHON=OFF``. Note that CMake will automatically get the `pybind11 <https://pybind11.readthedocs.io>`_ files required for the binding. Also, you will have to configure ``BUILD_TESTS=ON`` if you want to run the unit tests.

.. code-block:: bash

mkdir build ; cd build
cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DWITH_PYTHON=ON -DPYBIND11_FINDPYTHON=OFF -DCMAKE_INSTALL_PREFIX=$HOME/codac/build_install -DCMAKE_PREFIX_PATH="$HOME/ibex-lib/build_install;$HOME/doxygen/build_install" -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DWITH_PYTHON=ON -DPYBIND11_FINDPYTHON=OFF -DBUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$HOME/codac/build_install -DCMAKE_PREFIX_PATH="$HOME/ibex-lib/build_install;$HOME/doxygen/build_install" -DCMAKE_BUILD_TYPE=Release ..
make ; make install

4. **Configure your Python environment**:
Expand Down Expand Up @@ -135,7 +136,7 @@ If you simply want to use the latest Codac release in Python, you can download t
cd $HOME/codac/examples/03_sivia
python main.py

Note that before executing the example, you will have to launch the VIBes viewer.
Note that before executing the example, you will have to launch the `VIBes viewer <../visualization/vibes.html>`_.
You should obtain a graphical output corresponding to a set inversion.


Expand Down
29 changes: 19 additions & 10 deletions doc/manual/manual/installation/cpp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ This page describes how to install the C++ library on Linux, Windows, and macOS.
Linux Installation
------------------

.. admonition:: Linux distributions

Ubuntu or Debian-like systems are implied in most of the instructions (especially the ``sudo apt`` commands to install packages).


.. Install from packages (latest release)
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -68,7 +72,7 @@ Steps

These prerequisites can be installed directly with the command::

sudo apt-get install -y g++ gcc cmake git
sudo apt-get install -y build-essential cmake git

2. **Install the IBEX dependency**:

Expand Down Expand Up @@ -145,7 +149,7 @@ Steps
cmake ..
make

Before executing the example, you will have to launch the VIBes viewer. Then,
Before executing the example, you will have to launch the `VIBes viewer <../visualization/vibes.html>`_. Then,

.. code-block:: bash

Expand All @@ -163,15 +167,19 @@ Install from packages (latest release)
Using MinGW
~~~~~~~~~~~

Check https://community.chocolatey.org/packages/codac.
.. Check https://community.chocolatey.org/packages/codac.

Install `Chocolatey package manager <https://chocolatey.org/install>`_, run `choco install -y ibex cmake make qtcreator` in PowerShell and then download and extract *e.g.* ``codac_standalone_x64_mingw13.zip`` (for MinGW 13) from https://github.com/codac-team/codac/releases/latest, launch Qt Creator and choose Open Project, open ``example\CMakelists.txt``, ensure Desktop is selected and click Configure Project (might be hidden behind notifications at the bottom-right), wait 10 s then click on the big bottom-left green Run button, and finally check that the graphical output appears.

Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86.exe before running the project.


Using Visual Studio
~~~~~~~~~~~~~~~~~~~

Download and extract *e.g.* ``codac_standalone_x64_vc17.zip`` (for Visual Studio 2022) from https://github.com/codac-team/codac/releases/latest, open ``example\CMakelists.txt``, choose ``x64-Release`` configuration in Visual Studio (instead of ``x64-Debug``), double-click on ``main.cpp`` in the Solution Explorer and then click on the green Start button, and finally check that the graphical output appears.

Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/download/0.2.3/VIBes-0.2.3-win32.exe before running the project.
Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86.exe before running the project.


Install from the sources (latest developments)
Expand All @@ -190,15 +198,16 @@ Optionally, for Python binding (*e.g.* ``choco install python --version=3.10.4``

.. code-block:: bash

choco install doxygen.install --version=1.16
choco install doxygen.install --version=1.16.1
choco install graphviz
python -m pip install --upgrade pip
pip install --upgrade wheel setuptools sphinx sphinx_rtd_theme furo sphinx-math-dollar sphinx_tabs breathe sphinx_togglebutton

The logic to follow will then be similar to Linux (note that for Visual Studio, commands such as ``make install`` need to be replaced with something similar to:
The logic to follow will then be similar to Linux. You might want to right-click in your desired folder and choose ``Git Bash Here`` to run the commands related to Git and compilation. Note that for Visual Studio, commands such as ``make`` and ``make install`` need to be replaced with something similar to:

.. code-block:: bash

cmake --build . --config Release
cmake --build . --config Release --target install

.. warning::
Expand All @@ -221,20 +230,20 @@ Install `Homebrew package manager <https://brew.sh/>`_ and then build tools:
brew install wget autoconf automake libtool
brew install --cask cmake

Download and extract *e.g.* ``codac_standalone_arm64_monterey.zip`` from `<https://github.com/codac-team/codac/releases/tag/v1.5.6/>`_, then in ``example`` folder run:
Download and extract *e.g.* ``codac_standalone_arm64_sonoma.zip`` from https://github.com/codac-team/codac/releases/latest, then in ``example`` folder run:

.. code-block:: bash

cmake . ; cmake --build . ; ./my_project

and check that the graphical output appears.

.. admonition:: For macOS 12 Monterey
.. admonition:: Apple silicon vs Intel processors

For macOS 12 Monterey on a Mac with Apple silicon (arm64 processor), use ``codac_standalone_x86_64_monterey.zip`` for a Mac with an Intel processor (x86_64 processor), see https://support.apple.com/en-us/116943.
For *e.g.* macOS 13 Sonoma on a Mac with Apple silicon (arm64 processor), use ``codac_standalone_arm64_sonoma.zip``, while for a Mac with an Intel processor (x86_64 processor) use ``codac_standalone_x86_64_sonoma.zip``, see https://support.apple.com/en-us/116943.


Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/download/0.2.3/VIBes-0.2.2-osx.dmg before running the project.
Note that in order to obtain graphical outputs, you will have to download and run https://github.com/ENSTABretagneRobotics/VIBES/releases/latest/download/VIBes-viewer_x86_64.dmg before running the project.



Expand Down
2 changes: 1 addition & 1 deletion doc/manual/manual/installation/matlab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Once Codac is installed, you can use it in your MATLAB scripts using the followi
Potential problem with VIBes
----------------------------

One of the graphical outputs supported in Codac is `the VIBes viewer <https://enstabretagnerobotics.github.io/VIBES/>`_.
One of the graphical outputs supported in Codac is the `VIBes viewer <../visualization/vibes.html>`_.
VIBes uses a client/server architecture and reads its configuration from the ``.vibes.json`` file located in your home directory (typically ``$HOME``). This file is automatically generated.

If you launch MATLAB with ``sudo``, the ``HOME`` variable points to ``/root``, and VIBes will not find the ``.vibes.json`` file, causing the display to fail.
Expand Down
25 changes: 23 additions & 2 deletions doc/manual/manual/installation/python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,19 @@ Python installation
In case you want to use Codac only with Python, then the installation procedure is simply:

1. **Dependencies**: Ensure you have a supported version of Python (>=3.8).
2. **Install via pip**: Use the following command to install Codac:
2. **Install pip**: For Ubuntu or Debian-like systems:

.. code-block:: bash

sudo apt install python3-pip

For other systems, you can usually install pip with something similar to:

.. code-block:: bash

python -m pip install pip

3. **Install via pip**: Use the following command to install Codac:

.. code-block:: bash

Expand All @@ -26,6 +38,7 @@ You can also update and test your Codac Python package:
* **Testing the installation**: In order to verify that your installation is working properly in Python, you can run:
.. code-block:: bash

pip install numpy sympy
python -m unittest discover codac.tests


Expand All @@ -34,14 +47,22 @@ Troubleshooting

Depending on your configuration, you may encounter difficulties when installing the Codac Python package. Here are a few tips to help you.

.. admonition:: Debian Bookworm and possibly other configurations
.. admonition:: ``python`` vs ``python3``, ``pip`` vs ``pip3`` commands

| You may need to use ``python3`` instead of ``python`` command depending on your configuration. Same applies to the ``pip`` command, which may be ``pip3`` in some cases.

.. admonition:: Debian Bookworm, Ubuntu 24.04 and possibly other configurations

| ``pip install ...`` or ``pip3 install ...`` commands may only work inside `virtual environments <https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/>`_ or with ``--break-system-packages`` parameter, *e.g.*:

.. code-block:: bash

pip3 install --break-system-packages codac

.. admonition:: Python package dependencies for Ubuntu or Debian-like systems

| If available, prefer ``sudo apt install python3-mypackage`` instead of ``pip install mypackage`` commands to install Python package dependencies for Ubuntu or Debian-like systems, to avoid breaking the system packages. However, not all the packages are available with ``apt``.

.. admonition:: macOS Big Sur and later (x86_64)

| Python wheels provided for Catalina or earlier `may need to be installed with something similar to <https://stackoverflow.com/questions/64847996/force-usage-of-10-x-wheel-in-macos-big-sur>`_:
Expand Down
Loading