stack-of-tasks / eigenpy

Efficient bindings between Numpy and Eigen using Boost.Python
BSD 2-Clause "Simplified" License
179 stars 39 forks source link

Nix #498

Closed nim65s closed 3 months ago

nim65s commented 3 months ago

Hi,

This add some features related to Nix, including:

An override

eigenpy is available in nixpkgs, so defining another version of the package based on git is only a matter of overriding the source specification from there.

This override filter some files/dirs among the git tracked sources, to avoid rebuilding when only README / CHANGELOG / other metadata files change.

This package can then be built with nix build. The result will be available in the nix store, with a result symlink to it. Build logs can be streamed to the current stdout with the -L flag.

A flake

Since the overridden package is provided in a flake, the git repository become usable directly from nix, including:

CI jobs

Linux and MacOS jobs on Github Action will run nix build, allowing to detect early:

A binary cache

The CI jobs will push the built packages to https://gepetto.cachix.org, so users won't have to build a version which was already built by CI. And vice-versa, users will be able to push to that cache, so that those CI jobs can be no-op.