Skip to content

Conversation

@sielicki
Copy link
Contributor

@sielicki sielicki commented Jan 2, 2026

add a nix flake for development shells and ci, with the goal of:

  1. making it easy to develop libfabric against all providers and all hmem types, using the development shells that nix makes available.
  2. making it easy to cross compile
  3. using this as a simple smoke test for github actions/ci on pull requests.

see https://nixos.org/ for details on nix

Copilot AI review requested due to automatic review settings January 2, 2026 22:28
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds comprehensive Nix flake support to libfabric, enabling reproducible builds, development environments, and CI workflows. The implementation provides a modern development and build infrastructure using Nix with support for multiple platforms and cross-compilation.

Key changes:

  • Adds Nix flake configuration with development shells for all providers and HMEM types
  • Implements cross-compilation support from Darwin to Linux targets (aarch64 and x86_64)
  • Adds GitHub Actions CI workflow for automated building and testing using Nix

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
flake.nix Main flake configuration defining packages, development shells, and cross-compilation targets
flake.lock Lock file pinning specific versions of flake dependencies
contrib/nix/lib/default.nix Reusable library functions for packaging and cross-compilation
contrib/nix/pkgs/libfabric/default.nix Nix package definition for libfabric with configurable providers and HMEM support
contrib/nix/pkgs/libcxi/default.nix Package definition for libcxi (HPE Cassini/Slingshot library)
contrib/nix/pkgs/xpmem/default.nix Package definition for XPMEM userspace library
contrib/nix/pkgs/cassini-headers/default.nix Package definition for HPE Cassini hardware headers
contrib/nix/pkgs/cxi-driver-headers/default.nix Package definition for CXI driver UAPI headers
contrib/nix/pkgs/accel-config/default.nix Package definition for Intel DSA/IAA accelerator configuration utility
.github/workflows/nix.yml GitHub Actions workflow for building and testing with Nix
.gitignore Adds Nix-specific ignore patterns for build artifacts

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Nicholas Sielicki <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant