Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
deb923a
Replace instant with web-time
alphaville Mar 16, 2026
f292feb
Rust constraints: additional unit tests
alphaville Mar 20, 2026
156b90c
more tests + update changelog
alphaville Mar 20, 2026
23b61fe
Lipschitz estimator in Rust
alphaville Mar 23, 2026
2fa950d
update changelog
alphaville Mar 23, 2026
0e9a9cc
make sure Cholesky factorizer works with f32
alphaville Mar 23, 2026
c76527e
Lipschitz estimator API docs
alphaville Mar 23, 2026
a6db7a7
panoc_cache: generic float types
alphaville Mar 23, 2026
93fa1b6
Rust constraints support generic float types
alphaville Mar 23, 2026
1964e0d
panoc supports generic float types
alphaville Mar 23, 2026
a3ac25a
constraints with f32 are better tested
alphaville Mar 23, 2026
a5ee7a8
cargo fmt
alphaville Mar 23, 2026
7f7611d
fbs supports generic floats
alphaville Mar 23, 2026
afea1dc
alm/pm support generic float types
alphaville Mar 23, 2026
b745126
rust docs: generic float types
alphaville Mar 23, 2026
e61c3f9
final touch: support generic float types
alphaville Mar 23, 2026
2cba707
more thorough testing (f32+f64)
alphaville Mar 23, 2026
8e8cb3e
expand f32 coverage
alphaville Mar 23, 2026
9482b22
fix clippy issues
alphaville Mar 23, 2026
9bcc61f
cargo fmt
alphaville Mar 23, 2026
2b8f72e
[ci skip] website docs
alphaville Mar 25, 2026
e87c3cd
ROS2 support
alphaville Mar 25, 2026
7bebcd5
update ROS2 auto-generated README
alphaville Mar 25, 2026
31a3b40
api docs
alphaville Mar 25, 2026
933157d
ROS2 tests in CI
alphaville Mar 25, 2026
cc6fce9
fix GA dependencies (ROS2 tests)
alphaville Mar 25, 2026
620f9a7
fix issues in ci.yml
alphaville Mar 25, 2026
3e92b92
wip: working on GA issues
alphaville Mar 25, 2026
9d3781c
GA actions configuration
alphaville Mar 25, 2026
8b8068d
fix issue in script.sh (set -u/+u)
alphaville Mar 25, 2026
f7c5799
GA: let's try again
alphaville Mar 25, 2026
255a152
ROS2 tests work OK locally
alphaville Mar 25, 2026
ea7a273
fix GA issues (hopefully)
alphaville Mar 25, 2026
918ba05
CI issue: import empy
alphaville Mar 25, 2026
e66d975
trying to fix GA issues
alphaville Mar 25, 2026
ec34d39
rearrange GA jobs
alphaville Mar 25, 2026
27a7a12
further testing of ROS2
alphaville Mar 25, 2026
e97c901
Merge branch 'master' into feature/385-ros2
alphaville Mar 25, 2026
48d3bdf
update changelog
alphaville Mar 25, 2026
b828f24
minor
alphaville Mar 25, 2026
29f65f9
bump version
alphaville Mar 25, 2026
7af46ba
update publish-pypi.sh
alphaville Mar 25, 2026
00b5508
merge master and fix conflicts
alphaville Mar 25, 2026
874d2bb
[ci skip] update website docs
alphaville Mar 25, 2026
9d05655
[ci skip] update ROS2 documentation
alphaville Mar 25, 2026
501a4e8
ros2: tighter testing
alphaville Mar 25, 2026
3215c0f
fix issue with ros2 rate
alphaville Mar 25, 2026
66f6337
update ros2 docs
alphaville Mar 25, 2026
25868c7
[docit][ci skip] update website docs
alphaville Mar 25, 2026
5eaae9e
[ci skip] update contributing guidelines
alphaville Mar 25, 2026
b92fda9
[ci skip] contributing.md + link to open_ros
alphaville Mar 26, 2026
a19f333
[ci skip] update website docs
alphaville Mar 26, 2026
225fc1d
[docit] build api docs
alphaville Mar 26, 2026
7bc3bc9
[ci skip] website: make mobile-friendly
alphaville Mar 26, 2026
6807d1d
[docit] update api docs
alphaville Mar 26, 2026
a993743
addressing #403
alphaville Mar 26, 2026
a433c5c
draft version of new matlab API
alphaville Mar 26, 2026
2969e6a
[ci skip] support for OCP solvers
alphaville Mar 26, 2026
3aaa4bf
add changelog in matlab toolbox
alphaville Mar 26, 2026
a6434cb
matlab api: readme file
alphaville Mar 26, 2026
b6fead3
affine space: impl. try_new
alphaville Mar 27, 2026
175c4c8
sprinkle some #[must_use] here and there
alphaville Mar 27, 2026
857a131
clean up all the T::from(..).expect(..)
alphaville Mar 27, 2026
5d89d2e
tighter unit testing (f36/f64)
alphaville Mar 27, 2026
eeb7d97
Merge branch 'feature/rust-cnstr-testing' into feature/372-rust-float
alphaville Mar 27, 2026
f262a76
cargo fmt
alphaville Mar 27, 2026
65f5249
add #[allow(clippy::too_many_arguments)]
alphaville Mar 27, 2026
45b3673
fix issues in docs of AlmFactory
alphaville Mar 27, 2026
7a2095c
AlmCache: update docs
alphaville Mar 27, 2026
00e3787
examples in constraints docs
alphaville Mar 27, 2026
827705e
OpEn v0.12.0-alpha.1
alphaville Mar 27, 2026
a2a8e20
[ci skip] update website docs
alphaville Mar 27, 2026
56934b7
[ci skip] website docs
alphaville Mar 27, 2026
e0af721
TCP error include more information
alphaville Mar 27, 2026
9981368
improve TCP error reporting
alphaville Mar 27, 2026
f6b80de
OpEn: good error handling
alphaville Mar 27, 2026
1a7bbd7
[ci skip] prepare new releases
alphaville Mar 27, 2026
bfa6624
cargo fmt
alphaville Mar 27, 2026
ef3dfd6
Merge pull request #407 from alphaville/feature/405-error-reporting-rust
alphaville Mar 27, 2026
7368ebc
Merge pull request #399 from alphaville/feature/372-rust-float
alphaville Mar 27, 2026
5721211
merge dev; fix conflicts
alphaville Mar 27, 2026
0bfc8bb
[ci skip] update website docs and changelog
alphaville Mar 27, 2026
4e294f0
Merge pull request #389 from alphaville/fix/323-instant
alphaville Mar 27, 2026
3325a4f
Merge branch 'dev/release' into feature/385-ros2
alphaville Mar 27, 2026
48314ca
Merge pull request #400 from alphaville/feature/385-ros2
alphaville Mar 27, 2026
99de93e
Merge branch 'dev/release' into feature/405-error-reporting
alphaville Mar 27, 2026
b2fe756
merge dev/release and fix conflicts
alphaville Mar 27, 2026
02c3d50
[ci skip] update changelog files
alphaville Mar 27, 2026
5deda45
[ci skip] update rust docs
alphaville Mar 27, 2026
9cc06cd
cargo fmt
alphaville Mar 27, 2026
8be6cbf
update website docs (TCP)
alphaville Mar 27, 2026
efeb82b
handling rust errors
alphaville Mar 27, 2026
2340842
make TCP interface less error-prone
alphaville Mar 27, 2026
1d66f1a
TCP error handling: tighter tests
alphaville Mar 27, 2026
f86c0d2
fix test t_ball1_random_optimality_conditions_centered
alphaville Mar 27, 2026
0bd29d4
Merge pull request #406 from alphaville/feature/405-error-reporting
alphaville Mar 27, 2026
355f035
handling errors via py bindings
alphaville Mar 27, 2026
ede1f53
fix OCP tests
alphaville Mar 27, 2026
076c1b5
fix OCP tests
alphaville Mar 27, 2026
8275477
implement __repr__ and more testing
alphaville Mar 27, 2026
d157b5e
update changelog and website docs
alphaville Mar 27, 2026
2864a0f
implement __repr__ for a few classes in opengen
alphaville Mar 28, 2026
6a9ff79
docs: minor update
alphaville Mar 28, 2026
602027f
update main.py
alphaville Mar 28, 2026
c1cee07
bump version
alphaville Mar 28, 2026
daa1f88
[ci skip] minor
alphaville Mar 28, 2026
b86f3f2
Merge pull request #411 from alphaville/feature/409-pybindings-error-…
alphaville Mar 28, 2026
b0b2b06
ROS2: error handling
alphaville Mar 28, 2026
c69a26b
Merge branch 'feature/372-rust-float' into feature/410-ros2-error-han…
alphaville Mar 28, 2026
3b76cf6
various fixes
alphaville Mar 28, 2026
af44849
[ci skip] update auto-generated ros2 readme
alphaville Mar 28, 2026
0ef4d3b
more unit tests for ros2
alphaville Mar 28, 2026
8dca03c
[ci skip] update contributing.mdx
alphaville Mar 28, 2026
1cedfdf
Merge pull request #412 from alphaville/feature/410-ros2-error-handling
alphaville Mar 28, 2026
88fc7c6
update c bindings
alphaville Mar 28, 2026
1a2bd54
Merge pull request #404 from alphaville/feature/401-matlab-api
alphaville Mar 28, 2026
04bfc48
more unit tests
alphaville Mar 28, 2026
e19818a
update autogen CMakeLists.txt
alphaville Mar 28, 2026
006502b
[ci skip] update website docs
alphaville Mar 28, 2026
b47d13b
[ci skip] increate c err msg size
alphaville Mar 28, 2026
627c2df
Merge pull request #414 from alphaville/feature/413-c-bindings-error-…
alphaville Mar 28, 2026
9911c70
GA tests: windows
alphaville Mar 28, 2026
04f07fa
trying again
alphaville Mar 28, 2026
0cbe825
windows-specific fixes
alphaville Mar 28, 2026
d1cab76
UTF8 encoding in ROS builder
alphaville Mar 28, 2026
8605f97
windows tests
alphaville Mar 28, 2026
86a7c93
let's see now... (win tests)
alphaville Mar 28, 2026
ce023c6
OCP tests on Win
alphaville Mar 28, 2026
b00586d
fix path issue on Win32
alphaville Mar 28, 2026
1ad5cd1
[ci skip] update changelog
alphaville Mar 28, 2026
987c5ee
Merge pull request #417 from alphaville/feature/36-ga-win
alphaville Mar 28, 2026
184de23
[ci skip] rm build
alphaville Mar 28, 2026
13f19b2
cleanup folder structure
alphaville Mar 28, 2026
34e075d
cleanup root dir
alphaville Mar 28, 2026
36e8a74
[ci skip] some more cleanup
alphaville Mar 28, 2026
1df14a1
repeat GA
alphaville Mar 28, 2026
7e58dbb
[ci skip] clean-up gitignore files
alphaville Mar 28, 2026
63250bd
[ci skip] add root changelog
alphaville Mar 28, 2026
ef0de71
Merge pull request #418 from alphaville/hotfix/cleanup-folder-structure
alphaville Mar 28, 2026
15164e8
Fix ROS/ROS2 generated interface issues
alphaville Mar 28, 2026
9b915c9
Improve Python tests, coverage, and contributor docs
alphaville Mar 28, 2026
14ba84f
update changelog files
alphaville Mar 28, 2026
ecb9bed
Clearer docs on Cartesian product in Rust and Python
alphaville Mar 28, 2026
0b0cc6a
add dimension() to constraints
alphaville Mar 30, 2026
8056794
dimension() implemented in constraints
alphaville Mar 30, 2026
38f7049
catch inconsistent inputs
alphaville Mar 30, 2026
1bcde58
overhaul of __init__.py
alphaville Mar 30, 2026
9feab7d
lazy imports
alphaville Mar 30, 2026
4165e33
update CHANGELOG
alphaville Mar 30, 2026
618ce38
testing
alphaville Mar 30, 2026
d142914
Merge pull request #421 from alphaville/fix/420-constraint-dimension
alphaville Mar 30, 2026
388fb45
[ci skip] update versions
alphaville Mar 31, 2026
7438320
Merge branch 'fix/420-constraint-dimension' into dev/release
alphaville Mar 31, 2026
0a88654
[ci skip][docit] update website
alphaville Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
directory: "/rust"
schedule:
interval: "weekly"
95 changes: 92 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
os: ubuntu-latest
- name: macOS
os: macos-latest
- name: Windows
os: windows-latest
steps:
- uses: actions/checkout@v5

