feat: add Nix flake for reproducible development environment #10811
+462
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related GitHub Issue
Closes: #10810
Roo Code Task Context (Optional)
This PR was developed with assistance from an AI coding assistant.
Description
This PR adds a Nix flake (
flake.nix) to provide a reproducible development environment for contributors.Demo video: https://youtu.be/izhaXYkqT_4
Key features:
nix develop): Provides Node.js 20.x, pnpm, ripgrep, Chromium, and all native build dependenciesnix build .#vsix): Reproducible extension packaging usingfetchPnpmDepsandpnpmConfigHooknix flake check): Lint, typecheck, test, and format checksnix run .#update-deps): Automates updatingflake.lockand pnpm dependency hashImplementation details:
lib.cleanSourceWithfor efficient source filteringmanage-package-manager-versionsto work in Nix's sandboxed buildsTest Procedure
Install Nix (if not already installed):
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --daemonClone the repo:
git clone https://github.com/randomizedcoder/Roo-Code.git cd Roo-Code git checkout nixBuild the VSIX package:
nix build .#vsix(If flakes aren't enabled:
nix --extra-experimental-features 'nix-command flakes' build .#vsix)Verify the output:
ls result/ # Should show: roo-cline-3.41.2.vsixInstall the extension:
code --install-extension result/*.vsixPre-Submission Checklist
Screenshots / Videos
Demo video: https://youtu.be/izhaXYkqT_4
Demonstrates:
nix developnix build .#vsixDocumentation Updates
README.mdwith "Nix Flake" sectionCHANGELOG.mdwith entry for this featureAdditional Notes
x86_64-linux,aarch64-linux,x86_64-darwin, andaarch64-darwinnix --extra-experimental-features 'nix-command flakes' <command>vscode-extensions.rooveterinaryinc.roo-clineGet in Touch
Reply to pull request
Important
Adds a Nix flake for a reproducible development environment, updating
README.mdandCHANGELOG.mdwith usage instructions.flake.nixfor reproducible development environment with Node.js, pnpm, and build tools.nix develop,nix build .#vsix, andnix flake checkfor development, building, and CI checks.nix run .#update-depsto update dependencies.README.mdwith instructions for using the Nix flake.CHANGELOG.mdfor the Nix flake feature.flake.nixandflake.lockfor Nix flake configuration.This description was created by
for c5fa177. You can customize this summary. It will automatically update as commits are pushed.