Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Nix/NixOS #697

Merged
merged 2 commits into from
Sep 19, 2019

Conversation

lopsided98
Copy link
Contributor

This is part of my effort to add support for Nix to ROS. It depends on ros-infrastructure/rospkg#171.

The Nix package manager is often used with NixOS, but it runs on any Linux distribution as well as macOS. In order to fit cleanly into the ROS infrastructure, I am pretending that Nix and NixOS have the traditional package manager and distribution relationship. This means that the rosdep OS key for Nix is nixos, even though this key may be used on multiple distributions. When packages are built, the build sandbox prevents OS detection from working anyway, so the ROS_OS_OVERRIDE environment variable is used to force the correct value.

rosdep will not be particularly useful to end users, because its imperative package management style does not fit Nix very well. Instead, it will be used to resolve dependencies when generating packages using superflore.

I am working on adding support for Nix to various ROS projects:

I maintain a Superflore generated nixpkgs overlay and have successfully built over 3600 ROS packages on a Hydra build server (not yet publicly accessible)

I also made a small cleanup to the Arch Linux platform.

Copy link
Member

@tfoote tfoote left a comment

Choose a reason for hiding this comment

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

lgtm, it won't pass CI until the rospkg update is merged and released first.

@dirk-thomas
Copy link
Member

it won't pass CI until the rospkg update is merged and released first.

rospkg 1.1.10 has been released with the referenced change.

@codecov-io
Copy link

codecov-io commented Aug 9, 2019

Codecov Report

Merging #697 into master will increase coverage by 0.05%.
The diff coverage is 88%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #697      +/-   ##
==========================================
+ Coverage   75.47%   75.52%   +0.05%     
==========================================
  Files          32       33       +1     
  Lines        2968     2987      +19     
==========================================
+ Hits         2240     2256      +16     
- Misses        728      731       +3
Impacted Files Coverage Δ
src/rosdep2/platforms/arch.py 90% <100%> (ø) ⬆️
src/rosdep2/__init__.py 78.57% <100%> (+0.38%) ⬆️
src/rosdep2/platforms/nix.py 83.33% <83.33%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab1f06e...1658137. Read the comment docs.

@nuclearsandwich nuclearsandwich merged commit aa09949 into ros-infrastructure:master Sep 19, 2019
@nuclearsandwich
Copy link
Contributor

In the future when adding support for new platforms we need to remember to bump the rospkg version requirement to the appropriate version.

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.

5 participants