Skip to content

Add Nix flake install support#540

Open
sreyassabbani wants to merge 1 commit into
webadderallorg:mainfrom
sreyassabbani:add-nix-flake-install
Open

Add Nix flake install support#540
sreyassabbani wants to merge 1 commit into
webadderallorg:mainfrom
sreyassabbani:add-nix-flake-install

Conversation

@sreyassabbani
Copy link
Copy Markdown

@sreyassabbani sreyassabbani commented May 19, 2026

Description

Adds Nix flake support for installing Recordly from pinned release artifacts.

Motivation

This lets Nix users install or run Recordly directly from the upstream repository with:

  • nix profile install github:webadderallorg/Recordly#recordly
  • nix run github:webadderallorg/Recordly#recordly

It also documents nix-darwin usage for declarative macOS installs.

Type of Change

  • New Feature
  • Documentation Update

Testing Guide

  • nix flake check --all-systems
  • nix build .#recordly --no-link
  • codesign --verify --deep --strict result/Applications/Recordly.app

Checklist

  • I have performed a self-review of my code.
  • I have added any necessary screenshots or videos.
  • I have linked related issue(s) and updated the changelog if applicable.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Nix package support for installing and running Recordly.
  • Documentation

    • Updated README with Nix (flakes) installation instructions, including profile install, direct run, and nix-darwin configuration examples.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 19, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: bc2e83e6-995c-4a72-8896-af59406da40f

📥 Commits

Reviewing files that changed from the base of the PR and between 4f729b7 and 09bcffd.

⛔ Files ignored due to path filters (1)
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (4)
  • .gitignore
  • README.md
  • flake.nix
  • nix/package.nix

📝 Walkthrough

Walkthrough

This PR adds a complete Nix flakes infrastructure for packaging and distributing Recordly across multiple systems. It defines release metadata and platform-specific build logic in nix/package.nix, exposes cross-system package and app outputs via flake.nix, and documents the Nix installation method in the README while updating .gitignore for build artifacts.

Changes

Nix Flakes packaging and distribution

Layer / File(s) Summary
Nix package contract and release metadata
nix/package.nix
The packaging function accepts version and per-platform releaseHashes containing architecture, archive extension, and sha256 hashes. Platform-aware source selection derives the correct release artifact or errors for unsupported systems. Package metadata defines description, homepage, changelog, AGPLv3-only license, supported platforms, and binary provenance.
Platform-specific package implementations
nix/package.nix
macOS builds via stdenvNoCC.mkDerivation with disabled build phases, unzips the archive, and installs Recordly.app to $out/Applications. Non-Darwin systems wrap the binary using appimageTools.wrapType2 with the same metadata.
Flake definition and cross-system outputs
flake.nix
Defines version and per-platform release hashes, uses nixpkgs.lib.genAttrs to generate packages.recordly via callPackage ./nix/package.nix for each system. Generates apps.recordly per system: on Darwin it wraps via a shell script calling /usr/bin/open with CLI args passed through; on non-Darwin it points directly to the built binary. Both packages.default and apps.default alias their respective generated outputs.
Documentation and build artifact management
README.md, .gitignore
Adds "Nix (flakes)" subsection to the "Download a build" section with install/run commands, current flake version/architecture notes, and nix-darwin configuration example. Updates .gitignore to ignore /result build output.

🎯 2 (Simple) | ⏱️ ~12 minutes

🐰 A rabbit hops into Nix, declaring what to build,

For Darwin and Linux alike, the flakes are fulfilled,

With packages and apps now dancing across every system,

Recordly's released and documented—the Nix way does listem! 📦✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change—adding Nix flake support for installation—which is the primary objective and focus of this PR.
Description check ✅ Passed The description covers all key template sections: Description, Motivation, Type of Change, Testing Guide, and Checklist are all present and substantive.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sreyassabbani sreyassabbani marked this pull request as ready for review May 20, 2026 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant