Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 aresult
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:
github:stack-of-tasks/eigenpy/9fa85b547c9ef0ba3bcd5297b4050f15769c61b3
: from a commit hashgithub:stack-of-tasks/eigenpy/9fa85b5
: from a short revgithub:stack-of-tasks/eigenpy/nix
: from a branchgithub:stack-of-tasks/eigenpy/vX.Y.Z
: from a tag (once this will be merged a tag including this will be available)github:stack-of-tasks/eigenpy
: from the repo (once this will be merged into master, which is the default branch)/path/to/eigenpy
: from a local clone absolute path.
: from a local clone relative path.
nix build $REF
nix run $REF
will start a python interpreter with eigenpy installed.nix run github:stack-of-tasks/eigenpy/nix -- -c "import eigenpy; print(eigenpy.__version__)"
=>3.8.2
nix develop $REF
will start a shell with all eigenpy dependencies available. At this point, eg. classicalcmake -B build -S . && cmake --build build
will work directly.echo "use flake" > .envrc && direnv allow
and nix-direnv, this shell will automatically activate itself on entering into the directory, and deactivate itself on leaving.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.