Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preparing release #304

Merged
merged 117 commits into from
Aug 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
bac5971
Restructure pybind11 to create and install a proper Python package
diegoferigo Jun 16, 2021
c462fb8
Update setuptools resources
diegoferigo Jun 16, 2021
e0e636e
Move pytest configuration to setup.cfg
diegoferigo Jun 16, 2021
fdc337f
Vendor CMake's FindPython3
diegoferigo Jun 17, 2021
2aea66e
Update CMake project to use vendored FindPython3
diegoferigo Jun 18, 2021
be2b632
Update CI pipeline to install and test wheels for many Python versions
diegoferigo Jun 16, 2021
1d7a1ef
Upload artifacts with sdist and wheels
diegoferigo Jun 16, 2021
754d09c
Clone a complete git repo in CI
diegoferigo Jun 17, 2021
02579ae
Update Python docs
diegoferigo Jun 17, 2021
593182d
Remove requirements.txt
diegoferigo Jun 17, 2021
280a56b
Update CONTRIBUTING.md
diegoferigo Jun 17, 2021
f434b75
rm FindPython module
artivis Jul 9, 2021
a12b09a
review python bindings install
artivis Jul 9, 2021
7f56b47
update CI
artivis Jul 9, 2021
9fcebfe
update gitignore
artivis Jul 10, 2021
0d4d576
update python doc
artivis Jul 10, 2021
b55a7e6
Merge pull request #1 from artivis/feature/python_install
diegoferigo Jul 13, 2021
dc75455
Fix artifact name
diegoferigo Jul 13, 2021
68bbad8
Merge pull request #233 from diegoferigo/feature/setuptools
artivis Jul 13, 2021
318b660
fix doc in ci
artivis Jul 13, 2021
436702d
Merge pull request #235 from artivis/fix/doc_ci
artivis Jul 13, 2021
4d6ca66
Add Composite lie group and associated CompositeTangent
pettni Oct 17, 2020
4932590
Review 1
pettni Dec 24, 2020
6810a83
Remove unused properties files
pettni Dec 24, 2020
2d9bd49
Add bundle examples
pettni Feb 28, 2021
6a0d727
Rename block->element
pettni Feb 28, 2021
ceb889d
Revert "Remove unused properties files"
artivis Jun 1, 2021
700a9f8
rework bundle
artivis May 25, 2021
6b49b65
break bundle tests into smaller units
artivis Jun 1, 2021
34f40b7
add SE_2_3:isometry
artivis Jul 8, 2021
98a02d6
disable Bundle on msvc
artivis Jul 11, 2021
361822d
deprecate ubuntu16 in CI
artivis Jul 11, 2021
09ce487
Fix find_package(manif) if tl-optional_FOUND is TRUE
traversaro Jul 21, 2021
1a7abca
Update manifConfig.cmake.in
traversaro Jul 21, 2021
c13c097
Merge pull request #236 from traversaro/patch-2
artivis Jul 21, 2021
317ff22
Merge pull request #234 from artivis/pettni/devel
artivis Jul 21, 2021
89d23d1
add size & operator[]
artivis Sep 25, 2021
7680740
add traits is_manif_group/is_manif_tangent
artivis Sep 25, 2021
15b224b
add macro MANIF_RUN_ALL_TEST
artivis Sep 25, 2021
d1dd14e
add autodiff lib support
artivis Sep 25, 2021
4196a75
add autodiff lib tests
artivis Sep 25, 2021
f464fe2
doc autodiff
artivis Sep 25, 2021
c85ac91
ci autodiff
artivis Sep 25, 2021
ab560a3
Merge pull request #237 from artivis/feature/autodiff
artivis Sep 26, 2021
d9e438a
Add installation of pip metadata files for when manifpy python bindin…
traversaro Feb 8, 2022
7eb7cfe
Merge pull request #243 from traversaro/patch-3
artivis Feb 8, 2022
57fc318
Always use \n as new line when generating files with CMake
traversaro Mar 16, 2022
a4ba3df
Merge pull request #244 from traversaro/patch-4
artivis Mar 20, 2022
6e43be2
Add missing include in impl/macro.h header
traversaro Jun 28, 2022
33a5480
Merge pull request #248 from traversaro/patch-5
artivis Jul 1, 2022
f086db6
Function skew handles Eigen dynamic matrix (#249)
artivis Jul 1, 2022
758e05b
fix m.css checkout
artivis Mar 20, 2022
2a05ab3
bump gtest tag to 1.12.0
artivis Jul 2, 2022
0dc5941
add ubuntu 22.04 to ci
artivis Jul 2, 2022
b47c010
Merge pull request #245 from artivis/fix/doc-ci
artivis Jul 2, 2022
3b2f392
add windows 2022 to ci
artivis Jul 2, 2022
ef2d294
Merge pull request #251 from artivis/feature/22.04-ci
artivis Jul 2, 2022
e3ffec3
Merge pull request #252 from artivis/ci/win22
artivis Jul 2, 2022
35a4a0a
use test macro everywhere
artivis Oct 1, 2021
000b683
use gtest INSTANTIATE_TEST_SUITE_P macro
artivis Oct 1, 2021
8b28afa
relax some tests
artivis Oct 2, 2021
0d10759
fix eps
artivis Oct 2, 2021
42b130f
fix se2_localization.py
artivis Jul 2, 2022
b94fcf2
Merge pull request #253 from artivis/fix/example_py
artivis Jul 3, 2022
dd1a48d
fix cppcheck
artivis Jul 3, 2022
294fe4f
Merge pull request #240 from artivis/fix/tests
artivis Jul 3, 2022
988496c
Deprecate windows-2016 ci
artivis Aug 2, 2022
26bd80c
Merge pull request #255 from artivis/fix/deprecate_ci
artivis Aug 2, 2022
8eb1b09
Deprecate ci macos-10.15 & add macos-11/12
artivis Aug 3, 2022
69d5ba3
Merge pull request #257 from artivis/ci/macos
artivis Aug 3, 2022
ff8483e
enable tests for autodiff real type
artivis Jul 2, 2022
bc6897a
use autodiff main branch in ci
artivis Aug 2, 2022
cd13806
specialize constants for autodiff:Real
artivis Aug 3, 2022
29d43c8
manif cmake versionning arch independent
artivis Aug 3, 2022
805a0b2
Merge pull request #250 from artivis/feature/autodiff
artivis Aug 3, 2022
6be3d6b
Permit to specify Python package install dir with MANIFPY_PKGDIR
traversaro Nov 10, 2022
905d893
Also install Python metadata in MANIFPY_PKGDIR
traversaro Dec 6, 2022
68aefaf
rm ubuntu 18.04 ci
artivis Jun 4, 2023
5ee5a33
quick fix for LP#1989124
artivis Jun 5, 2023
03ff8ee
rm python 3.6 from ci
artivis Jun 5, 2023
08719cb
Merge pull request #272 from artivis/fix/ci
artivis Jun 5, 2023
9dedec1
replaced ::Constant(0) with ::Zero() due to ceres::Jet compile error
willat343 Jun 2, 2023
bc1e90f
Merge pull request #271 from willat343/devel
artivis Jun 6, 2023
2e4a798
Support read C++ standard via CMAKE_CXX_STANDARD when compiling Pytho…
traversaro Jul 5, 2023
64f6e0c
Merge pull request #259 from traversaro/patch-6
artivis Jul 6, 2023
bb3f675
Merge pull request #275 from traversaro/fix274
artivis Jul 17, 2023
e07404e
set target default cxx standard iif no glob set
artivis Oct 31, 2023
c8a9fcb
Merge pull request #280 from artivis/fix/test_cmake
artivis Nov 3, 2023
9ed1562
Add files via upload
artivis Mar 9, 2024
66408f7
Merge pull request #286 from artivis/fix/typo
artivis Mar 9, 2024
afe43aa
fix casting float->double
artivis Jan 21, 2024
974a241
Merge pull request #284 from artivis/fix/cast
artivis Mar 9, 2024
8907527
lipstick
artivis Mar 15, 2024
71b88a0
add SGal3
artivis Mar 15, 2024
0642c38
add some more tests
artivis Mar 15, 2024
03c497d
Merge pull request #289 from artivis/feat/sgal3
artivis Mar 22, 2024
3fd424a
Update to manif to use Ceres Manifold instead of LocalParameterization
mattalvarado Jun 20, 2024
5145f39
Update SetParameterization
mattalvarado Jun 20, 2024
bfaa11b
Add plus/minus functions
mattalvarado Jun 20, 2024
c0f12cb
Make plus/minus generic
mattalvarado Jun 20, 2024
35e7930
Update Jacobian query in tests
mattalvarado Jun 20, 2024
31689a4
bring back local_parametrization
artivis Jun 27, 2024
2676c81
support ceres pre/post 2.2
artivis Jun 27, 2024
01b30b5
bump cmake min version in tests
artivis Jun 27, 2024
2f5804c
enable 24.04 in CI
artivis Jun 27, 2024
797079d
Merge pull request #1 from artivis/feature/ceres-2.2
mattalvarado Jun 27, 2024
38b1da1
disable waning
artivis Jun 28, 2024
084e68e
CI drop python 3.7 & add 3.12
artivis Jun 28, 2024
17b7a2e
CI rm macos-11 & add 13/14
artivis Jun 29, 2024
3b100aa
Merge pull request #295 from mattalvarado/feature/update_to_ceres_man…
artivis Jun 29, 2024
6831c67
Update CI checkout to v4
artivis Jun 29, 2024
534ff8c
Merge pull request #297 from artivis/fix/ci-checkout
artivis Jun 29, 2024
cd16821
Add Lie bracket (#300)
artivis Jul 26, 2024
df29da5
add vee
artivis Aug 5, 2024
331720d
Remove extra semicolons after macros in Bundle.h
HenryLeC Aug 6, 2024
33be710
Merge pull request #302 from artivis/feat/vee
artivis Aug 6, 2024
bf9c71d
Merge pull request #303 from HenryLeC/devel
artivis Aug 7, 2024
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
172 changes: 116 additions & 56 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,23 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-16.04, ubuntu-18.04, ubuntu-20.04]
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
build_type: [Release, Debug]
compiler: [{
"cc": "gcc",
"cxx": "g++"
}, {
"cc": "clang",
"cxx": "clang++"
}]
compiler: [
{
"cc": "gcc",
"cxx": "g++"
}, {
"cc": "clang",
"cxx": "clang++"
}
]
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
Expand All @@ -58,16 +60,10 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# Xcode 10.3 & Xcode 12.2
# removing macos-11.0 for now, see
#https://github.com/actions/virtual-environments/issues/841
os: [macos-10.15]
os: [macos-12, macos-13, macos-14]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Xcode
if: matrix.os == 'macOS-10.15'
run: sudo xcode-select -s /Applications/Xcode_10.3.app/Contents/Developer
uses: actions/checkout@v4
- name: Setup
run: |
brew install eigen
Expand All @@ -79,7 +75,7 @@ jobs:
echo "Eigen:" && brew info eigen
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON
run: cmake $GITHUB_WORKSPACE -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Release
- name: Build
working-directory: ${{runner.workspace}}/build
run: make -j2
Expand All @@ -91,16 +87,18 @@ jobs:
runs-on: ${{ matrix.combinations.os }}
strategy:
matrix:
combinations: [{
"os": "windows-2016",
"cmake_generator": "Visual Studio 15 2017"
}, {
"os": "windows-2019",
"cmake_generator": "Visual Studio 16 2019"
}]
combinations: [
{
"os": "windows-2019",
"cmake_generator": "Visual Studio 16 2019"
}, {
"os": "windows-2022",
"cmake_generator": "Visual Studio 17 2022"
}
]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup
run: |
vcpkg install eigen3:x64-windows
Expand All @@ -126,10 +124,11 @@ jobs:
needs: [build-ubuntu]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
sudo apt install -y libunwind-dev
sudo apt install -y libceres-dev cppcheck
mkdir ${{runner.workspace}}/build
- name: Configure CMake
Expand All @@ -147,10 +146,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
sudo apt install -y libunwind-dev
sudo apt install -y libceres-dev valgrind
mkdir ${{runner.workspace}}/build
- name: Configure CMake
Expand All @@ -168,10 +168,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
sudo apt install -y libunwind-dev
sudo apt install -y libceres-dev
mkdir ${{runner.workspace}}/build
- name: Configure CMake
Expand All @@ -189,13 +190,20 @@ jobs:

ceres:
needs: [build-ubuntu]
runs-on: ubuntu-latest
# runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
# Test for both Ceres pre/post 2.2
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
sudo apt install -y libunwind-dev
sudo apt install -y libceres-dev
mkdir ${{runner.workspace}}/build
- name: Configure CMake
Expand All @@ -208,18 +216,55 @@ jobs:
working-directory: ${{runner.workspace}}/build
run: make test

pybind11:
autodiff:
needs: [build-ubuntu]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
run: |
sudo apt update
sudo apt install -y libeigen3-dev
mkdir ${{runner.workspace}}/build
# Install autodiff
- name: Checkout autodiff
uses: actions/checkout@v3
with:
repository: autodiff/autodiff
ref: main
path: 'autodiff'
- name: Setup autodiff
run: mkdir ${{runner.workspace}}/build_autodiff
- name: Configure CMake autodiff
working-directory: ${{runner.workspace}}/build_autodiff
run: cmake $GITHUB_WORKSPACE/autodiff -DAUTODIFF_BUILD_TESTS=OFF -DAUTODIFF_BUILD_PYTHON=OFF -DAUTODIFF_BUILD_EXAMPLES=OFF -DAUTODIFF_BUILD_DOCS=OFF
- name: Install autodiff
working-directory: ${{runner.workspace}}/build_autodiff
run: sudo cmake --build . --target install
# Build/test manif autodiff
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DBUILD_TESTING=ON
- name: Build
working-directory: ${{runner.workspace}}/build
run: make -j2
- name: Test
working-directory: ${{runner.workspace}}/build
run: make test

pybind11-pip:
needs: [build-ubuntu, build-mac]
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-latest] #windows-latest,
# python-version: [3.5, 3.6, 3.7, 3.8]
python-version: [3.6]
python-version: ['3.8', '3.9', '3.10', '3.12']
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- run: git fetch --prune --unshallow
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
Expand All @@ -235,27 +280,42 @@ jobs:
- name: Setup
run: |
python -m pip install --upgrade pip
pip install pytest "pybind11[global]"
pip install -r requirements.txt
python -m pip install build
- name: Build
run: pip install .
run: python -m pip install -v .[testing]
- name: Test
run: pytest
run: python -m pytest