Expand All @@ -34,16 +36,20 @@ jobs:
rustflags: ""

- name: Cargo tests
working-directory: rust
run: cargo test

- name: Cargo tests (RP and JEM)
if: runner.os != 'Windows'
working-directory: rust
run: |
cargo test --features rp
cargo test --features jem

python_tests:
name: Python tests (${{ matrix.name }})
needs: rust_tests
needs:
- rust_tests
runs-on: ${{ matrix.os }}
timeout-minutes: 45
strategy:
Expand All @@ -56,6 +62,9 @@ jobs:
- name: macOS
os: macos-latest
skip_rpi_test: 1
- name: Windows
os: windows-latest
skip_rpi_test: 1
env:
DO_DOCKER: 0
SKIP_RPI_TEST: ${{ matrix.skip_rpi_test }}
Expand All @@ -72,7 +81,7 @@ jobs:
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: open-codegen/setup.py
cache-dependency-path: python/pyproject.toml

- uses: egor-tensin/setup-clang@v1
if: runner.os == 'Linux'
Expand Down Expand Up @@ -102,6 +111,69 @@ jobs:
if: runner.os == 'macOS'
run: bash ./ci/script.sh python-tests

- name: Install Python package
if: runner.os == 'Windows'
run: |
Set-Location python
python -m pip install --upgrade pip
python -m pip install .

