Skip to content

Commit 9b2d248

Browse files
authored
Merge pull request #37 from arntanguy/nix
nix: support cython bindings
2 parents d98e9a0 + 9572070 commit 9b2d248

11 files changed

Lines changed: 870 additions & 0 deletions

File tree

.envrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
if command -v nix >/dev/null; then
2+
use flake
3+
fi
4+
5+
export PYTHONPATH="$PWD/build/python/Release:$PYTHONPATH"

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "monthly"

.github/workflows/build.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,13 @@ jobs:
5353
slack-channel: '#ci'
5454
slack-text: >
5555
Build *${{ matrix.os }}/${{ matrix.build-type }}* failed on ${{ github.ref }}
56+
check:
57+
if: always()
58+
name: check-build
59+
runs-on: ubuntu-latest
60+
needs:
61+
- build
62+
steps:
63+
- uses: re-actors/alls-green@release/v1
64+
with:
65+
jobs: ${{ toJSON(needs) }}

.github/workflows/nix.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: "CI - Nix"
2+
on:
3+
push:
4+
branches:
5+
- devel
6+
- master
7+
- main
8+
pull_request:
9+
branches:
10+
- devel
11+
- master
12+
- main
13+
jobs:
14+
nix:
15+
runs-on: "${{ matrix.os }}-latest"
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
os: [ubuntu]
20+
steps:
21+
- uses: actions/checkout@v6
22+
- uses: cachix/install-nix-action@v31
23+
- uses: cachix/cachix-action@v17
24+
with:
25+
name: mc-rtc-nix
26+
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
27+
extraPullNames: "ros,gepetto"
28+
- run: nix flake check -L
29+
- run: nix build -L
30+
check:
31+
if: always()
32+
name: check-macos-linux-nix
33+
runs-on: ubuntu-latest
34+
needs:
35+
- nix
36+
steps:
37+
- uses: re-actors/alls-green@release/v1
38+
with:
39+
jobs: ${{ toJSON(needs) }}

.github/workflows/package.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,13 @@ jobs:
2929
secrets:
3030
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}
3131
GH_TOKEN: ${{ secrets.GH_PAGES_TOKEN }}
32+
check:
33+
if: always()
34+
name: check-package
35+
runs-on: ubuntu-latest
36+
needs:
37+
- package
38+
steps:
39+
- uses: re-actors/alls-green@release/v1
40+
with:
41+
jobs: ${{ toJSON(needs) }}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: update-flake-lock
2+
on:
3+
workflow_dispatch:
4+
schedule:
5+
# runs at 2:00 AM on the 25th day of every month
6+
- cron: '0 2 25 * *'
7+
jobs:
8+
update-flake-inputs:
9+
runs-on: ubuntu-slim
10+
permissions:
11+
contents: write
12+
pull-requests: write
13+
steps:
14+
- name: Generate GitHub App Token
15+
id: app-token
16+
uses: actions/create-github-app-token@v3
17+
with:
18+
app-id: ${{ secrets.MC_RTC_NIX_APP_ID }}
19+
private-key: ${{ secrets.MC_RTC_NIX_APP_PRIVATE_KEY }}
20+
- name: Checkout repository
21+
uses: actions/checkout@v6
22+
with:
23+
token: ${{ steps.app-token.outputs.token }}
24+
- name: Setup Nix
25+
uses: cachix/install-nix-action@v31
26+
- name: Update flake inputs
27+
uses: mic92/update-flake-inputs@v1
28+
with:
29+
github-token: ${{ steps.app-token.outputs.token }}
30+
pr-labels: 'no-changelog'
31+
git-author-name: 'arntanguy[bot]'
32+
git-author-email: '67139+arntanguy@users.noreply.github.com'

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ eigen/eigen.pxd
55
*.cpp
66
setup.py
77
build
8+
result*
9+
.direnv/

.mergify.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
pull_request_rules:
2+
# automatically queues when a bot pr succeeds (see queue_rules)
3+
- name: merge [bot] PRs when CI pass
4+
conditions:
5+
- or:
6+
- author = dependabot[bot]
7+
- author = gepetto-flake-updater[bot]
8+
- author = mc-rtc-nixpkgs-flake-updater[bot]
9+
- author = github-actions[bot]
10+
- author = pre-commit-ci[bot]
11+
actions:
12+
queue:
13+
14+
# runs when commenting @mergifyio queue
15+
- name: queue PRs with "queue" label when all CI checks pass
16+
conditions:
17+
- label = queued
18+
actions:
19+
queue:
20+
21+
# ensure that required CI jobs suceed
22+
queue_rules:
23+
- name: default
24+
merge_conditions:
25+
- check-success = "check-macos-linux-nix"
26+
- check-success = "check-build"
27+
- check-success = "check-package"

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,38 @@ If you want more features feel free to open an issue or submit a pull request. :
2020
Installing
2121
------
2222

23+
### Nix
24+
25+
#### Run
26+
27+
To get a python shell with Eigen3ToPython installed
28+
29+
```sh
30+
nix run github:jrl-umi3218/Eigen3ToPython
31+
```
32+
33+
Then
34+
```python
35+
import eigen
36+
```
37+
38+
#### Develop
39+
40+
To develop, use
41+
42+
```
43+
gh repo clone jrl-umi3218/Eigen3ToPython
44+
direnv allow # activates a nix develop environment and set the python path
45+
cmake -B build $cmakeFlags
46+
cmake --build build
47+
```
48+
49+
Then
50+
```python
51+
import eigen
52+
# latest bindings built from source
53+
```
54+
2355
### Ubuntu LTS (22.04, 24.04, 26.04)
2456

2557
You must first setup our package mirror:

0 commit comments

Comments
 (0)