Skip to content

Commit 3efcc90

Browse files
Merge pull request #21 from petrasvestartas/nanobind
Nanobind
2 parents af88b78 + 1bdc33f commit 3efcc90

File tree

148 files changed

+3296
-1659
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+3296
-1659
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ jobs:
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
matrix:
17-
os: [macos-latest, windows-latest]
18-
python: ["3.9", "3.10", "3.11", "3.12"]
17+
os: [ubuntu-latest, macos-latest, windows-latest]
18+
python: ["3.10"]
1919

2020
steps:
2121
- uses: compas-dev/compas-actions.build@v4
2222
with:
2323
invoke_lint: true
24-
check_import: true
2524
use_conda: true
25+
check_import: true
2626
python: ${{ matrix.python }}

.github/workflows/docs.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ on:
1212

1313
jobs:
1414
docs:
15-
runs-on: windows-latest
15+
runs-on: ubuntu-latest
1616
steps:
17-
- uses: compas-dev/compas-actions.docs@v3
17+
- uses: compas-dev/compas-actions.docs@v4
1818
with:
1919
github_token: ${{ secrets.GITHUB_TOKEN }}
2020
use_conda: true
21+
doc_url: https://compas.dev/compas_libigl/

.github/workflows/pr-checks.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: verify-pr-checklist
2+
on:
3+
pull_request:
4+
types: [assigned, opened, synchronize, reopened, labeled, unlabeled]
5+
branches:
6+
- main
7+
- master
8+
9+
jobs:
10+
build:
11+
name: Check Actions
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v1
15+
- name: Changelog check
16+
uses: Zomzog/[email protected]
17+
with:
18+
fileName: CHANGELOG.md
19+
checkNotification: Simple
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 81 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,96 @@
1+
name: Release
2+
13
on:
24
push:
35
tags:
4-
- "v*"
5-
6-
name: Create Release
6+
- "v*" # Runs only when a version tag (e.g., v1.0.0) is pushed.
77

88
jobs:
9-
build:
9+
create_release:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
14+
- name: Create GitHub Release
15+
id: create_release
16+
uses: actions/create-release@v1
17+
env:
18+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19+
with:
20+
tag_name: ${{ github.ref }}
21+
release_name: Release ${{ github.ref }}
22+
draft: false
23+
prerelease: false
24+
25+
build_wheels:
26+
name: Build wheels on ${{ matrix.platform }}
1027
runs-on: ${{ matrix.os }}
1128
strategy:
29+
fail-fast: false
1230
matrix:
13-
os: [macos-latest, windows-latest]
14-
python: ["3.9", "3.10", "3.11", "3.12"]
31+
include:
32+
- os: ubuntu-latest
33+
platform: manylinux
34+
- os: macos-latest
35+
platform: mac
36+
- os: windows-latest
37+
platform: windows
1538

