Skip to content

add Nix flake with single-source version#55

Open
mipmip wants to merge 1 commit into
Helvesec:mainfrom
mipmip:add-nix-flake
Open

add Nix flake with single-source version#55
mipmip wants to merge 1 commit into
Helvesec:mainfrom
mipmip:add-nix-flake

Conversation

@mipmip

@mipmip mipmip commented Jun 18, 2026

Copy link
Copy Markdown

For a wider exposure and adoption of this project I've added flake so Nix/NixOS user can run and develop rmux. I'm using the forked version myself for a fun interessing project.

Thanks for this great project!

Add a multi-system flake (x86_64/aarch64, Linux and macOS) that builds the rmux and rmux-daemon binaries, exposes a nix run app, and provides a dev shell.

The package version is parsed from the [workspace.package] table in Cargo.toml at evaluation time rather than hardcoded, so the version stays single-sourced. Dependency hashes come from the committed Cargo.lock, so no cargoHash needs recomputing on dependency changes.

Tests are not run during the build (doCheck = false): the integration suites need real PTYs/sockets and host tools and include timing-sensitive cases that are unreliable in the hermetic sandbox; the full suite runs in CI and locally.

Add docs/nix-packaging.md with the maintainer release notes and a README install section.

Add a multi-system flake (x86_64/aarch64, Linux and macOS) that builds
the rmux and rmux-daemon binaries, exposes a nix run app, and provides a
dev shell.

The package version is parsed from the [workspace.package] table in
Cargo.toml at evaluation time rather than hardcoded, so the version stays
single-sourced. Dependency hashes come from the committed Cargo.lock, so
no cargoHash needs recomputing on dependency changes.

Tests are not run during the build (doCheck = false): the integration
suites need real PTYs/sockets and host tools and include timing-sensitive
cases that are unreliable in the hermetic sandbox; the full suite runs in
CI and locally.

Add docs/nix-packaging.md with the maintainer release notes and a README
install section.
@shideneyu shideneyu self-assigned this Jun 18, 2026
@shideneyu

shideneyu commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Thank you for your contribution, glad you like it !

The flake direction is good, and keeping flake.nix/flake.lock at the repository root is the right layout for nix run github:Helvesec/rmux.

Before merging, we need this wired into CI because README install paths must be release-gated. Please add a Nix CI job that runs:

  • nix flake check
  • nix build .#packages.x86_64-linux.default --no-link
  • nix run . -- -V, with the output checked against the Cargo.toml version

Also, please replace the regex-based Cargo.toml version parsing with builtins.fromTOML so the flake reads workspace.package.version structurally.

After that, I’m comfortable treating Nix as an official install path.

Let me know if you want me to take care of it

I think I'll add snap right after in the same release

@mipmip

mipmip commented Jun 18, 2026

Copy link
Copy Markdown
Author

Busy schedule, but I'm on it. Cool to contribute

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.

2 participants