- name: Run Python test.py
if: runner.os == 'Windows'
run: |
Set-Location python
$env:PYTHONPATH = "."
python -W ignore test/test.py -v

ros2_tests:
name: ROS2 tests
needs: python_tests
runs-on: ubuntu-latest
timeout-minutes: 45
container:
image: ubuntu:noble
options: --user 0
env:
DO_DOCKER: 0
steps:
- uses: actions/checkout@v5

- name: Install container bootstrap dependencies
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
cmake \
curl \
ca-certificates \
git \
gnupg2 \
locales \
lsb-release

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
rustflags: ""

- uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Setup ROS 2
# `ros-tooling/setup-ros@v0.7` still runs as a Node.js 20 action.
# Force it onto Node 24 now so CI keeps working as GitHub deprecates
# Node 20, and upgrade `setup-ros` to a Node 24-compatible release
# when one becomes available.
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: jazzy

- name: Run ROS2 Python tests
run: bash ./ci/script.sh ros2-tests

ocp_tests:
name: OCP tests (${{ matrix.name }})
needs: python_tests
Expand All @@ -115,6 +187,8 @@ jobs:
os: ubuntu-latest
- name: macOS
os: macos-latest
- name: Windows
os: windows-latest
env:
DO_DOCKER: 0
steps:
Expand All @@ -129,7 +203,22 @@ jobs:
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: open-codegen/setup.py
cache-dependency-path: python/pyproject.toml