1639
steps:
17-
- uses: compas-dev/compas-actions.build@v4
40+
- uses: actions/checkout@v4
41+
with:
42+
fetch-depth: 0
43+
44+
- name: Install cibuildwheel
45+
run: pipx install cibuildwheel==2.23.1
46+
47+
- name: Build wheels
48+
run: cibuildwheel --output-dir wheelhouse .
49+
50+
- uses: actions/upload-artifact@v4
1851
with:
19-
invoke_lint: true
20-
check_import: true
21-
use_conda: true
22-
python: ${{ matrix.python }}
52+
name: wheels-${{ matrix.platform }}
53+
path: wheelhouse/*.whl
2354

24-
Publish:
25-
needs: build
55+
build_sdist:
56+
name: Build source distribution
2657
runs-on: ubuntu-latest
2758
steps:
28-
- uses: compas-dev/compas-actions.publish@v2
59+
- uses: actions/checkout@v4
2960
with:
30-
pypi_token: ${{ secrets.PYPI }}
31-
github_token: ${{ secrets.GITHUB_TOKEN }}
32-
bdist_wheel: false
61+
fetch-depth: 0
62+
63+
- name: Build SDist
64+
run: pipx run build --sdist
65+
66+
- uses: actions/upload-artifact@v4
67+
with:
68+
name: sdist
69+
path: dist/*.tar.gz
70+
71+
publish:
72+
needs: [build_sdist, build_wheels]
73+
runs-on: ubuntu-latest
74+
environment:
75+
name: pypi
76+
url: https://pypi.org/project/compas_libigl
77+
permissions:
78+
id-token: write # Required for PyPI trusted publishing
79+
80+
steps:
81+
- uses: actions/download-artifact@v4
82+
with:
83+
pattern: wheels-*
84+
path: dist
85+
merge-multiple: true
86+
87+
- uses: actions/download-artifact@v4
88+
with:
89+
name: sdist
90+
path: dist
91+
92+
- name: List files before upload
93+
run: ls -lhR dist
94+
95+
- name: Publish to PyPI
96+
uses: pypa/gh-action-pypi-publish@release/v1

.gitignore

Lines changed: 36 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
# Byte-compiled / optimized / DLL files
1+
# Python
22
__pycache__/
33
*.py[cod]
44
*$py.class
5-
6-
# C extensions
7-
# *.so
8-
9-
# Distribution / packaging
105
.Python
116
env/
127
build/
138
develop-eggs/
149
dist/
15-
# downloads/
1610
eggs/
1711
.eggs/
1812
lib/
1913
lib64/
2014
parts/
2115
sdist/
2216
var/
23-
# wheels/
2417
*.egg-info/
2518
.installed.cfg
2619
*.egg
20+
.pytest_cache
21+
.ruff_cache
2722

28-
# PyInstaller
29-
# Usually these files are written by a python script from a template
30-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
23+
# Build and packaging
24+
_skbuild/
25+
_build/
3126
*.manifest
3227
*.spec
3328

34-
# Installer logs
35-
pip-log.txt
36-
pip-delete-this-directory.txt
29+
# IDE
30+
.vscode/
31+
.idea/
32+
*.swp
33+
*.swo
34+
.spyderproject
35+
.spyproject
36+
.ropeproject
3737

38-
# Unit test / coverage reports
38+
# Testing and coverage
3939
htmlcov/
4040
.tox/
4141
.coverage
@@ -46,88 +46,43 @@ coverage.xml
4646
*.cover
4747
.hypothesis/
4848

49-
# Translations
50-
*.mo
51-
*.pot
52-
53-
# Django stuff:
54-
*.log
55-
local_settings.py
56-
57-
# Flask stuff:
58-
instance/
59-
.webassets-cache
60-
61-
# Scrapy stuff:
62-
.scrapy
63-
64-
# Sphinx documentation
49+
# Documentation
6550
docs/_build/
51+
/site
6652

67-
# PyBuilder
68-
target/
69-
70-
# Jupyter Notebook
71-
.ipynb_checkpoints
72-
73-
# pyenv
74-
.python-version
75-
76-
# celery beat schedule file
77-
celerybeat-schedule
78-
79-
# SageMath parsed files
80-
*.sage.py
81-
82-
# dotenv
53+
# Environment
8354
.env
84-
85-
# virtualenv
8655
.venv
8756
venv/
8857
ENV/
58+
.python-version
8959

90-
# Spyder project settings
91-
.spyderproject
92-
.spyproject
93-
94-
# Rope project settings
95-
.ropeproject
96-
97-
# mkdocs documentation
98-
/site
99-
100-
# mypy
101-
.mypy_cache/
102-
103-
# ------------------------------------------------------------------------------
104-
# compas_libigl
105-
# ------------------------------------------------------------------------------
106-
107-
*.3dmbak
108-
*.rhl
60+
# Jupyter
61+
.ipynb_checkpoints
10962

110-
temp
63+
# Logs and temp files
64+
*.log
65+
pip-log.txt
66+
pip-delete-this-directory.txt
67+
temp/
68+
local_settings.py
11169

70+
# External dependencies
71+
external/
11272
ext/**
11373
!ext/PLACEHOLDER
11474

75+
# Recipe
11576
recipe/**
11677
!recipe/sha256.py
11778

118-
build/**
119-
120-
.DS_Store
121-
122-
.vscode
123-
124-
*.so
125-
79+
# COMPAS specific
80+
*.3dmbak
81+
*.rhl
12682
src/compas-viewers
127-
12883
generated
129-
13084
*.gz
13185

132-
.pytest_cache
133-
.ruff_cache
86+
# OS
87+
.DS_Store
88+
Thumbs.db

.gitmodules

Lines changed: 0 additions & 3 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313

1414
### Removed
1515

16+
## [0.3.1] 2025-04-01
17+
18+
### Added
19+
20+
### Changed
21+
22+
* Pybind11 build system was updated to Nanobind.
23+
* Github actions workflow was updated for pypi support.
24+
* Documentation was updated to build without errors.
25+
26+
### Removed
27+
1628

1729
## [0.3.1] 2023-12-05
1830

0 commit comments

Comments
 (0)