# arm64:
# needs: [build-ubuntu]
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# - name: Setup
# run: mkdir ${{runner.workspace}}/build
# - name: Configure CMake
# working-directory: ${{runner.workspace}}/build
# run: cmake $GITHUB_WORKSPACE -DENABLE_COVERAGE=ON -DBUILD_TESTING=ON
# - name: Build
# working-directory: ${{runner.workspace}}/build
# run: make
# - name: Test
# working-directory: ${{runner.workspace}}/build
# run: make test
pybind11-cmake:
needs: [build-ubuntu, build-mac]
strategy:
matrix:
platform: [ubuntu-20.04, ubuntu-22.04, ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v4
- run: git fetch --prune --unshallow
# - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}
- name: Setup apt
run: |
sudo apt update
sudo apt install -y libeigen3-dev pybind11-dev python3-pytest python3-numpy
mkdir ${{runner.workspace}}/build
- name: Configure
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=ON -DBUILD_PYTHON_BINDINGS=ON -DCMAKE_BUILD_TYPE=Release
- name: Build
working-directory: ${{runner.workspace}}/build
run: make -j2
- name: Test
working-directory: ${{runner.workspace}}/build
run: make test
- name: Install
working-directory: ${{runner.workspace}}/build
run: sudo make install
- name: Test Import
run: python3 -c 'import manifpy'
18 changes: 13 additions & 5 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: documentation
on:
push:
branches: devel
pull_request:
branches:
- devel
workflow_dispatch:

jobs:
Expand All @@ -27,10 +30,9 @@ jobs:
- name: Setup
run: |
python -m pip install --upgrade pip
pip install pytest "pybind11[global]"
pip install -r requirements.txt
python -m pip install build
- name: Build
run: pip install .
run: python -m pip install -v .

# build:
# runs-on: ubuntu-20.04
Expand Down Expand Up @@ -58,8 +60,10 @@ jobs:
- name: Fetch Python deps
run: python -m pip install jinja2 Pygments docutils
- name: Fetch m.css
working-directory: ${{runner.workspace}}/manif/docs
run: git clone git://github.com/mosra/m.css
uses: actions/checkout@v3
with:
repository: mosra/m.css
path: docs/m.css

- name: Build Python docs
working-directory: ${{runner.workspace}}/manif/docs
Expand All @@ -86,6 +90,10 @@ jobs:
deploy:
runs-on: ubuntu-20.04
needs: [build]
# todo: deploy if new tag/release
if: |
github.repository == 'artivis/manif' &&
github.event_name == 'push' && github.ref == 'refs/heads/devel'
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: release
on:
push:
tags:
- '*'
pull_request:
branches:
- devel # master only when ready
- master
workflow_dispatch:

jobs:

build-sdist:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- run: git fetch --prune --unshallow

- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.7

- name: Setup apt
run: |
sudo apt update
sudo apt install -y libeigen3-dev

- name: Setup
run: |
python3 -m pip install --upgrade pip
pip3 install build

- name: Build sdist
run: python3 -m build --sdist -o dist/

- name: Build wheel
run: python3 -m build --wheel -o dist/

- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: dist
path: dist/*
# path: |
# path/*.whl
# path/*.tar.gz

upload_pypi:
needs: build-sdist
runs-on: ubuntu-latest
steps:

- uses: actions/download-artifact@v2
with:
name: dist
path: dist

- name: Inspect dist folder
run: ls -lah dist/

# @todo: see https://github.com/diegoferigo/manif/pull/1#discussion_r668531581
# - uses: pypa/gh-action-pypi-publish@master
# if: |
# github.repository == 'artivis/manif' &&
# ((github.event_name == 'release' && github.event.action == 'published') ||
# (github.event_name == 'push' && github.ref == 'refs/heads/main'))
# with:
# user: __token__
# password: ${{ secrets.PYPI_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ docs/m.css
*.so
*__pycache__
.pytest_cache
dist
Loading
Loading