- name: Run OCP Python tests
if: runner.os != 'Windows'
run: bash ./ci/script.sh ocp-tests

- name: Install Python package
if: runner.os == 'Windows'
run: |
Set-Location python
python -m pip install --upgrade pip
python -m pip install .

- name: Run OCP Python tests
if: runner.os == 'Windows'
run: |
Set-Location python
$env:PYTHONPATH = "."
python -W ignore test/test_ocp.py -v
13 changes: 5 additions & 8 deletions .github/workflows/clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,11 @@ jobs:
clippy_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --examples
- name: Cargo clippy
working-directory: rust
run: cargo clippy --all-targets --all-features --examples
13 changes: 5 additions & 8 deletions .github/workflows/rustfmt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,11 @@ jobs:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Cargo fmt
working-directory: rust
run: cargo fmt --all -- --check
89 changes: 30 additions & 59 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,77 +1,48 @@
# Generated by Cargo
# will have compiled files and executables
.eggs
.idea
TODOS/
# Rust
.cargo
/target
target/
.cargo
*.odp#
*.egg-info
*.pyc
open-codegen/opengen/icasadi/extern/Makefile
virt
data
my_optimizers
.python_test_build
dist/

# Python tests create this folder:
open-codegen/opengen/.python_test_build/

# Haphazard files:
__main.rs
design/open-card.odp
design/open-interfaces.jpeg
design/open-interfaces.odp
design/open-interfaces.png
main.rs
open-codegen/run/
open-codegen/venv*


# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
/Cargo.lock
/rust/Cargo.lock
open-clib/Cargo.lock

# These are backup files generated by rustfmt
*.rs.bk

# Docusaurus website (autogenerated files)
/website/i18n/
/website/node_modules/
/website/yarn.lock
/website/build/
/website/.docusaurus/
!/website/pages/
!/website/static/
!/website/*.js
!/website/blog/
!/website/core/Footer.js
!/website/README.md
!/website/publish.sh
# Python
virt

# icasadi external files
/icasadi/extern/
# Docs / website
/docs/website/i18n/
/docs/website/node_modules/
/docs/website/yarn.lock
/docs/website/build/
/docs/website/.docusaurus/

# Visual studio code files
# Editors / local state
.idea
/.vscode/
.DS_Store

# Main file
/src/main.rs

# Autogenerated files (builds)
# Project-local scratch files
TODOS/
data
*.odp#
__main.rs
main.rs
/rust/src/main.rs
/autogenerated_*
/build/
!/build/README.md

# Other files
# Design assets that should stay local
design/open-card.odp
design/open-interfaces.jpeg
design/open-interfaces.odp
design/open-interfaces.png
/design/panoc-only.png

# Misc temporary files
*.autosave
*~
.#*
*private*
.DS_Store
/img/

# Private work area
private/
Loading