Nix outputs¶
This section documents the outputs made available from the project flake.nix.
See Nix Basics for more information.
Packages¶
Intended for use with nix build.
default¶
A package containing all core software.
simulation¶
Same as the default package, but contains everything needed to run simulation as well.
pkgs¶
This is the entire nixpkgs output, as well as all project package outputs (through overlays).
Having it available can make certain debugging easier.
Specific useful packages/package sets are documented below.
pkgs.rosPackages.${rosDistro}¶
All ROS packages for a specific distro.
Packages which contain spaces or underscores in their name have those replaced with dashes.
The packages for the project’s target distro will also be modified to add all the ROS2 packages in this workspace - for example, if targeting ROS2 Jazzy, the autonomy package would be accessible under pkgs.rosPackages.jazzy.autonomy.
Example
To use ros2_control from ROS Rolling Ridley: pkgs.rosPackages.rolling.ros2-control.
Warning
If you use these packages with nix shell, be aware that packages which apply modifications to the ROS2 CLI may not add the verb correctly.
pkgs.ros¶
The entire ROS package set of the distro we’re using.
Includes the packages in development.
This is the recommended way to access packages in development if you want to pull specific ones out for nix build or nix shell.
Example
To use the workspace autonomy package: pkgs.ros.autonomy.
tools.treefmt-write-config¶
Intended for use with nix run.
Writes the configuration generated by treefmt-nix to treefmt.toml in the repo root.
tools.treefmt-build¶
The treefmtEval.config.build set generated by treefmt-nix.
scripts¶
Scripts intended for use with nix run.
Also available at pkgs.scripts (due to being applied as an overlay).
Executables¶
Intended for use with nix run.
default¶
Currently just for testing. Will eventually run the main bringup launch file.
ros2¶
ROS2 core executable from the default package.
clean¶
Convenience alias of scripts.clean
scripts.clean¶
Runs software/scripts/clean.sh to remove all generated/build directories from the workspace.
scripts.cachix¶
Scripts to push build targets to Cachix. Current sub-attributes available:
build: Main buildshell: Dev shell environmentall: Bothbuildandshell, as well packages for simulationdocs-shell: Shell environment for building the documentation
Note
This requires a Cachix auth token to succeed. Contact James N if you need one.
Development shells¶
Intended for use with nix develop.
default¶
Workspace containing everything needed to build and run the core software.
simulation¶
Same as the default dev shell, but extended with the packages needed to run simulation.