Skip to content

Add nix flake#1024

Open
vkarasen wants to merge 5 commits into
safishamsi:v8from
vkarasen:feature/vkarasen/nix_flake
Open

Add nix flake#1024
vkarasen wants to merge 5 commits into
safishamsi:v8from
vkarasen:feature/vkarasen/nix_flake

Conversation

@vkarasen
Copy link
Copy Markdown

This pull request adds native Nix flake support for the project, making it easier for users to install and use graphify via the Nix package manager. The main changes include introducing a flake.nix file to define the Nix build, updating the documentation to describe Nix-based installation methods, and listing Nix as an alternative installation option.

Preparatory work

We require a checked-in uv.lock to be able to make reproducible builds, so the first commit adds it and removes it from .gitignore

Nix flake integration and documentation updates:

  • Added a new flake.nix file that defines how to build and package graphify using Nix flakes, including support for development shells and direct execution as a Nix flake app.
  • Updated the README.md to list Nix as an alternative installation method alongside pipx and uv, and provided instructions for running or packaging graphify using Nix flakes.

Copilot AI review requested due to automatic review settings May 26, 2026 01:16
Copy link
Copy Markdown

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

Note

Copilot was unable to run its full agentic suite in this review.

Adds Nix flake support for building/running Graphify (via uv2nix) and documents Nix usage as an alternative installation path.

Changes:

  • Introduce flake.nix defining devShell, default package, and default app for graphify
  • Document Nix installation and usage in README.md
  • Update .gitignore to ignore Nix build result output

Reviewed changes

Copilot reviewed 2 out of 5 changed files in this pull request and generated 2 comments.

File Description
flake.nix Adds a Nix flake to build/run Graphify and provide a dev shell via uv2nix.
README.md Documents Nix as an alternative install/run option and provides example flake usage.
.gitignore Ignores Nix result symlink/output to avoid accidental commits.

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

Comment thread flake.nix Outdated
@@ -0,0 +1,150 @@
{
description = "flake for graaphify using uv2nix";
Comment thread README.md
Copy link
Copy Markdown
Owner

@safishamsi safishamsi left a comment

Choose a reason for hiding this comment

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

Nice addition — the flake design is idiomatic and the numba/nuitka overrides are the right call. Three things before merge: (1) typo in flake.nix description: graaphify; (2) the README NixOS snippet is broken — ${system} is undefined in that scope and environment.systemPackages can't be set at the top level of outputs, which will confuse users; (3) no CI job for nix flake check or nix build .#default, so the flake can silently break on dependency updates. Could you fix those and open a fresh PR against v8?

Vitali Karasenko added 5 commits May 28, 2026 23:07
@vkarasen vkarasen force-pushed the feature/vkarasen/nix_flake branch from f076e60 to 3f68676 Compare May 28, 2026 22:08
@vkarasen
Copy link
Copy Markdown
Author

@safishamsi

just pushed an update here. Adding the ci job became a little bit of a side-quest, some of the existing tests were misbehaving when running in a sandbox, so I did a few touches to fix that. Running nix flake check will also execute pytest, but skip the tests that need network.

If needed, one can still run pytest through the devshell via nix develop . --command 'uv run pytest'

@vkarasen vkarasen requested a review from safishamsi May 30, 2026 10:07
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.

3 participants