From fac76906249053bc242f50470e92b10597cfc097 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Thu, 9 Apr 2026 11:14:05 +0200 Subject: [PATCH 1/3] nix: switch to flakoboros --- .github/workflows/nix.yml | 38 +- .github/workflows/update-flake-lock.yml | 30 +- flake.lock | 528 +++++++++++++++++++++++- flake.nix | 141 +++---- 4 files changed, 594 insertions(+), 143 deletions(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index c6bcddccaf..b1713d1a75 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -1,54 +1,32 @@ name: "CI - Nix" - on: push: branches: - devel pull_request: - jobs: - nix-full: + nix: runs-on: "${{ matrix.os }}-latest" strategy: - fail-fast: false matrix: os: [ubuntu, macos] + extends: ["", "pkgs-full"] steps: - uses: actions/checkout@v6 - uses: cachix/install-nix-action@v31 - - uses: cachix/cachix-action@v16 + - uses: cachix/cachix-action@v17 with: name: gepetto authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - run: nix build -L - - nix-split: - runs-on: "${{ matrix.os }}-latest" - strategy: - matrix: - os: [ubuntu, macos] - steps: - - uses: actions/checkout@v6 - - uses: cachix/install-nix-action@v31 - - uses: cachix/cachix-action@v16 - with: - name: gepetto - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - run: nix build -L .#libpinocchio - - run: nix build -L .#pinocchio-py - + - run: nix flake check -L + - run: nix build -L ".#${{ matrix.extends }}" check: if: always() name: check-macos-linux-nix - + runs-on: ubuntu-latest needs: - - nix-full - - nix-split - - runs-on: Ubuntu-latest - + - nix steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 + - uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml index 86440eff6d..f0fe20b727 100644 --- a/.github/workflows/update-flake-lock.yml +++ b/.github/workflows/update-flake-lock.yml @@ -1,19 +1,31 @@ name: update-flake-lock - on: workflow_dispatch: schedule: - cron: '0 1 5 * *' - jobs: - lockfile: - runs-on: ubuntu-latest + update-flake-inputs: + runs-on: ubuntu-slim + permissions: + contents: write + pull-requests: write steps: + - name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v3 + with: + app-id: ${{ secrets.GEPETTO_NIX_APP_ID }} + private-key: ${{ secrets.GEPETTO_NIX_APP_PRIVATE_KEY }} - name: Checkout repository uses: actions/checkout@v6 - - name: Install Nix - uses: DeterminateSystems/nix-installer-action@main - - name: Update flake.lock - uses: DeterminateSystems/update-flake-lock@main with: - token: ${{ secrets.GH_TOKEN_FOR_UPDATES }} + token: ${{ steps.app-token.outputs.token }} + - name: Setup Nix + uses: cachix/install-nix-action@v31 + - name: Update flake inputs + uses: mic92/update-flake-inputs@v1 + with: + github-token: ${{ steps.app-token.outputs.token }} + pr-labels: 'no-changelog' + git-author-name: 'hrp2-14' + git-author-email: '40568249+hrp2-14@users.noreply.github.com' diff --git a/flake.lock b/flake.lock index 58b5a8e4a6..e298b82d8b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,15 +1,31 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1759362264, - "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -18,13 +34,278 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "gepetto", + "system-manager", + "userborn", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flakoboros": { + "inputs": { + "flake-parts": "flake-parts", + "nix-ros-overlay": "nix-ros-overlay", + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "nix-ros-overlay", + "nixpkgs" + ], + "systems": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "nix-ros-overlay", + "flake-utils", + "systems" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1775662035, + "narHash": "sha256-unhpPQSAVC0ADpaUQS/n66AvOdFrLU2kPug0rv+W1iE=", + "owner": "gepetto", + "repo": "flakoboros", + "rev": "a6440c3ed2e6beb7652835462cc52b271f752ee6", + "type": "github" + }, + "original": { + "owner": "gepetto", + "repo": "flakoboros", + "type": "github" + } + }, + "gazebros2nix": { + "inputs": { + "flake-parts": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "flake-parts" + ], + "flakoboros": "flakoboros", + "nix-ros-overlay": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "nix-ros-overlay" + ], + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "nixpkgs" + ], + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix", + "systems": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "systems" + ], + "treefmt-nix": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "treefmt-nix" + ], + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1775662632, + "narHash": "sha256-oHVaS8CDiRH29kL69iQ5bdlSyXgFZMGREAQ89ZdjlmQ=", + "owner": "gepetto", + "repo": "gazebros2nix", + "rev": "e5572cafa7099810fbb7272fa44933dde7687c33", + "type": "github" + }, + "original": { + "owner": "gepetto", + "repo": "gazebros2nix", + "type": "github" + } + }, + "gepetto": { + "inputs": { + "flake-parts": [ + "gepetto", + "gazebros2nix", + "flake-parts" + ], + "flakoboros": [ + "gepetto", + "gazebros2nix", + "flakoboros" + ], + "gazebros2nix": "gazebros2nix", + "home-manager": "home-manager", + "nix-ros-overlay": [ + "gepetto", + "gazebros2nix", + "nix-ros-overlay" + ], + "nix-system-graphics": "nix-system-graphics", + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "nixpkgs" + ], + "system-manager": "system-manager", + "systems": [ + "gepetto", + "gazebros2nix", + "systems" + ], + "treefmt-nix": [ + "gepetto", + "gazebros2nix", + "treefmt-nix" + ] + }, + "locked": { + "lastModified": 1775663473, + "narHash": "sha256-riy8uKSUJo0IvOKd6aTDqxergYpRncK8TY5M0kv/VhE=", + "owner": "gepetto", + "repo": "nix", + "rev": "6d2dbabb81b7886f36e5b4e34aef7907814c6606", + "type": "github" + }, + "original": { + "owner": "gepetto", + "repo": "nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "gepetto", + "system-manager", + "userborn", + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "gepetto", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775425411, + "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.11", + "repo": "home-manager", + "type": "github" + } + }, + "nix-ros-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1775242455, + "narHash": "sha256-6k6GChuNuVU70rq5Stp7PHsH1haAX7q4uRv6hBwGMoc=", + "owner": "lopsided98", + "repo": "nix-ros-overlay", + "rev": "909dbfd8cbe571a6cb63ac7a526e71c8d3f85a26", + "type": "github" + }, + "original": { + "owner": "lopsided98", + "ref": "develop", + "repo": "nix-ros-overlay", + "type": "github" + } + }, + "nix-system-graphics": { + "inputs": { + "nixpkgs": [ + "gepetto", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763296639, + "narHash": "sha256-K9JBscC7ApwCnl0wR0sVkxrKFsoDYVqXN5fOujvyBWA=", + "owner": "soupglasses", + "repo": "nix-system-graphics", + "rev": "ac37f0f3ec0cb15d63a520918433c794d01d9dac", + "type": "github" + }, + "original": { + "owner": "soupglasses", + "repo": "nix-system-graphics", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1759381078, - "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=", + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee", + "rev": "0182a361324364ae3f436a63005877674cf45efb", "type": "github" }, "original": { @@ -36,11 +317,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1754788789, - "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", "type": "github" }, "original": { @@ -49,10 +330,235 @@ "type": "github" } }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": [ + "gepetto", + "system-manager", + "userborn", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "gepetto", + "system-manager", + "userborn", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769069492, + "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "nixpkgs" + ], + "pyproject-nix": [ + "gepetto", + "gazebros2nix", + "pyproject-nix" + ], + "uv2nix": [ + "gepetto", + "gazebros2nix", + "uv2nix" + ] + }, + "locked": { + "lastModified": 1773870109, + "narHash": "sha256-ZoTdqZP03DcdoyxvpFHCAek4bkPUTUPUF3oCCgc3dP4=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "b6e74f433b02fa4b8a7965ee24680f4867e2926f", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775439158, + "narHash": "sha256-NHY9SJNU019n+8NCabBDtmuzRFeE2gZlYKHowp9bV24=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "fb6b728260f3f32761367e9fd1e1a25b4245bcd0", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs" + "flake-parts": [ + "gepetto", + "flake-parts" + ], + "gepetto": "gepetto", + "systems": [ + "gepetto", + "systems" + ] + } + }, + "system-manager": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "gepetto", + "nixpkgs" + ], + "userborn": "userborn" + }, + "locked": { + "lastModified": 1775587507, + "narHash": "sha256-7UgnL43z2hwFMxfd5jtTPxU67GNEjN3wuXlTA9qwm4I=", + "owner": "numtide", + "repo": "system-manager", + "rev": "f55ceefe988c0d57518e88a98efaed80e121a22c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "system-manager", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "flakoboros", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775125835, + "narHash": "sha256-2qYcPgzFhnQWchHo0SlqLHrXpux5i6ay6UHA+v2iH4U=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "75925962939880974e3ab417879daffcba36c4a3", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "userborn": { + "inputs": { + "flake-compat": [ + "gepetto", + "system-manager", + "flake-compat" + ], + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "gepetto", + "system-manager", + "nixpkgs" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1770377964, + "narHash": "sha256-q2pnlX2IW0kg80GLFnwWd/GigIpkuZnyKPLhrgJql3E=", + "owner": "jfroche", + "repo": "userborn", + "rev": "55c2cd7952c207a62736a5bbd9499ea73da18d24", + "type": "github" + }, + "original": { + "owner": "jfroche", + "ref": "system-manager", + "repo": "userborn", + "type": "github" + } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "gepetto", + "gazebros2nix", + "nixpkgs" + ], + "pyproject-nix": [ + "gepetto", + "gazebros2nix", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1775655192, + "narHash": "sha256-pc+y8C8eiKiNRRMF+ovzOJ/ZYNfzrp2nPTHNR8Odrps=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "f4df1c7267f0f79fe4632879851f973c96862d64", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 67d1bc804b..8df158f355 100644 --- a/flake.nix +++ b/flake.nix @@ -2,103 +2,58 @@ description = "Fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives."; inputs = { - flake-parts.url = "github:hercules-ci/flake-parts"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + gepetto.url = "github:gepetto/nix"; + flake-parts.follows = "gepetto/flake-parts"; + systems.follows = "gepetto/systems"; }; outputs = inputs: - inputs.flake-parts.lib.mkFlake { inherit inputs; } { - systems = inputs.nixpkgs.lib.systems.flakeExposed; - perSystem = - { - inputs', - pkgs, - self', - system, - ... - }: - { - apps.default = { - type = "app"; - program = pkgs.python3.withPackages (p: [ - self'.packages.default - p.example-robot-data - p.meshcat - p.viser - ]); - }; - packages = { - default = self'.packages.pinocchio; - pinocchio = pkgs.python3Packages.pinocchio.overrideAttrs (super: { - propagatedBuildInputs = super.propagatedBuildInputs ++ [ pkgs.example-robot-data ]; - nativeCheckInputs = [ pkgs.python3Packages.pybind11 ]; - src = pkgs.lib.fileset.toSource { - root = ./.; - fileset = pkgs.lib.fileset.unions [ - ./benchmark - ./bindings - ./CMakeLists.txt - ./doc - ./examples - ./include - ./models - ./package.xml - ./sources.cmake - ./src - ./unittest - ./utils - ]; - }; - }); - libpinocchio = pkgs.pinocchio.overrideAttrs (super: { - pname = "libpinocchio"; - propagatedBuildInputs = super.propagatedBuildInputs ++ [ pkgs.example-robot-data ]; - src = pkgs.lib.fileset.toSource { - root = ./.; - fileset = pkgs.lib.fileset.unions [ - ./benchmark - # ./bindings - ./CMakeLists.txt - ./doc - ./examples - ./include - ./models - ./package.xml - ./sources.cmake - ./src - ./unittest - ./utils - ]; - }; - }); - pinocchio-py = pkgs.python3Packages.pinocchio.overrideAttrs (super: { - pname = "pinocchio-py"; - cmakeFlags = super.cmakeFlags ++ [ "-DBUILD_STANDALONE_PYTHON_INTERFACE=ON" ]; - propagatedBuildInputs = super.propagatedBuildInputs ++ [ - pkgs.example-robot-data - self'.packages.libpinocchio + inputs.flake-parts.lib.mkFlake { inherit inputs; } ( + { lib, ... }: + { + systems = import inputs.systems; + imports = [ + inputs.gepetto.flakeModule + { + flakoboros = { + extraDevPyPackages = [ "pinocchio" ]; + extraPyPackages = [ + "example-robot-data" + "meshcat" + "viser" ]; - nativeCheckInputs = [ pkgs.python3Packages.pybind11 ]; - src = pkgs.lib.fileset.toSource { - root = ./.; - fileset = pkgs.lib.fileset.unions [ - ./benchmark - ./bindings - ./CMakeLists.txt - ./doc - ./examples - ./include - ./models - ./package.xml - ./sources.cmake - # ./src - ./unittest - ./utils - ]; + overrideAttrs.pinocchio = _: { + src = lib.fileset.toSource { + root = ./.; + fileset = lib.fileset.unions [ + ./benchmark + ./bindings + ./CMakeLists.txt + ./doc + ./examples + ./include + ./models + ./package.xml + ./sources.cmake + ./src + ./unittest + ./utils + ]; + }; + }; + extends = { + full = _final: prev: { + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (_python-final: python-prev: { + pinocchio = python-prev.pinocchio.override { buildStandalone = false; }; + }) + ]; + }; }; - }); - }; - }; - }; + }; + } + ]; + } + ); } From 32b744284600114ad2cab4a70b78b552e5cc898c Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Thu, 9 Apr 2026 12:41:48 +0200 Subject: [PATCH 2/3] nix ci: dont kill the runners --- .github/workflows/nix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index b1713d1a75..9703b7e1ce 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: os: [ubuntu, macos] - extends: ["", "pkgs-full"] + extends: ["", "pkgs-full.py-pinocchio"] steps: - uses: actions/checkout@v6 - uses: cachix/install-nix-action@v31 @@ -19,7 +19,7 @@ jobs: name: gepetto authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - run: nix flake check -L - - run: nix build -L ".#${{ matrix.extends }}" + - run: nix build -L ".#${{ matrix.extends }}" --cores 2 check: if: always() name: check-macos-linux-nix From e4546160b9a5db7ebcbba2bf73e8be47296e30db Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Fri, 10 Apr 2026 11:32:02 +0200 Subject: [PATCH 3/3] nix lock: back to nixpkgs 7df7ff7d8e00218376575f0acdcc5d66741351ee --- flake.lock | 13 ++++++++----- flake.nix | 11 ++++++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index e298b82d8b..22b093ce17 100644 --- a/flake.lock +++ b/flake.lock @@ -261,7 +261,9 @@ "nix-ros-overlay": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1775242455, @@ -301,17 +303,17 @@ }, "nixpkgs": { "locked": { - "lastModified": 1771369470, - "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "lastModified": 1765546992, + "narHash": "sha256-YvLPMtdwNzc5mhb0IEYTYAk+7WUCtCQPk6TFc/VrV58=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0182a361324364ae3f436a63005877674cf45efb", + "rev": "acb374227d9a4cd0c3eb8406a4f04eeeb4cf1a50", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", "repo": "nixpkgs", + "rev": "acb374227d9a4cd0c3eb8406a4f04eeeb4cf1a50", "type": "github" } }, @@ -421,6 +423,7 @@ "flake-parts" ], "gepetto": "gepetto", + "nixpkgs": "nixpkgs", "systems": [ "gepetto", "systems" diff --git a/flake.nix b/flake.nix index 8df158f355..e9af6c1da6 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,9 @@ gepetto.url = "github:gepetto/nix"; flake-parts.follows = "gepetto/flake-parts"; systems.follows = "gepetto/systems"; + nixpkgs.url = "github:NixOS/nixpkgs/acb374227d9a4cd0c3eb8406a4f04eeeb4cf1a50"; + gepetto.inputs.gazebros2nix.inputs.flakoboros.inputs.nix-ros-overlay.inputs.nixpkgs.follows = + "nixpkgs"; }; outputs = @@ -17,13 +20,13 @@ inputs.gepetto.flakeModule { flakoboros = { - extraDevPyPackages = [ "pinocchio" ]; extraPyPackages = [ "example-robot-data" "meshcat" "viser" ]; overrideAttrs.pinocchio = _: { + patches = [ ]; src = lib.fileset.toSource { root = ./.; fileset = lib.fileset.unions [ @@ -42,6 +45,12 @@ ]; }; }; + pyOverrideAttrs.pinocchio = + _: p: + (super: { + checkInputs = super.checkInputs ++ [ p.pybind11 ]; + + }); extends = { full = _final: prev: { pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [