Skip to content

ci: Manage more tooling with flox - #76

Merged
crookedstorm merged 17 commits into
mainfrom
phil/flox-envs
Aug 11, 2026
Merged

crookedstorm merged 17 commits into
mainfrom
phil/flox-envs

Conversation

@philipmattingly

@philipmattingly philipmattingly commented May 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Added a full Flox-based development environment with pinned Python, Node.js, Helm, OPA, and related tools.
    • Added automated UV version consistency validation and expanded change detection for development tools.
    • Added automatic pre-commit hook setup and environment-specific Node.js configuration.
  • Bug Fixes

    • Improved CI tool setup and version handling using repository-defined configurations.
    • Added coverage exclusions for environment-managed files.
  • Documentation

    • Documented Flox installation, activation, dependency setup, pre-commit hooks, and deactivation steps.

@philipmattingly
philipmattingly requested review from a team as code owners May 27, 2026 19:34
@github-actions

github-actions Bot commented May 27, 2026 •

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 31997/40622 78.8% 63.5%
Integration Tests 18549/38548 48.1% 20.8%

@coderabbitai

coderabbitai Bot commented May 27, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This change adds Flox-managed developer and tool environments. CI uses Flox for selected tools, Node.js setup reads .nvmrc, and linting validates matching uv constraints.

Changes

Flox environment and workflow integration

Layer / File(s) Summary
Root environment and developer setup
.flox/env/manifest.toml, CONTRIBUTING.md, tools/lint/*, .pre-commit-config.yaml, pyproject.toml
Adds repository activation behavior, Flox setup documentation, pre-commit checks, uv constraint validation, and Flox coverage exclusions.
Flox tool environments
tools/{common,actionlint,helm,python,nodejs,osv-scanner,open-policy-agent,lint}/.flox/*
Adds Flox metadata, manifests, activation logic, and generated-file settings for repository tools.
CI tool execution through Flox
.github/workflows/ci.yaml
Runs actionlint, Helm, kubeconform, lint, policy WASM builds, and OPA tests through Flox environments.
Node version and change detection alignment
.github/actions/build-nemo-platform-wheel/action.yaml, .github/workflows/ci.yaml, .github/actions/changes/action.yaml
Uses .nvmrc for Node.js setup and expands change filters for Flox and tool paths.

Suggested reviewers: a2bondar, ironcommit, aahunt-nv

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the pull request's primary change: managing additional development and CI tooling with Flox.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch phil/flox-envs

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.flox/env/manifest.toml:
- Line 11: Typo in the environment manifest: rename the variable
BORDER_FORGROUND to BORDER_FOREGROUND (add the missing "E") in the manifest and
update any code or tooling that reads BORDER_FORGROUND to use BORDER_FOREGROUND
instead so nothing breaks at runtime; search for occurrences of BORDER_FORGROUND
and replace them with BORDER_FOREGROUND (including any scripts, config parsers,
or CI/deploy steps that consume the manifest).

In `@packages/.flox/env/manifest.toml`:
- Around line 30-31: The install step currently runs "pre-commit install"
without ensuring the .git/hooks directory exists; update the script around the
check for ".git/hooks/pre-commit" so it first verifies or creates the directory
(e.g., test -d .git/hooks || mkdir -p .git/hooks) before running "pre-commit
install", or conditionally run "pre-commit install" only if ".git/hooks" exists
to avoid failures.

In `@tools/osv-scanner/.flox/.gitignore`:
- Line 5: The .gitignore currently contains an ineffective negation pattern
"!env/"; update the file so that everything is ignored except the env/ directory
by adding a global ignore pattern (e.g., "*") before the negation and keep the
"!env/" entry, and ensure you have requested/obtained Write permissions before
editing files inside dot-folders (like .flox) as per the repo guidelines.

In `@tools/osv-scanner/.flox/env/manifest.toml`:
- Line 4: The manifest entry for the package "osv-scanner" is unpinned; update
the manifest.toml entry for the osv-scanner install (the table/entry starting
with osv-scanner = { pkg-path = "osv-scanner", pkg-group = "osv-scanner" }) to
include a deterministic version field (e.g., add version = "x.y.z") so the line
becomes something like osv-scanner = { pkg-path = "osv-scanner", pkg-group =
"osv-scanner", version = "1.2.3" } using the actual desired pinned version.

In `@web/.flox/env/manifest.toml`:
- Line 21: The command `pnpm install -C web --frozen-lockfile` in the manifest
is relative to the current working directory and can fail when Flox activation
is run outside the repo; update the entry in the manifest under the profile
common to use the project-root path by replacing it with `pnpm install -C
"$FLOX_ENV_PROJECT/web" --frozen-lockfile` or alternatively prepend a `cd
"$FLOX_ENV_PROJECT"` before the install so the `-C` path is resolved from the
repository root.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f93bde0a-0c43-49a2-8e22-010d04ce4135

📥 Commits

Reviewing files that changed from the base of the PR and between ba0bbfc and 938de3a.

⛔ Files ignored due to path filters (5)
  • .flox/env/manifest.lock is excluded by !**/*.lock
  • packages/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/open-policy-agent/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/osv-scanner/.flox/env/manifest.lock is excluded by !**/*.lock
  • web/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (19)
  • .flox/env/manifest.toml
  • .github/workflows/ci.yaml
  • packages/.flox/.gitattributes
  • packages/.flox/.gitignore
  • packages/.flox/env.json
  • packages/.flox/env/manifest.toml
  • pyproject.toml
  • tools/open-policy-agent/.flox/.gitattributes
  • tools/open-policy-agent/.flox/.gitignore
  • tools/open-policy-agent/.flox/env.json
  • tools/open-policy-agent/.flox/env/manifest.toml
  • tools/osv-scanner/.flox/.gitattributes
  • tools/osv-scanner/.flox/.gitignore
  • tools/osv-scanner/.flox/env.json
  • tools/osv-scanner/.flox/env/manifest.toml
  • web/.flox/.gitattributes
  • web/.flox/.gitignore
  • web/.flox/env.json
  • web/.flox/env/manifest.toml

Comment thread .flox/env/manifest.toml Resolved
Comment thread packages/.flox/env/manifest.toml Resolved
Comment thread web/.flox/env/manifest.toml Resolved
@philipmattingly
philipmattingly force-pushed the phil/flox-envs branch 5 times, most recently from 8880a21 to 786681a Compare June 5, 2026 19:47
@philipmattingly
philipmattingly force-pushed the phil/flox-envs branch 2 times, most recently from d6268c4 to 64d7db6 Compare June 12, 2026 21:21
@github-actions github-actions Bot added the ci label Jun 12, 2026
@crookedstorm
crookedstorm force-pushed the phil/flox-envs branch 2 times, most recently from 78a20aa to a3f0beb Compare July 24, 2026 01:03

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yaml (1)

23-24: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Add contents: read to the workflow permissions. actions/checkout needs repository read access, and unspecified permissions become none once permissions is set.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yaml around lines 23 - 24, Update the workflow-level
permissions block to add contents: read alongside actions: read, preserving the
existing actions permission so actions/checkout can read repository contents.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.github/workflows/ci.yaml:
- Around line 23-24: Update the workflow-level permissions block to add
contents: read alongside actions: read, preserving the existing actions
permission so actions/checkout can read repository contents.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ddffdefc-a370-43c9-b43c-1f72aa58de4d

📥 Commits

Reviewing files that changed from the base of the PR and between 5c380fb and a3f0beb.

⛔ Files ignored due to path filters (1)
  • .flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • .flox/env/manifest.toml
  • .github/actions/build-nemo-platform-wheel/action.yaml
  • .github/actions/build-policy-wasm/action.yaml
  • .github/actions/changes/action.yaml
  • .github/workflows/ci.yaml
  • .pre-commit-config.yaml
  • CONTRIBUTING.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🧹 Nitpick comments (1)
tools/lint/check_uv_version.py (1)

31-55: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add tests for the new CI gate.

Cover matching constraints, mismatches, missing/non-string values, and malformed TOML so this validator cannot regress silently.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tools/lint/check_uv_version.py` around lines 31 - 55, Add tests for main’s UV
constraint validation covering matching values, mismatches, missing or
non-string constraints, and malformed TOML inputs. Exercise the existing
load_toml and get_nested_value paths, asserting the expected return status and
stderr output without changing the validator behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yaml:
- Line 59: Update both actions/checkout steps in .github/workflows/ci.yaml at
lines 59-59 and 1673-1674 to set persist-credentials to false, preventing the
checkout token from being stored in local Git configuration before subsequent
Flox actions run.

In `@CONTRIBUTING.md`:
- Around line 22-38: Replace hardcoded “Flox” product-name references in the new
“Full Developer Environment with Flox” documentation section with the
repository’s configured documentation substitution, including the heading and
prose, while preserving the existing commands and link.
- Around line 35-38: Update the activation instructions in CONTRIBUTING.md to
tell users to leave the flox-activated subshell with exit (or Ctrl-D), replacing
the flox deactivate instruction while preserving the surrounding setup guidance.

In `@flox-environments/common/.flox/env/manifest.toml`:
- Around line 12-14: Replace the invalid 514 color values assigned to
GUM_LOG_MESSAGE_FOREGROUND, FOREGROUND, and BORDER_FOREGROUND with a valid Gum
color value in the supported ANSI 0–255 or hex range.

In `@flox-environments/python/.flox/env/manifest.toml`:
- Around line 23-31: Move the virtual-environment setup from the bash, zsh, and
fish profile entries into the manifest’s hook configuration so it runs during
exec mode as well as interactive activation. Preserve the existing
shell-specific activation behavior and ensure flox activate -- commands receive
the .venv environment and PATH.

In `@tools/lint/lint-all.sh`:
- Line 9: Add check-uv-version to the no-fix lint list handled by
is_no_fix_lint() in lint-all.sh, so the validation-only
tools/lint/check-uv-version.sh is not reported as fixable or included in make
lint-fix suggestions.

---

Nitpick comments:
In `@tools/lint/check_uv_version.py`:
- Around line 31-55: Add tests for main’s UV constraint validation covering
matching values, mismatches, missing or non-string constraints, and malformed
TOML inputs. Exercise the existing load_toml and get_nested_value paths,
asserting the expected return status and stderr output without changing the
validator behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e2e543a0-8e6e-4ec4-a522-8b38156cc8be

📥 Commits

Reviewing files that changed from the base of the PR and between a3f0beb and 308f578.

⛔ Files ignored due to path filters (8)
  • .flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/actionlint/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/common/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/helm/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/open-policy-agent/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/osv-scanner/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/python/.flox/env/manifest.lock is excluded by !**/*.lock
  • flox-environments/web/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (39)
  • .flox/env/manifest.toml
  • .github/actions/build-nemo-platform-wheel/action.yaml
  • .github/actions/build-policy-wasm/action.yaml
  • .github/actions/changes/action.yaml
  • .github/workflows/ci.yaml
  • .pre-commit-config.yaml
  • CONTRIBUTING.md
  • flox-environments/actionlint/.flox/.gitattributes
  • flox-environments/actionlint/.flox/.gitignore
  • flox-environments/actionlint/.flox/env.json
  • flox-environments/actionlint/.flox/env/manifest.toml
  • flox-environments/common/.flox/.gitattributes
  • flox-environments/common/.flox/.gitignore
  • flox-environments/common/.flox/env.json
  • flox-environments/common/.flox/env/manifest.toml
  • flox-environments/helm/.flox/.gitattributes
  • flox-environments/helm/.flox/.gitignore
  • flox-environments/helm/.flox/env.json
  • flox-environments/helm/.flox/env/manifest.toml
  • flox-environments/open-policy-agent/.flox/.gitattributes
  • flox-environments/open-policy-agent/.flox/.gitignore
  • flox-environments/open-policy-agent/.flox/env.json
  • flox-environments/open-policy-agent/.flox/env/manifest.toml
  • flox-environments/osv-scanner/.flox/.gitattributes
  • flox-environments/osv-scanner/.flox/.gitignore
  • flox-environments/osv-scanner/.flox/env.json
  • flox-environments/osv-scanner/.flox/env/manifest.toml
  • flox-environments/python/.flox/.gitattributes
  • flox-environments/python/.flox/.gitignore
  • flox-environments/python/.flox/env.json
  • flox-environments/python/.flox/env/manifest.toml
  • flox-environments/web/.flox/.gitattributes
  • flox-environments/web/.flox/.gitignore
  • flox-environments/web/.flox/env.json
  • flox-environments/web/.flox/env/manifest.toml
  • pyproject.toml
  • tools/lint/check-uv-version.sh
  • tools/lint/check_uv_version.py
  • tools/lint/lint-all.sh
🚧 Files skipped from review as they are similar to previous changes (6)
  • pyproject.toml
  • .github/actions/build-nemo-platform-wheel/action.yaml
  • .github/actions/build-policy-wasm/action.yaml
  • .github/actions/changes/action.yaml
  • .flox/env/manifest.toml
  • .pre-commit-config.yaml

Comment thread .github/workflows/ci.yaml Resolved
Comment thread CONTRIBUTING.md Resolved
Comment thread CONTRIBUTING.md Resolved
Comment thread tools/common/.flox/env/manifest.toml Resolved
Comment thread tools/python/.flox/env/manifest.toml Resolved
Comment thread tools/lint/lint-all.sh Resolved

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tools/nodejs/.flox/env/manifest.toml`:
- Around line 20-22: Update the manifest activation hook around package_manager
and the web dependency commands to resolve the repository root explicitly before
accessing web/package.json or using -C ./web. Ensure direct activation from
tools/nodejs and documented root activation both target the repository’s actual
web directory.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2fd2dc2b-b0ad-4a36-9999-909606a0a99b

📥 Commits

Reviewing files that changed from the base of the PR and between 0fda19f and 05d3e90.

⛔ Files ignored due to path filters (2)
  • .flox/env/manifest.lock is excluded by !**/*.lock
  • tools/nodejs/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • .flox/env/manifest.toml
  • .github/actions/changes/action.yaml
  • tools/nodejs/.flox/.gitattributes
  • tools/nodejs/.flox/.gitignore
  • tools/nodejs/.flox/env.json
  • tools/nodejs/.flox/env/manifest.toml
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/actions/changes/action.yaml
  • .flox/env/manifest.toml

Comment thread tools/nodejs/.flox/env/manifest.toml Resolved

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
tools/osv-scanner/.flox/env/manifest.toml (1)

4-4: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Document the OSV-Scanner catalog limitation.

Upstream v2.4.0 is available, but the Flox/Nixpkgs catalog still provides 2.3.3. Document this limitation and keep the manifest unchanged until the catalog includes a newer version.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tools/osv-scanner/.flox/env/manifest.toml` at line 4, Document the
OSV-Scanner catalog limitation near the osv-scanner dependency declaration,
noting that upstream v2.4.0 is available but the Flox/Nixpkgs catalog only
provides v2.3.3; keep the existing manifest entry unchanged until a newer
catalog version is available.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tools/lint/check-uv-version.sh`:
- Line 12: Update the diagnostic output in the version-check flow around
_python_ver and _flox_ver so it does not depend on an unavailable column
executable, or declare the package providing column in the relevant Flox
manifest. Ensure the mismatch diagnostic still prints both versions when column
is absent from PATH.
- Around line 7-10: Update the version extraction and validation in the script
around _python_ver and _flox_ver: use a quoted or bracketed yq path for
required-version, then reject either null or empty values before the comparison
so missing UV constraints cannot pass. Preserve the existing mismatch check for
valid, non-empty versions.

---

Nitpick comments:
In `@tools/osv-scanner/.flox/env/manifest.toml`:
- Line 4: Document the OSV-Scanner catalog limitation near the osv-scanner
dependency declaration, noting that upstream v2.4.0 is available but the
Flox/Nixpkgs catalog only provides v2.3.3; keep the existing manifest entry
unchanged until a newer catalog version is available.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f79a897e-0fb6-41a0-abe6-4a8209378fcf

📥 Commits

Reviewing files that changed from the base of the PR and between 05d3e90 and e56517b.

⛔ Files ignored due to path filters (8)
  • .flox/env/manifest.lock is excluded by !**/*.lock
  • tools/actionlint/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/common/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/helm/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/nodejs/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/open-policy-agent/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/osv-scanner/.flox/env/manifest.lock is excluded by !**/*.lock
  • tools/python/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (39)
  • .flox/env/manifest.toml
  • .github/actions/build-nemo-platform-wheel/action.yaml
  • .github/actions/build-policy-wasm/action.yaml
  • .github/actions/changes/action.yaml
  • .github/workflows/ci.yaml
  • .pre-commit-config.yaml
  • CONTRIBUTING.md
  • pyproject.toml
  • tools/actionlint/.flox/.gitattributes
  • tools/actionlint/.flox/.gitignore
  • tools/actionlint/.flox/env.json
  • tools/actionlint/.flox/env/manifest.toml
  • tools/common/.flox/.gitattributes
  • tools/common/.flox/.gitignore
  • tools/common/.flox/env.json
  • tools/common/.flox/env/manifest.toml
  • tools/helm/.flox/.gitattributes
  • tools/helm/.flox/.gitignore
  • tools/helm/.flox/env.json
  • tools/helm/.flox/env/manifest.toml
  • tools/lint/check-uv-version.sh
  • tools/lint/check_uv_version.py
  • tools/lint/lint-all.sh
  • tools/nodejs/.flox/.gitattributes
  • tools/nodejs/.flox/.gitignore
  • tools/nodejs/.flox/env.json
  • tools/nodejs/.flox/env/manifest.toml
  • tools/open-policy-agent/.flox/.gitattributes
  • tools/open-policy-agent/.flox/.gitignore
  • tools/open-policy-agent/.flox/env.json
  • tools/open-policy-agent/.flox/env/manifest.toml
  • tools/osv-scanner/.flox/.gitattributes
  • tools/osv-scanner/.flox/.gitignore
  • tools/osv-scanner/.flox/env.json
  • tools/osv-scanner/.flox/env/manifest.toml
  • tools/python/.flox/.gitattributes
  • tools/python/.flox/.gitignore
  • tools/python/.flox/env.json
  • tools/python/.flox/env/manifest.toml
🚧 Files skipped from review as they are similar to previous changes (13)
  • tools/nodejs/.flox/env.json
  • tools/nodejs/.flox/.gitattributes
  • tools/nodejs/.flox/env/manifest.toml
  • tools/nodejs/.flox/.gitignore
  • pyproject.toml
  • tools/lint/lint-all.sh
  • .github/actions/build-nemo-platform-wheel/action.yaml
  • .github/actions/changes/action.yaml
  • .github/actions/build-policy-wasm/action.yaml
  • CONTRIBUTING.md
  • .pre-commit-config.yaml
  • tools/lint/check_uv_version.py
  • .flox/env/manifest.toml

Comment thread tools/lint/check-uv-version.sh Resolved
Comment thread tools/lint/check-uv-version.sh Resolved

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/workflows/ci.yaml (1)

709-712: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Pin the Flox CLI version used by CI.

The action is pinned, but the Flox binary is not. The pinned action defaults to the stable channel when version is empty. Pin version to the manifest schema version, 1.14.0, or add an explicit compatibility check. (github.com)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/ci.yaml around lines 709 - 712, Update the “Install Flox”
step using flox/install-flox-action to set its version input explicitly to the
manifest schema version 1.14.0, while preserving the existing action pin and
disable-metrics setting.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/ci.yaml:
- Around line 709-712: Update the “Install Flox” step using
flox/install-flox-action to set its version input explicitly to the manifest
schema version 1.14.0, while preserving the existing action pin and
disable-metrics setting.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 961df7b6-0638-4a7f-8288-da578278e6b7

📥 Commits

Reviewing files that changed from the base of the PR and between e56517b and 3715348.

⛔ Files ignored due to path filters (1)
  • tools/lint/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • .github/actions/build-policy-wasm/action.yaml
  • .github/workflows/ci.yaml
  • tools/lint/.flox/.gitattributes
  • tools/lint/.flox/.gitignore
  • tools/lint/.flox/env.json
  • tools/lint/.flox/env/manifest.toml
💤 Files with no reviewable changes (1)
  • .github/actions/build-policy-wasm/action.yaml

@philipmattingly philipmattingly self-assigned this Aug 4, 2026
@coderabbitai coderabbitai Bot mentioned this pull request Aug 7, 2026
7 of 8 tasks
Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: shuffle the dirs to actual paths

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: adding more includes

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: update OPA to pull from flox managed binaries

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: update action to match new inputs

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: can only run one command

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: disable flox metrics collection

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: update job name to match test

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: move nmp install to hook

FLOX_ENV_PROJECT env var does not reflect the current path w/ layered environments

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: pass in disable metrics as inputs, global envvar didnt seem to pick that up

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: remove old opa install and build action

replaced by flox

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: use flox env for lint

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: add stdlib for python

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: add libpath for gcc

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: add more libs

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: update to python3full for glibc compat

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: update parent flox env

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: add unwrapped for stdlibc++

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: attempt gcc

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: add glibc

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: remove conflicting pkg

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: swap gcc for unwrapped w/ glibc

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: ditch nix python3, use uv distro

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: add start/complete msgs in activate scripts

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: create new env for lint tooling, add common env

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: need osv scanner for linting

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: allow nodejs to be activated from different compositions

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: remove flox project paths to better resolve relative path for multiple includes"

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: move to pinned action checkout

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

ci: fix action pin and whitespaces

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: add helm-docs to tools

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: move helm-docs to local binary in path, supplied by flox common tools

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

fix: pin helm-docs

Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

chore: restructure the flox setup, test on different shells and add notes

Signed-off-by: Brooke Storm <brookes@nvidia.com>

fix: correct the helm lint for the new setup

Signed-off-by: Brooke Storm <brookes@nvidia.com>

fix: clean up lint stuff

Signed-off-by: Brooke Storm <brookes@nvidia.com>

fix: add missing file

Signed-off-by: Brooke Storm <brookes@nvidia.com>

fix: pin osv scanner

Signed-off-by: Brooke Storm <brookes@nvidia.com>

docs: simple wording change...both are true about flox exit

Signed-off-by: Brooke Storm <brookes@nvidia.com>
Signed-off-by: Philip Mattingly <pmattingly@nvidia.com>

@mckornfield mckornfield left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I added Marcus on this, since he'd introduced mise. Wonder if it's worth a short comparison, but I know mise Aaron Gonzales put into the safe-synthesizer repo. I'd never heard of flox before this PR lol

Comment thread tools/lint/lint-all.sh Resolved
Signed-off-by: Brooke Storm <brookes@nvidia.com>
Signed-off-by: Brooke Storm <brookes@nvidia.com>
Signed-off-by: Brooke Storm <brookes@nvidia.com>
Signed-off-by: Brooke Storm <brookes@nvidia.com>

@ironcommit ironcommit left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@svvarom
svvarom self-requested a review August 10, 2026 19:12
Comment thread tools/lint/.flox/env/manifest.toml Resolved
Comment thread tools/lint/.flox/env/manifest.toml Resolved
Comment thread tools/lint/check-uv-version.sh Resolved
Signed-off-by: Brooke Storm <brookes@nvidia.com>
Comment thread tools/lint/.flox/env/manifest.toml Resolved
Comment thread tools/lint/.flox/env/manifest.toml Resolved
Signed-off-by: Brooke Storm <brookes@nvidia.com>
@marcusds

Copy link
Copy Markdown
Contributor

@crookedstorm I tried running this in a fresh VM and ran into a bunch of blockers. Would you like me try and list them for your or would it be easier if you just tried a fresh VM too?

Signed-off-by: Brooke Storm <brookes@nvidia.com>
@crookedstorm

Copy link
Copy Markdown
Contributor

@crookedstorm I tried running this in a fresh VM and ran into a bunch of blockers. Would you like me try and list them for your or would it be easier if you just tried a fresh VM too?

Great test! I'm interested in what you hit, but I will do that as well locally.

Signed-off-by: Brooke Storm <brookes@nvidia.com>
Signed-off-by: Brooke Storm <brookes@nvidia.com>
@crookedstorm
crookedstorm added this pull request to the merge queue Aug 11, 2026
Merged via the queue into main with commit 37966d9 Aug 11, 2026
60 checks passed
@crookedstorm
crookedstorm deleted the phil/flox-envs branch August 11, 2026 20:24
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.

6 participants