Skip to content

Commit

Permalink
Jiminy release 1.8.0 (#714)
Browse files Browse the repository at this point in the history
* [core] More consistent naming conventions. (#705)
* [core] Revert 'crba' to ensure positive definite inertia matrix. (#709)
* [core] Remove return codes and throw exceptions instead. (#713)
* [core/python] Get rid of intrusive global to_python converters.(#708)
* [core/python] Avoid using raw C typeid. (#711)
* [python] Get rid of 'dm-tree' dependency. (#706)
* [python/viewer] Fix video recording on Apple Silicon with meshcat. (#706)
* [python/viewer] Fix meshcat zmq socket not properly closed.
* [gym/common] Fix circular reference issue preventing garbage collection.
* [gym/common] Enable numba caching for 'remove_twist'. (#706)
* [misc] Cleanup stable_baselines3 examples and unit tests. (#706)
* [misc] Update Github Action to latest release.(#708)
* [misc] Run CI on Apple Silicon when possible. (#707)
* [misc] Update C++ dependencies to latest releases. (#713)
  • Loading branch information
duburcqa committed Feb 11, 2024
1 parent ddfbe27 commit 51b1451
Show file tree
Hide file tree
Showing 200 changed files with 7,930 additions and 9,466 deletions.
7 changes: 3 additions & 4 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
PYTHON_VERSION: ['3.8', '3.9', '3.10', '3.11', '3.12']
BUILD_TYPE: ['Release']
include:
- PYTHON_VERSION: '3.8'
- PYTHON_VERSION: '3.10'
BUILD_TYPE: 'Debug'

defaults:
Expand All @@ -33,12 +33,11 @@ jobs:

steps:
- name: Configure Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON_VERSION }}
architecture: 'x64'
- name: Free Disk Space
uses: jlumbroso/free-disk-space@v1.3.0
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
android: true
Expand Down
39 changes: 24 additions & 15 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,26 @@ jobs:
name: >-
(${{ matrix.PYTHON_VERSION }}) (${{ matrix.BUILD_TYPE }})
Build and run the unit tests. Then generate and publish the wheels on PyPi.
# Github provides Apple Silicon runners (`macos-14`) but `setup-python` does not support ARM for now
runs-on: macos-13 #macos-14
strategy:
matrix:
PYTHON_VERSION: ['3.8', '3.9', '3.10', '3.11', '3.12']
OS: ['macos-13'] # 'macos-13': Intel (x86), 'macos-14': Apple Silicon (arm64)
# meshcat video recorder 'playwright' is not working on 'macos-14' runners.
PYTHON_VERSION: ['3.10', '3.11', '3.12'] # `setup-python` does not support Python<3.10 on Apple Silicon
BUILD_TYPE: ['Release']
include:
- PYTHON_VERSION: '3.11'
- OS: 'macos-13'
PYTHON_VERSION: '3.8'
BUILD_TYPE: 'Release'
- OS: 'macos-13'
PYTHON_VERSION: '3.9'
BUILD_TYPE: 'Release'
- OS: 'macos-13'
PYTHON_VERSION: '3.11'
BUILD_TYPE: 'Debug'

runs-on: ${{ matrix.OS }}

defaults:
run:
shell: bash -ieo pipefail {0}
Expand All @@ -44,10 +53,9 @@ jobs:
#####################################################################################

- name: Configure Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON_VERSION }}
architecture: 'x64'
- name: Setup minimal build environment
run: |
git config --global advice.detachedHead false
Expand Down Expand Up @@ -133,9 +141,9 @@ jobs:
"${PYTHON_EXECUTABLE}" -m pip install --force-reinstall --no-deps "${RootDir}/build/wheelhouse/"*.whl
- name: Upload the wheel for Linux of jiminy_py
if: matrix.BUILD_TYPE == 'Release'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheelhouse
name: wheelhouse-${{ matrix.PYTHON_VERSION }}
path: build/wheelhouse

#####################################################################################
Expand Down Expand Up @@ -193,20 +201,21 @@ jobs:

publish-pypi-macos:
name: (MacOS CI) Publish on PyPi the wheel for OS X of jiminy_py
runs-on: ubuntu-22.04
permissions:
id-token: write

needs: build-and-test-osx
runs-on: ubuntu-20.04
if: github.repository == 'duburcqa/jiminy' && github.event_name == 'push' && github.ref == 'refs/heads/master'

steps:
- name: Download the wheel previously generated
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheelhouse
pattern: wheelhouse-*
merge-multiple: true
path: wheelhouse
- name: Publish the wheel
uses: pypa/gh-action-pypi-publish@v1.8.10
uses: pypa/gh-action-pypi-publish@v1.8.11
with:
user: __token__
password: ${{ secrets.PYPI_DEPLOY }}
packages-dir: wheelhouse
verify-metadata: false
27 changes: 14 additions & 13 deletions .github/workflows/manylinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,15 @@ jobs:
"${PYTHON_EXECUTABLE}" "$RootDir/build_tools/wheel_repair_linux.py" repair \
-w "$RootDir/build/wheelhouse" "$RootDir/build/pypi/dist/jiminy_py/"*.whl
- name: Upload the wheel of Jiminy for Linux
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheelhouse
name: wheelhouse-jiminy-${{ matrix.PYTHON_VERSION }}
path: build/wheelhouse
- name: Upload the wheels of Gym Jiminy
if: success() && matrix.PYTHON_VERSION == 'cp38'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheelhouse
name: wheelhouse-gym_jiminy
path: build/pypi/dist/gym_jiminy

#####################################################################################
Expand Down Expand Up @@ -176,9 +176,10 @@ jobs:
#####################################################################################

- name: Download the wheels previously generated
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheelhouse
pattern: wheelhouse-*
merge-multiple: true
path: wheelhouse
- name: Install the best wheel among the previously generated
run: |
Expand Down Expand Up @@ -210,21 +211,21 @@ jobs:

publish-pypi-manylinux:
name: Publish on PyPi the wheel for Linux of jiminy_py and gym_jiminy
runs-on: ubuntu-22.04
permissions:
id-token: write

needs: test-user-linux
runs-on: ubuntu-20.04
if: github.repository == 'duburcqa/jiminy' && github.event_name == 'push' && github.ref == 'refs/heads/master'

steps:
- name: Download the wheels previously generated
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheelhouse
pattern: wheelhouse-*
merge-multiple: true
path: wheelhouse
- name: Publish the wheels on PyPi
uses: pypa/gh-action-pypi-publish@v1.8.10
uses: pypa/gh-action-pypi-publish@v1.8.11
with:
user: __token__
password: ${{ secrets.PYPI_DEPLOY }}
packages-dir: wheelhouse
verify-metadata: false
19 changes: 10 additions & 9 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,28 @@ on:
jobs:
build-test-and-deploy-doc-ubuntu:
name: >-
(${{ matrix.os }}) (${{ matrix.BUILD_TYPE }}) (${{ matrix.COMPILER }}, ${{ matrix.GENERATOR }})
(${{ matrix.OS }}) (${{ matrix.BUILD_TYPE }}) (${{ matrix.COMPILER }}, ${{ matrix.GENERATOR }})
Easy install the dependencies. Build the project and run the unit tests. Generate and deploy the documentation.
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
OS: ['ubuntu-20.04', 'ubuntu-22.04']
GENERATOR: ['Unix Makefiles']
COMPILER: ['gcc']
BUILD_TYPE: ['Release']
include:
- os: ubuntu-20.04
- OS: 'ubuntu-20.04'
GENERATOR: 'Unix Makefiles'
COMPILER: 'gcc'
BUILD_TYPE: 'Debug'
- os: ubuntu-20.04 # For some reason, importing 'jiminy_py' causes segfault on ubuntu-22.04
- OS: 'ubuntu-20.04' # For some reason, importing 'jiminy_py' causes segfault on ubuntu-22.04
GENERATOR: 'Ninja'
COMPILER: 'clang'
LINKER_FLAGS: '-fuse-ld=gold'
BUILD_TYPE: 'Release'

runs-on: ${{ matrix.OS }}

defaults:
run:
# Using bash with automatic sourcing `.bashrc` and fail-fast behavior enabled
Expand All @@ -42,7 +43,7 @@ jobs:
- name: Checkout branch
uses: actions/checkout@v4
- name: Free Disk Space
uses: jlumbroso/free-disk-space@v1.3.0
uses: jlumbroso/free-disk-space@v1.3.1
with:
tool-cache: false
android: true
Expand Down Expand Up @@ -80,7 +81,7 @@ jobs:
#####################################################################################

- name: PEP8 Code Style Check
if: matrix.os == 'ubuntu-20.04' && matrix.BUILD_TYPE == 'Release' && matrix.COMPILER == 'gcc'
if: matrix.OS == 'ubuntu-20.04' && matrix.BUILD_TYPE == 'Release' && matrix.COMPILER == 'gcc'
run: |
"${PYTHON_EXECUTABLE}" -m pip install flake8
flake8 --ignore=E121,E126,E123,E226,E241,E266,E402,E741,F405,W504 \
Expand Down Expand Up @@ -157,7 +158,7 @@ jobs:
#####################################################################################

- name: Python linter
if: matrix.os == 'ubuntu-20.04' && matrix.BUILD_TYPE == 'Release' && matrix.COMPILER == 'gcc'
if: matrix.OS == 'ubuntu-20.04' && matrix.BUILD_TYPE == 'Release' && matrix.COMPILER == 'gcc'
run: |
cd "${RootDir}/python/jiminy_py/"
pylint --rcfile="${RootDir}/.pylintrc" "src/"
Expand All @@ -175,7 +176,7 @@ jobs:
cmake . -DCOMPONENT=docs -P ./cmake_install.cmake
- name: Deploy to GitHub Pages
if: >-
matrix.os == 'ubuntu-22.04' && success() &&
matrix.OS == 'ubuntu-22.04' && success() &&
github.repository == 'duburcqa/jiminy' && github.event_name == 'push' && github.ref == 'refs/heads/master'
uses: crazy-max/ghaction-github-pages@v4
with:
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,17 @@ jobs:

steps:
- name: Configure Pagefile
uses: al-cheb/configure-pagefile-action@v1.3
uses: al-cheb/configure-pagefile-action@v1.4
with:
disk-root: "C:"
- name: Create workspace on secondary drive that has more space
- name: Create workspace on secondary drive (C:) that has more space
run: |
New-Item -ItemType Directory -Force -Path C:\workspace
New-Item -ItemType Junction -Force -Value C:\workspace -Path "${env:GITHUB_WORKSPACE}/workspace"
- name: Configure Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON_VERSION }}
architecture: 'x64'
- name: Checkout jiminy
uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -143,9 +142,9 @@ jobs:
}
- name: Upload the wheel for Windows of jiminy_py
if: matrix.BUILD_TYPE == 'Release'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: wheelhouse
name: wheelhouse-${{ matrix.PYTHON_VERSION }}
path: 'workspace/build/wheelhouse'

#####################################################################################
Expand Down Expand Up @@ -209,20 +208,21 @@ jobs:

publish-pypi-win10:
name: (Windows) Publish on PyPi the wheel for Windows of jiminy_py
runs-on: ubuntu-22.04
permissions:
id-token: write

needs: build-and-test-win10
runs-on: ubuntu-20.04
if: github.repository == 'duburcqa/jiminy' && github.event_name == 'push' && github.ref == 'refs/heads/master'

steps:
- name: Download the wheels previously generated
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: wheelhouse
pattern: wheelhouse-*
merge-multiple: true
path: wheelhouse
- name: Publish on PyPi the wheels
uses: pypa/gh-action-pypi-publish@v1.8.10
uses: pypa/gh-action-pypi-publish@v1.8.11
with:
user: __token__
password: ${{ secrets.PYPI_DEPLOY }}
packages-dir: wheelhouse
verify-metadata: false
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
*egg-info*
**/__pycache__
venv/
.cache
.vscode
.DS_Store
docs/html
install
build
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
cmake_minimum_required(VERSION 3.12.4)

# Set the build version (specify a tweak version to indicated post-release if needed)
set(BUILD_VERSION 1.7.19.1)
set(BUILD_VERSION 1.8.0)

# Set compatibility
set(COMPATIBILITY_VERSION SameMinorVersion)
Expand Down
8 changes: 4 additions & 4 deletions build_tools/build_install_deps_unix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ if [ ! -d "${RootDir}/eigenpy" ]; then
fi
cd "${RootDir}/eigenpy"
git reset --hard
git fetch origin "v3.1.4" && git checkout --force FETCH_HEAD || true
git fetch origin "v3.3.0" && git checkout --force FETCH_HEAD || true
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
git apply --reject --whitespace=fix "${RootDir}/build_tools/patch_deps_unix/eigenpy.patch"
Expand Down Expand Up @@ -155,7 +155,7 @@ if [ ! -d "${RootDir}/cppad" ]; then
fi
cd "${RootDir}/cppad"
git reset --hard
git fetch origin "20230000.0" && git checkout --force FETCH_HEAD || true
git fetch origin "20240000.2" && git checkout --force FETCH_HEAD || true

### Checkout CppADCodeGen
if [ ! -d "${RootDir}/cppadcodegen" ]; then
Expand All @@ -180,7 +180,7 @@ if [ ! -d "${RootDir}/hpp-fcl" ]; then
fi
cd "${RootDir}/hpp-fcl"
git reset --hard
git fetch origin "v2.4.0" && git checkout --force FETCH_HEAD || true
git fetch origin "v2.4.1" && git checkout --force FETCH_HEAD || true
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
git apply --reject --whitespace=fix "${RootDir}/build_tools/patch_deps_unix/hppfcl.patch"
Expand All @@ -194,7 +194,7 @@ if [ ! -d "${RootDir}/pinocchio" ]; then
fi
cd "${RootDir}/pinocchio"
git reset --hard
git fetch origin "v2.6.21" && git checkout --force FETCH_HEAD || true
git fetch origin "v2.7.0" && git checkout --force FETCH_HEAD || true
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
git apply --reject --whitespace=fix "${RootDir}/build_tools/patch_deps_unix/pinocchio.patch"
Expand Down
8 changes: 4 additions & 4 deletions build_tools/build_install_deps_windows.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ if (-not (Test-Path -PathType Container "$RootDir/eigenpy")) {
}
Push-Location -Path "$RootDir/eigenpy"
git reset --hard
git fetch origin "v3.1.4"
git fetch origin "v3.3.0"
git checkout --force FETCH_HEAD
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
Expand Down Expand Up @@ -164,7 +164,7 @@ if (-not (Test-Path -PathType Container "$RootDir/cppad")) {
}
Push-Location -Path "$RootDir/cppad"
git reset --hard
git fetch origin "20230000.0"
git fetch origin "20240000.2"
git checkout --force FETCH_HEAD
Pop-Location

Expand Down Expand Up @@ -195,7 +195,7 @@ if (-not (Test-Path -PathType Container "$RootDir/hpp-fcl")) {
}
Push-Location -Path "$RootDir/hpp-fcl"
git reset --hard
git fetch origin "v2.4.0"
git fetch origin "v2.4.1"
git checkout --force FETCH_HEAD
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
Expand All @@ -214,7 +214,7 @@ if (-not (Test-Path -PathType Container "$RootDir/pinocchio")) {
}
Push-Location -Path "$RootDir/pinocchio"
git reset --hard
git fetch origin "v2.6.21"
git fetch origin "v2.7.0"
git checkout --force FETCH_HEAD
git submodule --quiet foreach --recursive git reset --quiet --hard
git submodule --quiet update --init --recursive --depth 1 --jobs 8
Expand Down
Loading

0 comments on commit 51b1451

Please sign in to comment.