From d30fc0d18bcb87e470450e814da4187cc46a9340 Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Tue, 26 May 2026 15:04:55 -0500 Subject: [PATCH 01/17] fix: add more flox envs Signed-off-by: Philip Mattingly fix: shuffle the dirs to actual paths Signed-off-by: Philip Mattingly fix: adding more includes Signed-off-by: Philip Mattingly ci: update OPA to pull from flox managed binaries Signed-off-by: Philip Mattingly ci: update action to match new inputs Signed-off-by: Philip Mattingly ci: can only run one command Signed-off-by: Philip Mattingly ci: disable flox metrics collection Signed-off-by: Philip Mattingly ci: update job name to match test Signed-off-by: Philip Mattingly 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 ci: pass in disable metrics as inputs, global envvar didnt seem to pick that up Signed-off-by: Philip Mattingly ci: remove old opa install and build action replaced by flox Signed-off-by: Philip Mattingly ci: use flox env for lint Signed-off-by: Philip Mattingly ci: add stdlib for python Signed-off-by: Philip Mattingly ci: add libpath for gcc Signed-off-by: Philip Mattingly ci: add more libs Signed-off-by: Philip Mattingly fix: update to python3full for glibc compat Signed-off-by: Philip Mattingly fix: update parent flox env Signed-off-by: Philip Mattingly fix: add unwrapped for stdlibc++ Signed-off-by: Philip Mattingly fix: attempt gcc Signed-off-by: Philip Mattingly fix: add glibc Signed-off-by: Philip Mattingly fix: remove conflicting pkg Signed-off-by: Philip Mattingly fix: swap gcc for unwrapped w/ glibc Signed-off-by: Philip Mattingly fix: ditch nix python3, use uv distro Signed-off-by: Philip Mattingly fix: add start/complete msgs in activate scripts Signed-off-by: Philip Mattingly fix: create new env for lint tooling, add common env Signed-off-by: Philip Mattingly fix: need osv scanner for linting Signed-off-by: Philip Mattingly fix: allow nodejs to be activated from different compositions Signed-off-by: Philip Mattingly fix: remove flox project paths to better resolve relative path for multiple includes" Signed-off-by: Philip Mattingly ci: move to pinned action checkout Signed-off-by: Philip Mattingly ci: fix action pin and whitespaces Signed-off-by: Philip Mattingly fix: add helm-docs to tools Signed-off-by: Philip Mattingly fix: move helm-docs to local binary in path, supplied by flox common tools Signed-off-by: Philip Mattingly fix: pin helm-docs Signed-off-by: Philip Mattingly chore: restructure the flox setup, test on different shells and add notes Signed-off-by: Brooke Storm fix: correct the helm lint for the new setup Signed-off-by: Brooke Storm fix: clean up lint stuff Signed-off-by: Brooke Storm fix: add missing file Signed-off-by: Brooke Storm fix: pin osv scanner Signed-off-by: Brooke Storm docs: simple wording change...both are true about flox exit Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 1641 +++++++++++++---- .flox/env/manifest.toml | 35 +- .../build-nemo-platform-wheel/action.yaml | 4 +- .github/actions/build-policy-wasm/action.yaml | 43 +- .github/actions/changes/action.yaml | 7 + .github/workflows/ci.yaml | 101 +- .pre-commit-config.yaml | 22 +- CONTRIBUTING.md | 18 + .../actionlint/.flox/.gitattributes | 1 + flox-environments/actionlint/.flox/.gitignore | 5 + flox-environments/actionlint/.flox/env.json | 4 + .../actionlint/.flox/env/manifest.lock | 283 +++ .../actionlint/.flox/env/manifest.toml | 97 + flox-environments/common/.flox/.gitattributes | 1 + flox-environments/common/.flox/.gitignore | 5 + flox-environments/common/.flox/env.json | 4 + .../common/.flox/env/manifest.lock | 715 +++++++ .../common/.flox/env/manifest.toml | 21 + flox-environments/helm/.flox/.gitattributes | 1 + flox-environments/helm/.flox/.gitignore | 5 + flox-environments/helm/.flox/env.json | 4 + .../helm/.flox/env/manifest.lock | 301 +++ .../helm/.flox/env/manifest.toml | 97 + .../open-policy-agent/.flox/.gitattributes | 1 + .../open-policy-agent/.flox/.gitignore | 5 + .../open-policy-agent/.flox/env.json | 4 + .../open-policy-agent/.flox/env/manifest.lock | 140 ++ .../open-policy-agent/.flox/env/manifest.toml | 4 + .../osv-scanner/.flox/.gitattributes | 1 + .../osv-scanner/.flox/.gitignore | 5 + flox-environments/osv-scanner/.flox/env.json | 4 + .../osv-scanner/.flox/env/manifest.lock | 136 ++ .../osv-scanner/.flox/env/manifest.toml | 4 + flox-environments/python/.flox/.gitattributes | 1 + flox-environments/python/.flox/.gitignore | 5 + flox-environments/python/.flox/env.json | 4 + .../python/.flox/env/manifest.lock | 151 ++ .../python/.flox/env/manifest.toml | 32 + flox-environments/web/.flox/.gitattributes | 1 + flox-environments/web/.flox/.gitignore | 5 + flox-environments/web/.flox/env.json | 4 + flox-environments/web/.flox/env/manifest.lock | 148 ++ flox-environments/web/.flox/env/manifest.toml | 38 + pyproject.toml | 1 + tools/lint/check-uv-version.sh | 7 + tools/lint/check_uv_version.py | 55 + tools/lint/lint-all.sh | 1 + 47 files changed, 3737 insertions(+), 435 deletions(-) create mode 100644 flox-environments/actionlint/.flox/.gitattributes create mode 100644 flox-environments/actionlint/.flox/.gitignore create mode 100644 flox-environments/actionlint/.flox/env.json create mode 100644 flox-environments/actionlint/.flox/env/manifest.lock create mode 100644 flox-environments/actionlint/.flox/env/manifest.toml create mode 100644 flox-environments/common/.flox/.gitattributes create mode 100644 flox-environments/common/.flox/.gitignore create mode 100644 flox-environments/common/.flox/env.json create mode 100644 flox-environments/common/.flox/env/manifest.lock create mode 100644 flox-environments/common/.flox/env/manifest.toml create mode 100644 flox-environments/helm/.flox/.gitattributes create mode 100644 flox-environments/helm/.flox/.gitignore create mode 100644 flox-environments/helm/.flox/env.json create mode 100644 flox-environments/helm/.flox/env/manifest.lock create mode 100644 flox-environments/helm/.flox/env/manifest.toml create mode 100644 flox-environments/open-policy-agent/.flox/.gitattributes create mode 100644 flox-environments/open-policy-agent/.flox/.gitignore create mode 100644 flox-environments/open-policy-agent/.flox/env.json create mode 100644 flox-environments/open-policy-agent/.flox/env/manifest.lock create mode 100644 flox-environments/open-policy-agent/.flox/env/manifest.toml create mode 100644 flox-environments/osv-scanner/.flox/.gitattributes create mode 100644 flox-environments/osv-scanner/.flox/.gitignore create mode 100644 flox-environments/osv-scanner/.flox/env.json create mode 100644 flox-environments/osv-scanner/.flox/env/manifest.lock create mode 100644 flox-environments/osv-scanner/.flox/env/manifest.toml create mode 100644 flox-environments/python/.flox/.gitattributes create mode 100644 flox-environments/python/.flox/.gitignore create mode 100644 flox-environments/python/.flox/env.json create mode 100644 flox-environments/python/.flox/env/manifest.lock create mode 100644 flox-environments/python/.flox/env/manifest.toml create mode 100644 flox-environments/web/.flox/.gitattributes create mode 100644 flox-environments/web/.flox/.gitignore create mode 100644 flox-environments/web/.flox/env.json create mode 100644 flox-environments/web/.flox/env/manifest.lock create mode 100644 flox-environments/web/.flox/env/manifest.toml create mode 100644 tools/lint/check-uv-version.sh create mode 100644 tools/lint/check_uv_version.py diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 72a5a2de0dc..5c1b57007c9 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -3,31 +3,654 @@ "manifest": { "schema-version": "1.11.0", "install": { + "actionlint": { + "pkg-path": "actionlint", + "pkg-group": "actionlint", + "version": "1.7.12" + }, + "diffutils": { + "pkg-path": "diffutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "fnm": { + "pkg-path": "fnm", + "pkg-group": "node" + }, + "gnumake": { + "pkg-path": "gnumake" + }, "gnutar": { "pkg-path": "gnutar" }, + "gum": { + "pkg-path": "gum" + }, + "helm-docs": { + "pkg-path": "helm-docs", + "pkg-group": "helm-docs", + "version": "1.14.2" + }, + "kubeconform": { + "pkg-path": "kubeconform", + "pkg-group": "kubeconform", + "version": "0.6.7" + }, + "kubernetes-helm": { + "pkg-path": "kubernetes-helm", + "pkg-group": "kubernetes-helm", + "version": "4.2.3" + }, "open-policy-agent": { "pkg-path": "open-policy-agent", - "pkg-group": "tools", + "pkg-group": "open-policy-agent", "version": "1.8.0" }, "osv-scanner": { "pkg-path": "osv-scanner", - "pkg-group": "tools" + "pkg-group": "osv-scanner", + "version": "2.3.3" }, - "python3": { - "pkg-path": "python3" + "shellcheck": { + "pkg-path": "shellcheck", + "pkg-group": "actionlint", + "version": "0.11.0" }, "uv": { "pkg-path": "uv", - "version": "~0.9" + "pkg-group": "uv", + "version": ">=0.9.14,<0.10.0" } }, - "hook": {}, - "profile": {}, - "options": {} + "vars": { + "ALIGN": "center", + "BORDER": "double", + "BORDER_FOREGROUND": "514", + "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", + "FNM_VERSION_FILE_STRATEGY": "recursive", + "FOREGROUND": "514", + "GUM_LOG_MESSAGE_FOREGROUND": "514", + "MARGIN": "1 2", + "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache", + "PADDING": "1 2", + "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", + "UV_MANAGED_PYTHON": "1", + "UV_PYTHON": "3.13", + "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", + "UV_VENV_SEED": "1", + "WIDTH": "50" + }, + "hook": { + "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n\n set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" + }, + "profile": { + "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n", + "bash": " source .venv/bin/activate\n\n eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", + "zsh": " source .venv/bin/activate\n\n eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", + "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n\n fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + }, + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + } }, "packages": [ + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/f6xz9pw6zvga7r04isc4xf54y8g4sq5z-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:54.694474Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/9qj0ikkqv66k52xs8fywmnzyg8zn2svm-actionlint-1.7.12" + }, + "system": "aarch64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/pih7r5p4pify73ap7r0g4s7aqv5q01d2-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:21.154073Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/31js4yryr1yjq4waygdlv2k5w5ks0s0n-actionlint-1.7.12" + }, + "system": "aarch64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/mk996amm0g9pssw96f0nh4460x97p890-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:23.770360Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/20imjbvi2q6z691fd5acg20mfx3aqvkj-actionlint-1.7.12" + }, + "system": "x86_64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/h7qr1dkmmmwvr6rdp41d46mrxxyypqc2-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:14:50.123814Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/py6hpk9rm5vh16dn0sifa3wpmsl0kl67-shellcheck-0.11.0-bin", + "doc": "/nix/store/bf4yd8vzhafk7nknzjjz5awvkqvyfspc-shellcheck-0.11.0-doc", + "man": "/nix/store/lwd2gr8083jfif5xb8h7jj396dvr6kdd-shellcheck-0.11.0-man", + "out": "/nix/store/7qi1h6hbr1ybpz9xyh4j38vrki1xc2z4-shellcheck-0.11.0" + }, + "system": "aarch64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/27a27jgwxyq768zr75divyi6x4744bix-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:43:48.990893Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/ydbg36fc5vvgc4k60d38vj95741wvv28-shellcheck-0.11.0-bin", + "doc": "/nix/store/dmj404h7ac342mrnj5dfdych83cd6r6c-shellcheck-0.11.0-doc", + "man": "/nix/store/l3202mccjm3iz9m0myddbmvhiy8nkp9m-shellcheck-0.11.0-man", + "out": "/nix/store/yyy8s43483p5ww6v09kal0kidb7kxvmk-shellcheck-0.11.0" + }, + "system": "aarch64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/fjnaf97vql7h3d6mzymqabz7lmbljj0x-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:43:04.681164Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/vwvvnr1qxpwn0vffbsn8bkviqcgicizr-shellcheck-0.11.0-bin", + "doc": "/nix/store/wm6ncb99697pw9px9dpnx4vdq7mjskq2-shellcheck-0.11.0-doc", + "man": "/nix/store/g6cz58h4p7dasw30y0qrk0xwdp5595qv-shellcheck-0.11.0-man", + "out": "/nix/store/gykrz50q65f9jrljvd9bds46irfbd0bh-shellcheck-0.11.0" + }, + "system": "x86_64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/gbxz6zs7rv9qynjlq5z993cx97js8x5i-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:13:10.955708Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/i6nz37y0ghagc34nlpfngq71fn6z3rs2-helm-docs-1.14.2" + }, + "system": "aarch64-darwin", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/29i243jas4fqcpm8wdhbw4hvnyf4yp6h-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:41.686139Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/bgaaxnb9i8fzvkvl6ggddngc0v41wwny-helm-docs-1.14.2" + }, + "system": "aarch64-linux", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/7hxy923h5639mxb0lb05asr77arvwyjb-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:45.057500Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/63l33x2rrpzdx0fg7yg776ajm6ilmgx7-helm-docs-1.14.2" + }, + "system": "x86_64-linux", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/9s4snw6sv1rxkppb2vh77mfx8y8w3dk0-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T04:19:29.834897Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/39nyhvxm0fj2bqpy1hb0wp1mj6drgw6k-kubeconform-0.6.7" + }, + "system": "aarch64-darwin", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/lq4z544sl9s1g771v8si3pa54zk39x4h-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T04:37:22.795766Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/dl336sgplkl83x7hgq9vchnwia92rllx-kubeconform-0.6.7" + }, + "system": "aarch64-linux", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/7sn96dgwl0lkghawlg88557cr9nr88y4-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T05:15:57.921277Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/8cmvaf9s4h36rz1464kwwn5a9pifgf56-kubeconform-0.6.7" + }, + "system": "x86_64-linux", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/8fnhgk1cylc66jpbkpkhi1b8l763zz61-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T04:54:14.871348Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/jg1p2gzhrgg5d0wfdv45j1144q3ms3i2-kubernetes-helm-4.2.3" + }, + "system": "aarch64-darwin", + "group": "kubernetes-helm", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/zpbg9qqi19k2pcp06yfkmv76a1yb2j0x-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:24:45.679341Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0fmrj3fq2j2l95cj12pw1bkni4nihwsl-kubernetes-helm-4.2.3" + }, + "system": "aarch64-linux", + "group": "kubernetes-helm", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/4nb9airy740jinzgf83vpk7gp13vjmii-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:59:04.143872Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/7vgl8w4ma0pl7f32n0rjgnmj6xalmiac-kubernetes-helm-4.2.3" + }, + "system": "x86_64-linux", + "group": "kubernetes-helm", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/m4s0894j2dj2k375c7dns2ib8nk5krpw-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.889515Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/fp3ndk75i6c1c31a9zqkz3pk61gz294h-fnm-1.39.0" + }, + "system": "aarch64-darwin", + "group": "node", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/zh7xw7li0b92r9cx25f4j19qdp1kqvdz-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.827979Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/1312sbdkqvdp0m5gak0dfgz0bf2p1kgj-fnm-1.39.0" + }, + "system": "aarch64-linux", + "group": "node", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/isdxp3dj73n1j6zzxjnjg20f4016h7ia-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:25.581588Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/1dih2h4sxfqkkg32db7753m02d9q54hk-fnm-1.39.0" + }, + "system": "x86_64-linux", + "group": "node", + "priority": 5 + }, { "attr_path": "open-policy-agent", "broken": false, @@ -56,310 +679,503 @@ "out": "/nix/store/28vvl32vygjxdalfprxjqvnwpbsp2j7i-open-policy-agent-1.8.0" }, "system": "aarch64-darwin", - "group": "tools", + "group": "open-policy-agent", "priority": 5 }, { "attr_path": "open-policy-agent", "broken": false, - "derivation": "/nix/store/07baqszwy9ldr487q9z6svwcsn7d73px-open-policy-agent-1.8.0.drv", - "description": "General-purpose policy engine", - "install_id": "open-policy-agent", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "open-policy-agent-1.8.0", - "pname": "open-policy-agent", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T04:12:13.305775Z", + "derivation": "/nix/store/07baqszwy9ldr487q9z6svwcsn7d73px-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T04:12:13.305775Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/i98fklmmf7xcqlmm1hdzkcw4wvyf92my-open-policy-agent-1.8.0" + }, + "system": "aarch64-linux", + "group": "open-policy-agent", + "priority": 5 + }, + { + "attr_path": "open-policy-agent", + "broken": false, + "derivation": "/nix/store/rz93a0lg0j3b7p0lygizpnibnln7i2av-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T05:11:19.422384Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/v3nqh59l69bpq739pa2amj427h1isc5d-open-policy-agent-1.8.0" + }, + "system": "x86_64-linux", + "group": "open-policy-agent", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/g2jx4p30qxqyjk65mbgv63mawimskfbg-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T04:54:27.813904Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/qfv8fsdf1bhsl4ml0955nplrw1wi83d6-osv-scanner-2.3.3" + }, + "system": "aarch64-darwin", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/pnqpmpkk9fbrm0411g73r277gnda7ili-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:25:09.330153Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/v1d3ifdfb4j91gvx46swna13h6bpx9fb-osv-scanner-2.3.3" + }, + "system": "aarch64-linux", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/j64ih3qz2fdcmi1gvycirnmzisbdzpl6-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:59:27.881702Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/6x0287bsy0pc19ygy84r6rg4lz51dkmx-osv-scanner-2.3.3" + }, + "system": "x86_64-linux", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/a4idiq74cs37nrckg8fvqn436l1jli0k-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:06:03.203715Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "1.8.0", + "version": "3.12", "outputs_to_install": [ + "out", "out" ], "outputs": { - "out": "/nix/store/i98fklmmf7xcqlmm1hdzkcw4wvyf92my-open-policy-agent-1.8.0" + "info": "/nix/store/wbb3pzx0mg0a7ksjvc44kd5w3mzynnlz-diffutils-3.12-info", + "out": "/nix/store/37rdk8zsdbqcp73l3nrmwilwb2ixkacv-diffutils-3.12" }, - "system": "aarch64-linux", - "group": "tools", + "system": "aarch64-darwin", + "group": "toplevel", "priority": 5 }, { - "attr_path": "open-policy-agent", + "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/x7smjn0d496p62ckf6jcvp0i4qb9gzqv-open-policy-agent-1.8.0.drv", - "description": "General-purpose policy engine", - "install_id": "open-policy-agent", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "open-policy-agent-1.8.0", - "pname": "open-policy-agent", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T04:39:57.100020Z", + "derivation": "/nix/store/7kp4z354654mvw5brn01k26r4kg2di8j-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:34:26.601002Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "1.8.0", + "version": "3.12", "outputs_to_install": [ + "out", "out" ], "outputs": { - "out": "/nix/store/mby5spqsadnhrbdc20h01b5fbf7938vl-open-policy-agent-1.8.0" + "info": "/nix/store/rl95zx5xc6jx0ziigcgygj3zd9fwj77x-diffutils-3.12-info", + "out": "/nix/store/l2vdh6xnh51cqav31cwsdwr3c91i2gbl-diffutils-3.12" }, - "system": "x86_64-darwin", - "group": "tools", + "system": "aarch64-linux", + "group": "toplevel", "priority": 5 }, { - "attr_path": "open-policy-agent", + "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/rz93a0lg0j3b7p0lygizpnibnln7i2av-open-policy-agent-1.8.0.drv", - "description": "General-purpose policy engine", - "install_id": "open-policy-agent", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "open-policy-agent-1.8.0", - "pname": "open-policy-agent", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T05:11:19.422384Z", + "derivation": "/nix/store/hr30bp0br6nigp0zv5jmf9l4g3xsms2q-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T08:32:51.733292Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "1.8.0", + "version": "3.12", "outputs_to_install": [ + "out", + "out", + "out", "out" ], "outputs": { - "out": "/nix/store/v3nqh59l69bpq739pa2amj427h1isc5d-open-policy-agent-1.8.0" + "info": "/nix/store/6mkh4xmxcqcmkx5dddiw9zr57bkw9qvv-diffutils-3.12-info", + "out": "/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12" }, "system": "x86_64-linux", - "group": "tools", + "group": "toplevel", "priority": 5 }, { - "attr_path": "osv-scanner", + "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/2ddz5rl2cg9nfpy2465fbwcrpd34l1yh-osv-scanner-2.2.2.drv", - "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", - "install_id": "osv-scanner", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "osv-scanner-2.2.2", - "pname": "osv-scanner", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T03:42:59.393464Z", + "derivation": "/nix/store/v1gwnzlgn4vivbr5j9jzsqqb8kl8z3k4-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:06:03.570130Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "2.2.2", + "version": "4.10.0", "outputs_to_install": [ + "out", + "out", "out" ], "outputs": { - "out": "/nix/store/26wh6j075c2ja715gin101n3vic20g92-osv-scanner-2.2.2" + "info": "/nix/store/34l83gpv8481k0wzmmi9cxh9flbmhsg4-findutils-4.10.0-info", + "locate": "/nix/store/mwx56wc51wvky0a78fizs90y7s7mg2ia-findutils-4.10.0-locate", + "out": "/nix/store/3wz2j41nnr1badij6fcnip5vgrfpdd82-findutils-4.10.0" }, "system": "aarch64-darwin", - "group": "tools", + "group": "toplevel", "priority": 5 }, { - "attr_path": "osv-scanner", + "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/2mv1gpg13bjisqdr1jiybpr5y2kql4hv-osv-scanner-2.2.2.drv", - "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", - "install_id": "osv-scanner", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "osv-scanner-2.2.2", - "pname": "osv-scanner", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T04:12:14.182935Z", + "derivation": "/nix/store/rka0crnhr888cfy9ilwmdy2b7zkb2iwl-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:34:27.153777Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "2.2.2", + "version": "4.10.0", "outputs_to_install": [ + "out", "out" ], "outputs": { - "out": "/nix/store/3bn0dv4wba1jkz3x61jxfyavk75yj8yp-osv-scanner-2.2.2" + "info": "/nix/store/168irs0ni0r9iynjv0q05s72ad276hjc-findutils-4.10.0-info", + "locate": "/nix/store/1ycgnkm4c43vggyw76qc0jvrz4yvaddn-findutils-4.10.0-locate", + "out": "/nix/store/gbd7xfq2d1wbrwr2i045mvc8fkkw7i1g-findutils-4.10.0" }, "system": "aarch64-linux", - "group": "tools", + "group": "toplevel", "priority": 5 }, { - "attr_path": "osv-scanner", + "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/a9d5nlnbvl0yaw75x9dr1p753dqwl7ss-osv-scanner-2.2.2.drv", - "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", - "install_id": "osv-scanner", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "osv-scanner-2.2.2", - "pname": "osv-scanner", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T04:39:57.558517Z", + "derivation": "/nix/store/nv9vbwdbppdb9zvv78m9a99vga207ykq-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T08:32:52.337279Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "2.2.2", + "version": "4.10.0", "outputs_to_install": [ + "out", + "out", + "out", "out" ], "outputs": { - "out": "/nix/store/mivgza1fjrcg1mzlp4868lfg8a1fr051-osv-scanner-2.2.2" + "info": "/nix/store/mc65clwg5q361fa9614ryvmhl3yqradh-findutils-4.10.0-info", + "locate": "/nix/store/fcid2ld7f37q6h1rknkrv80302is8c0y-findutils-4.10.0-locate", + "out": "/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0" }, - "system": "x86_64-darwin", - "group": "tools", + "system": "x86_64-linux", + "group": "toplevel", "priority": 5 }, { - "attr_path": "osv-scanner", + "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/hhrm279m6xlr10hh4xhxmhznqnb1kvp4-osv-scanner-2.2.2.drv", - "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", - "install_id": "osv-scanner", - "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", - "name": "osv-scanner-2.2.2", - "pname": "osv-scanner", - "rev": "e643668fd71b949c53f8626614b21ff71a07379d", - "rev_count": 866707, - "rev_date": "2025-09-24T05:06:22Z", - "scrape_date": "2025-09-26T05:11:20.395916Z", + "derivation": "/nix/store/kpylm5v2c10jkmpjfll8jk9vc0icnzmf-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:06:03.974647Z", "stabilities": [ - "unstable", + "lts", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, - "version": "2.2.2", + "version": "4.4.1", "outputs_to_install": [ + "man", "out" ], "outputs": { - "out": "/nix/store/dwj2i6qhz1pv0331h704swc656fhhbjs-osv-scanner-2.2.2" + "doc": "/nix/store/sl2ygvgjg4ml8dhyfxj5kh84x2bs1mhc-gnumake-4.4.1-doc", + "info": "/nix/store/6dbp1ysgxsrrn7xgjgf523faqrm605a5-gnumake-4.4.1-info", + "man": "/nix/store/wdm9prq35jlgwq6rjyhqxy4jzy833sfr-gnumake-4.4.1-man", + "out": "/nix/store/8wwiw8pwyhrkzyq28hqzxfl4z84lks81-gnumake-4.4.1" }, - "system": "x86_64-linux", - "group": "tools", + "system": "aarch64-darwin", + "group": "toplevel", "priority": 5 }, { - "attr_path": "gnutar", + "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/srhxmpzbdjkzx49sxfv4gdgik8hjpb3l-gnutar-1.35.drv", - "description": "GNU implementation of the `tar' archiver", - "install_id": "gnutar", + "derivation": "/nix/store/5i4kfrpjrag02vk2n04ndvfbsb086kkq-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "gnutar-1.35", - "pname": "gnutar", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T04:35:55.625459Z", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:34:28.288092Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "1.35", + "version": "4.4.1", "outputs_to_install": [ - "out", + "man", "out", "out" ], "outputs": { - "info": "/nix/store/vmm74jf3h3h4w8kz0bnk6vgn0ixyfyyk-gnutar-1.35-info", - "out": "/nix/store/4jhz97mvip61gn146avpanb60glazgz4-gnutar-1.35" + "debug": "/nix/store/mdv67w2xvchbs76zjdzppdkk64z5avki-gnumake-4.4.1-debug", + "doc": "/nix/store/bybbj9avk3g107mwhgvkzkpm6mkbl8gv-gnumake-4.4.1-doc", + "info": "/nix/store/bxdqxx2q13sj15ss8z5l33jd31x55j5l-gnumake-4.4.1-info", + "man": "/nix/store/dg3aa71vii59scbfhi02cdxnps64x6ql-gnumake-4.4.1-man", + "out": "/nix/store/9ngw1ippk25jjj5fjxv36xbp6iq7rxdx-gnumake-4.4.1" }, - "system": "aarch64-darwin", + "system": "aarch64-linux", "group": "toplevel", "priority": 5 }, { - "attr_path": "gnutar", + "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/9hzp7c9vng5dc9x747bspkvbmcsab11g-gnutar-1.35.drv", - "description": "GNU implementation of the `tar' archiver", - "install_id": "gnutar", + "derivation": "/nix/store/7r4i2k0iihf294fij4fharxs9ph4xy7i-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "gnutar-1.35", - "pname": "gnutar", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:05:24.904605Z", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T08:32:53.551884Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "1.35", + "version": "4.4.1", "outputs_to_install": [ + "man", "out", "out", "out", "out" ], "outputs": { - "info": "/nix/store/chjh1afhyda3vli9lwnfaiz39pb7n39p-gnutar-1.35-info", - "out": "/nix/store/p83mlijcdg429fj17frdcxv7jj9jnsqv-gnutar-1.35" + "debug": "/nix/store/q683z843wi7xs96pngh1kinnx88vn2if-gnumake-4.4.1-debug", + "doc": "/nix/store/wxg27bzsljjw4k72m9b2v6a0fx5a68s0-gnumake-4.4.1-doc", + "info": "/nix/store/03d41qgjsrhcr3fzq2z99ry07rahnj0v-gnumake-4.4.1-info", + "man": "/nix/store/bmvqa5ym318mymhxlwwmxq8wxal958p4-gnumake-4.4.1-man", + "out": "/nix/store/d3bwqm6bymhy3pdgbvf7vxjqfp31m3j1-gnumake-4.4.1" }, - "system": "aarch64-linux", + "system": "x86_64-linux", "group": "toplevel", "priority": 5 }, { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/rg7qpn90a3ijqj1i2fq9m0jy6sqy0jq6-gnutar-1.35.drv", - "description": "GNU implementation of the `tar' archiver", + "derivation": "/nix/store/pdvrawd3q9d8ax2ys053rvv1jinpgncs-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:33:33.880310Z", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:06:03.982516Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, "version": "1.35", @@ -368,185 +1184,175 @@ "out" ], "outputs": { - "info": "/nix/store/kyc01mpv5sizdndi7w7b3ks2gq9s6bcz-gnutar-1.35-info", - "out": "/nix/store/s3pyki0jss8gkxa935xwc4hzh93ly2z6-gnutar-1.35" + "info": "/nix/store/lfn1823f7k3iaar3088ag3vkk3g8mf46-gnutar-1.35-info", + "out": "/nix/store/3aikbnf5fq99gvw1wb242wrjnbj7fcr9-gnutar-1.35" }, - "system": "x86_64-darwin", + "system": "aarch64-darwin", "group": "toplevel", "priority": 5 }, { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/zs2p03ld9jhdx4wrdi8qk9adl9crkb3v-gnutar-1.35.drv", - "description": "GNU implementation of the `tar' archiver", + "derivation": "/nix/store/2vfljm4iy3yngf9bcb98djkq762z2845-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T06:05:47.954880Z", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:34:28.303349Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", - "out", - "out", - "out", - "out", - "out", "out", "out" ], "outputs": { - "info": "/nix/store/ax6j94gib9m7ni9pfv3qmm5l8fi1hlz2-gnutar-1.35-info", - "out": "/nix/store/qyg62bc2xnpwz0fa9prqxvvk00zj4g9q-gnutar-1.35" + "info": "/nix/store/isnpsk3kgnlfv3gs1j9vn75cx6pw015a-gnutar-1.35-info", + "out": "/nix/store/lg4p75b1g1ncr0xf20qpyc96pikpg1sp-gnutar-1.35" }, - "system": "x86_64-linux", + "system": "aarch64-linux", "group": "toplevel", "priority": 5 }, { - "attr_path": "python3", + "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/2f9f2hcw24ncf86i63v9apf9s0k2fgyz-python3-3.13.11.drv", - "description": "High-level dynamically-typed programming language", - "install_id": "python3", - "license": "Python-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "python3-3.13.11", - "pname": "python3", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T04:36:33.164594Z", + "derivation": "/nix/store/k8mgqrkbrh8jpll2yamzk66jksqhlw0y-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T08:32:53.566097Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "3.13.11", + "version": "1.35", "outputs_to_install": [ "out", "out", "out", "out", - "out", "out" ], "outputs": { - "out": "/nix/store/qzgxkh5rnlswnj5ywhag0djwvn83kr3r-python3-3.13.11" + "info": "/nix/store/mrvcwlivqq2nr2anqq9ap4wdhflk52lm-gnutar-1.35-info", + "out": "/nix/store/55nbxpjrgrrsplq739z1z8n05h16cgsq-gnutar-1.35" }, - "system": "aarch64-darwin", + "system": "x86_64-linux", "group": "toplevel", "priority": 5 }, { - "attr_path": "python3", + "attr_path": "gum", "broken": false, - "derivation": "/nix/store/cadmaxzh2h1i0id6zfa5zq0mjpr9qqda-python3-3.13.11.drv", - "description": "High-level dynamically-typed programming language", - "install_id": "python3", - "license": "Python-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "python3-3.13.11", - "pname": "python3", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:06:19.681973Z", + "derivation": "/nix/store/j8ybq6l473j7zinlzgivynnqb9zvl76a-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:06:04.219243Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "3.13.11", + "version": "0.17.0", "outputs_to_install": [ - "out", - "out", - "out", - "out", "out" ], "outputs": { - "debug": "/nix/store/bzb0vriv1a1kaz9zv6lzv62zkcvvm88r-python3-3.13.11-debug", - "out": "/nix/store/ygzfhw5nxrn7qqfqmz2s9p6cikcjqqkh-python3-3.13.11" + "out": "/nix/store/6jb5frkadampkcmbjynch118cc4smzfj-gum-0.17.0" }, - "system": "aarch64-linux", + "system": "aarch64-darwin", "group": "toplevel", "priority": 5 }, { - "attr_path": "python3", + "attr_path": "gum", "broken": false, - "derivation": "/nix/store/dk525f5vnsqf4c5m90rhm2hazww34xmx-python3-3.13.11.drv", - "description": "High-level dynamically-typed programming language", - "install_id": "python3", - "license": "Python-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "python3-3.13.11", - "pname": "python3", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:34:11.664697Z", + "derivation": "/nix/store/3rhl22hpsgrv3p835m8kkmkli1v1swnq-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T07:34:28.702751Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "3.13.11", + "version": "0.17.0", "outputs_to_install": [ - "out", - "out", "out" ], "outputs": { - "out": "/nix/store/5wy2gaa1kaskq3j63zwl1jw6a0ffllx5-python3-3.13.11" + "out": "/nix/store/8p8fi8pl4lb776q2gnby3rd3mcbj5grh-gum-0.17.0" }, - "system": "x86_64-darwin", + "system": "aarch64-linux", "group": "toplevel", "priority": 5 }, { - "attr_path": "python3", + "attr_path": "gum", "broken": false, - "derivation": "/nix/store/bmlsz2bfdg16dr10k8rm3hmkq09h06nr-python3-3.13.11.drv", - "description": "High-level dynamically-typed programming language", - "install_id": "python3", - "license": "Python-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "python3-3.13.11", - "pname": "python3", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T06:06:47.427720Z", + "derivation": "/nix/store/b84rjgg7a2yk5hjvrml660hrir7xd3nx-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "rev_count": 1004030, + "rev_date": "2026-05-23T18:24:25Z", + "scrape_date": "2026-05-26T08:32:53.979932Z", "stabilities": [ - "unstable", - "staging" + "lts", + "stable", + "staging", + "unstable" ], "unfree": false, - "version": "3.13.11", + "version": "0.17.0", "outputs_to_install": [ - "out", - "out", - "out", - "out", - "out", - "out", "out" ], "outputs": { - "debug": "/nix/store/gvhg8py0jr9v83ysqb86rr2s1yidppca-python3-3.13.11-debug", - "out": "/nix/store/slhpx9glq7vl99bwi93bgrhn3syv98s1-python3-3.13.11" + "out": "/nix/store/2ii7sbkq44zrkv4iv6g7bqi47m4ch28b-gum-0.17.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -567,8 +1373,8 @@ "rev_date": "2026-02-04T09:32:58Z", "scrape_date": "2026-02-06T04:38:13.753987Z", "stabilities": [ - "unstable", - "staging" + "staging", + "unstable" ], "unfree": false, "version": "0.9.28", @@ -579,7 +1385,7 @@ "out": "/nix/store/rnci0wgac6r47gr09bhb6x5fyc507i43-uv-0.9.28" }, "system": "aarch64-darwin", - "group": "toplevel", + "group": "uv", "priority": 5 }, { @@ -597,8 +1403,8 @@ "rev_date": "2026-02-04T09:32:58Z", "scrape_date": "2026-02-06T05:08:27.505844Z", "stabilities": [ - "unstable", - "staging" + "staging", + "unstable" ], "unfree": false, "version": "0.9.28", @@ -609,37 +1415,7 @@ "out": "/nix/store/r6g6avldk8dlj30dmk2p2971akkmw9h3-uv-0.9.28" }, "system": "aarch64-linux", - "group": "toplevel", - "priority": 5 - }, - { - "attr_path": "uv", - "broken": false, - "derivation": "/nix/store/1dxxxb7ia28b4fcvn00vvc2xmal3kamm-uv-0.9.28.drv", - "description": "Extremely fast Python package installer and resolver, written in Rust", - "install_id": "uv", - "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", - "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:35:52.717277Z", - "stabilities": [ - "unstable", - "staging" - ], - "unfree": false, - "version": "0.9.28", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/vrzvbvds4vvj5989w838m562vavqzd4w-uv-0.9.28" - }, - "system": "x86_64-darwin", - "group": "toplevel", + "group": "uv", "priority": 5 }, { @@ -657,8 +1433,8 @@ "rev_date": "2026-02-04T09:32:58Z", "scrape_date": "2026-02-06T06:09:00.313627Z", "stabilities": [ - "unstable", - "staging" + "staging", + "unstable" ], "unfree": false, "version": "0.9.28", @@ -669,8 +1445,237 @@ "out": "/nix/store/jddcqyx0099mynb7gxr0dd66hkpqqs2r-uv-0.9.28" }, "system": "x86_64-linux", - "group": "toplevel", + "group": "uv", "priority": 5 } - ] + ], + "compose": { + "composer": { + "schema-version": "1.11.0", + "profile": { + "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" + }, + "options": {}, + "include": { + "environments": [ + { + "dir": "flox-environments/common" + }, + { + "dir": "flox-environments/helm" + }, + { + "dir": "flox-environments/actionlint" + }, + { + "dir": "flox-environments/python" + }, + { + "dir": "flox-environments/web" + }, + { + "dir": "flox-environments/osv-scanner" + }, + { + "dir": "flox-environments/open-policy-agent" + } + ] + } + }, + "include": [ + { + "manifest": { + "schema-version": "1.11.0", + "install": { + "diffutils": { + "pkg-path": "diffutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnumake": { + "pkg-path": "gnumake" + }, + "gnutar": { + "pkg-path": "gnutar" + }, + "gum": { + "pkg-path": "gum" + } + }, + "vars": { + "ALIGN": "center", + "BORDER": "double", + "BORDER_FOREGROUND": "514", + "FOREGROUND": "514", + "GUM_LOG_MESSAGE_FOREGROUND": "514", + "MARGIN": "1 2", + "PADDING": "1 2", + "WIDTH": "50" + }, + "profile": {}, + "options": {} + }, + "name": "common", + "descriptor": { + "dir": "flox-environments/common" + } + }, + { + "manifest": { + "schema-version": "1.13.0", + "install": { + "helm-docs": { + "pkg-path": "helm-docs", + "pkg-group": "helm-docs", + "version": "1.14.2" + }, + "kubeconform": { + "pkg-path": "kubeconform", + "pkg-group": "kubeconform", + "version": "0.6.7" + }, + "kubernetes-helm": { + "pkg-path": "kubernetes-helm", + "pkg-group": "kubernetes-helm", + "version": "4.2.3" + } + }, + "hook": {}, + "profile": {}, + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + } + }, + "name": "helm", + "descriptor": { + "dir": "flox-environments/helm" + } + }, + { + "manifest": { + "schema-version": "1.13.0", + "install": { + "actionlint": { + "pkg-path": "actionlint", + "pkg-group": "actionlint", + "version": "1.7.12" + }, + "shellcheck": { + "pkg-path": "shellcheck", + "pkg-group": "actionlint", + "version": "0.11.0" + } + }, + "hook": {}, + "profile": {}, + "options": {} + }, + "name": "actionlint", + "descriptor": { + "dir": "flox-environments/actionlint" + } + }, + { + "manifest": { + "schema-version": "1.11.0", + "install": { + "uv": { + "pkg-path": "uv", + "pkg-group": "uv", + "version": ">=0.9.14,<0.10.0" + } + }, + "vars": { + "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", + "UV_MANAGED_PYTHON": "1", + "UV_PYTHON": "3.13", + "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", + "UV_VENV_SEED": "1" + }, + "hook": { + "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n" + }, + "profile": { + "bash": " source .venv/bin/activate\n", + "zsh": " source .venv/bin/activate\n", + "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" + }, + "options": {} + }, + "name": "nemo-platform-python", + "descriptor": { + "dir": "flox-environments/python" + } + }, + { + "manifest": { + "schema-version": "1.11.0", + "install": { + "fnm": { + "pkg-path": "fnm", + "pkg-group": "node" + } + }, + "vars": { + "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", + "FNM_VERSION_FILE_STRATEGY": "recursive", + "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache" + }, + "hook": { + "on-activate": " set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" + }, + "profile": { + "bash": " eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", + "zsh": " eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", + "fish": " fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + }, + "options": {} + }, + "name": "nemo-platform-nodejs", + "descriptor": { + "dir": "flox-environments/web" + } + }, + { + "manifest": { + "schema-version": "1.11.0", + "install": { + "osv-scanner": { + "pkg-path": "osv-scanner", + "pkg-group": "osv-scanner", + "version": "2.3.3" + } + }, + "options": {} + }, + "name": "osv-scanner", + "descriptor": { + "dir": "flox-environments/osv-scanner" + } + }, + { + "manifest": { + "schema-version": "1.11.0", + "install": { + "open-policy-agent": { + "pkg-path": "open-policy-agent", + "pkg-group": "open-policy-agent", + "version": "1.8.0" + } + }, + "options": {} + }, + "name": "open-policy-agent", + "descriptor": { + "dir": "flox-environments/open-policy-agent" + } + } + ], + "warnings": [] + } } diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index bb5382538ba..436692604be 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -1,26 +1,23 @@ schema-version = "1.11.0" - [install] -# Python -python3.pkg-path = "python3" -uv.pkg-path = "uv" -uv.version = "~0.9" - -# Utilities -gnutar.pkg-path = "gnutar" - -# Tools -open-policy-agent.pkg-path = "open-policy-agent" -open-policy-agent.version = "1.8.0" -open-policy-agent.pkg-group = "tools" -osv-scanner.pkg-path = "osv-scanner" -osv-scanner.pkg-group = "tools" [vars] -[hook] + [profile] -[services] +common = ''' + test -f .git/hooks/pre-commit || pre-commit install + + gum style "NeMo Platform" +''' + [include] -[build] -[options] +environments = [ + { dir = "flox-environments/common" }, + { dir = "flox-environments/helm" }, + { dir = "flox-environments/actionlint" }, + { dir = "flox-environments/python" }, + { dir = "flox-environments/web" }, + { dir = "flox-environments/osv-scanner" }, + { dir = "flox-environments/open-policy-agent" }, +] diff --git a/.github/actions/build-nemo-platform-wheel/action.yaml b/.github/actions/build-nemo-platform-wheel/action.yaml index bef4631bf42..74d0cd41d9d 100644 --- a/.github/actions/build-nemo-platform-wheel/action.yaml +++ b/.github/actions/build-nemo-platform-wheel/action.yaml @@ -121,7 +121,7 @@ runs: if: inputs.package == 'nemo-platform' uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: ${{ inputs.source-root }}/.nvmrc - name: Install pnpm via Corepack if: inputs.package == 'nemo-platform' @@ -163,7 +163,7 @@ runs: if: inputs.package == 'nemo-platform' uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: ${{ inputs.source-root }}/.nvmrc cache: pnpm cache-dependency-path: ${{ inputs.source-root }}/${{ inputs.studio-web-root }}/pnpm-lock.yaml diff --git a/.github/actions/build-policy-wasm/action.yaml b/.github/actions/build-policy-wasm/action.yaml index d7a44538bc2..bacf52f9e62 100644 --- a/.github/actions/build-policy-wasm/action.yaml +++ b/.github/actions/build-policy-wasm/action.yaml @@ -1,42 +1,19 @@ name: Build OPA policy WASM description: > - Installs OPA and builds the authorization policy WASM asset at + Installs Flox, activates the OPA environment, and builds the authorization + policy WASM asset at services/core/auth/src/nmp/core/auth/assets/policy.wasm. Assumes the - repository has already been checked out. This is used in two locations, so - keeping it here prevents version drift, etc. + repository has already been checked out. runs: using: composite steps: - # build_policy_wasm.sh already prefers a cached binary at .cache/opa// before reaching - # out to openpolicyagent.org, but nothing ever populated that directory in CI, so every run - # depended on that download — and it has repeatedly failed, taking a required job down with it. - # Restoring the cache means the fetch is only needed the first time a pinned version is seen. - - name: Resolve pinned OPA version - id: opa - shell: bash - env: - REPO_ROOT: ${{ github.action_path }}/../../.. - run: | - # Parse rather than source: the script builds the WASM on execution, so sourcing it here - # would do the work twice (and before the cache is restored). - version="$(sed -n 's/^OPA_VERSION="\${OPA_VERSION:-\([^}]*\)}"/\1/p' "${REPO_ROOT}/script/build_policy_wasm.sh" | head -1)" - if [ -z "${version}" ]; then - echo "Could not parse the pinned OPA version from script/build_policy_wasm.sh" >&2 - echo "If the OPA_VERSION line moved, update this step — a wrong cache key silently disables caching." >&2 - exit 1 - fi - echo "version=${version}" >> "${GITHUB_OUTPUT}" - echo "Pinned OPA version: ${version}" - - - name: Cache the pinned OPA binary - uses: actions/cache@v4 + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 with: - path: .cache/opa - key: opa-${{ runner.os }}-${{ runner.arch }}-${{ steps.opa.outputs.version }} - + disable-metrics: "true" - name: Build policy WASM - shell: bash - env: - REPO_ROOT: ${{ github.action_path }}/../../.. - run: "${REPO_ROOT}/script/build_policy_wasm.sh" + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./flox-environments/open-policy-agent + command: ./script/build_policy_wasm.sh diff --git a/.github/actions/changes/action.yaml b/.github/actions/changes/action.yaml index 89ebd575527..067544237b2 100644 --- a/.github/actions/changes/action.yaml +++ b/.github/actions/changes/action.yaml @@ -89,6 +89,10 @@ runs: - 'pyproject.toml' - 'uv.lock' - '.pre-commit-config.yaml' + - '.flox/**' + - 'flox-environments/common/**' + - 'flox-environments/osv-scanner/**' + - 'flox-environments/python/**' fabric: - 'packages/nemo_evaluator_sdk/src/nemo_evaluator_sdk/agent_eval/runtimes/fabric/**' - 'packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_*.py' @@ -104,6 +108,8 @@ runs: - 'tools/**' web-studio: - 'web/**' + - '.nvmrc' + - 'flox-environments/web/**' docker: - 'docker-bake.hcl' - 'docker/**' @@ -114,6 +120,7 @@ runs: helm: - 'k8s/**' - 'tools/lint/lint-helm.sh' + - 'flox-environments/helm/**' - '.github/workflows/ci.yaml' - '.github/actions/changes/action.yaml' - '.pre-commit-config.yaml' diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4e45c75c05e..84b232fb930 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -70,20 +70,15 @@ jobs: uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - name: Install actionlint - shell: bash - run: | - mkdir -p "${RUNNER_TEMP}/actionlint" - curl -fsSL \ - -o "${RUNNER_TEMP}/actionlint.tar.gz" \ - "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz" - echo "8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8 ${RUNNER_TEMP}/actionlint.tar.gz" \ - | sha256sum -c - - tar -xzf "${RUNNER_TEMP}/actionlint.tar.gz" -C "${RUNNER_TEMP}/actionlint" + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" - name: Lint GitHub workflows and actions - shell: bash - run: | - "${RUNNER_TEMP}/actionlint/actionlint" + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./flox-environments/actionlint + command: actionlint ngc-metadata-test: name: Test NGC metadata sync @@ -594,41 +589,20 @@ jobs: env: HELM_FOLDER: k8s/helm HELM_RELEASE_NAME: nemo-platform - KUBECONFORM_VERSION: v0.6.7 steps: - name: Checkout code uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - name: Install Helm - uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0 - - name: Install kubeconform - shell: bash - run: | - set -euo pipefail - - mkdir -p "${RUNNER_TEMP}/kubeconform" - kubeconform_archive="kubeconform-linux-amd64.tar.gz" - curl -fsSL \ - -o "${RUNNER_TEMP}/kubeconform.tar.gz" \ - "https://github.com/yannh/kubeconform/releases/download/${KUBECONFORM_VERSION}/${kubeconform_archive}" - curl -fsSL \ - -o "${RUNNER_TEMP}/kubeconform.CHECKSUMS" \ - "https://github.com/yannh/kubeconform/releases/download/${KUBECONFORM_VERSION}/CHECKSUMS" - grep " ${kubeconform_archive}$" "${RUNNER_TEMP}/kubeconform.CHECKSUMS" \ - | sed "s# ${kubeconform_archive}# ${RUNNER_TEMP}/kubeconform.tar.gz#" \ - | sha256sum -c - - tar -xzf "${RUNNER_TEMP}/kubeconform.tar.gz" -C "${RUNNER_TEMP}/kubeconform" kubeconform - chmod +x "${RUNNER_TEMP}/kubeconform/kubeconform" - echo "${RUNNER_TEMP}/kubeconform" >> "${GITHUB_PATH}" - - name: Add NVIDIA Helm repo - shell: bash - run: | - helm repo add nvidia https://helm.ngc.nvidia.com/nvidia - helm repo update + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" - name: Lint and validate Helm chart - shell: bash - run: tools/lint/lint-helm.sh + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./flox-environments/helm + command: tools/lint/lint-helm.sh - name: Upload Helm lint artifacts if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -791,16 +765,18 @@ jobs: run: uv lock --check - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: '22' + node-version-file: .nvmrc - name: Install pnpm via corepack - run: npm i -g corepack@0.31.0 && corepack enable pnpm + run: | + npm i -g corepack@0.31.0 + corepack enable pnpm - name: Install web dependencies working-directory: web run: pnpm install --frozen-lockfile - name: Install scanner dependencies shell: bash run: script/install_osv_scanner.sh - - name: Run lint + - name: Run Lint run: tools/lint/lint-all.sh shell: bash env: @@ -809,7 +785,7 @@ jobs: if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: lint-artifacts + name: Lint Artifacts retention-days: 7 path: | third_party/ @@ -1504,7 +1480,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1537,7 +1513,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1570,7 +1546,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1597,7 +1573,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1625,7 +1601,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1656,7 +1632,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1678,7 +1654,7 @@ jobs: persist-credentials: false - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: "22" + node-version-file: .nvmrc - name: Install pnpm via corepack run: npm i -g corepack@0.31.0 && corepack enable pnpm - name: Install dependencies @@ -1908,20 +1884,23 @@ jobs: path: summary.md opa-policy-test: + name: Test OPA Policy runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - name: Install OPA 1.8.0 - run: | - curl -L -o opa https://github.com/open-policy-agent/opa/releases/download/v1.8.0/opa_linux_amd64_static - chmod +x opa - ./opa version - - name: Run test - run: | - ./opa test services/core/auth/src/nmp/core/auth/app/policies services/core/auth/src/nmp/core/auth/app/policy_tests services/core/auth/src/nmp/core/auth/assets/static-authz.yaml -v + - name: Install Deps + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" + - name: Policy Test + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./flox-environments/open-policy-agent + command: | + opa test services/core/auth/src/nmp/core/auth/app/policies services/core/auth/src/nmp/core/auth/app/policy_tests services/core/auth/src/nmp/core/auth/assets/static-authz.yaml -v require-nvskills: runs-on: ubuntu-latest diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 77466cf8ccd..16ed38364d2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,9 +67,9 @@ repos: - repo: https://github.com/norwoodj/helm-docs # The container itself is 'latest' no matter what here - rev: "v1.14.2" + rev: v1.14.2 hooks: - - id: helm-docs-container + - id: helm-docs files: | (?x)^( k8s/helm/values\.yaml| @@ -96,6 +96,12 @@ repos: files: 'pyproject\.toml$' pass_filenames: false verbose: true + - id: uv-version-constraint + name: Check uv version constraints + entry: python3 tools/lint/check_uv_version.py + language: system + files: '^(pyproject\.toml|flox-environments/python/\.flox/env/manifest\.toml)$' + pass_filenames: false - id: copyright-fix name: Fix copyright headers entry: uv run script/copyright_fixer.py @@ -148,3 +154,15 @@ repos: - id: check-merge-conflict args: - --assume-in-merge +# Flox + - repo: local + hooks: + - id: flox-include-check + name: Flox Include Upgrade + entry: |- + bash -c 'set -e + flox include upgrade 2>/dev/null' + language: system + files: '(^\.flox/env/manifest\.toml$|^flox-environments/[^/]+/\.flox/env/manifest\.toml$)' + pass_filenames: false + stages: [pre-commit] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9424469a5ae..6c31721716d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,6 +19,24 @@ cd nemo-platform Install the local prerequisites first, then run the bootstrap targets from the repository root. +#### Full Developer Environment with Flox + +For a complete contributor environment, including Python tooling and TypeScript +dependencies, install [Flox](https://flox.dev/docs/install-flox/install) and +activate the repository environment: + +```bash +# macOS with Homebrew; see the Flox installation guide for other platforms. +brew install flox + +flox activate +``` + +The first activation installs the pinned Python and Node.js toolchains, +synchronizes Python dependencies, and installs the pnpm workspace dependencies. +It also installs the repository's pre-commit hook when needed. Leave the +environment with `flox deactivate` when you are done. + #### Python Environment Setup This project uses [uv](https://github.com/astral-sh/uv) for dependency management of the Python environment. diff --git a/flox-environments/actionlint/.flox/.gitattributes b/flox-environments/actionlint/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/actionlint/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/actionlint/.flox/.gitignore b/flox-environments/actionlint/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/actionlint/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/actionlint/.flox/env.json b/flox-environments/actionlint/.flox/env.json new file mode 100644 index 00000000000..8e57e8606ca --- /dev/null +++ b/flox-environments/actionlint/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "actionlint", + "version": 1 +} diff --git a/flox-environments/actionlint/.flox/env/manifest.lock b/flox-environments/actionlint/.flox/env/manifest.lock new file mode 100644 index 00000000000..8ad2d3d14fa --- /dev/null +++ b/flox-environments/actionlint/.flox/env/manifest.lock @@ -0,0 +1,283 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.13.0", + "install": { + "actionlint": { + "pkg-path": "actionlint", + "pkg-group": "actionlint", + "version": "1.7.12" + }, + "shellcheck": { + "pkg-path": "shellcheck", + "pkg-group": "actionlint", + "version": "0.11.0" + } + }, + "hook": {}, + "profile": {}, + "options": {} + }, + "packages": [ + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/f6xz9pw6zvga7r04isc4xf54y8g4sq5z-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:54.694474Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/9qj0ikkqv66k52xs8fywmnzyg8zn2svm-actionlint-1.7.12" + }, + "system": "aarch64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/pih7r5p4pify73ap7r0g4s7aqv5q01d2-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:21.154073Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/31js4yryr1yjq4waygdlv2k5w5ks0s0n-actionlint-1.7.12" + }, + "system": "aarch64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/63nf20xl5rcbm5mxf2pbfkdk90lcc4qi-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:08:59.948591Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/w4rjv0ikr5r5x54w758c8ck2016nmzsx-actionlint-1.7.12" + }, + "system": "x86_64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "actionlint", + "broken": false, + "derivation": "/nix/store/mk996amm0g9pssw96f0nh4460x97p890-actionlint-1.7.12.drv", + "description": "Static checker for GitHub Actions workflow files", + "install_id": "actionlint", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "actionlint-1.7.12", + "pname": "actionlint", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:23.770360Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.7.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/20imjbvi2q6z691fd5acg20mfx3aqvkj-actionlint-1.7.12" + }, + "system": "x86_64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/h7qr1dkmmmwvr6rdp41d46mrxxyypqc2-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:14:50.123814Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/py6hpk9rm5vh16dn0sifa3wpmsl0kl67-shellcheck-0.11.0-bin", + "doc": "/nix/store/bf4yd8vzhafk7nknzjjz5awvkqvyfspc-shellcheck-0.11.0-doc", + "man": "/nix/store/lwd2gr8083jfif5xb8h7jj396dvr6kdd-shellcheck-0.11.0-man", + "out": "/nix/store/7qi1h6hbr1ybpz9xyh4j38vrki1xc2z4-shellcheck-0.11.0" + }, + "system": "aarch64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/27a27jgwxyq768zr75divyi6x4744bix-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:43:48.990893Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/ydbg36fc5vvgc4k60d38vj95741wvv28-shellcheck-0.11.0-bin", + "doc": "/nix/store/dmj404h7ac342mrnj5dfdych83cd6r6c-shellcheck-0.11.0-doc", + "man": "/nix/store/l3202mccjm3iz9m0myddbmvhiy8nkp9m-shellcheck-0.11.0-man", + "out": "/nix/store/yyy8s43483p5ww6v09kal0kidb7kxvmk-shellcheck-0.11.0" + }, + "system": "aarch64-linux", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/40c53aw1zc0db8fxqk9z33pbx5sbgwbn-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:11:23.130360Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/68yldspq5p1gxa79ghprb1njskk36ax2-shellcheck-0.11.0-bin", + "doc": "/nix/store/4sk9v7wwdh2sia6wi3rknvvvm52wqg6r-shellcheck-0.11.0-doc", + "man": "/nix/store/90d8x14kmdq8fa12d5azjwdnp4z55q8b-shellcheck-0.11.0-man", + "out": "/nix/store/crl9a7fkfbpjbzgwj5nwpj57bmj7z940-shellcheck-0.11.0" + }, + "system": "x86_64-darwin", + "group": "actionlint", + "priority": 5 + }, + { + "attr_path": "shellcheck", + "broken": false, + "derivation": "/nix/store/fjnaf97vql7h3d6mzymqabz7lmbljj0x-shellcheck-0.11.0.drv", + "description": "Shell script analysis tool", + "install_id": "shellcheck", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "shellcheck-0.11.0", + "pname": "shellcheck", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:43:04.681164Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.11.0", + "outputs_to_install": [ + "bin", + "doc", + "man" + ], + "outputs": { + "bin": "/nix/store/vwvvnr1qxpwn0vffbsn8bkviqcgicizr-shellcheck-0.11.0-bin", + "doc": "/nix/store/wm6ncb99697pw9px9dpnx4vdq7mjskq2-shellcheck-0.11.0-doc", + "man": "/nix/store/g6cz58h4p7dasw30y0qrk0xwdp5595qv-shellcheck-0.11.0-man", + "out": "/nix/store/gykrz50q65f9jrljvd9bds46irfbd0bh-shellcheck-0.11.0" + }, + "system": "x86_64-linux", + "group": "actionlint", + "priority": 5 + } + ] +} diff --git a/flox-environments/actionlint/.flox/env/manifest.toml b/flox-environments/actionlint/.flox/env/manifest.toml new file mode 100644 index 00000000000..54536797c15 --- /dev/null +++ b/flox-environments/actionlint/.flox/env/manifest.toml @@ -0,0 +1,97 @@ +schema-version = "1.13.0" + + +## Install Packages -------------------------------------------------- +## $ flox install gum <- puts a package in [install] section below +## $ flox search gum <- search for a package +## $ flox show gum <- show all versions of a package +## ------------------------------------------------------------------- +[install] +actionlint = { pkg-path = "actionlint", version = "1.7.12", pkg-group = "actionlint" } +shellcheck = { pkg-path = "shellcheck", version = "0.11.0", pkg-group = "actionlint" } +# gum.pkg-path = "gum" +# gum.version = "^0.14.5" + + +## Environment Variables --------------------------------------------- +## ... available for use in the activated environment +## as well as [hook], [profile] scripts and [services] below. +## ------------------------------------------------------------------- +[vars] +# INTRO_MESSAGE = "It's gettin' Flox in here" + + +## Activation Hook --------------------------------------------------- +## ... run by _bash_ shell when you run 'flox activate'. +## ------------------------------------------------------------------- +[hook] +# on-activate = ''' +# # -> Set variables, create files and directories +# # -> Perform initialization steps, e.g. create a python venv +# # -> Useful environment variables: +# # - FLOX_ENV_PROJECT=/home/user/example +# # - FLOX_ENV=/home/user/example/.flox/run +# # - FLOX_ENV_CACHE=/home/user/example/.flox/cache +# ''' + + +## Profile script ---------------------------------------------------- +## ... sourced by _your shell_ when you run 'flox activate'. +## ------------------------------------------------------------------- +[profile] +# common = ''' +# gum style \ +# --foreground 212 --border-foreground 212 --border double \ +# --align center --width 50 --margin "1 2" --padding "2 4" \ +# $INTRO_MESSAGE +# ''' +## Shell-specific customizations such as setting aliases go here: +# bash = ... +# zsh = ... +# fish = ... + + +## Services --------------------------------------------------------- +## $ flox services start <- Starts all services +## $ flox services status <- Status of running services +## $ flox activate --start-services <- Activates & starts all +## ------------------------------------------------------------------ +[services] +# myservice.command = "python3 -m http.server" + + +## Include ---------------------------------------------------------- +## ... environments to create a composed environment +## ------------------------------------------------------------------ +[include] +# environments = [ +# { dir = "../common" } +# ] + + +## Build and publish your own packages ------------------------------ +## $ flox build +## $ flox publish +## ------------------------------------------------------------------ +[build] +# [build.myproject] +# description = "The coolest project ever" +# version = "0.0.1" +# command = """ +# mkdir -p $out/bin +# cargo build --release +# cp target/release/myproject $out/bin/myproject +# """ + + +## Other Environment Options ----------------------------------------- +[options] +# Systems that environment is compatible with +# systems = [ +# "aarch64-darwin", +# "aarch64-linux", +# "x86_64-darwin", +# "x86_64-linux", +# ] +# Uncomment to disable CUDA detection. +# cuda-detection = false diff --git a/flox-environments/common/.flox/.gitattributes b/flox-environments/common/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/common/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/common/.flox/.gitignore b/flox-environments/common/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/common/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/common/.flox/env.json b/flox-environments/common/.flox/env.json new file mode 100644 index 00000000000..ebc20a5bf0a --- /dev/null +++ b/flox-environments/common/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "common", + "version": 1 +} diff --git a/flox-environments/common/.flox/env/manifest.lock b/flox-environments/common/.flox/env/manifest.lock new file mode 100644 index 00000000000..fcd12ed71a2 --- /dev/null +++ b/flox-environments/common/.flox/env/manifest.lock @@ -0,0 +1,715 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.11.0", + "install": { + "diffutils": { + "pkg-path": "diffutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnumake": { + "pkg-path": "gnumake" + }, + "gnutar": { + "pkg-path": "gnutar" + }, + "gum": { + "pkg-path": "gum" + } + }, + "vars": { + "ALIGN": "center", + "BORDER": "double", + "BORDER_FOREGROUND": "514", + "FOREGROUND": "514", + "GUM_LOG_MESSAGE_FOREGROUND": "514", + "MARGIN": "1 2", + "PADDING": "1 2", + "WIDTH": "50" + }, + "profile": {}, + "options": {} + }, + "packages": [ + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/v6f7v4qrrzhicaks66wn8nndwb7yyg8c-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:13:14.183845Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/wbb3pzx0mg0a7ksjvc44kd5w3mzynnlz-diffutils-3.12-info", + "out": "/nix/store/37rdk8zsdbqcp73l3nrmwilwb2ixkacv-diffutils-3.12" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/7kp4z354654mvw5brn01k26r4kg2di8j-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:44:08.714303Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/rl95zx5xc6jx0ziigcgygj3zd9fwj77x-diffutils-3.12-info", + "out": "/nix/store/l2vdh6xnh51cqav31cwsdwr3c91i2gbl-diffutils-3.12" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/30bnz6x9r7kb9xis2fc1h40722c4rbzl-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:13:06.454423Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/wdcs87himpz57ml1n2911lslj2adnfwn-diffutils-3.12-info", + "out": "/nix/store/i8ix8mqzcllzigx9dy046axn3g0w08cp-diffutils-3.12" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/hr30bp0br6nigp0zv5jmf9l4g3xsms2q-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:47:04.831269Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out", + "out", + "out" + ], + "outputs": { + "info": "/nix/store/6mkh4xmxcqcmkx5dddiw9zr57bkw9qvv-diffutils-3.12-info", + "out": "/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/pc4qv6aafrlh0vwjj2ijjvji29a41bv5-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:13:14.539586Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out", + "out" + ], + "outputs": { + "info": "/nix/store/34l83gpv8481k0wzmmi9cxh9flbmhsg4-findutils-4.10.0-info", + "locate": "/nix/store/mwx56wc51wvky0a78fizs90y7s7mg2ia-findutils-4.10.0-locate", + "out": "/nix/store/3wz2j41nnr1badij6fcnip5vgrfpdd82-findutils-4.10.0" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/rka0crnhr888cfy9ilwmdy2b7zkb2iwl-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:44:09.323083Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/168irs0ni0r9iynjv0q05s72ad276hjc-findutils-4.10.0-info", + "locate": "/nix/store/1ycgnkm4c43vggyw76qc0jvrz4yvaddn-findutils-4.10.0-locate", + "out": "/nix/store/gbd7xfq2d1wbrwr2i045mvc8fkkw7i1g-findutils-4.10.0" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/35mvgcjz9nyhzxvccn3n8kja41qrd1cj-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:13:06.878500Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/hhaq2vnq3wzpw4advdsczn886rsbm5k0-findutils-4.10.0-info", + "locate": "/nix/store/zrkbiybizlzyyimlwkvfg9qrcqjrn7jk-findutils-4.10.0-locate", + "out": "/nix/store/ix0a9p3m012l4d59w3g1lfsdx2azdn08-findutils-4.10.0" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/nv9vbwdbppdb9zvv78m9a99vga207ykq-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:47:05.468459Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out", + "out", + "out" + ], + "outputs": { + "info": "/nix/store/mc65clwg5q361fa9614ryvmhl3yqradh-findutils-4.10.0-info", + "locate": "/nix/store/fcid2ld7f37q6h1rknkrv80302is8c0y-findutils-4.10.0-locate", + "out": "/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/sywyz1ykchhvm940gw5zka1rssbvd7fr-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:13:14.970249Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "doc": "/nix/store/sl2ygvgjg4ml8dhyfxj5kh84x2bs1mhc-gnumake-4.4.1-doc", + "info": "/nix/store/6dbp1ysgxsrrn7xgjgf523faqrm605a5-gnumake-4.4.1-info", + "man": "/nix/store/wdm9prq35jlgwq6rjyhqxy4jzy833sfr-gnumake-4.4.1-man", + "out": "/nix/store/8wwiw8pwyhrkzyq28hqzxfl4z84lks81-gnumake-4.4.1" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/myv1y9k84cp6x7ys0p2cxg8avsahs9c5-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:44:10.507898Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out", + "out" + ], + "outputs": { + "debug": "/nix/store/mdv67w2xvchbs76zjdzppdkk64z5avki-gnumake-4.4.1-debug", + "doc": "/nix/store/bybbj9avk3g107mwhgvkzkpm6mkbl8gv-gnumake-4.4.1-doc", + "info": "/nix/store/bxdqxx2q13sj15ss8z5l33jd31x55j5l-gnumake-4.4.1-info", + "man": "/nix/store/dg3aa71vii59scbfhi02cdxnps64x6ql-gnumake-4.4.1-man", + "out": "/nix/store/9ngw1ippk25jjj5fjxv36xbp6iq7rxdx-gnumake-4.4.1" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/d58x5la2wv5jy7xm5x90ca0hb59sv922-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:13:07.326509Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "doc": "/nix/store/s9y438l347nky6rkl1wfk2y3b0d9i636-gnumake-4.4.1-doc", + "info": "/nix/store/apljbm6plyajbfrnwif0a2d4nx6w0cpf-gnumake-4.4.1-info", + "man": "/nix/store/m2ba4bwmfgh994xbg1iqm6zj1mdrq8h7-gnumake-4.4.1-man", + "out": "/nix/store/60y2hs45l18g56ykw9789b5vhhi2ls5q-gnumake-4.4.1" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/071w65kmbjhwpx84fcg8xl2adw38321p-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:47:06.754965Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out", + "out", + "out", + "out" + ], + "outputs": { + "debug": "/nix/store/q683z843wi7xs96pngh1kinnx88vn2if-gnumake-4.4.1-debug", + "doc": "/nix/store/wxg27bzsljjw4k72m9b2v6a0fx5a68s0-gnumake-4.4.1-doc", + "info": "/nix/store/03d41qgjsrhcr3fzq2z99ry07rahnj0v-gnumake-4.4.1-info", + "man": "/nix/store/bmvqa5ym318mymhxlwwmxq8wxal958p4-gnumake-4.4.1-man", + "out": "/nix/store/d3bwqm6bymhy3pdgbvf7vxjqfp31m3j1-gnumake-4.4.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/kgn5s9g8931mp6zr2405xf56ac67g8nd-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:13:14.978577Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/lfn1823f7k3iaar3088ag3vkk3g8mf46-gnutar-1.35-info", + "out": "/nix/store/3aikbnf5fq99gvw1wb242wrjnbj7fcr9-gnutar-1.35" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/0ziszqicmni1vpc6jbjc5wb0r6i0q96n-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:44:10.521978Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/isnpsk3kgnlfv3gs1j9vn75cx6pw015a-gnutar-1.35-info", + "out": "/nix/store/lg4p75b1g1ncr0xf20qpyc96pikpg1sp-gnutar-1.35" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/97d4fnlvxj5j9jvk2m2cm17f16lnkv95-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:13:07.335236Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/5hp160w6ljh6psaqqbdjasni456g0bf8-gnutar-1.35-info", + "out": "/nix/store/9z132234zlrg0fgmsychpi86a762mmwi-gnutar-1.35" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/jzkck68swh3lzwj2hjw4sxwrhvgrpjn6-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:47:06.770538Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out", + "out", + "out", + "out" + ], + "outputs": { + "info": "/nix/store/mrvcwlivqq2nr2anqq9ap4wdhflk52lm-gnutar-1.35-info", + "out": "/nix/store/55nbxpjrgrrsplq739z1z8n05h16cgsq-gnutar-1.35" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/jsk66asqq2wnckkllv9sm1y94mxl0asm-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:13:15.222283Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/6jb5frkadampkcmbjynch118cc4smzfj-gum-0.17.0" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/2nqf2anq5klv1xf66jgz1gm8xrdid4ax-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T03:44:10.917697Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/8p8fi8pl4lb776q2gnby3rd3mcbj5grh-gum-0.17.0" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/ib5kcnql661slkgn223m5c17g6b9ala3-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:13:07.576990Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/n20dhdnibsqb890jvwhyw4xd3qqkazly-gum-0.17.0" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/isk54hr8s4cw8z3yiksk07yi1bzfmamh-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev_count": 1017464, + "rev_date": "2026-06-16T02:33:49Z", + "scrape_date": "2026-06-17T04:47:07.206266Z", + "stabilities": [ + "stable", + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/2ii7sbkq44zrkv4iv6g7bqi47m4ch28b-gum-0.17.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ] +} diff --git a/flox-environments/common/.flox/env/manifest.toml b/flox-environments/common/.flox/env/manifest.toml new file mode 100644 index 00000000000..c8a93ef3a27 --- /dev/null +++ b/flox-environments/common/.flox/env/manifest.toml @@ -0,0 +1,21 @@ +schema-version = "1.11.0" + +[install] +# Utilities +gnumake.pkg-path = "gnumake" +gnutar.pkg-path = "gnutar" +gum.pkg-path = "gum" +findutils.pkg-path = "findutils" +diffutils.pkg-path = "diffutils" + +[vars] +GUM_LOG_MESSAGE_FOREGROUND="514" +FOREGROUND="514" +BORDER_FOREGROUND="514" +BORDER="double" +ALIGN="center" +WIDTH="50" +MARGIN="1 2" +PADDING="1 2" + +[profile] diff --git a/flox-environments/helm/.flox/.gitattributes b/flox-environments/helm/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/helm/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/helm/.flox/.gitignore b/flox-environments/helm/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/helm/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/helm/.flox/env.json b/flox-environments/helm/.flox/env.json new file mode 100644 index 00000000000..0f92fb0d8d0 --- /dev/null +++ b/flox-environments/helm/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "helm", + "version": 1 +} diff --git a/flox-environments/helm/.flox/env/manifest.lock b/flox-environments/helm/.flox/env/manifest.lock new file mode 100644 index 00000000000..acc8cf9be4b --- /dev/null +++ b/flox-environments/helm/.flox/env/manifest.lock @@ -0,0 +1,301 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.13.0", + "install": { + "helm-docs": { + "pkg-path": "helm-docs", + "pkg-group": "helm-docs", + "version": "1.14.2" + }, + "kubeconform": { + "pkg-path": "kubeconform", + "pkg-group": "kubeconform", + "version": "0.6.7" + }, + "kubernetes-helm": { + "pkg-path": "kubernetes-helm", + "pkg-group": "kubernetes-helm", + "version": "4.2.3" + } + }, + "hook": {}, + "profile": {}, + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + } + }, + "packages": [ + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/gbxz6zs7rv9qynjlq5z993cx97js8x5i-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:13:10.955708Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/i6nz37y0ghagc34nlpfngq71fn6z3rs2-helm-docs-1.14.2" + }, + "system": "aarch64-darwin", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/29i243jas4fqcpm8wdhbw4hvnyf4yp6h-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:41.686139Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/bgaaxnb9i8fzvkvl6ggddngc0v41wwny-helm-docs-1.14.2" + }, + "system": "aarch64-linux", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "helm-docs", + "broken": false, + "derivation": "/nix/store/7hxy923h5639mxb0lb05asr77arvwyjb-helm-docs-1.14.2.drv", + "description": "Tool for automatically generating markdown documentation for Helm charts", + "install_id": "helm-docs", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "helm-docs-1.14.2", + "pname": "helm-docs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:45.057500Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.14.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/63l33x2rrpzdx0fg7yg776ajm6ilmgx7-helm-docs-1.14.2" + }, + "system": "x86_64-linux", + "group": "helm-docs", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/9s4snw6sv1rxkppb2vh77mfx8y8w3dk0-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T04:19:29.834897Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/39nyhvxm0fj2bqpy1hb0wp1mj6drgw6k-kubeconform-0.6.7" + }, + "system": "aarch64-darwin", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/lq4z544sl9s1g771v8si3pa54zk39x4h-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T04:37:22.795766Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/dl336sgplkl83x7hgq9vchnwia92rllx-kubeconform-0.6.7" + }, + "system": "aarch64-linux", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubeconform", + "broken": false, + "derivation": "/nix/store/7sn96dgwl0lkghawlg88557cr9nr88y4-kubeconform-0.6.7.drv", + "description": "FAST Kubernetes manifests validator, with support for Custom Resources!", + "install_id": "kubeconform", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=979daf34c8cacebcd917d540070b52a3c2b9b16e", + "name": "kubeconform-0.6.7", + "pname": "kubeconform", + "rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e", + "rev_count": 793735, + "rev_date": "2025-05-04T03:14:55Z", + "scrape_date": "2025-05-05T05:15:57.921277Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.6.7", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/8cmvaf9s4h36rz1464kwwn5a9pifgf56-kubeconform-0.6.7" + }, + "system": "x86_64-linux", + "group": "kubeconform", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/8fnhgk1cylc66jpbkpkhi1b8l763zz61-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T04:54:14.871348Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/jg1p2gzhrgg5d0wfdv45j1144q3ms3i2-kubernetes-helm-4.2.3" + }, + "system": "aarch64-darwin", + "group": "kubernetes-helm", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/zpbg9qqi19k2pcp06yfkmv76a1yb2j0x-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:24:45.679341Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0fmrj3fq2j2l95cj12pw1bkni4nihwsl-kubernetes-helm-4.2.3" + }, + "system": "aarch64-linux", + "group": "kubernetes-helm", + "priority": 5 + }, + { + "attr_path": "kubernetes-helm", + "broken": false, + "derivation": "/nix/store/4nb9airy740jinzgf83vpk7gp13vjmii-kubernetes-helm-4.2.3.drv", + "description": "Package manager for kubernetes", + "install_id": "kubernetes-helm", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "name": "kubernetes-helm-4.2.3", + "pname": "kubernetes-helm", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "rev_count": 1037713, + "rev_date": "2026-07-19T21:52:44Z", + "scrape_date": "2026-07-21T05:59:04.143872Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.2.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/7vgl8w4ma0pl7f32n0rjgnmj6xalmiac-kubernetes-helm-4.2.3" + }, + "system": "x86_64-linux", + "group": "kubernetes-helm", + "priority": 5 + } + ] +} diff --git a/flox-environments/helm/.flox/env/manifest.toml b/flox-environments/helm/.flox/env/manifest.toml new file mode 100644 index 00000000000..9745397767a --- /dev/null +++ b/flox-environments/helm/.flox/env/manifest.toml @@ -0,0 +1,97 @@ +schema-version = "1.13.0" + + +## Install Packages -------------------------------------------------- +## $ flox install gum <- puts a package in [install] section below +## $ flox search gum <- search for a package +## $ flox show gum <- show all versions of a package +## ------------------------------------------------------------------- +[install] +kubernetes-helm = { pkg-path = "kubernetes-helm", version = "4.2.3", pkg-group = "kubernetes-helm" } +helm-docs = { pkg-path = "helm-docs", version = "1.14.2", pkg-group = "helm-docs" } +kubeconform = { pkg-path = "kubeconform", version = "0.6.7", pkg-group = "kubeconform" } +# gum.pkg-path = "gum" +# gum.version = "^0.14.5" + + +## Environment Variables --------------------------------------------- +## ... available for use in the activated environment +## as well as [hook], [profile] scripts and [services] below. +## ------------------------------------------------------------------- +[vars] +# INTRO_MESSAGE = "It's gettin' Flox in here" + + +## Activation Hook --------------------------------------------------- +## ... run by _bash_ shell when you run 'flox activate'. +## ------------------------------------------------------------------- +[hook] +# on-activate = ''' +# # -> Set variables, create files and directories +# # -> Perform initialization steps, e.g. create a python venv +# # -> Useful environment variables: +# # - FLOX_ENV_PROJECT=/home/user/example +# # - FLOX_ENV=/home/user/example/.flox/run +# # - FLOX_ENV_CACHE=/home/user/example/.flox/cache +# ''' + + +## Profile script ---------------------------------------------------- +## ... sourced by _your shell_ when you run 'flox activate'. +## ------------------------------------------------------------------- +[profile] +# common = ''' +# gum style \ +# --foreground 212 --border-foreground 212 --border double \ +# --align center --width 50 --margin "1 2" --padding "2 4" \ +# $INTRO_MESSAGE +# ''' +## Shell-specific customizations such as setting aliases go here: +# bash = ... +# zsh = ... +# fish = ... + + +## Services --------------------------------------------------------- +## $ flox services start <- Starts all services +## $ flox services status <- Status of running services +## $ flox activate --start-services <- Activates & starts all +## ------------------------------------------------------------------ +[services] +# myservice.command = "python3 -m http.server" + + +## Include ---------------------------------------------------------- +## ... environments to create a composed environment +## ------------------------------------------------------------------ +[include] +# environments = [ +# { dir = "../common" } +# ] + + +## Build and publish your own packages ------------------------------ +## $ flox build +## $ flox publish +## ------------------------------------------------------------------ +[build] +# [build.myproject] +# description = "The coolest project ever" +# version = "0.0.1" +# command = """ +# mkdir -p $out/bin +# cargo build --release +# cp target/release/myproject $out/bin/myproject +# """ + + +## Other Environment Options ----------------------------------------- +[options] +# Systems that environment is compatible with +systems = [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux", +] +# Uncomment to disable CUDA detection. +# cuda-detection = false diff --git a/flox-environments/open-policy-agent/.flox/.gitattributes b/flox-environments/open-policy-agent/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/open-policy-agent/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/open-policy-agent/.flox/.gitignore b/flox-environments/open-policy-agent/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/open-policy-agent/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/open-policy-agent/.flox/env.json b/flox-environments/open-policy-agent/.flox/env.json new file mode 100644 index 00000000000..dcd64777ea8 --- /dev/null +++ b/flox-environments/open-policy-agent/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "open-policy-agent", + "version": 1 +} diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.lock b/flox-environments/open-policy-agent/.flox/env/manifest.lock new file mode 100644 index 00000000000..664d438d1de --- /dev/null +++ b/flox-environments/open-policy-agent/.flox/env/manifest.lock @@ -0,0 +1,140 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.11.0", + "install": { + "open-policy-agent": { + "pkg-path": "open-policy-agent", + "pkg-group": "open-policy-agent", + "version": "1.8.0" + } + }, + "options": {} + }, + "packages": [ + { + "attr_path": "open-policy-agent", + "broken": false, + "derivation": "/nix/store/x6pblvx2vksr0j7x1fn64za35ydpna5m-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T03:42:58.943863Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/28vvl32vygjxdalfprxjqvnwpbsp2j7i-open-policy-agent-1.8.0" + }, + "system": "aarch64-darwin", + "group": "open-policy-agent", + "priority": 5 + }, + { + "attr_path": "open-policy-agent", + "broken": false, + "derivation": "/nix/store/07baqszwy9ldr487q9z6svwcsn7d73px-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T04:12:13.305775Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/i98fklmmf7xcqlmm1hdzkcw4wvyf92my-open-policy-agent-1.8.0" + }, + "system": "aarch64-linux", + "group": "open-policy-agent", + "priority": 5 + }, + { + "attr_path": "open-policy-agent", + "broken": false, + "derivation": "/nix/store/x7smjn0d496p62ckf6jcvp0i4qb9gzqv-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T04:39:57.100020Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mby5spqsadnhrbdc20h01b5fbf7938vl-open-policy-agent-1.8.0" + }, + "system": "x86_64-darwin", + "group": "open-policy-agent", + "priority": 5 + }, + { + "attr_path": "open-policy-agent", + "broken": false, + "derivation": "/nix/store/rz93a0lg0j3b7p0lygizpnibnln7i2av-open-policy-agent-1.8.0.drv", + "description": "General-purpose policy engine", + "install_id": "open-policy-agent", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=e643668fd71b949c53f8626614b21ff71a07379d", + "name": "open-policy-agent-1.8.0", + "pname": "open-policy-agent", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", + "rev_count": 866707, + "rev_date": "2025-09-24T05:06:22Z", + "scrape_date": "2025-09-26T05:11:19.422384Z", + "stabilities": [ + "unstable", + "staging", + "stable" + ], + "unfree": false, + "version": "1.8.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/v3nqh59l69bpq739pa2amj427h1isc5d-open-policy-agent-1.8.0" + }, + "system": "x86_64-linux", + "group": "open-policy-agent", + "priority": 5 + } + ] +} diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.toml b/flox-environments/open-policy-agent/.flox/env/manifest.toml new file mode 100644 index 00000000000..9331ae20a63 --- /dev/null +++ b/flox-environments/open-policy-agent/.flox/env/manifest.toml @@ -0,0 +1,4 @@ +schema-version = "1.11.0" + +[install] +open-policy-agent = { pkg-path = "open-policy-agent", version = "1.8.0", pkg-group = "open-policy-agent" } diff --git a/flox-environments/osv-scanner/.flox/.gitattributes b/flox-environments/osv-scanner/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/osv-scanner/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/osv-scanner/.flox/.gitignore b/flox-environments/osv-scanner/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/osv-scanner/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/osv-scanner/.flox/env.json b/flox-environments/osv-scanner/.flox/env.json new file mode 100644 index 00000000000..ff08a2cdeed --- /dev/null +++ b/flox-environments/osv-scanner/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "osv-scanner", + "version": 1 +} diff --git a/flox-environments/osv-scanner/.flox/env/manifest.lock b/flox-environments/osv-scanner/.flox/env/manifest.lock new file mode 100644 index 00000000000..838e433160f --- /dev/null +++ b/flox-environments/osv-scanner/.flox/env/manifest.lock @@ -0,0 +1,136 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.11.0", + "install": { + "osv-scanner": { + "pkg-path": "osv-scanner", + "pkg-group": "osv-scanner", + "version": "2.3.3" + } + }, + "options": {} + }, + "packages": [ + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/6wq5al03q2wa5q7n1ncbd7abhl66y7b8-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:13:26.142590Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/ns183jzjw9y8cs1psf76lw21005p4z0j-osv-scanner-2.3.3" + }, + "system": "aarch64-darwin", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/qq33cdnga8jg16qj9p7f8m6llhsxvfyw-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:42:08.260295Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mry5p0m1qd8sr7hrv5pzrymdvfky1zw7-osv-scanner-2.3.3" + }, + "system": "aarch64-linux", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/1js2yqnpa9m8r6pzibwx3fcz85rrfhz0-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:39.284981Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/l79gbf7zv1ry5h66xnhb544ncpxcniax-osv-scanner-2.3.3" + }, + "system": "x86_64-darwin", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/y8jd2pjjlpkdsbp1hkzszsfzxx1ajz1c-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:41:14.038939Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/znf20q4b2114afsq39pn3fhmcda25rhy-osv-scanner-2.3.3" + }, + "system": "x86_64-linux", + "group": "osv-scanner", + "priority": 5 + } + ] +} diff --git a/flox-environments/osv-scanner/.flox/env/manifest.toml b/flox-environments/osv-scanner/.flox/env/manifest.toml new file mode 100644 index 00000000000..c3b6f979b1f --- /dev/null +++ b/flox-environments/osv-scanner/.flox/env/manifest.toml @@ -0,0 +1,4 @@ +schema-version = "1.11.0" + +[install] +osv-scanner = { pkg-path = "osv-scanner", version = "2.3.3", pkg-group = "osv-scanner" } diff --git a/flox-environments/python/.flox/.gitattributes b/flox-environments/python/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/python/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/python/.flox/.gitignore b/flox-environments/python/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/python/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/python/.flox/env.json b/flox-environments/python/.flox/env.json new file mode 100644 index 00000000000..ec94adb17b3 --- /dev/null +++ b/flox-environments/python/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "nemo-platform-python", + "version": 1 +} diff --git a/flox-environments/python/.flox/env/manifest.lock b/flox-environments/python/.flox/env/manifest.lock new file mode 100644 index 00000000000..e9e79ee7949 --- /dev/null +++ b/flox-environments/python/.flox/env/manifest.lock @@ -0,0 +1,151 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.11.0", + "install": { + "uv": { + "pkg-path": "uv", + "pkg-group": "uv", + "version": ">=0.9.14,<0.10.0" + } + }, + "vars": { + "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", + "UV_MANAGED_PYTHON": "1", + "UV_PYTHON": "3.13", + "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", + "UV_VENV_SEED": "1" + }, + "hook": { + "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n" + }, + "profile": { + "bash": " source .venv/bin/activate\n", + "zsh": " source .venv/bin/activate\n", + "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" + }, + "options": {} + }, + "packages": [ + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/v9837hla896n3pjv9hmx3ii4sk30p0r9-uv-0.9.28.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "name": "uv-0.9.28", + "pname": "uv", + "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev_count": 940249, + "rev_date": "2026-02-04T09:32:58Z", + "scrape_date": "2026-02-06T04:38:13.753987Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.9.28", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/rnci0wgac6r47gr09bhb6x5fyc507i43-uv-0.9.28" + }, + "system": "aarch64-darwin", + "group": "uv", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/dlp3p1pzksliq0pli84ff5ifbvh13211-uv-0.9.28.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "name": "uv-0.9.28", + "pname": "uv", + "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev_count": 940249, + "rev_date": "2026-02-04T09:32:58Z", + "scrape_date": "2026-02-06T05:08:27.505844Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.9.28", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/r6g6avldk8dlj30dmk2p2971akkmw9h3-uv-0.9.28" + }, + "system": "aarch64-linux", + "group": "uv", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/1dxxxb7ia28b4fcvn00vvc2xmal3kamm-uv-0.9.28.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "name": "uv-0.9.28", + "pname": "uv", + "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev_count": 940249, + "rev_date": "2026-02-04T09:32:58Z", + "scrape_date": "2026-02-06T05:35:52.717277Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.9.28", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/vrzvbvds4vvj5989w838m562vavqzd4w-uv-0.9.28" + }, + "system": "x86_64-darwin", + "group": "uv", + "priority": 5 + }, + { + "attr_path": "uv", + "broken": false, + "derivation": "/nix/store/b88x7x44g3gj9mfw2ql683lfcxqjil95-uv-0.9.28.drv", + "description": "Extremely fast Python package installer and resolver, written in Rust", + "install_id": "uv", + "license": "[ Apache-2.0, MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "name": "uv-0.9.28", + "pname": "uv", + "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", + "rev_count": 940249, + "rev_date": "2026-02-04T09:32:58Z", + "scrape_date": "2026-02-06T06:09:00.313627Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.9.28", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/jddcqyx0099mynb7gxr0dd66hkpqqs2r-uv-0.9.28" + }, + "system": "x86_64-linux", + "group": "uv", + "priority": 5 + } + ] +} diff --git a/flox-environments/python/.flox/env/manifest.toml b/flox-environments/python/.flox/env/manifest.toml new file mode 100644 index 00000000000..2de757e7ed9 --- /dev/null +++ b/flox-environments/python/.flox/env/manifest.toml @@ -0,0 +1,32 @@ +schema-version = "1.11.0" + +[install] +uv = { pkg-path = "uv", version = ">=0.9.14,<0.10.0", pkg-group = "uv" } + +[vars] +UV_VENV_SEED="1" +UV_MANAGED_PYTHON="1" +UV_PYTHON="3.13" +UV_CACHE_DIR="${FLOX_ENV_CACHE}/uv-cache" +UV_PYTHON_INSTALL_DIR="${FLOX_ENV_CACHE}/python" + +[hook] +on-activate = ''' + set -euo pipefail + + echo "Python Setup... Starting" + uv sync --frozen --all-packages + echo "Python Setup... Complete" +''' + +[profile] +bash = ''' + source .venv/bin/activate +''' +zsh = ''' + source .venv/bin/activate +''' +fish = ''' + set -gx VIRTUAL_ENV "$PWD/.venv" + set -gx PATH "$VIRTUAL_ENV/bin" $PATH +''' diff --git a/flox-environments/web/.flox/.gitattributes b/flox-environments/web/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/flox-environments/web/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox-environments/web/.flox/.gitignore b/flox-environments/web/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/flox-environments/web/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox-environments/web/.flox/env.json b/flox-environments/web/.flox/env.json new file mode 100644 index 00000000000..3a2a34288a9 --- /dev/null +++ b/flox-environments/web/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "nemo-platform-nodejs", + "version": 1 +} diff --git a/flox-environments/web/.flox/env/manifest.lock b/flox-environments/web/.flox/env/manifest.lock new file mode 100644 index 00000000000..568ba84f4e5 --- /dev/null +++ b/flox-environments/web/.flox/env/manifest.lock @@ -0,0 +1,148 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.11.0", + "install": { + "fnm": { + "pkg-path": "fnm", + "pkg-group": "node" + } + }, + "vars": { + "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", + "FNM_VERSION_FILE_STRATEGY": "recursive", + "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache" + }, + "hook": { + "on-activate": " set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" + }, + "profile": { + "bash": " eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", + "zsh": " eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", + "fish": " fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + }, + "options": {} + }, + "packages": [ + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/m4s0894j2dj2k375c7dns2ib8nk5krpw-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.889515Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/fp3ndk75i6c1c31a9zqkz3pk61gz294h-fnm-1.39.0" + }, + "system": "aarch64-darwin", + "group": "node", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/zh7xw7li0b92r9cx25f4j19qdp1kqvdz-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.827979Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/1312sbdkqvdp0m5gak0dfgz0bf2p1kgj-fnm-1.39.0" + }, + "system": "aarch64-linux", + "group": "node", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/0ib0kdcx3a11klp8pjjz6a2z474bf820-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.365196Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/m6mcghc8bqzaal27zkqrp0a9mpk98hld-fnm-1.39.0" + }, + "system": "x86_64-darwin", + "group": "node", + "priority": 5 + }, + { + "attr_path": "fnm", + "broken": false, + "derivation": "/nix/store/isdxp3dj73n1j6zzxjnjg20f4016h7ia-fnm-1.39.0.drv", + "description": "Fast and simple Node.js version manager", + "install_id": "fnm", + "license": "GPL-3.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "fnm-1.39.0", + "pname": "fnm", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:25.581588Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.39.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/1dih2h4sxfqkkg32db7753m02d9q54hk-fnm-1.39.0" + }, + "system": "x86_64-linux", + "group": "node", + "priority": 5 + } + ] +} diff --git a/flox-environments/web/.flox/env/manifest.toml b/flox-environments/web/.flox/env/manifest.toml new file mode 100644 index 00000000000..1ca2f294449 --- /dev/null +++ b/flox-environments/web/.flox/env/manifest.toml @@ -0,0 +1,38 @@ +schema-version = "1.11.0" + +[install] +fnm = { pkg-path = "fnm", pkg-group = "node" } + +[vars] +FNM_DIR="${FLOX_ENV_CACHE}/fnm" +FNM_VERSION_FILE_STRATEGY="recursive" +NPM_CONFIG_STORE_DIR="${FLOX_ENV_CACHE}/npm-cache" + +[hook] +on-activate = ''' + set -euo pipefail + + echo "NodeJS Setup... Starting" + echo "Current Directory: $(pwd)" + + eval "$(fnm env --shell bash)" + fnm install --use --corepack-enabled + corepack enable + + package_manager="$(node -p "require('./web/package.json').packageManager")" + corepack prepare "${package_manager}" --activate + CI=true pnpm install -C "./web" --frozen-lockfile + + echo "NodeJS Setup... Complete" +''' + +[profile] +bash = ''' + eval "$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)" +''' +zsh = ''' + eval "$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)" +''' +fish = ''' + fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source +''' diff --git a/pyproject.toml b/pyproject.toml index 1839e613d7c..262b0e0f7be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -518,6 +518,7 @@ omit = [ "*/.venv/*", "*/venv/*", "*/.tox/*", + "*/.flox/*", "*/setup.py", "*/site-packages/*", ] diff --git a/tools/lint/check-uv-version.sh b/tools/lint/check-uv-version.sh new file mode 100644 index 00000000000..2ebbc56718b --- /dev/null +++ b/tools/lint/check-uv-version.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +python3 tools/lint/check_uv_version.py diff --git a/tools/lint/check_uv_version.py b/tools/lint/check_uv_version.py new file mode 100644 index 00000000000..664dcbd8ee5 --- /dev/null +++ b/tools/lint/check_uv_version.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +"""Ensure uv uses the same version constraint in Flox and pyproject.toml.""" + +import sys +import tomllib +from collections.abc import Mapping +from pathlib import Path + +PROJECT_ROOT = Path(__file__).resolve().parents[2] +PYPROJECT_PATH = PROJECT_ROOT / "pyproject.toml" +FLOX_MANIFEST_PATH = PROJECT_ROOT / "flox-environments/python/.flox/env/manifest.toml" + + +def load_toml(path: Path) -> dict[str, object]: + with path.open("rb") as file: + return tomllib.load(file) + + +def get_nested_value(config: Mapping[str, object], *keys: str) -> object | None: + value: object = config + for key in keys: + if not isinstance(value, Mapping): + return None + value = value.get(key) + return value + + +def main() -> int: + pyproject = load_toml(PYPROJECT_PATH) + manifest = load_toml(FLOX_MANIFEST_PATH) + + pyproject_version = get_nested_value(pyproject, "tool", "uv", "required-version") + flox_version = get_nested_value(manifest, "install", "uv", "version") + + if not isinstance(pyproject_version, str) or not isinstance(flox_version, str): + print("uv version constraints must be strings", file=sys.stderr) + return 1 + + if pyproject_version != flox_version: + print( + "uv version constraints differ: " + f"pyproject.toml has {pyproject_version!r}, while " + f"flox-environments/python/.flox/env/manifest.toml has {flox_version!r}", + file=sys.stderr, + ) + return 1 + + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/lint/lint-all.sh b/tools/lint/lint-all.sh index 56a80fa9fce..bb505bf33ee 100755 --- a/tools/lint/lint-all.sh +++ b/tools/lint/lint-all.sh @@ -6,6 +6,7 @@ PROJECT_ROOT="${CI_PROJECT_DIR:-$(cd "${SCRIPT_DIR}/../.." && pwd)}" cd "${PROJECT_ROOT}" || exit 1 declare -a scripts=( + "check-uv-version:tools/lint/check-uv-version.sh" "lint-licenses:tools/lint/lint-licenses.sh" "lint-openapi:tools/lint/lint-openapi.sh" "lint-config-reference-docs:tools/lint/lint-config-reference-docs.sh" From 78b0ab8aafc40b4a3ea6490795a2233a0a9a75a8 Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Fri, 31 Jul 2026 14:55:51 -0500 Subject: [PATCH 02/17] fix: flox env cleanup , upgrade Signed-off-by: Philip Mattingly --- .flox/env/manifest.lock | 635 ++++++++---------- .flox/env/manifest.toml | 6 +- .../actionlint/.flox/env/manifest.lock | 2 - .../actionlint/.flox/env/manifest.toml | 92 --- .../common/.flox/env/manifest.lock | 381 +++++------ .../common/.flox/env/manifest.toml | 4 +- .../helm/.flox/env/manifest.lock | 2 - .../helm/.flox/env/manifest.toml | 82 --- .../open-policy-agent/.flox/env/manifest.lock | 2 +- .../open-policy-agent/.flox/env/manifest.toml | 2 +- .../osv-scanner/.flox/env/manifest.lock | 2 +- .../osv-scanner/.flox/env/manifest.toml | 2 +- .../python/.flox/env/manifest.lock | 2 +- .../python/.flox/env/manifest.toml | 2 +- flox-environments/web/.flox/env/manifest.lock | 2 +- flox-environments/web/.flox/env/manifest.toml | 2 +- 16 files changed, 457 insertions(+), 763 deletions(-) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 5c1b57007c9..c24bfc6efc6 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "actionlint": { "pkg-path": "actionlint", @@ -102,19 +102,18 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/f6xz9pw6zvga7r04isc4xf54y8g4sq5z-actionlint-1.7.12.drv", + "derivation": "/nix/store/l8wgjb25mbfydzlg0r7d7jd100f2d50h-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:12:54.694474Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:32.571357Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -123,7 +122,7 @@ "out" ], "outputs": { - "out": "/nix/store/9qj0ikkqv66k52xs8fywmnzyg8zn2svm-actionlint-1.7.12" + "out": "/nix/store/lzmq195syay4hpqcfs2wzgjc8zb3yx3i-actionlint-1.7.12" }, "system": "aarch64-darwin", "group": "actionlint", @@ -132,19 +131,18 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/pih7r5p4pify73ap7r0g4s7aqv5q01d2-actionlint-1.7.12.drv", + "derivation": "/nix/store/d0906vbj276ajk1kk6vvr210bsbaxx5x-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:41:21.154073Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:27.922478Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -153,7 +151,7 @@ "out" ], "outputs": { - "out": "/nix/store/31js4yryr1yjq4waygdlv2k5w5ks0s0n-actionlint-1.7.12" + "out": "/nix/store/8im85sv1z35jm0qr818pa2wdq8m25n4f-actionlint-1.7.12" }, "system": "aarch64-linux", "group": "actionlint", @@ -162,19 +160,18 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/mk996amm0g9pssw96f0nh4460x97p890-actionlint-1.7.12.drv", + "derivation": "/nix/store/jfzx0kgl59m4awj91nb1l0ck6v44kl97-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:40:23.770360Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:15.104681Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -183,7 +180,7 @@ "out" ], "outputs": { - "out": "/nix/store/20imjbvi2q6z691fd5acg20mfx3aqvkj-actionlint-1.7.12" + "out": "/nix/store/pihkd9s6gpzbq6zy6ynwqg0iif3hwfdj-actionlint-1.7.12" }, "system": "x86_64-linux", "group": "actionlint", @@ -192,19 +189,18 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/h7qr1dkmmmwvr6rdp41d46mrxxyypqc2-shellcheck-0.11.0.drv", + "derivation": "/nix/store/9z4iqwwmsc3f9hfkfwpl92lpcjkhvxvl-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:14:50.123814Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:56:24.813680Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -215,10 +211,10 @@ "man" ], "outputs": { - "bin": "/nix/store/py6hpk9rm5vh16dn0sifa3wpmsl0kl67-shellcheck-0.11.0-bin", - "doc": "/nix/store/bf4yd8vzhafk7nknzjjz5awvkqvyfspc-shellcheck-0.11.0-doc", - "man": "/nix/store/lwd2gr8083jfif5xb8h7jj396dvr6kdd-shellcheck-0.11.0-man", - "out": "/nix/store/7qi1h6hbr1ybpz9xyh4j38vrki1xc2z4-shellcheck-0.11.0" + "bin": "/nix/store/wh8gg40x023xn9n0rgsil9r2l95wbavi-shellcheck-0.11.0-bin", + "doc": "/nix/store/5012amxy82f9b2d6pxyspc2sk8mprvcy-shellcheck-0.11.0-doc", + "man": "/nix/store/z6y07qmh1djgjqny0bjgyr6rhld9xwn9-shellcheck-0.11.0-man", + "out": "/nix/store/lifq4m2zckqx8la1y93sa9jbppaywk8a-shellcheck-0.11.0" }, "system": "aarch64-darwin", "group": "actionlint", @@ -227,19 +223,18 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/27a27jgwxyq768zr75divyi6x4744bix-shellcheck-0.11.0.drv", + "derivation": "/nix/store/1hxnjx2bflxndlk0k0pqwk1609qw155q-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:43:48.990893Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:26:54.006132Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -250,10 +245,10 @@ "man" ], "outputs": { - "bin": "/nix/store/ydbg36fc5vvgc4k60d38vj95741wvv28-shellcheck-0.11.0-bin", - "doc": "/nix/store/dmj404h7ac342mrnj5dfdych83cd6r6c-shellcheck-0.11.0-doc", - "man": "/nix/store/l3202mccjm3iz9m0myddbmvhiy8nkp9m-shellcheck-0.11.0-man", - "out": "/nix/store/yyy8s43483p5ww6v09kal0kidb7kxvmk-shellcheck-0.11.0" + "bin": "/nix/store/9b1ggvsx71aavzf3sg1s3pkjjfl776pa-shellcheck-0.11.0-bin", + "doc": "/nix/store/4mbdk0nkfiva25q3v4j85vs91ixaix3b-shellcheck-0.11.0-doc", + "man": "/nix/store/6sgxmiifwgfpnaddg11k73p4cq71xcrn-shellcheck-0.11.0-man", + "out": "/nix/store/zgly4zva6wjzvdp6d599s552ibkwczv4-shellcheck-0.11.0" }, "system": "aarch64-linux", "group": "actionlint", @@ -262,19 +257,18 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/fjnaf97vql7h3d6mzymqabz7lmbljj0x-shellcheck-0.11.0.drv", + "derivation": "/nix/store/7v8r56jqngwqgzinbrfdg3mpygpp93c4-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:43:04.681164Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T06:00:48.964411Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -285,10 +279,10 @@ "man" ], "outputs": { - "bin": "/nix/store/vwvvnr1qxpwn0vffbsn8bkviqcgicizr-shellcheck-0.11.0-bin", - "doc": "/nix/store/wm6ncb99697pw9px9dpnx4vdq7mjskq2-shellcheck-0.11.0-doc", - "man": "/nix/store/g6cz58h4p7dasw30y0qrk0xwdp5595qv-shellcheck-0.11.0-man", - "out": "/nix/store/gykrz50q65f9jrljvd9bds46irfbd0bh-shellcheck-0.11.0" + "bin": "/nix/store/9phb1flallb4fw685dlblzbqrh9qkphi-shellcheck-0.11.0-bin", + "doc": "/nix/store/8qq3p694mapmadi98dgcp4ig88lqpfq0-shellcheck-0.11.0-doc", + "man": "/nix/store/jkp411xmhm8nqvxykjzfiz303fw6sshx-shellcheck-0.11.0-man", + "out": "/nix/store/34m1q0dfl1fxsakh63678ni2qndgy8mg-shellcheck-0.11.0" }, "system": "x86_64-linux", "group": "actionlint", @@ -297,19 +291,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/gbxz6zs7rv9qynjlq5z993cx97js8x5i-helm-docs-1.14.2.drv", + "derivation": "/nix/store/7mqk2k7cpr23afsgprprf6kq7q4vy8hy-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:13:10.955708Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:48.204473Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -318,7 +311,7 @@ "out" ], "outputs": { - "out": "/nix/store/i6nz37y0ghagc34nlpfngq71fn6z3rs2-helm-docs-1.14.2" + "out": "/nix/store/iha9x252czxiz301bgnx5c1myi8m5svn-helm-docs-1.14.2" }, "system": "aarch64-darwin", "group": "helm-docs", @@ -327,19 +320,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/29i243jas4fqcpm8wdhbw4hvnyf4yp6h-helm-docs-1.14.2.drv", + "derivation": "/nix/store/4847v98n0ramlrq4c32lsfq1w9ilvb48-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:41:41.686139Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:47.538683Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -348,7 +340,7 @@ "out" ], "outputs": { - "out": "/nix/store/bgaaxnb9i8fzvkvl6ggddngc0v41wwny-helm-docs-1.14.2" + "out": "/nix/store/mc3ga2xrd565cwk39bm244q0fy5ffs0h-helm-docs-1.14.2" }, "system": "aarch64-linux", "group": "helm-docs", @@ -357,19 +349,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/7hxy923h5639mxb0lb05asr77arvwyjb-helm-docs-1.14.2.drv", + "derivation": "/nix/store/vjz01lzipwr78dzxv74vq70kk8s50cj3-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:40:45.057500Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:35.510453Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -378,7 +369,7 @@ "out" ], "outputs": { - "out": "/nix/store/63l33x2rrpzdx0fg7yg776ajm6ilmgx7-helm-docs-1.14.2" + "out": "/nix/store/3bhjb3ac35ma6ahcabiczd156aw4bspq-helm-docs-1.14.2" }, "system": "x86_64-linux", "group": "helm-docs", @@ -477,17 +468,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/8fnhgk1cylc66jpbkpkhi1b8l763zz61-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/3629kpfnbcgcv7dxgwm5pv353pvk3cg0-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T04:54:14.871348Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:50.426853Z", "stabilities": [ "unstable" ], @@ -497,7 +488,7 @@ "out" ], "outputs": { - "out": "/nix/store/jg1p2gzhrgg5d0wfdv45j1144q3ms3i2-kubernetes-helm-4.2.3" + "out": "/nix/store/pskv3khyizrc09rnqrp6d0wn5pllripx-kubernetes-helm-4.2.3" }, "system": "aarch64-darwin", "group": "kubernetes-helm", @@ -506,17 +497,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/zpbg9qqi19k2pcp06yfkmv76a1yb2j0x-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/lg5as7r9cawfrsb95in15rj56qq1mq17-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:24:45.679341Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:51.647377Z", "stabilities": [ "unstable" ], @@ -526,7 +517,7 @@ "out" ], "outputs": { - "out": "/nix/store/0fmrj3fq2j2l95cj12pw1bkni4nihwsl-kubernetes-helm-4.2.3" + "out": "/nix/store/k99lgyz9k814kr389jirpim37nqpi7qp-kubernetes-helm-4.2.3" }, "system": "aarch64-linux", "group": "kubernetes-helm", @@ -535,17 +526,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/4nb9airy740jinzgf83vpk7gp13vjmii-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/7w6nz7jqjz6a9q1l2qd4cdl01jjcrwvd-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:59:04.143872Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:39.899607Z", "stabilities": [ "unstable" ], @@ -555,7 +546,7 @@ "out" ], "outputs": { - "out": "/nix/store/7vgl8w4ma0pl7f32n0rjgnmj6xalmiac-kubernetes-helm-4.2.3" + "out": "/nix/store/n1rbyfp9sn0r0gzx4z9lniisiad9h5yq-kubernetes-helm-4.2.3" }, "system": "x86_64-linux", "group": "kubernetes-helm", @@ -564,19 +555,18 @@ { "attr_path": "fnm", "broken": false, - "derivation": "/nix/store/m4s0894j2dj2k375c7dns2ib8nk5krpw-fnm-1.39.0.drv", + "derivation": "/nix/store/vzn629ysil2gfl70ywqn70083ad8ybzj-fnm-1.39.0.drv", "description": "Fast and simple Node.js version manager", "install_id": "fnm", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "fnm-1.39.0", "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:12:55.889515Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:33.754497Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -585,7 +575,7 @@ "out" ], "outputs": { - "out": "/nix/store/fp3ndk75i6c1c31a9zqkz3pk61gz294h-fnm-1.39.0" + "out": "/nix/store/8cr5r5cyv72vj61ssk60gragvmdn8mw8-fnm-1.39.0" }, "system": "aarch64-darwin", "group": "node", @@ -594,19 +584,18 @@ { "attr_path": "fnm", "broken": false, - "derivation": "/nix/store/zh7xw7li0b92r9cx25f4j19qdp1kqvdz-fnm-1.39.0.drv", + "derivation": "/nix/store/qk0n2489mjkkb0z3swvg7xv66yabs0c2-fnm-1.39.0.drv", "description": "Fast and simple Node.js version manager", "install_id": "fnm", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "fnm-1.39.0", "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:41:22.827979Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:29.513507Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -615,7 +604,7 @@ "out" ], "outputs": { - "out": "/nix/store/1312sbdkqvdp0m5gak0dfgz0bf2p1kgj-fnm-1.39.0" + "out": "/nix/store/i1ziwqn5kp94jnffphj6pf1srqx7g67f-fnm-1.39.0" }, "system": "aarch64-linux", "group": "node", @@ -624,19 +613,18 @@ { "attr_path": "fnm", "broken": false, - "derivation": "/nix/store/isdxp3dj73n1j6zzxjnjg20f4016h7ia-fnm-1.39.0.drv", + "derivation": "/nix/store/fz4ibl50d3r3irhdfz37afk4vk9vvf47-fnm-1.39.0.drv", "description": "Fast and simple Node.js version manager", "install_id": "fnm", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "fnm-1.39.0", "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:40:25.581588Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:16.880398Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -645,7 +633,7 @@ "out" ], "outputs": { - "out": "/nix/store/1dih2h4sxfqkkg32db7753m02d9q54hk-fnm-1.39.0" + "out": "/nix/store/fb6q7d45phva2fxclv61a6h62q5n631h-fnm-1.39.0" }, "system": "x86_64-linux", "group": "node", @@ -666,9 +654,9 @@ "rev_date": "2025-09-24T05:06:22Z", "scrape_date": "2025-09-26T03:42:58.943863Z", "stabilities": [ - "unstable", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, "version": "1.8.0", @@ -697,9 +685,9 @@ "rev_date": "2025-09-24T05:06:22Z", "scrape_date": "2025-09-26T04:12:13.305775Z", "stabilities": [ - "unstable", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, "version": "1.8.0", @@ -728,9 +716,9 @@ "rev_date": "2025-09-24T05:06:22Z", "scrape_date": "2025-09-26T05:11:19.422384Z", "stabilities": [ - "unstable", + "stable", "staging", - "stable" + "unstable" ], "unfree": false, "version": "1.8.0", @@ -747,17 +735,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/g2jx4p30qxqyjk65mbgv63mawimskfbg-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/qsxf0z52hwzxj73hjkibphy885zvfgvq-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T04:54:27.813904Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:55:02.700665Z", "stabilities": [ "unstable" ], @@ -767,7 +755,7 @@ "out" ], "outputs": { - "out": "/nix/store/qfv8fsdf1bhsl4ml0955nplrw1wi83d6-osv-scanner-2.3.3" + "out": "/nix/store/xb407dwimxp8a1blrml6ywif2ghvh7f3-osv-scanner-2.3.3" }, "system": "aarch64-darwin", "group": "osv-scanner", @@ -776,17 +764,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/pnqpmpkk9fbrm0411g73r277gnda7ili-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/8h52lcfwc0vdz8vmrclc3n346hm5lprj-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:25:09.330153Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:25:13.558795Z", "stabilities": [ "unstable" ], @@ -796,7 +784,7 @@ "out" ], "outputs": { - "out": "/nix/store/v1d3ifdfb4j91gvx46swna13h6bpx9fb-osv-scanner-2.3.3" + "out": "/nix/store/jhyrcnykva2j188isan381i1pmk86mz0-osv-scanner-2.3.3" }, "system": "aarch64-linux", "group": "osv-scanner", @@ -805,17 +793,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/j64ih3qz2fdcmi1gvycirnmzisbdzpl6-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/mdknv574k14jsm8sr3bmdj1dpa1gi3p7-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:59:27.881702Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:59:02.781860Z", "stabilities": [ "unstable" ], @@ -825,7 +813,7 @@ "out" ], "outputs": { - "out": "/nix/store/6x0287bsy0pc19ygy84r6rg4lz51dkmx-osv-scanner-2.3.3" + "out": "/nix/store/wbiwki082a5bzyaabz1ygfz043pnrdp4-osv-scanner-2.3.3" }, "system": "x86_64-linux", "group": "osv-scanner", @@ -834,32 +822,28 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/a4idiq74cs37nrckg8fvqn436l1jli0k-diffutils-3.12.drv", + "derivation": "/nix/store/s922673g28c76xwxcmm9pa92sd7ih1zw-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:06:03.203715Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:33.335636Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/wbb3pzx0mg0a7ksjvc44kd5w3mzynnlz-diffutils-3.12-info", - "out": "/nix/store/37rdk8zsdbqcp73l3nrmwilwb2ixkacv-diffutils-3.12" + "info": "/nix/store/8mnr14i9nagwy7zq7idpnxmbn713vzp5-diffutils-3.12-info", + "out": "/nix/store/rbwynbh99a00f23xbha5wqj5p8ry50fs-diffutils-3.12" }, "system": "aarch64-darwin", "group": "toplevel", @@ -868,32 +852,28 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/7kp4z354654mvw5brn01k26r4kg2di8j-diffutils-3.12.drv", + "derivation": "/nix/store/aqi2hpkam0nxfi2d0l0cnlml9w9afjj7-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:34:26.601002Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:28.873784Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/rl95zx5xc6jx0ziigcgygj3zd9fwj77x-diffutils-3.12-info", - "out": "/nix/store/l2vdh6xnh51cqav31cwsdwr3c91i2gbl-diffutils-3.12" + "info": "/nix/store/v1w1ykabd35wwys2ahdmsf4h5bpgslvm-diffutils-3.12-info", + "out": "/nix/store/bblvy0gjfa9sqml9nzmbh90daw7815z4-diffutils-3.12" }, "system": "aarch64-linux", "group": "toplevel", @@ -902,34 +882,28 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/hr30bp0br6nigp0zv5jmf9l4g3xsms2q-diffutils-3.12.drv", + "derivation": "/nix/store/06438zgfisg275d64b8bm4dil8wsgyyf-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T08:32:51.733292Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:16.159239Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", - "out", - "out", "out" ], "outputs": { - "info": "/nix/store/6mkh4xmxcqcmkx5dddiw9zr57bkw9qvv-diffutils-3.12-info", - "out": "/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12" + "info": "/nix/store/rzwh5diw4wq51z8h2v0g0g63nwqw1zq8-diffutils-3.12-info", + "out": "/nix/store/ib2z0l0fbm3p1iqw4r79i0h2qca0qgwm-diffutils-3.12" }, "system": "x86_64-linux", "group": "toplevel", @@ -938,34 +912,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/v1gwnzlgn4vivbr5j9jzsqqb8kl8z3k4-findutils-4.10.0.drv", + "derivation": "/nix/store/2bv0zi4clx7lw8dv93irvcsq8ivnr9ll-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:06:03.570130Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:33.689300Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", - "out", "out" ], "outputs": { - "info": "/nix/store/34l83gpv8481k0wzmmi9cxh9flbmhsg4-findutils-4.10.0-info", - "locate": "/nix/store/mwx56wc51wvky0a78fizs90y7s7mg2ia-findutils-4.10.0-locate", - "out": "/nix/store/3wz2j41nnr1badij6fcnip5vgrfpdd82-findutils-4.10.0" + "info": "/nix/store/8h41dg3igjy9llr78qq1kkr0m6lzk991-findutils-4.10.0-info", + "locate": "/nix/store/kbd6bkcc6qraf7zf5jiz4kaf13aw8jv1-findutils-4.10.0-locate", + "out": "/nix/store/7p057vk9y6a1k665r9bc2bjxgqy456hg-findutils-4.10.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -974,33 +943,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/rka0crnhr888cfy9ilwmdy2b7zkb2iwl-findutils-4.10.0.drv", + "derivation": "/nix/store/w9x12ayhi1i7z705fwab60a2ws46wm6k-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:34:27.153777Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:29.407796Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/168irs0ni0r9iynjv0q05s72ad276hjc-findutils-4.10.0-info", - "locate": "/nix/store/1ycgnkm4c43vggyw76qc0jvrz4yvaddn-findutils-4.10.0-locate", - "out": "/nix/store/gbd7xfq2d1wbrwr2i045mvc8fkkw7i1g-findutils-4.10.0" + "info": "/nix/store/l2m8dqn962m2n193bxx4mk20gclp6dbv-findutils-4.10.0-info", + "locate": "/nix/store/kf3y536x84wmyr7k21ns77i0d8nlndlc-findutils-4.10.0-locate", + "out": "/nix/store/47s1v9jk5hp88jwkkad6fzsyzq4hasla-findutils-4.10.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -1009,35 +974,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/nv9vbwdbppdb9zvv78m9a99vga207ykq-findutils-4.10.0.drv", + "derivation": "/nix/store/g2hzv7byfzyv27hniiypjdrhkrlcdzhm-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T08:32:52.337279Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:16.766266Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", - "out", - "out", "out" ], "outputs": { - "info": "/nix/store/mc65clwg5q361fa9614ryvmhl3yqradh-findutils-4.10.0-info", - "locate": "/nix/store/fcid2ld7f37q6h1rknkrv80302is8c0y-findutils-4.10.0-locate", - "out": "/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0" + "info": "/nix/store/w3rs6ifakwvr7gils096dd9jna3rz02i-findutils-4.10.0-info", + "locate": "/nix/store/w0bj92hi90rbynfcry2b5rlcxmaxyggy-findutils-4.10.0-locate", + "out": "/nix/store/m1p6gxgxis75rn0d549ny2y8gpxjv9pd-findutils-4.10.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -1046,21 +1005,18 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/kpylm5v2c10jkmpjfll8jk9vc0icnzmf-gnumake-4.4.1.drv", + "derivation": "/nix/store/8bhfhg9yz7p4l8zmyqrb67b08y631ihc-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:06:03.974647Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:34.121636Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, @@ -1070,10 +1026,10 @@ "out" ], "outputs": { - "doc": "/nix/store/sl2ygvgjg4ml8dhyfxj5kh84x2bs1mhc-gnumake-4.4.1-doc", - "info": "/nix/store/6dbp1ysgxsrrn7xgjgf523faqrm605a5-gnumake-4.4.1-info", - "man": "/nix/store/wdm9prq35jlgwq6rjyhqxy4jzy833sfr-gnumake-4.4.1-man", - "out": "/nix/store/8wwiw8pwyhrkzyq28hqzxfl4z84lks81-gnumake-4.4.1" + "doc": "/nix/store/rdwb8d7iv8j5vp5pdx9lbqjr6wk0ydji-gnumake-4.4.1-doc", + "info": "/nix/store/0ncajy1b1wgyy5jxm6fxlm7wbblsvc05-gnumake-4.4.1-info", + "man": "/nix/store/byj13qf46ib7xk4zfvk3k5w8r34z9mf2-gnumake-4.4.1-man", + "out": "/nix/store/7f7x81x6vb8kva42skn921d3ga2w0qap-gnumake-4.4.1" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1082,36 +1038,32 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/5i4kfrpjrag02vk2n04ndvfbsb086kkq-gnumake-4.4.1.drv", + "derivation": "/nix/store/18yfg0l23y2f7w2wz6h4p3jiy6i7ycbf-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:34:28.288092Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:30.624261Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "4.4.1", "outputs_to_install": [ "man", - "out", "out" ], "outputs": { - "debug": "/nix/store/mdv67w2xvchbs76zjdzppdkk64z5avki-gnumake-4.4.1-debug", - "doc": "/nix/store/bybbj9avk3g107mwhgvkzkpm6mkbl8gv-gnumake-4.4.1-doc", - "info": "/nix/store/bxdqxx2q13sj15ss8z5l33jd31x55j5l-gnumake-4.4.1-info", - "man": "/nix/store/dg3aa71vii59scbfhi02cdxnps64x6ql-gnumake-4.4.1-man", - "out": "/nix/store/9ngw1ippk25jjj5fjxv36xbp6iq7rxdx-gnumake-4.4.1" + "debug": "/nix/store/m4d49zx7zfgv1sdd7zg5zzsinaccyfk6-gnumake-4.4.1-debug", + "doc": "/nix/store/p7p13ajir7nw802nf7rvdhray70l4lnj-gnumake-4.4.1-doc", + "info": "/nix/store/0b0bys1xj58mjnwk2iicqa2sv55z4ac2-gnumake-4.4.1-info", + "man": "/nix/store/7qbsp83ianzwbhzsgwx8yv832n4a1kkx-gnumake-4.4.1-man", + "out": "/nix/store/qdh1xpknc0ys6m46gi4p2qcyyryc8pv0-gnumake-4.4.1" }, "system": "aarch64-linux", "group": "toplevel", @@ -1120,38 +1072,32 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/7r4i2k0iihf294fij4fharxs9ph4xy7i-gnumake-4.4.1.drv", + "derivation": "/nix/store/xffycr4zy4kb00rgs8iad7xw8inb68p3-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T08:32:53.551884Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:18.096266Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "4.4.1", "outputs_to_install": [ "man", - "out", - "out", - "out", "out" ], "outputs": { - "debug": "/nix/store/q683z843wi7xs96pngh1kinnx88vn2if-gnumake-4.4.1-debug", - "doc": "/nix/store/wxg27bzsljjw4k72m9b2v6a0fx5a68s0-gnumake-4.4.1-doc", - "info": "/nix/store/03d41qgjsrhcr3fzq2z99ry07rahnj0v-gnumake-4.4.1-info", - "man": "/nix/store/bmvqa5ym318mymhxlwwmxq8wxal958p4-gnumake-4.4.1-man", - "out": "/nix/store/d3bwqm6bymhy3pdgbvf7vxjqfp31m3j1-gnumake-4.4.1" + "debug": "/nix/store/gq4akpk5dfabh9q7bdnd95r1g8hv9qgs-gnumake-4.4.1-debug", + "doc": "/nix/store/bdv51k4qj1vvkw0knk0p6kv4zjs6vzqy-gnumake-4.4.1-doc", + "info": "/nix/store/vznzsnngs0fydqvrdb71xmfry1zxz0h2-gnumake-4.4.1-info", + "man": "/nix/store/ndm1zqm8a3bvbh3ybhnncda9i27ip13f-gnumake-4.4.1-man", + "out": "/nix/store/66x1qiph890315003f27a15xsqax6lwf-gnumake-4.4.1" }, "system": "x86_64-linux", "group": "toplevel", @@ -1160,32 +1106,28 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/pdvrawd3q9d8ax2ys053rvv1jinpgncs-gnutar-1.35.drv", + "derivation": "/nix/store/qi2mqp76p6l1vlbgjhljmxpjcr0wk2am-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:06:03.982516Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:34.130590Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/lfn1823f7k3iaar3088ag3vkk3g8mf46-gnutar-1.35-info", - "out": "/nix/store/3aikbnf5fq99gvw1wb242wrjnbj7fcr9-gnutar-1.35" + "info": "/nix/store/hwx86saxirjrn6gjw3p2rq70s1kc79nj-gnutar-1.35-info", + "out": "/nix/store/33a9ksqprc9ry40c2gxw8fz1yc3ssahk-gnutar-1.35" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1194,32 +1136,28 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/2vfljm4iy3yngf9bcb98djkq762z2845-gnutar-1.35.drv", + "derivation": "/nix/store/777wz9r3sdwqv0gsgix6dsk0j0xq6l58-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:34:28.303349Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:30.638083Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/isnpsk3kgnlfv3gs1j9vn75cx6pw015a-gnutar-1.35-info", - "out": "/nix/store/lg4p75b1g1ncr0xf20qpyc96pikpg1sp-gnutar-1.35" + "info": "/nix/store/dgy56x9qq4ac8ilfw9jy7dh5051ikhwy-gnutar-1.35-info", + "out": "/nix/store/7sw1d6d7kv88ppd02s3fwjmrjvf3gn1i-gnutar-1.35" }, "system": "aarch64-linux", "group": "toplevel", @@ -1228,35 +1166,28 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/k8mgqrkbrh8jpll2yamzk66jksqhlw0y-gnutar-1.35.drv", + "derivation": "/nix/store/frplv4ziprj2f0cs9w8hvjkkg1ciczbj-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T08:32:53.566097Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:18.111380Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", - "out", - "out", - "out", "out" ], "outputs": { - "info": "/nix/store/mrvcwlivqq2nr2anqq9ap4wdhflk52lm-gnutar-1.35-info", - "out": "/nix/store/55nbxpjrgrrsplq739z1z8n05h16cgsq-gnutar-1.35" + "info": "/nix/store/0jy4jmmbr8kqmknamddmm720ij8yql4d-gnutar-1.35-info", + "out": "/nix/store/lmbgk78d524491njr3mj0yyhwjfpgjfb-gnutar-1.35" }, "system": "x86_64-linux", "group": "toplevel", @@ -1265,21 +1196,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/j8ybq6l473j7zinlzgivynnqb9zvl76a-gum-0.17.0.drv", + "derivation": "/nix/store/0s8pmz2v6zlgfjzfqashmwg01wm7kp5c-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gum-0.17.0", "pname": "gum", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:06:04.219243Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:54:34.364074Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, @@ -1288,7 +1216,7 @@ "out" ], "outputs": { - "out": "/nix/store/6jb5frkadampkcmbjynch118cc4smzfj-gum-0.17.0" + "out": "/nix/store/aw147lca29c11gd3m53j1x5fpq7gf8yd-gum-0.17.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1297,21 +1225,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/3rhl22hpsgrv3p835m8kkmkli1v1swnq-gum-0.17.0.drv", + "derivation": "/nix/store/4019y0vw1cjnj952xjgzqwg91hk9ngvm-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gum-0.17.0", "pname": "gum", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T07:34:28.702751Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:24:31.021381Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, @@ -1320,7 +1245,7 @@ "out" ], "outputs": { - "out": "/nix/store/8p8fi8pl4lb776q2gnby3rd3mcbj5grh-gum-0.17.0" + "out": "/nix/store/3x2vnw12j3npn1l45p4ssc0kadmpf7b1-gum-0.17.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -1329,21 +1254,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/b84rjgg7a2yk5hjvrml660hrir7xd3nx-gum-0.17.0.drv", + "derivation": "/nix/store/c9wnn771niv74ksr94gjvga7za3xh7x9-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=64c08a7ca051951c8eae34e3e3cb1e202fe36786", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", "name": "gum-0.17.0", "pname": "gum", - "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", - "rev_count": 1004030, - "rev_date": "2026-05-23T18:24:25Z", - "scrape_date": "2026-05-26T08:32:53.979932Z", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:58:18.524315Z", "stabilities": [ - "lts", - "stable", - "staging", "unstable" ], "unfree": false, @@ -1352,7 +1274,7 @@ "out" ], "outputs": { - "out": "/nix/store/2ii7sbkq44zrkv4iv6g7bqi47m4ch28b-gum-0.17.0" + "out": "/nix/store/p8whqn8f3fafka3wgwfba6lbzg7ld0yy-gum-0.17.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -1451,7 +1373,7 @@ ], "compose": { "composer": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "profile": { "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, @@ -1485,7 +1407,7 @@ "include": [ { "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "diffutils": { "pkg-path": "diffutils" @@ -1513,7 +1435,6 @@ "PADDING": "1 2", "WIDTH": "50" }, - "profile": {}, "options": {} }, "name": "common", @@ -1541,8 +1462,6 @@ "version": "4.2.3" } }, - "hook": {}, - "profile": {}, "options": { "systems": [ "aarch64-darwin", @@ -1571,8 +1490,6 @@ "version": "0.11.0" } }, - "hook": {}, - "profile": {}, "options": {} }, "name": "actionlint", @@ -1582,7 +1499,7 @@ }, { "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "uv": { "pkg-path": "uv", @@ -1614,7 +1531,7 @@ }, { "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "fnm": { "pkg-path": "fnm", @@ -1643,7 +1560,7 @@ }, { "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "osv-scanner": { "pkg-path": "osv-scanner", @@ -1660,7 +1577,7 @@ }, { "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "open-policy-agent": { "pkg-path": "open-policy-agent", diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index 436692604be..a8c617b4ec8 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -1,8 +1,4 @@ -schema-version = "1.11.0" - -[install] - -[vars] +schema-version = "1.13.0" [profile] common = ''' diff --git a/flox-environments/actionlint/.flox/env/manifest.lock b/flox-environments/actionlint/.flox/env/manifest.lock index 8ad2d3d14fa..2ee53751a38 100644 --- a/flox-environments/actionlint/.flox/env/manifest.lock +++ b/flox-environments/actionlint/.flox/env/manifest.lock @@ -14,8 +14,6 @@ "version": "0.11.0" } }, - "hook": {}, - "profile": {}, "options": {} }, "packages": [ diff --git a/flox-environments/actionlint/.flox/env/manifest.toml b/flox-environments/actionlint/.flox/env/manifest.toml index 54536797c15..0cf2c36a1e0 100644 --- a/flox-environments/actionlint/.flox/env/manifest.toml +++ b/flox-environments/actionlint/.flox/env/manifest.toml @@ -1,97 +1,5 @@ schema-version = "1.13.0" - -## Install Packages -------------------------------------------------- -## $ flox install gum <- puts a package in [install] section below -## $ flox search gum <- search for a package -## $ flox show gum <- show all versions of a package -## ------------------------------------------------------------------- [install] actionlint = { pkg-path = "actionlint", version = "1.7.12", pkg-group = "actionlint" } shellcheck = { pkg-path = "shellcheck", version = "0.11.0", pkg-group = "actionlint" } -# gum.pkg-path = "gum" -# gum.version = "^0.14.5" - - -## Environment Variables --------------------------------------------- -## ... available for use in the activated environment -## as well as [hook], [profile] scripts and [services] below. -## ------------------------------------------------------------------- -[vars] -# INTRO_MESSAGE = "It's gettin' Flox in here" - - -## Activation Hook --------------------------------------------------- -## ... run by _bash_ shell when you run 'flox activate'. -## ------------------------------------------------------------------- -[hook] -# on-activate = ''' -# # -> Set variables, create files and directories -# # -> Perform initialization steps, e.g. create a python venv -# # -> Useful environment variables: -# # - FLOX_ENV_PROJECT=/home/user/example -# # - FLOX_ENV=/home/user/example/.flox/run -# # - FLOX_ENV_CACHE=/home/user/example/.flox/cache -# ''' - - -## Profile script ---------------------------------------------------- -## ... sourced by _your shell_ when you run 'flox activate'. -## ------------------------------------------------------------------- -[profile] -# common = ''' -# gum style \ -# --foreground 212 --border-foreground 212 --border double \ -# --align center --width 50 --margin "1 2" --padding "2 4" \ -# $INTRO_MESSAGE -# ''' -## Shell-specific customizations such as setting aliases go here: -# bash = ... -# zsh = ... -# fish = ... - - -## Services --------------------------------------------------------- -## $ flox services start <- Starts all services -## $ flox services status <- Status of running services -## $ flox activate --start-services <- Activates & starts all -## ------------------------------------------------------------------ -[services] -# myservice.command = "python3 -m http.server" - - -## Include ---------------------------------------------------------- -## ... environments to create a composed environment -## ------------------------------------------------------------------ -[include] -# environments = [ -# { dir = "../common" } -# ] - - -## Build and publish your own packages ------------------------------ -## $ flox build -## $ flox publish -## ------------------------------------------------------------------ -[build] -# [build.myproject] -# description = "The coolest project ever" -# version = "0.0.1" -# command = """ -# mkdir -p $out/bin -# cargo build --release -# cp target/release/myproject $out/bin/myproject -# """ - - -## Other Environment Options ----------------------------------------- -[options] -# Systems that environment is compatible with -# systems = [ -# "aarch64-darwin", -# "aarch64-linux", -# "x86_64-darwin", -# "x86_64-linux", -# ] -# Uncomment to disable CUDA detection. -# cuda-detection = false diff --git a/flox-environments/common/.flox/env/manifest.lock b/flox-environments/common/.flox/env/manifest.lock index fcd12ed71a2..e34ab4f3bcd 100644 --- a/flox-environments/common/.flox/env/manifest.lock +++ b/flox-environments/common/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "diffutils": { "pkg-path": "diffutils" @@ -29,38 +29,35 @@ "PADDING": "1 2", "WIDTH": "50" }, - "profile": {}, "options": {} }, "packages": [ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/v6f7v4qrrzhicaks66wn8nndwb7yyg8c-diffutils-3.12.drv", + "derivation": "/nix/store/1dm6zyrj9634fz016hnqild1zznb18jm-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:13:14.183845Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.469692Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/wbb3pzx0mg0a7ksjvc44kd5w3mzynnlz-diffutils-3.12-info", - "out": "/nix/store/37rdk8zsdbqcp73l3nrmwilwb2ixkacv-diffutils-3.12" + "info": "/nix/store/lw06ap9kg9hrmsp7a534pwzh303gm02w-diffutils-3.12-info", + "out": "/nix/store/yw1mksapzj4v66c5ag7ng59jn2nh6klq-diffutils-3.12" }, "system": "aarch64-darwin", "group": "toplevel", @@ -69,19 +66,18 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/7kp4z354654mvw5brn01k26r4kg2di8j-diffutils-3.12.drv", + "derivation": "/nix/store/gy9f86m4f8bay71v2aylf6ilmfdblp4c-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:44:08.714303Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.168402Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -92,8 +88,8 @@ "out" ], "outputs": { - "info": "/nix/store/rl95zx5xc6jx0ziigcgygj3zd9fwj77x-diffutils-3.12-info", - "out": "/nix/store/l2vdh6xnh51cqav31cwsdwr3c91i2gbl-diffutils-3.12" + "info": "/nix/store/b0jifqs0ywlwjj5yyigk7jyllsjzgiil-diffutils-3.12-info", + "out": "/nix/store/qm0ch7mlxn6kjdymcznxfsf5qdxqv9lk-diffutils-3.12" }, "system": "aarch64-linux", "group": "toplevel", @@ -102,31 +98,29 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/30bnz6x9r7kb9xis2fc1h40722c4rbzl-diffutils-3.12.drv", + "derivation": "/nix/store/i5r3m138kb1gihsvjf2hs3g9dmyawk32-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:13:06.454423Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:00.840124Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/wdcs87himpz57ml1n2911lslj2adnfwn-diffutils-3.12-info", - "out": "/nix/store/i8ix8mqzcllzigx9dy046axn3g0w08cp-diffutils-3.12" + "info": "/nix/store/7rh8a74vwdb6lvvvwjd0dlpv84hl6mr6-diffutils-3.12-info", + "out": "/nix/store/lwghldxh6irjmbp73lpxv6mrdwb4aqhv-diffutils-3.12" }, "system": "x86_64-darwin", "group": "toplevel", @@ -135,33 +129,30 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/hr30bp0br6nigp0zv5jmf9l4g3xsms2q-diffutils-3.12.drv", + "derivation": "/nix/store/4lqdccfv8wh1si8qh1phfjnl2v7530p9-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:47:04.831269Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:24.850606Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "3.12", "outputs_to_install": [ - "out", - "out", "out", "out" ], "outputs": { - "info": "/nix/store/6mkh4xmxcqcmkx5dddiw9zr57bkw9qvv-diffutils-3.12-info", - "out": "/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12" + "info": "/nix/store/vajbg82rq4kq817ic61azz8z5363dy4c-diffutils-3.12-info", + "out": "/nix/store/3c05s0vxy8wafaa7lkj4bfh69wa0ch10-diffutils-3.12" }, "system": "x86_64-linux", "group": "toplevel", @@ -170,33 +161,30 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/pc4qv6aafrlh0vwjj2ijjvji29a41bv5-findutils-4.10.0.drv", + "derivation": "/nix/store/971s20l3wxc0zv5c6gy4n9d04b9sxf3k-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:13:14.539586Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.823224Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", - "out", "out" ], "outputs": { - "info": "/nix/store/34l83gpv8481k0wzmmi9cxh9flbmhsg4-findutils-4.10.0-info", - "locate": "/nix/store/mwx56wc51wvky0a78fizs90y7s7mg2ia-findutils-4.10.0-locate", - "out": "/nix/store/3wz2j41nnr1badij6fcnip5vgrfpdd82-findutils-4.10.0" + "info": "/nix/store/nrk43rrjmq5dn4z0l56frzkpcya7bm7b-findutils-4.10.0-info", + "locate": "/nix/store/s494jb7dpfav3x14349f1gwa1xzw2hhp-findutils-4.10.0-locate", + "out": "/nix/store/z10ivgdarglczg1fp995rl3h6zx17ng0-findutils-4.10.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -205,19 +193,18 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/rka0crnhr888cfy9ilwmdy2b7zkb2iwl-findutils-4.10.0.drv", + "derivation": "/nix/store/bzhsr1f65ya9k9vh6b4cjzrdj9glg7bd-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:44:09.323083Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.723360Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -228,9 +215,9 @@ "out" ], "outputs": { - "info": "/nix/store/168irs0ni0r9iynjv0q05s72ad276hjc-findutils-4.10.0-info", - "locate": "/nix/store/1ycgnkm4c43vggyw76qc0jvrz4yvaddn-findutils-4.10.0-locate", - "out": "/nix/store/gbd7xfq2d1wbrwr2i045mvc8fkkw7i1g-findutils-4.10.0" + "info": "/nix/store/bd7lq9h718463n6v4a8j889m7z7p1jmd-findutils-4.10.0-info", + "locate": "/nix/store/lr299wp5bmraayckga75pxfjjl6klz05-findutils-4.10.0-locate", + "out": "/nix/store/8z92qzl5h4dx7y6j5ks9zlpgy1rqi10v-findutils-4.10.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -239,32 +226,30 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/35mvgcjz9nyhzxvccn3n8kja41qrd1cj-findutils-4.10.0.drv", + "derivation": "/nix/store/jvn6l62vr18ih2qgn8j9iizi7gwgb9py-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:13:06.878500Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.290176Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/hhaq2vnq3wzpw4advdsczn886rsbm5k0-findutils-4.10.0-info", - "locate": "/nix/store/zrkbiybizlzyyimlwkvfg9qrcqjrn7jk-findutils-4.10.0-locate", - "out": "/nix/store/ix0a9p3m012l4d59w3g1lfsdx2azdn08-findutils-4.10.0" + "info": "/nix/store/xadm4ryq6sx6njbw97p6fvfpdhapc52w-findutils-4.10.0-info", + "locate": "/nix/store/f0y58n40x3ymy4q46jrl4ylynjzcl87g-findutils-4.10.0-locate", + "out": "/nix/store/lzlf2kma2qxsq6ijy9a9irc0g6n8cdpg-findutils-4.10.0" }, "system": "x86_64-darwin", "group": "toplevel", @@ -273,34 +258,31 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/nv9vbwdbppdb9zvv78m9a99vga207ykq-findutils-4.10.0.drv", + "derivation": "/nix/store/m1n6hnajwhnv5qm4mwh2b2briv8vrkb3-findutils-4.10.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "findutils-4.10.0", "pname": "findutils", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:47:05.468459Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:25.467195Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "4.10.0", "outputs_to_install": [ - "out", - "out", "out", "out" ], "outputs": { - "info": "/nix/store/mc65clwg5q361fa9614ryvmhl3yqradh-findutils-4.10.0-info", - "locate": "/nix/store/fcid2ld7f37q6h1rknkrv80302is8c0y-findutils-4.10.0-locate", - "out": "/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0" + "info": "/nix/store/z9xp5gx83h9j3nyn1qmlimfb9jnda70q-findutils-4.10.0-info", + "locate": "/nix/store/mlhv10zqih8f45hw0jqg4lzbz9ialzx3-findutils-4.10.0-locate", + "out": "/nix/store/zjwih3d9rrrw4ixll52wsy0538p7vdfd-findutils-4.10.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -309,19 +291,18 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/sywyz1ykchhvm940gw5zka1rssbvd7fr-gnumake-4.4.1.drv", + "derivation": "/nix/store/fq3j34ffr44fa5a5nkwci5pdncl5h7hg-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:13:14.970249Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.218409Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -332,10 +313,10 @@ "out" ], "outputs": { - "doc": "/nix/store/sl2ygvgjg4ml8dhyfxj5kh84x2bs1mhc-gnumake-4.4.1-doc", - "info": "/nix/store/6dbp1ysgxsrrn7xgjgf523faqrm605a5-gnumake-4.4.1-info", - "man": "/nix/store/wdm9prq35jlgwq6rjyhqxy4jzy833sfr-gnumake-4.4.1-man", - "out": "/nix/store/8wwiw8pwyhrkzyq28hqzxfl4z84lks81-gnumake-4.4.1" + "doc": "/nix/store/v2jpgmm2fsg7b0z27cc514jdqbhm0isy-gnumake-4.4.1-doc", + "info": "/nix/store/dli72plfj1gcp88wv6px7qjjqvnnlql5-gnumake-4.4.1-info", + "man": "/nix/store/mzy3b5lxi8jbq5d63yvq52sjsq73907l-gnumake-4.4.1-man", + "out": "/nix/store/ij3d5cfr8h31a41l80jzid0z6kj2ajsv-gnumake-4.4.1" }, "system": "aarch64-darwin", "group": "toplevel", @@ -344,19 +325,18 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/myv1y9k84cp6x7ys0p2cxg8avsahs9c5-gnumake-4.4.1.drv", + "derivation": "/nix/store/8g055kd88xxnsxxanrn2l1ycmd1zaqp4-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:44:10.507898Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:23.879706Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -364,15 +344,14 @@ "version": "4.4.1", "outputs_to_install": [ "man", - "out", "out" ], "outputs": { - "debug": "/nix/store/mdv67w2xvchbs76zjdzppdkk64z5avki-gnumake-4.4.1-debug", - "doc": "/nix/store/bybbj9avk3g107mwhgvkzkpm6mkbl8gv-gnumake-4.4.1-doc", - "info": "/nix/store/bxdqxx2q13sj15ss8z5l33jd31x55j5l-gnumake-4.4.1-info", - "man": "/nix/store/dg3aa71vii59scbfhi02cdxnps64x6ql-gnumake-4.4.1-man", - "out": "/nix/store/9ngw1ippk25jjj5fjxv36xbp6iq7rxdx-gnumake-4.4.1" + "debug": "/nix/store/rcg8zj3391869cn266zwxynplwhyf6qw-gnumake-4.4.1-debug", + "doc": "/nix/store/qvl65zgm24p9sw0mzw3cxijcs8palykk-gnumake-4.4.1-doc", + "info": "/nix/store/2xp5f2ypvrlg6wn5s44jg3ji82l78k9q-gnumake-4.4.1-info", + "man": "/nix/store/3c96gbpypik8gzasv9brnka3i6mks9rz-gnumake-4.4.1-man", + "out": "/nix/store/v1888rzl1qf8zzd27q1vxvqqssizjx3x-gnumake-4.4.1" }, "system": "aarch64-linux", "group": "toplevel", @@ -381,19 +360,18 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/d58x5la2wv5jy7xm5x90ca0hb59sv922-gnumake-4.4.1.drv", + "derivation": "/nix/store/k8zf9n1v4hwky8xq8k83rxh7lrxwy630-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:13:07.326509Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.829543Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -404,10 +382,10 @@ "out" ], "outputs": { - "doc": "/nix/store/s9y438l347nky6rkl1wfk2y3b0d9i636-gnumake-4.4.1-doc", - "info": "/nix/store/apljbm6plyajbfrnwif0a2d4nx6w0cpf-gnumake-4.4.1-info", - "man": "/nix/store/m2ba4bwmfgh994xbg1iqm6zj1mdrq8h7-gnumake-4.4.1-man", - "out": "/nix/store/60y2hs45l18g56ykw9789b5vhhi2ls5q-gnumake-4.4.1" + "doc": "/nix/store/3b9cjf16jx4ncpp3b4k6m8q01nxsrw1n-gnumake-4.4.1-doc", + "info": "/nix/store/rriz5p4q8a6sca7sw3p3js1m5dl09ia8-gnumake-4.4.1-info", + "man": "/nix/store/wb4yn3d7vmi1hr4f8pz38rjvcl7f70ma-gnumake-4.4.1-man", + "out": "/nix/store/0bg5b97b9hbhz8907bfcrch1i116xppa-gnumake-4.4.1" }, "system": "x86_64-darwin", "group": "toplevel", @@ -416,19 +394,18 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/071w65kmbjhwpx84fcg8xl2adw38321p-gnumake-4.4.1.drv", + "derivation": "/nix/store/ppc7b3wjgk81bxnls18vjflgw70wxss4-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:47:06.754965Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:26.701509Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -436,17 +413,14 @@ "version": "4.4.1", "outputs_to_install": [ "man", - "out", - "out", - "out", "out" ], "outputs": { - "debug": "/nix/store/q683z843wi7xs96pngh1kinnx88vn2if-gnumake-4.4.1-debug", - "doc": "/nix/store/wxg27bzsljjw4k72m9b2v6a0fx5a68s0-gnumake-4.4.1-doc", - "info": "/nix/store/03d41qgjsrhcr3fzq2z99ry07rahnj0v-gnumake-4.4.1-info", - "man": "/nix/store/bmvqa5ym318mymhxlwwmxq8wxal958p4-gnumake-4.4.1-man", - "out": "/nix/store/d3bwqm6bymhy3pdgbvf7vxjqfp31m3j1-gnumake-4.4.1" + "debug": "/nix/store/054b9sxxzph2fbwmj45njf1rspjifaz6-gnumake-4.4.1-debug", + "doc": "/nix/store/c2skg22md4ablx0qfcrsh7vpad31zgyx-gnumake-4.4.1-doc", + "info": "/nix/store/6mifiq9cp2bsg9ghkhifrvlmip7z3147-gnumake-4.4.1-info", + "man": "/nix/store/arjpl2nnq7khwfhy16qphyxxg924apy1-gnumake-4.4.1-man", + "out": "/nix/store/k9ybsvscqk4lhz5ndc1ap9800im1cry1-gnumake-4.4.1" }, "system": "x86_64-linux", "group": "toplevel", @@ -455,31 +429,29 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/kgn5s9g8931mp6zr2405xf56ac67g8nd-gnutar-1.35.drv", + "derivation": "/nix/store/xczzf9n70psj6lrpm5pmv2cgmv1zb19r-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:13:14.978577Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.226588Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/lfn1823f7k3iaar3088ag3vkk3g8mf46-gnutar-1.35-info", - "out": "/nix/store/3aikbnf5fq99gvw1wb242wrjnbj7fcr9-gnutar-1.35" + "info": "/nix/store/zzm2iycbpgdv23aibi06z0akdi43rhnx-gnutar-1.35-info", + "out": "/nix/store/prip7nslhk7b9hfws6y5y9lzfxjskanv-gnutar-1.35" }, "system": "aarch64-darwin", "group": "toplevel", @@ -488,19 +460,18 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/0ziszqicmni1vpc6jbjc5wb0r6i0q96n-gnutar-1.35.drv", + "derivation": "/nix/store/lw1g8qxvdmrdphq1cv5yb50j98m2v1xm-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:44:10.521978Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:23.894623Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -511,8 +482,8 @@ "out" ], "outputs": { - "info": "/nix/store/isnpsk3kgnlfv3gs1j9vn75cx6pw015a-gnutar-1.35-info", - "out": "/nix/store/lg4p75b1g1ncr0xf20qpyc96pikpg1sp-gnutar-1.35" + "info": "/nix/store/q9bv4apsdh5wlqv0ga7lr9i22iv6978z-gnutar-1.35-info", + "out": "/nix/store/r4c3r48fn312jmjls34nwz41b9y4xsvs-gnutar-1.35" }, "system": "aarch64-linux", "group": "toplevel", @@ -521,31 +492,29 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/97d4fnlvxj5j9jvk2m2cm17f16lnkv95-gnutar-1.35.drv", + "derivation": "/nix/store/smwpwzpldpah35vkwjgkmnh2yrwl0mh2-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:13:07.335236Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.837913Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", "out" ], "outputs": { - "info": "/nix/store/5hp160w6ljh6psaqqbdjasni456g0bf8-gnutar-1.35-info", - "out": "/nix/store/9z132234zlrg0fgmsychpi86a762mmwi-gnutar-1.35" + "info": "/nix/store/z68xf85yapz8rjzk7spnx09cf7cyngr5-gnutar-1.35-info", + "out": "/nix/store/s2z5cn0gikvb2x352nizvlwpmv18jh9k-gnutar-1.35" }, "system": "x86_64-darwin", "group": "toplevel", @@ -554,34 +523,30 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/jzkck68swh3lzwj2hjw4sxwrhvgrpjn6-gnutar-1.35.drv", + "derivation": "/nix/store/45ynwydadvp0xmsy1bkag7lp2zysy1jc-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:47:06.770538Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:26.716276Z", "stabilities": [ - "stable", "staging", "unstable" ], "unfree": false, "version": "1.35", "outputs_to_install": [ - "out", - "out", - "out", "out", "out" ], "outputs": { - "info": "/nix/store/mrvcwlivqq2nr2anqq9ap4wdhflk52lm-gnutar-1.35-info", - "out": "/nix/store/55nbxpjrgrrsplq739z1z8n05h16cgsq-gnutar-1.35" + "info": "/nix/store/avcnv3j0l6lwsffrihbhj84pgy11yqj3-gnutar-1.35-info", + "out": "/nix/store/1j461raj6r4hihrq9j6alrddmx837fzs-gnutar-1.35" }, "system": "x86_64-linux", "group": "toplevel", @@ -590,19 +555,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/jsk66asqq2wnckkllv9sm1y94mxl0asm-gum-0.17.0.drv", + "derivation": "/nix/store/ncv12x2sfb3pnxc4z7rlspgc0vf0zvbc-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gum-0.17.0", "pname": "gum", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:13:15.222283Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.472327Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -612,7 +576,7 @@ "out" ], "outputs": { - "out": "/nix/store/6jb5frkadampkcmbjynch118cc4smzfj-gum-0.17.0" + "out": "/nix/store/55h6jsvhnhilka36s9jkld0k0d55c174-gum-0.17.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -621,19 +585,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/2nqf2anq5klv1xf66jgz1gm8xrdid4ax-gum-0.17.0.drv", + "derivation": "/nix/store/4lqcj3v44pcscjmnjip8ggm99hrpilxr-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gum-0.17.0", "pname": "gum", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T03:44:10.917697Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:24.298504Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -643,7 +606,7 @@ "out" ], "outputs": { - "out": "/nix/store/8p8fi8pl4lb776q2gnby3rd3mcbj5grh-gum-0.17.0" + "out": "/nix/store/51vn4xsrgzfl9g3s00byydpx6jgjgrnd-gum-0.17.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -652,19 +615,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/ib5kcnql661slkgn223m5c17g6b9ala3-gum-0.17.0.drv", + "derivation": "/nix/store/w01nbfjmxqjr3w9sycd0jliiamnljij2-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gum-0.17.0", "pname": "gum", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:13:07.576990Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:02.122815Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -674,7 +636,7 @@ "out" ], "outputs": { - "out": "/nix/store/n20dhdnibsqb890jvwhyw4xd3qqkazly-gum-0.17.0" + "out": "/nix/store/m2wks8knnsfgjl0ikhbi0vv7bqn53385-gum-0.17.0" }, "system": "x86_64-darwin", "group": "toplevel", @@ -683,19 +645,18 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/isk54hr8s4cw8z3yiksk07yi1bzfmamh-gum-0.17.0.drv", + "derivation": "/nix/store/468b0lgb2p00hyfj24xb44yj24r33hy4-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=567a49d1913ce81ac6e9582e3553dd90a955875f", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", "name": "gum-0.17.0", "pname": "gum", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "rev_count": 1017464, - "rev_date": "2026-06-16T02:33:49Z", - "scrape_date": "2026-06-17T04:47:07.206266Z", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:27.139900Z", "stabilities": [ - "stable", "staging", "unstable" ], @@ -705,7 +666,7 @@ "out" ], "outputs": { - "out": "/nix/store/2ii7sbkq44zrkv4iv6g7bqi47m4ch28b-gum-0.17.0" + "out": "/nix/store/w3h6fxv7jmapwcm3rxxwp83q16rnskm2-gum-0.17.0" }, "system": "x86_64-linux", "group": "toplevel", diff --git a/flox-environments/common/.flox/env/manifest.toml b/flox-environments/common/.flox/env/manifest.toml index c8a93ef3a27..6eac7c53e33 100644 --- a/flox-environments/common/.flox/env/manifest.toml +++ b/flox-environments/common/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.11.0" +schema-version = "1.13.0" [install] # Utilities @@ -17,5 +17,3 @@ ALIGN="center" WIDTH="50" MARGIN="1 2" PADDING="1 2" - -[profile] diff --git a/flox-environments/helm/.flox/env/manifest.lock b/flox-environments/helm/.flox/env/manifest.lock index acc8cf9be4b..a91dbf286f8 100644 --- a/flox-environments/helm/.flox/env/manifest.lock +++ b/flox-environments/helm/.flox/env/manifest.lock @@ -19,8 +19,6 @@ "version": "4.2.3" } }, - "hook": {}, - "profile": {}, "options": { "systems": [ "aarch64-darwin", diff --git a/flox-environments/helm/.flox/env/manifest.toml b/flox-environments/helm/.flox/env/manifest.toml index 9745397767a..6144fa72d9a 100644 --- a/flox-environments/helm/.flox/env/manifest.toml +++ b/flox-environments/helm/.flox/env/manifest.toml @@ -1,91 +1,11 @@ schema-version = "1.13.0" -## Install Packages -------------------------------------------------- -## $ flox install gum <- puts a package in [install] section below -## $ flox search gum <- search for a package -## $ flox show gum <- show all versions of a package -## ------------------------------------------------------------------- [install] kubernetes-helm = { pkg-path = "kubernetes-helm", version = "4.2.3", pkg-group = "kubernetes-helm" } helm-docs = { pkg-path = "helm-docs", version = "1.14.2", pkg-group = "helm-docs" } kubeconform = { pkg-path = "kubeconform", version = "0.6.7", pkg-group = "kubeconform" } -# gum.pkg-path = "gum" -# gum.version = "^0.14.5" - -## Environment Variables --------------------------------------------- -## ... available for use in the activated environment -## as well as [hook], [profile] scripts and [services] below. -## ------------------------------------------------------------------- -[vars] -# INTRO_MESSAGE = "It's gettin' Flox in here" - - -## Activation Hook --------------------------------------------------- -## ... run by _bash_ shell when you run 'flox activate'. -## ------------------------------------------------------------------- -[hook] -# on-activate = ''' -# # -> Set variables, create files and directories -# # -> Perform initialization steps, e.g. create a python venv -# # -> Useful environment variables: -# # - FLOX_ENV_PROJECT=/home/user/example -# # - FLOX_ENV=/home/user/example/.flox/run -# # - FLOX_ENV_CACHE=/home/user/example/.flox/cache -# ''' - - -## Profile script ---------------------------------------------------- -## ... sourced by _your shell_ when you run 'flox activate'. -## ------------------------------------------------------------------- -[profile] -# common = ''' -# gum style \ -# --foreground 212 --border-foreground 212 --border double \ -# --align center --width 50 --margin "1 2" --padding "2 4" \ -# $INTRO_MESSAGE -# ''' -## Shell-specific customizations such as setting aliases go here: -# bash = ... -# zsh = ... -# fish = ... - - -## Services --------------------------------------------------------- -## $ flox services start <- Starts all services -## $ flox services status <- Status of running services -## $ flox activate --start-services <- Activates & starts all -## ------------------------------------------------------------------ -[services] -# myservice.command = "python3 -m http.server" - - -## Include ---------------------------------------------------------- -## ... environments to create a composed environment -## ------------------------------------------------------------------ -[include] -# environments = [ -# { dir = "../common" } -# ] - - -## Build and publish your own packages ------------------------------ -## $ flox build -## $ flox publish -## ------------------------------------------------------------------ -[build] -# [build.myproject] -# description = "The coolest project ever" -# version = "0.0.1" -# command = """ -# mkdir -p $out/bin -# cargo build --release -# cp target/release/myproject $out/bin/myproject -# """ - - -## Other Environment Options ----------------------------------------- [options] # Systems that environment is compatible with systems = [ @@ -93,5 +13,3 @@ systems = [ "aarch64-linux", "x86_64-linux", ] -# Uncomment to disable CUDA detection. -# cuda-detection = false diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.lock b/flox-environments/open-policy-agent/.flox/env/manifest.lock index 664d438d1de..4d8682baf54 100644 --- a/flox-environments/open-policy-agent/.flox/env/manifest.lock +++ b/flox-environments/open-policy-agent/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "open-policy-agent": { "pkg-path": "open-policy-agent", diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.toml b/flox-environments/open-policy-agent/.flox/env/manifest.toml index 9331ae20a63..7ef7656a83f 100644 --- a/flox-environments/open-policy-agent/.flox/env/manifest.toml +++ b/flox-environments/open-policy-agent/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.11.0" +schema-version = "1.13.0" [install] open-policy-agent = { pkg-path = "open-policy-agent", version = "1.8.0", pkg-group = "open-policy-agent" } diff --git a/flox-environments/osv-scanner/.flox/env/manifest.lock b/flox-environments/osv-scanner/.flox/env/manifest.lock index 838e433160f..465f217c244 100644 --- a/flox-environments/osv-scanner/.flox/env/manifest.lock +++ b/flox-environments/osv-scanner/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "osv-scanner": { "pkg-path": "osv-scanner", diff --git a/flox-environments/osv-scanner/.flox/env/manifest.toml b/flox-environments/osv-scanner/.flox/env/manifest.toml index c3b6f979b1f..2cb79cd200e 100644 --- a/flox-environments/osv-scanner/.flox/env/manifest.toml +++ b/flox-environments/osv-scanner/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.11.0" +schema-version = "1.13.0" [install] osv-scanner = { pkg-path = "osv-scanner", version = "2.3.3", pkg-group = "osv-scanner" } diff --git a/flox-environments/python/.flox/env/manifest.lock b/flox-environments/python/.flox/env/manifest.lock index e9e79ee7949..1955cb5e6ab 100644 --- a/flox-environments/python/.flox/env/manifest.lock +++ b/flox-environments/python/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "uv": { "pkg-path": "uv", diff --git a/flox-environments/python/.flox/env/manifest.toml b/flox-environments/python/.flox/env/manifest.toml index 2de757e7ed9..dab93a67cc6 100644 --- a/flox-environments/python/.flox/env/manifest.toml +++ b/flox-environments/python/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.11.0" +schema-version = "1.13.0" [install] uv = { pkg-path = "uv", version = ">=0.9.14,<0.10.0", pkg-group = "uv" } diff --git a/flox-environments/web/.flox/env/manifest.lock b/flox-environments/web/.flox/env/manifest.lock index 568ba84f4e5..e60a7f61144 100644 --- a/flox-environments/web/.flox/env/manifest.lock +++ b/flox-environments/web/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.11.0", + "schema-version": "1.13.0", "install": { "fnm": { "pkg-path": "fnm", diff --git a/flox-environments/web/.flox/env/manifest.toml b/flox-environments/web/.flox/env/manifest.toml index 1ca2f294449..93844b8c122 100644 --- a/flox-environments/web/.flox/env/manifest.toml +++ b/flox-environments/web/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.11.0" +schema-version = "1.13.0" [install] fnm = { pkg-path = "fnm", pkg-group = "node" } From a79f851746eee05a7089c1672c6630afa7db46fb Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Fri, 31 Jul 2026 16:06:13 -0500 Subject: [PATCH 03/17] fix: add shell version of uv version check Signed-off-by: Philip Mattingly --- .flox/env/manifest.lock | 93 +++++++++++++ .pre-commit-config.yaml | 2 +- .../common/.flox/env/manifest.lock | 123 ++++++++++++++++++ .../common/.flox/env/manifest.toml | 1 + tools/lint/check-uv-version.sh | 9 +- 5 files changed, 226 insertions(+), 2 deletions(-) mode change 100644 => 100755 tools/lint/check-uv-version.sh diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index c24bfc6efc6..8ef36b8a3c5 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -61,6 +61,9 @@ "pkg-path": "uv", "pkg-group": "uv", "version": ">=0.9.14,<0.10.0" + }, + "yq-go": { + "pkg-path": "yq-go" } }, "vars": { @@ -1280,6 +1283,93 @@ "group": "toplevel", "priority": 5 }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/7jf0hnzazabbvjzr0f3jgh1wg5mvg6a8-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T04:57:25.210210Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0vsha68zmnrysjsy3szkpvscqkm2qplp-yq-go-4.53.3" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/zg6h49xz37iaknldifh670s28yrcdfdd-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T05:28:14.919088Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/wflw43nbb0jb7ddncklryi3yx0ai7cgf-yq-go-4.53.3" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/6jmjvygi3yk6mqwd0nk1jfi2iadfrzbb-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "rev_count": 1043649, + "rev_date": "2026-07-29T09:51:10Z", + "scrape_date": "2026-07-30T06:02:13.727121Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mr1a1d7yzvg7x8vc11gj3cfiykr8wjx3-yq-go-4.53.3" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, { "attr_path": "uv", "broken": false, @@ -1423,6 +1513,9 @@ }, "gum": { "pkg-path": "gum" + }, + "yq-go": { + "pkg-path": "yq-go" } }, "vars": { diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 16ed38364d2..837c7c9154b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -98,7 +98,7 @@ repos: verbose: true - id: uv-version-constraint name: Check uv version constraints - entry: python3 tools/lint/check_uv_version.py + entry: ./tools/lint/check-uv-version.sh language: system files: '^(pyproject\.toml|flox-environments/python/\.flox/env/manifest\.toml)$' pass_filenames: false diff --git a/flox-environments/common/.flox/env/manifest.lock b/flox-environments/common/.flox/env/manifest.lock index e34ab4f3bcd..5c23fa45976 100644 --- a/flox-environments/common/.flox/env/manifest.lock +++ b/flox-environments/common/.flox/env/manifest.lock @@ -17,6 +17,9 @@ }, "gum": { "pkg-path": "gum" + }, + "yq-go": { + "pkg-path": "yq-go" } }, "vars": { @@ -671,6 +674,126 @@ "system": "x86_64-linux", "group": "toplevel", "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/fizkq87xqlj4yicyxm2610qqirk29gx6-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:15:55.233322Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/lpf51yzqr105clhg4c4vyn2blyai4axn-yq-go-4.53.3" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/89zhpxra3dajdv5g4mi9pkf26kvff87l-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:45:10.000608Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/hnn92zxywj73282qrq31ha89drv13244-yq-go-4.53.3" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/ic6w08gsq6fhl16368y1qgpzqvhwx3if-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:12:44.816982Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/agf9fyr053m3092vsmh6vih3apz0kw05-yq-go-4.53.3" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/jfa3lz2rbba3mrnvaz0l660han5gd0xy-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:44:33.209955Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/sky6728rldnq9yzvljy25d1l6k7y1saj-yq-go-4.53.3" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 } ] } diff --git a/flox-environments/common/.flox/env/manifest.toml b/flox-environments/common/.flox/env/manifest.toml index 6eac7c53e33..4b8f2245f37 100644 --- a/flox-environments/common/.flox/env/manifest.toml +++ b/flox-environments/common/.flox/env/manifest.toml @@ -7,6 +7,7 @@ gnutar.pkg-path = "gnutar" gum.pkg-path = "gum" findutils.pkg-path = "findutils" diffutils.pkg-path = "diffutils" +yq-go.pkg-path = "yq-go" [vars] GUM_LOG_MESSAGE_FOREGROUND="514" diff --git a/tools/lint/check-uv-version.sh b/tools/lint/check-uv-version.sh old mode 100644 new mode 100755 index 2ebbc56718b..c8a26de800c --- a/tools/lint/check-uv-version.sh +++ b/tools/lint/check-uv-version.sh @@ -4,4 +4,11 @@ set -euo pipefail -python3 tools/lint/check_uv_version.py +_python_ver="$(yq '.tool.uv.required-version' pyproject.toml)" +_flox_ver="$(yq '.install.uv.version' flox-environments/python/.flox/env/manifest.toml)" + +if [[ "${_python_ver}" != "${_flox_ver}" ]]; then + printf "uv version constraints differ:\n\n" + printf "pyproject.toml flox-env\n%s %s\n" "${_python_ver}" "${_flox_ver}" | column -t + exit 1 +fi From 020a2fc8d999141500db7f2779723734b41cfbf9 Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Fri, 31 Jul 2026 16:13:22 -0500 Subject: [PATCH 04/17] refactor(flox): remove top level flox dir. move to tools Signed-off-by: Philip Mattingly --- {flox-environments => tools}/actionlint/.flox/.gitattributes | 0 {flox-environments => tools}/actionlint/.flox/.gitignore | 0 {flox-environments => tools}/actionlint/.flox/env.json | 0 {flox-environments => tools}/actionlint/.flox/env/manifest.lock | 0 {flox-environments => tools}/actionlint/.flox/env/manifest.toml | 0 {flox-environments => tools}/common/.flox/.gitattributes | 0 {flox-environments => tools}/common/.flox/.gitignore | 0 {flox-environments => tools}/common/.flox/env.json | 0 {flox-environments => tools}/common/.flox/env/manifest.lock | 0 {flox-environments => tools}/common/.flox/env/manifest.toml | 0 {flox-environments => tools}/helm/.flox/.gitattributes | 0 {flox-environments => tools}/helm/.flox/.gitignore | 0 {flox-environments => tools}/helm/.flox/env.json | 0 {flox-environments => tools}/helm/.flox/env/manifest.lock | 0 {flox-environments => tools}/helm/.flox/env/manifest.toml | 0 .../open-policy-agent/.flox/.gitattributes | 0 {flox-environments => tools}/open-policy-agent/.flox/.gitignore | 0 {flox-environments => tools}/open-policy-agent/.flox/env.json | 0 .../open-policy-agent/.flox/env/manifest.lock | 0 .../open-policy-agent/.flox/env/manifest.toml | 0 {flox-environments => tools}/osv-scanner/.flox/.gitattributes | 0 {flox-environments => tools}/osv-scanner/.flox/.gitignore | 0 {flox-environments => tools}/osv-scanner/.flox/env.json | 0 {flox-environments => tools}/osv-scanner/.flox/env/manifest.lock | 0 {flox-environments => tools}/osv-scanner/.flox/env/manifest.toml | 0 {flox-environments => tools}/python/.flox/.gitattributes | 0 {flox-environments => tools}/python/.flox/.gitignore | 0 {flox-environments => tools}/python/.flox/env.json | 0 {flox-environments => tools}/python/.flox/env/manifest.lock | 0 {flox-environments => tools}/python/.flox/env/manifest.toml | 0 {flox-environments => tools}/web/.flox/.gitattributes | 0 {flox-environments => tools}/web/.flox/.gitignore | 0 {flox-environments => tools}/web/.flox/env.json | 0 {flox-environments => tools}/web/.flox/env/manifest.lock | 0 {flox-environments => tools}/web/.flox/env/manifest.toml | 0 35 files changed, 0 insertions(+), 0 deletions(-) rename {flox-environments => tools}/actionlint/.flox/.gitattributes (100%) rename {flox-environments => tools}/actionlint/.flox/.gitignore (100%) rename {flox-environments => tools}/actionlint/.flox/env.json (100%) rename {flox-environments => tools}/actionlint/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/actionlint/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/common/.flox/.gitattributes (100%) rename {flox-environments => tools}/common/.flox/.gitignore (100%) rename {flox-environments => tools}/common/.flox/env.json (100%) rename {flox-environments => tools}/common/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/common/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/helm/.flox/.gitattributes (100%) rename {flox-environments => tools}/helm/.flox/.gitignore (100%) rename {flox-environments => tools}/helm/.flox/env.json (100%) rename {flox-environments => tools}/helm/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/helm/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/open-policy-agent/.flox/.gitattributes (100%) rename {flox-environments => tools}/open-policy-agent/.flox/.gitignore (100%) rename {flox-environments => tools}/open-policy-agent/.flox/env.json (100%) rename {flox-environments => tools}/open-policy-agent/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/open-policy-agent/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/osv-scanner/.flox/.gitattributes (100%) rename {flox-environments => tools}/osv-scanner/.flox/.gitignore (100%) rename {flox-environments => tools}/osv-scanner/.flox/env.json (100%) rename {flox-environments => tools}/osv-scanner/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/osv-scanner/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/python/.flox/.gitattributes (100%) rename {flox-environments => tools}/python/.flox/.gitignore (100%) rename {flox-environments => tools}/python/.flox/env.json (100%) rename {flox-environments => tools}/python/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/python/.flox/env/manifest.toml (100%) rename {flox-environments => tools}/web/.flox/.gitattributes (100%) rename {flox-environments => tools}/web/.flox/.gitignore (100%) rename {flox-environments => tools}/web/.flox/env.json (100%) rename {flox-environments => tools}/web/.flox/env/manifest.lock (100%) rename {flox-environments => tools}/web/.flox/env/manifest.toml (100%) diff --git a/flox-environments/actionlint/.flox/.gitattributes b/tools/actionlint/.flox/.gitattributes similarity index 100% rename from flox-environments/actionlint/.flox/.gitattributes rename to tools/actionlint/.flox/.gitattributes diff --git a/flox-environments/actionlint/.flox/.gitignore b/tools/actionlint/.flox/.gitignore similarity index 100% rename from flox-environments/actionlint/.flox/.gitignore rename to tools/actionlint/.flox/.gitignore diff --git a/flox-environments/actionlint/.flox/env.json b/tools/actionlint/.flox/env.json similarity index 100% rename from flox-environments/actionlint/.flox/env.json rename to tools/actionlint/.flox/env.json diff --git a/flox-environments/actionlint/.flox/env/manifest.lock b/tools/actionlint/.flox/env/manifest.lock similarity index 100% rename from flox-environments/actionlint/.flox/env/manifest.lock rename to tools/actionlint/.flox/env/manifest.lock diff --git a/flox-environments/actionlint/.flox/env/manifest.toml b/tools/actionlint/.flox/env/manifest.toml similarity index 100% rename from flox-environments/actionlint/.flox/env/manifest.toml rename to tools/actionlint/.flox/env/manifest.toml diff --git a/flox-environments/common/.flox/.gitattributes b/tools/common/.flox/.gitattributes similarity index 100% rename from flox-environments/common/.flox/.gitattributes rename to tools/common/.flox/.gitattributes diff --git a/flox-environments/common/.flox/.gitignore b/tools/common/.flox/.gitignore similarity index 100% rename from flox-environments/common/.flox/.gitignore rename to tools/common/.flox/.gitignore diff --git a/flox-environments/common/.flox/env.json b/tools/common/.flox/env.json similarity index 100% rename from flox-environments/common/.flox/env.json rename to tools/common/.flox/env.json diff --git a/flox-environments/common/.flox/env/manifest.lock b/tools/common/.flox/env/manifest.lock similarity index 100% rename from flox-environments/common/.flox/env/manifest.lock rename to tools/common/.flox/env/manifest.lock diff --git a/flox-environments/common/.flox/env/manifest.toml b/tools/common/.flox/env/manifest.toml similarity index 100% rename from flox-environments/common/.flox/env/manifest.toml rename to tools/common/.flox/env/manifest.toml diff --git a/flox-environments/helm/.flox/.gitattributes b/tools/helm/.flox/.gitattributes similarity index 100% rename from flox-environments/helm/.flox/.gitattributes rename to tools/helm/.flox/.gitattributes diff --git a/flox-environments/helm/.flox/.gitignore b/tools/helm/.flox/.gitignore similarity index 100% rename from flox-environments/helm/.flox/.gitignore rename to tools/helm/.flox/.gitignore diff --git a/flox-environments/helm/.flox/env.json b/tools/helm/.flox/env.json similarity index 100% rename from flox-environments/helm/.flox/env.json rename to tools/helm/.flox/env.json diff --git a/flox-environments/helm/.flox/env/manifest.lock b/tools/helm/.flox/env/manifest.lock similarity index 100% rename from flox-environments/helm/.flox/env/manifest.lock rename to tools/helm/.flox/env/manifest.lock diff --git a/flox-environments/helm/.flox/env/manifest.toml b/tools/helm/.flox/env/manifest.toml similarity index 100% rename from flox-environments/helm/.flox/env/manifest.toml rename to tools/helm/.flox/env/manifest.toml diff --git a/flox-environments/open-policy-agent/.flox/.gitattributes b/tools/open-policy-agent/.flox/.gitattributes similarity index 100% rename from flox-environments/open-policy-agent/.flox/.gitattributes rename to tools/open-policy-agent/.flox/.gitattributes diff --git a/flox-environments/open-policy-agent/.flox/.gitignore b/tools/open-policy-agent/.flox/.gitignore similarity index 100% rename from flox-environments/open-policy-agent/.flox/.gitignore rename to tools/open-policy-agent/.flox/.gitignore diff --git a/flox-environments/open-policy-agent/.flox/env.json b/tools/open-policy-agent/.flox/env.json similarity index 100% rename from flox-environments/open-policy-agent/.flox/env.json rename to tools/open-policy-agent/.flox/env.json diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.lock b/tools/open-policy-agent/.flox/env/manifest.lock similarity index 100% rename from flox-environments/open-policy-agent/.flox/env/manifest.lock rename to tools/open-policy-agent/.flox/env/manifest.lock diff --git a/flox-environments/open-policy-agent/.flox/env/manifest.toml b/tools/open-policy-agent/.flox/env/manifest.toml similarity index 100% rename from flox-environments/open-policy-agent/.flox/env/manifest.toml rename to tools/open-policy-agent/.flox/env/manifest.toml diff --git a/flox-environments/osv-scanner/.flox/.gitattributes b/tools/osv-scanner/.flox/.gitattributes similarity index 100% rename from flox-environments/osv-scanner/.flox/.gitattributes rename to tools/osv-scanner/.flox/.gitattributes diff --git a/flox-environments/osv-scanner/.flox/.gitignore b/tools/osv-scanner/.flox/.gitignore similarity index 100% rename from flox-environments/osv-scanner/.flox/.gitignore rename to tools/osv-scanner/.flox/.gitignore diff --git a/flox-environments/osv-scanner/.flox/env.json b/tools/osv-scanner/.flox/env.json similarity index 100% rename from flox-environments/osv-scanner/.flox/env.json rename to tools/osv-scanner/.flox/env.json diff --git a/flox-environments/osv-scanner/.flox/env/manifest.lock b/tools/osv-scanner/.flox/env/manifest.lock similarity index 100% rename from flox-environments/osv-scanner/.flox/env/manifest.lock rename to tools/osv-scanner/.flox/env/manifest.lock diff --git a/flox-environments/osv-scanner/.flox/env/manifest.toml b/tools/osv-scanner/.flox/env/manifest.toml similarity index 100% rename from flox-environments/osv-scanner/.flox/env/manifest.toml rename to tools/osv-scanner/.flox/env/manifest.toml diff --git a/flox-environments/python/.flox/.gitattributes b/tools/python/.flox/.gitattributes similarity index 100% rename from flox-environments/python/.flox/.gitattributes rename to tools/python/.flox/.gitattributes diff --git a/flox-environments/python/.flox/.gitignore b/tools/python/.flox/.gitignore similarity index 100% rename from flox-environments/python/.flox/.gitignore rename to tools/python/.flox/.gitignore diff --git a/flox-environments/python/.flox/env.json b/tools/python/.flox/env.json similarity index 100% rename from flox-environments/python/.flox/env.json rename to tools/python/.flox/env.json diff --git a/flox-environments/python/.flox/env/manifest.lock b/tools/python/.flox/env/manifest.lock similarity index 100% rename from flox-environments/python/.flox/env/manifest.lock rename to tools/python/.flox/env/manifest.lock diff --git a/flox-environments/python/.flox/env/manifest.toml b/tools/python/.flox/env/manifest.toml similarity index 100% rename from flox-environments/python/.flox/env/manifest.toml rename to tools/python/.flox/env/manifest.toml diff --git a/flox-environments/web/.flox/.gitattributes b/tools/web/.flox/.gitattributes similarity index 100% rename from flox-environments/web/.flox/.gitattributes rename to tools/web/.flox/.gitattributes diff --git a/flox-environments/web/.flox/.gitignore b/tools/web/.flox/.gitignore similarity index 100% rename from flox-environments/web/.flox/.gitignore rename to tools/web/.flox/.gitignore diff --git a/flox-environments/web/.flox/env.json b/tools/web/.flox/env.json similarity index 100% rename from flox-environments/web/.flox/env.json rename to tools/web/.flox/env.json diff --git a/flox-environments/web/.flox/env/manifest.lock b/tools/web/.flox/env/manifest.lock similarity index 100% rename from flox-environments/web/.flox/env/manifest.lock rename to tools/web/.flox/env/manifest.lock diff --git a/flox-environments/web/.flox/env/manifest.toml b/tools/web/.flox/env/manifest.toml similarity index 100% rename from flox-environments/web/.flox/env/manifest.toml rename to tools/web/.flox/env/manifest.toml From 4427dbf0103b1b854e4798c41e5945a893ede49e Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Fri, 31 Jul 2026 16:44:01 -0500 Subject: [PATCH 05/17] refactor(flox): update flox env path refs Signed-off-by: Philip Mattingly --- .flox/env/manifest.lock | 28 +++++++++---------- .flox/env/manifest.toml | 14 +++++----- .github/actions/build-policy-wasm/action.yaml | 2 +- .github/actions/changes/action.yaml | 10 +++---- .github/workflows/ci.yaml | 6 ++-- .pre-commit-config.yaml | 4 +-- tools/lint/check-uv-version.sh | 2 +- tools/lint/check_uv_version.py | 4 +-- 8 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 8ef36b8a3c5..915696e7701 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -1471,25 +1471,25 @@ "include": { "environments": [ { - "dir": "flox-environments/common" + "dir": "tools/common" }, { - "dir": "flox-environments/helm" + "dir": "tools/helm" }, { - "dir": "flox-environments/actionlint" + "dir": "tools/actionlint" }, { - "dir": "flox-environments/python" + "dir": "tools/python" }, { - "dir": "flox-environments/web" + "dir": "tools/web" }, { - "dir": "flox-environments/osv-scanner" + "dir": "tools/osv-scanner" }, { - "dir": "flox-environments/open-policy-agent" + "dir": "tools/open-policy-agent" } ] } @@ -1532,7 +1532,7 @@ }, "name": "common", "descriptor": { - "dir": "flox-environments/common" + "dir": "tools/common" } }, { @@ -1565,7 +1565,7 @@ }, "name": "helm", "descriptor": { - "dir": "flox-environments/helm" + "dir": "tools/helm" } }, { @@ -1587,7 +1587,7 @@ }, "name": "actionlint", "descriptor": { - "dir": "flox-environments/actionlint" + "dir": "tools/actionlint" } }, { @@ -1619,7 +1619,7 @@ }, "name": "nemo-platform-python", "descriptor": { - "dir": "flox-environments/python" + "dir": "tools/python" } }, { @@ -1648,7 +1648,7 @@ }, "name": "nemo-platform-nodejs", "descriptor": { - "dir": "flox-environments/web" + "dir": "tools/web" } }, { @@ -1665,7 +1665,7 @@ }, "name": "osv-scanner", "descriptor": { - "dir": "flox-environments/osv-scanner" + "dir": "tools/osv-scanner" } }, { @@ -1682,7 +1682,7 @@ }, "name": "open-policy-agent", "descriptor": { - "dir": "flox-environments/open-policy-agent" + "dir": "tools/open-policy-agent" } } ], diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index a8c617b4ec8..cddc1c439d2 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -9,11 +9,11 @@ common = ''' [include] environments = [ - { dir = "flox-environments/common" }, - { dir = "flox-environments/helm" }, - { dir = "flox-environments/actionlint" }, - { dir = "flox-environments/python" }, - { dir = "flox-environments/web" }, - { dir = "flox-environments/osv-scanner" }, - { dir = "flox-environments/open-policy-agent" }, + { dir = "tools/common" }, + { dir = "tools/helm" }, + { dir = "tools/actionlint" }, + { dir = "tools/python" }, + { dir = "tools/web" }, + { dir = "tools/osv-scanner" }, + { dir = "tools/open-policy-agent" }, ] diff --git a/.github/actions/build-policy-wasm/action.yaml b/.github/actions/build-policy-wasm/action.yaml index bacf52f9e62..f41d59d2935 100644 --- a/.github/actions/build-policy-wasm/action.yaml +++ b/.github/actions/build-policy-wasm/action.yaml @@ -15,5 +15,5 @@ runs: - name: Build policy WASM uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 with: - dir: ./flox-environments/open-policy-agent + dir: ./tools/open-policy-agent command: ./script/build_policy_wasm.sh diff --git a/.github/actions/changes/action.yaml b/.github/actions/changes/action.yaml index 067544237b2..7bbeb77f1a0 100644 --- a/.github/actions/changes/action.yaml +++ b/.github/actions/changes/action.yaml @@ -90,9 +90,9 @@ runs: - 'uv.lock' - '.pre-commit-config.yaml' - '.flox/**' - - 'flox-environments/common/**' - - 'flox-environments/osv-scanner/**' - - 'flox-environments/python/**' + - 'tools/common/**' + - 'tools/osv-scanner/**' + - 'tools/python/**' fabric: - 'packages/nemo_evaluator_sdk/src/nemo_evaluator_sdk/agent_eval/runtimes/fabric/**' - 'packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_*.py' @@ -109,7 +109,7 @@ runs: web-studio: - 'web/**' - '.nvmrc' - - 'flox-environments/web/**' + - 'tools/web/**' docker: - 'docker-bake.hcl' - 'docker/**' @@ -120,7 +120,7 @@ runs: helm: - 'k8s/**' - 'tools/lint/lint-helm.sh' - - 'flox-environments/helm/**' + - 'tools/helm/**' - '.github/workflows/ci.yaml' - '.github/actions/changes/action.yaml' - '.pre-commit-config.yaml' diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 84b232fb930..2c81fe5216d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -77,7 +77,7 @@ jobs: - name: Lint GitHub workflows and actions uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 with: - dir: ./flox-environments/actionlint + dir: ./tools/actionlint command: actionlint ngc-metadata-test: @@ -601,7 +601,7 @@ jobs: - name: Lint and validate Helm chart uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 with: - dir: ./flox-environments/helm + dir: ./tools/helm command: tools/lint/lint-helm.sh - name: Upload Helm lint artifacts if: failure() @@ -1898,7 +1898,7 @@ jobs: - name: Policy Test uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 with: - dir: ./flox-environments/open-policy-agent + dir: ./tools/open-policy-agent command: | opa test services/core/auth/src/nmp/core/auth/app/policies services/core/auth/src/nmp/core/auth/app/policy_tests services/core/auth/src/nmp/core/auth/assets/static-authz.yaml -v diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 837c7c9154b..c82f912f750 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -100,7 +100,7 @@ repos: name: Check uv version constraints entry: ./tools/lint/check-uv-version.sh language: system - files: '^(pyproject\.toml|flox-environments/python/\.flox/env/manifest\.toml)$' + files: '^(pyproject\.toml|tools/python/\.flox/env/manifest\.toml)$' pass_filenames: false - id: copyright-fix name: Fix copyright headers @@ -163,6 +163,6 @@ repos: bash -c 'set -e flox include upgrade 2>/dev/null' language: system - files: '(^\.flox/env/manifest\.toml$|^flox-environments/[^/]+/\.flox/env/manifest\.toml$)' + files: '(^\.flox/env/manifest\.toml$|^tools/[^/]+/\.flox/env/manifest\.toml$)' pass_filenames: false stages: [pre-commit] diff --git a/tools/lint/check-uv-version.sh b/tools/lint/check-uv-version.sh index c8a26de800c..5cebe617074 100755 --- a/tools/lint/check-uv-version.sh +++ b/tools/lint/check-uv-version.sh @@ -5,7 +5,7 @@ set -euo pipefail _python_ver="$(yq '.tool.uv.required-version' pyproject.toml)" -_flox_ver="$(yq '.install.uv.version' flox-environments/python/.flox/env/manifest.toml)" +_flox_ver="$(yq '.install.uv.version' tools/python/.flox/env/manifest.toml)" if [[ "${_python_ver}" != "${_flox_ver}" ]]; then printf "uv version constraints differ:\n\n" diff --git a/tools/lint/check_uv_version.py b/tools/lint/check_uv_version.py index 664dcbd8ee5..53d9148afbc 100644 --- a/tools/lint/check_uv_version.py +++ b/tools/lint/check_uv_version.py @@ -11,7 +11,7 @@ PROJECT_ROOT = Path(__file__).resolve().parents[2] PYPROJECT_PATH = PROJECT_ROOT / "pyproject.toml" -FLOX_MANIFEST_PATH = PROJECT_ROOT / "flox-environments/python/.flox/env/manifest.toml" +FLOX_MANIFEST_PATH = PROJECT_ROOT / "tools/python/.flox/env/manifest.toml" def load_toml(path: Path) -> dict[str, object]: @@ -43,7 +43,7 @@ def main() -> int: print( "uv version constraints differ: " f"pyproject.toml has {pyproject_version!r}, while " - f"flox-environments/python/.flox/env/manifest.toml has {flox_version!r}", + f"tools/python/.flox/env/manifest.toml has {flox_version!r}", file=sys.stderr, ) return 1 From f01e22ab0907832dc25b034f737a8daf7ea2c016 Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Fri, 31 Jul 2026 16:52:23 -0500 Subject: [PATCH 06/17] refactor(flox): rename flox env from web to nodejs Signed-off-by: Philip Mattingly --- .flox/env/manifest.lock | 4 ++-- .flox/env/manifest.toml | 2 +- .github/actions/changes/action.yaml | 2 +- tools/{web => nodejs}/.flox/.gitattributes | 0 tools/{web => nodejs}/.flox/.gitignore | 0 tools/{web => nodejs}/.flox/env.json | 0 tools/{web => nodejs}/.flox/env/manifest.lock | 0 tools/{web => nodejs}/.flox/env/manifest.toml | 0 8 files changed, 4 insertions(+), 4 deletions(-) rename tools/{web => nodejs}/.flox/.gitattributes (100%) rename tools/{web => nodejs}/.flox/.gitignore (100%) rename tools/{web => nodejs}/.flox/env.json (100%) rename tools/{web => nodejs}/.flox/env/manifest.lock (100%) rename tools/{web => nodejs}/.flox/env/manifest.toml (100%) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 915696e7701..28c7f1bc735 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -1483,7 +1483,7 @@ "dir": "tools/python" }, { - "dir": "tools/web" + "dir": "tools/nodejs" }, { "dir": "tools/osv-scanner" @@ -1648,7 +1648,7 @@ }, "name": "nemo-platform-nodejs", "descriptor": { - "dir": "tools/web" + "dir": "tools/nodejs" } }, { diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index cddc1c439d2..14bfffa3d70 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -13,7 +13,7 @@ environments = [ { dir = "tools/helm" }, { dir = "tools/actionlint" }, { dir = "tools/python" }, - { dir = "tools/web" }, + { dir = "tools/nodejs" }, { dir = "tools/osv-scanner" }, { dir = "tools/open-policy-agent" }, ] diff --git a/.github/actions/changes/action.yaml b/.github/actions/changes/action.yaml index 7bbeb77f1a0..b5b111428a8 100644 --- a/.github/actions/changes/action.yaml +++ b/.github/actions/changes/action.yaml @@ -109,7 +109,7 @@ runs: web-studio: - 'web/**' - '.nvmrc' - - 'tools/web/**' + - 'tools/nodejs/**' docker: - 'docker-bake.hcl' - 'docker/**' diff --git a/tools/web/.flox/.gitattributes b/tools/nodejs/.flox/.gitattributes similarity index 100% rename from tools/web/.flox/.gitattributes rename to tools/nodejs/.flox/.gitattributes diff --git a/tools/web/.flox/.gitignore b/tools/nodejs/.flox/.gitignore similarity index 100% rename from tools/web/.flox/.gitignore rename to tools/nodejs/.flox/.gitignore diff --git a/tools/web/.flox/env.json b/tools/nodejs/.flox/env.json similarity index 100% rename from tools/web/.flox/env.json rename to tools/nodejs/.flox/env.json diff --git a/tools/web/.flox/env/manifest.lock b/tools/nodejs/.flox/env/manifest.lock similarity index 100% rename from tools/web/.flox/env/manifest.lock rename to tools/nodejs/.flox/env/manifest.lock diff --git a/tools/web/.flox/env/manifest.toml b/tools/nodejs/.flox/env/manifest.toml similarity index 100% rename from tools/web/.flox/env/manifest.toml rename to tools/nodejs/.flox/env/manifest.toml From 52fc2d39b94def15d819b1e77f2518a32ea05ccc Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Mon, 3 Aug 2026 13:59:35 -0500 Subject: [PATCH 07/17] ci: remove wasm composite, action is not reused, created lint flox env to pull in osv scanner from flox Signed-off-by: Philip Mattingly --- .github/actions/build-policy-wasm/action.yaml | 19 -- .github/workflows/ci.yaml | 24 ++- tools/lint/.flox/.gitattributes | 1 + tools/lint/.flox/.gitignore | 5 + tools/lint/.flox/env.json | 4 + tools/lint/.flox/env/manifest.lock | 169 ++++++++++++++++++ tools/lint/.flox/env/manifest.toml | 6 + 7 files changed, 203 insertions(+), 25 deletions(-) delete mode 100644 .github/actions/build-policy-wasm/action.yaml create mode 100644 tools/lint/.flox/.gitattributes create mode 100644 tools/lint/.flox/.gitignore create mode 100644 tools/lint/.flox/env.json create mode 100644 tools/lint/.flox/env/manifest.lock create mode 100644 tools/lint/.flox/env/manifest.toml diff --git a/.github/actions/build-policy-wasm/action.yaml b/.github/actions/build-policy-wasm/action.yaml deleted file mode 100644 index f41d59d2935..00000000000 --- a/.github/actions/build-policy-wasm/action.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: Build OPA policy WASM -description: > - Installs Flox, activates the OPA environment, and builds the authorization - policy WASM asset at - services/core/auth/src/nmp/core/auth/assets/policy.wasm. Assumes the - repository has already been checked out. - -runs: - using: composite - steps: - - name: Install Flox - uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 - with: - disable-metrics: "true" - - name: Build policy WASM - uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 - with: - dir: ./tools/open-policy-agent - command: ./script/build_policy_wasm.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2c81fe5216d..10c1d8bed2a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -755,6 +755,10 @@ jobs: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: @@ -773,14 +777,14 @@ jobs: - name: Install web dependencies working-directory: web run: pnpm install --frozen-lockfile - - name: Install scanner dependencies - shell: bash - run: script/install_osv_scanner.sh - name: Run Lint - run: tools/lint/lint-all.sh - shell: bash + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 env: CI_PROJECT_DIR: ${{ github.workspace }} + with: + dir: ./tools/lint + command: | + tools/lint/lint-all.sh - name: Upload lint artifacts if: failure() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -805,7 +809,15 @@ jobs: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - uses: ./.github/actions/build-policy-wasm + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" + - name: Build policy WASM + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./tools/open-policy-agent + command: ./script/build_policy_wasm.sh - name: Upload policy WASM uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: diff --git a/tools/lint/.flox/.gitattributes b/tools/lint/.flox/.gitattributes new file mode 100644 index 00000000000..bb5491e1923 --- /dev/null +++ b/tools/lint/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/tools/lint/.flox/.gitignore b/tools/lint/.flox/.gitignore new file mode 100644 index 00000000000..8d211868311 --- /dev/null +++ b/tools/lint/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/tools/lint/.flox/env.json b/tools/lint/.flox/env.json new file mode 100644 index 00000000000..ce23d9edb95 --- /dev/null +++ b/tools/lint/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "lint", + "version": 1 +} diff --git a/tools/lint/.flox/env/manifest.lock b/tools/lint/.flox/env/manifest.lock new file mode 100644 index 00000000000..2511d11a010 --- /dev/null +++ b/tools/lint/.flox/env/manifest.lock @@ -0,0 +1,169 @@ +{ + "lockfile-version": 1, + "manifest": { + "schema-version": "1.14.0", + "install": { + "osv-scanner": { + "pkg-path": "osv-scanner", + "pkg-group": "osv-scanner", + "version": "2.3.3" + } + }, + "options": {} + }, + "packages": [ + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/6wq5al03q2wa5q7n1ncbd7abhl66y7b8-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:13:26.142590Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/ns183jzjw9y8cs1psf76lw21005p4z0j-osv-scanner-2.3.3" + }, + "system": "aarch64-darwin", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/qq33cdnga8jg16qj9p7f8m6llhsxvfyw-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:42:08.260295Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mry5p0m1qd8sr7hrv5pzrymdvfky1zw7-osv-scanner-2.3.3" + }, + "system": "aarch64-linux", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/1js2yqnpa9m8r6pzibwx3fcz85rrfhz0-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:39.284981Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/l79gbf7zv1ry5h66xnhb544ncpxcniax-osv-scanner-2.3.3" + }, + "system": "x86_64-darwin", + "group": "osv-scanner", + "priority": 5 + }, + { + "attr_path": "osv-scanner", + "broken": false, + "derivation": "/nix/store/y8jd2pjjlpkdsbp1hkzszsfzxx1ajz1c-osv-scanner-2.3.3.drv", + "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", + "install_id": "osv-scanner", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "osv-scanner-2.3.3", + "pname": "osv-scanner", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:41:14.038939Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "2.3.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/znf20q4b2114afsq39pn3fhmcda25rhy-osv-scanner-2.3.3" + }, + "system": "x86_64-linux", + "group": "osv-scanner", + "priority": 5 + } + ], + "compose": { + "composer": { + "schema-version": "1.14.0", + "options": {}, + "include": { + "environments": [ + { + "dir": "../osv-scanner" + } + ] + } + }, + "include": [ + { + "manifest": { + "schema-version": "1.13.0", + "install": { + "osv-scanner": { + "pkg-path": "osv-scanner", + "pkg-group": "osv-scanner", + "version": "2.3.3" + } + }, + "options": {} + }, + "name": "osv-scanner", + "descriptor": { + "dir": "../osv-scanner" + } + } + ], + "warnings": [] + } +} diff --git a/tools/lint/.flox/env/manifest.toml b/tools/lint/.flox/env/manifest.toml new file mode 100644 index 00000000000..8146193aec3 --- /dev/null +++ b/tools/lint/.flox/env/manifest.toml @@ -0,0 +1,6 @@ +schema-version = "1.14.0" + +[include] +environments = [ + { dir = "../osv-scanner" } +] From a77752a96fafbee23120d4b4d52ede23d8be77ac Mon Sep 17 00:00:00 2001 From: Philip Mattingly Date: Mon, 3 Aug 2026 14:35:05 -0500 Subject: [PATCH 08/17] ci: revert to using action for wasm, was reused elsewhere Signed-off-by: Philip Mattingly --- .github/actions/build-policy-wasm/action.yaml | 19 +++++++++++++++++ .github/workflows/ci.yaml | 21 ++++++------------- 2 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 .github/actions/build-policy-wasm/action.yaml diff --git a/.github/actions/build-policy-wasm/action.yaml b/.github/actions/build-policy-wasm/action.yaml new file mode 100644 index 00000000000..f41d59d2935 --- /dev/null +++ b/.github/actions/build-policy-wasm/action.yaml @@ -0,0 +1,19 @@ +name: Build OPA policy WASM +description: > + Installs Flox, activates the OPA environment, and builds the authorization + policy WASM asset at + services/core/auth/src/nmp/core/auth/assets/policy.wasm. Assumes the + repository has already been checked out. + +runs: + using: composite + steps: + - name: Install Flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + with: + disable-metrics: "true" + - name: Build policy WASM + uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 + with: + dir: ./tools/open-policy-agent + command: ./script/build_policy_wasm.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 10c1d8bed2a..9bf6bcbd539 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -755,8 +755,8 @@ jobs: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - name: Install Flox - uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + - name: Install flox + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 with: disable-metrics: "true" - name: Install uv @@ -765,9 +765,8 @@ jobs: enable-cache: true python-version: "3.12" cache-dependency-glob: uv.lock - - name: Check uv lockfile - run: uv lock --check - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + - name: Install nodejs + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version-file: .nvmrc - name: Install pnpm via corepack @@ -809,15 +808,7 @@ jobs: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - - name: Install Flox - uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 - with: - disable-metrics: "true" - - name: Build policy WASM - uses: flox/activate-action@410568008895a0f2e09a34bbd9523f8ef1f2d292 # v1.1.0 - with: - dir: ./tools/open-policy-agent - command: ./script/build_policy_wasm.sh + - uses: ./.github/actions/build-policy-wasm - name: Upload policy WASM uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: @@ -1904,7 +1895,7 @@ jobs: with: persist-credentials: false - name: Install Deps - uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 + uses: flox/install-flox-action@c94e7e1ab56ae14fe98bae4fd84384fd135f0c2a # v2.4.0 with: disable-metrics: "true" - name: Policy Test From 52917b9a43a414093fd9f56ab78b2ea89a4a1b42 Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 11:20:48 -0700 Subject: [PATCH 09/17] chore: mesh changes in python and node envs with flox Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 856 ++++++++++-------- .flox/env/manifest.toml | 3 + .../build-nemo-platform-wheel/action.yaml | 2 +- .../actions/insights-testbed-prep/action.yml | 1 + .../actions/setup-kind-cluster/action.yaml | 2 +- .github/workflows/ci.yaml | 41 +- .github/workflows/insights-testbed.yml | 3 + .github/workflows/ngc-metadata.yaml | 4 + .pre-commit-config.yaml | 20 +- AGENTS.md | 2 +- CONTRIBUTING.md | 5 +- Makefile | 82 +- README.md | 2 +- SETUP.md | 28 +- mise.toml | 4 - script/verify-node-version.sh | 16 +- tools/lint/check-flox-locks.sh | 50 + tools/lint/check-node-version.sh | 38 + tools/lint/check-uv-version.sh | 16 +- tools/lint/check_uv_version.py | 55 -- tools/lint/lint-all.sh | 4 +- tools/nodejs/.flox/env/manifest.lock | 208 +++-- tools/nodejs/.flox/env/manifest.toml | 37 +- tools/python/.flox/env/manifest.lock | 76 +- tools/python/.flox/env/manifest.toml | 9 +- web/AGENTS.md | 2 +- web/README.md | 15 +- 27 files changed, 877 insertions(+), 704 deletions(-) delete mode 100644 mise.toml create mode 100755 tools/lint/check-flox-locks.sh create mode 100755 tools/lint/check-node-version.sh delete mode 100644 tools/lint/check_uv_version.py diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 28c7f1bc735..8a3cdfde043 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -14,10 +14,6 @@ "findutils": { "pkg-path": "findutils" }, - "fnm": { - "pkg-path": "fnm", - "pkg-group": "node" - }, "gnumake": { "pkg-path": "gnumake" }, @@ -42,6 +38,11 @@ "pkg-group": "kubernetes-helm", "version": "4.2.3" }, + "nodejs": { + "pkg-path": "nodejs_22", + "pkg-group": "node", + "version": "22.23.2" + }, "open-policy-agent": { "pkg-path": "open-policy-agent", "pkg-group": "open-policy-agent", @@ -52,6 +53,11 @@ "pkg-group": "osv-scanner", "version": "2.3.3" }, + "pnpm": { + "pkg-path": "pnpm_10", + "pkg-group": "node", + "version": "10.34.5" + }, "shellcheck": { "pkg-path": "shellcheck", "pkg-group": "actionlint", @@ -60,7 +66,7 @@ "uv": { "pkg-path": "uv", "pkg-group": "uv", - "version": ">=0.9.14,<0.10.0" + "version": "0.9.14" }, "yq-go": { "pkg-path": "yq-go" @@ -70,13 +76,11 @@ "ALIGN": "center", "BORDER": "double", "BORDER_FOREGROUND": "514", - "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", - "FNM_VERSION_FILE_STRATEGY": "recursive", "FOREGROUND": "514", "GUM_LOG_MESSAGE_FOREGROUND": "514", "MARGIN": "1 2", - "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache", "PADDING": "1 2", + "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm", "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", "UV_MANAGED_PYTHON": "1", "UV_PYTHON": "3.13", @@ -85,13 +89,13 @@ "WIDTH": "50" }, "hook": { - "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n\n set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" + "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "profile": { "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n", - "bash": " source .venv/bin/activate\n\n eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", - "zsh": " source .venv/bin/activate\n\n eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", - "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n\n fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + "bash": " source .venv/bin/activate\n", + "zsh": " source .venv/bin/activate\n", + "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" }, "options": { "systems": [ @@ -105,17 +109,17 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/l8wgjb25mbfydzlg0r7d7jd100f2d50h-actionlint-1.7.12.drv", + "derivation": "/nix/store/aqhd6izblgch4grnjs8mk0cjnz4dk28m-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:32.571357Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:50.166513Z", "stabilities": [ "unstable" ], @@ -125,7 +129,7 @@ "out" ], "outputs": { - "out": "/nix/store/lzmq195syay4hpqcfs2wzgjc8zb3yx3i-actionlint-1.7.12" + "out": "/nix/store/l88fm1fh4i2nv2f3nx1gsyf92g4fma0i-actionlint-1.7.12" }, "system": "aarch64-darwin", "group": "actionlint", @@ -134,17 +138,17 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/d0906vbj276ajk1kk6vvr210bsbaxx5x-actionlint-1.7.12.drv", + "derivation": "/nix/store/86vnhwncf9gafha0hmsxaij4cg7s8qwc-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:27.922478Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:08.683543Z", "stabilities": [ "unstable" ], @@ -154,7 +158,7 @@ "out" ], "outputs": { - "out": "/nix/store/8im85sv1z35jm0qr818pa2wdq8m25n4f-actionlint-1.7.12" + "out": "/nix/store/ng89mfyl4bkykgnvqcnzl2pyisybhkzd-actionlint-1.7.12" }, "system": "aarch64-linux", "group": "actionlint", @@ -163,17 +167,17 @@ { "attr_path": "actionlint", "broken": false, - "derivation": "/nix/store/jfzx0kgl59m4awj91nb1l0ck6v44kl97-actionlint-1.7.12.drv", + "derivation": "/nix/store/04jlrff52fd02k094cv0vyvsl27yj0iq-actionlint-1.7.12.drv", "description": "Static checker for GitHub Actions workflow files", "install_id": "actionlint", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "actionlint-1.7.12", "pname": "actionlint", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:15.104681Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:23.436596Z", "stabilities": [ "unstable" ], @@ -183,7 +187,7 @@ "out" ], "outputs": { - "out": "/nix/store/pihkd9s6gpzbq6zy6ynwqg0iif3hwfdj-actionlint-1.7.12" + "out": "/nix/store/gsa888rwb1bbicfw87y6bsvbfcxcl073-actionlint-1.7.12" }, "system": "x86_64-linux", "group": "actionlint", @@ -192,17 +196,17 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/9z4iqwwmsc3f9hfkfwpl92lpcjkhvxvl-shellcheck-0.11.0.drv", + "derivation": "/nix/store/isq6nc6kjss0wbhghdmiw2fr36fi70r1-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:56:24.813680Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:56:41.028386Z", "stabilities": [ "unstable" ], @@ -214,10 +218,10 @@ "man" ], "outputs": { - "bin": "/nix/store/wh8gg40x023xn9n0rgsil9r2l95wbavi-shellcheck-0.11.0-bin", - "doc": "/nix/store/5012amxy82f9b2d6pxyspc2sk8mprvcy-shellcheck-0.11.0-doc", - "man": "/nix/store/z6y07qmh1djgjqny0bjgyr6rhld9xwn9-shellcheck-0.11.0-man", - "out": "/nix/store/lifq4m2zckqx8la1y93sa9jbppaywk8a-shellcheck-0.11.0" + "bin": "/nix/store/bpnm0dhzawhjfwf2ckrrcdlfvdsw95ph-shellcheck-0.11.0-bin", + "doc": "/nix/store/qp04zg74kp3mwh04c018g25fbm3frpai-shellcheck-0.11.0-doc", + "man": "/nix/store/khakyjg0yw4sys480wm881nvqysz3d5v-shellcheck-0.11.0-man", + "out": "/nix/store/fy98rkywpazyxvk8h7gp0fv6rql89g52-shellcheck-0.11.0" }, "system": "aarch64-darwin", "group": "actionlint", @@ -226,17 +230,17 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/1hxnjx2bflxndlk0k0pqwk1609qw155q-shellcheck-0.11.0.drv", + "derivation": "/nix/store/41dxgbbdhnzjiph0qv6nyhqljb69k15n-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:26:54.006132Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:26:34.827878Z", "stabilities": [ "unstable" ], @@ -248,10 +252,10 @@ "man" ], "outputs": { - "bin": "/nix/store/9b1ggvsx71aavzf3sg1s3pkjjfl776pa-shellcheck-0.11.0-bin", - "doc": "/nix/store/4mbdk0nkfiva25q3v4j85vs91ixaix3b-shellcheck-0.11.0-doc", - "man": "/nix/store/6sgxmiifwgfpnaddg11k73p4cq71xcrn-shellcheck-0.11.0-man", - "out": "/nix/store/zgly4zva6wjzvdp6d599s552ibkwczv4-shellcheck-0.11.0" + "bin": "/nix/store/rhw0nfijvbqxcal3d8qb5l29pvzh4r9j-shellcheck-0.11.0-bin", + "doc": "/nix/store/gb8cs9ywrvlfhbj0gc8v3a5g3qwiwkyj-shellcheck-0.11.0-doc", + "man": "/nix/store/9j5y0hx7rpcnw62gxqiljz29dw7czr2q-shellcheck-0.11.0-man", + "out": "/nix/store/9lckd2wgr97qga5sdzhfza0yi36ndrhd-shellcheck-0.11.0" }, "system": "aarch64-linux", "group": "actionlint", @@ -260,17 +264,17 @@ { "attr_path": "shellcheck", "broken": false, - "derivation": "/nix/store/7v8r56jqngwqgzinbrfdg3mpygpp93c4-shellcheck-0.11.0.drv", + "derivation": "/nix/store/qxapd8dlf851c9kq0g5lb5cam0hm0yn0-shellcheck-0.11.0.drv", "description": "Shell script analysis tool", "install_id": "shellcheck", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "shellcheck-0.11.0", "pname": "shellcheck", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T06:00:48.964411Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T06:00:56.199596Z", "stabilities": [ "unstable" ], @@ -282,10 +286,10 @@ "man" ], "outputs": { - "bin": "/nix/store/9phb1flallb4fw685dlblzbqrh9qkphi-shellcheck-0.11.0-bin", - "doc": "/nix/store/8qq3p694mapmadi98dgcp4ig88lqpfq0-shellcheck-0.11.0-doc", - "man": "/nix/store/jkp411xmhm8nqvxykjzfiz303fw6sshx-shellcheck-0.11.0-man", - "out": "/nix/store/34m1q0dfl1fxsakh63678ni2qndgy8mg-shellcheck-0.11.0" + "bin": "/nix/store/zmhypak4grhrashgl04sxkga3drsm2nm-shellcheck-0.11.0-bin", + "doc": "/nix/store/fhd1gdv56sjbmh3is1y4w1hd6pn45xfk-shellcheck-0.11.0-doc", + "man": "/nix/store/h8552kbc86rddm2skwiaqvmqp2ff1jci-shellcheck-0.11.0-man", + "out": "/nix/store/mzfla28ba85v252h0gya6is1pn45bl6a-shellcheck-0.11.0" }, "system": "x86_64-linux", "group": "actionlint", @@ -294,17 +298,17 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/7mqk2k7cpr23afsgprprf6kq7q4vy8hy-helm-docs-1.14.2.drv", + "derivation": "/nix/store/y91aqsk2pipz2vx62rdxbs5zdra3xxry-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:48.204473Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:06.299662Z", "stabilities": [ "unstable" ], @@ -314,7 +318,7 @@ "out" ], "outputs": { - "out": "/nix/store/iha9x252czxiz301bgnx5c1myi8m5svn-helm-docs-1.14.2" + "out": "/nix/store/0i1kal44yygaycd4s287hxsj1prg35a3-helm-docs-1.14.2" }, "system": "aarch64-darwin", "group": "helm-docs", @@ -323,17 +327,17 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/4847v98n0ramlrq4c32lsfq1w9ilvb48-helm-docs-1.14.2.drv", + "derivation": "/nix/store/bqlkqal7i3n8ysx86a4464qpsjy8wsgw-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:47.538683Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:28.058381Z", "stabilities": [ "unstable" ], @@ -343,7 +347,7 @@ "out" ], "outputs": { - "out": "/nix/store/mc3ga2xrd565cwk39bm244q0fy5ffs0h-helm-docs-1.14.2" + "out": "/nix/store/p2cvfmi5h311fg503nq0fi2dmihsgbcp-helm-docs-1.14.2" }, "system": "aarch64-linux", "group": "helm-docs", @@ -352,17 +356,17 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/vjz01lzipwr78dzxv74vq70kk8s50cj3-helm-docs-1.14.2.drv", + "derivation": "/nix/store/4mp8lw4dhpk6s09y63w61p122daba7ml-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:35.510453Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:43.732862Z", "stabilities": [ "unstable" ], @@ -372,7 +376,7 @@ "out" ], "outputs": { - "out": "/nix/store/3bhjb3ac35ma6ahcabiczd156aw4bspq-helm-docs-1.14.2" + "out": "/nix/store/68b6nv2gc1j7g6js3wj2plj2dsvx2vnx-helm-docs-1.14.2" }, "system": "x86_64-linux", "group": "helm-docs", @@ -471,17 +475,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/3629kpfnbcgcv7dxgwm5pv353pvk3cg0-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/h27s9phbjyisaq14bdrh1hc6v1bmh1kh-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:50.426853Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:08.760008Z", "stabilities": [ "unstable" ], @@ -491,7 +495,7 @@ "out" ], "outputs": { - "out": "/nix/store/pskv3khyizrc09rnqrp6d0wn5pllripx-kubernetes-helm-4.2.3" + "out": "/nix/store/zxlrdn6fsss4s2i496np7kdrwy92261j-kubernetes-helm-4.2.3" }, "system": "aarch64-darwin", "group": "kubernetes-helm", @@ -500,17 +504,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/lg5as7r9cawfrsb95in15rj56qq1mq17-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/w61scb5zj8c4dmckwlmrxf8m2ma263fl-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:51.647377Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:32.211235Z", "stabilities": [ "unstable" ], @@ -520,7 +524,7 @@ "out" ], "outputs": { - "out": "/nix/store/k99lgyz9k814kr389jirpim37nqpi7qp-kubernetes-helm-4.2.3" + "out": "/nix/store/3m7a0rmsr6k5hs0xl2ym6kiv4iqgwypj-kubernetes-helm-4.2.3" }, "system": "aarch64-linux", "group": "kubernetes-helm", @@ -529,17 +533,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/7w6nz7jqjz6a9q1l2qd4cdl01jjcrwvd-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/qkhmnhnv2j5zql42fylj3vs4h8f4p35z-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:39.899607Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:48.065333Z", "stabilities": [ "unstable" ], @@ -549,94 +553,181 @@ "out" ], "outputs": { - "out": "/nix/store/n1rbyfp9sn0r0gzx4z9lniisiad9h5yq-kubernetes-helm-4.2.3" + "out": "/nix/store/wkb6xckn077grj4jqb6z6wgmwzj7g1xr-kubernetes-helm-4.2.3" }, "system": "x86_64-linux", "group": "kubernetes-helm", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/vzn629ysil2gfl70ywqn70083ad8ybzj-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:33.754497Z", + "derivation": "/nix/store/98iw9769gchj4vs8vkfvkdnxczaarami-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:15.826463Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "22.23.2", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/8cr5r5cyv72vj61ssk60gragvmdn8mw8-fnm-1.39.0" + "out": "/nix/store/s0qzknz77k3lzikgywx2piilfp8w0581-nodejs-22.23.2" }, "system": "aarch64-darwin", "group": "node", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/qk0n2489mjkkb0z3swvg7xv66yabs0c2-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:29.513507Z", + "derivation": "/nix/store/i9h6nligglciwssrc0zdri9zji0hx20c-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:46.217099Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "22.23.2", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/i1ziwqn5kp94jnffphj6pf1srqx7g67f-fnm-1.39.0" + "out": "/nix/store/i7dq81ramvcyrzasgv8qbf07rgfiqiai-nodejs-22.23.2" }, "system": "aarch64-linux", "group": "node", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/fz4ibl50d3r3irhdfz37afk4vk9vvf47-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:16.880398Z", + "derivation": "/nix/store/1x2rjyk2j93jmsl6myl8nrv7b95viv21-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:59:03.273842Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "22.23.2", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/3vm4j8im8bzdal3dsgmhv9gb5kvanbp1-nodejs-22.23.2" + }, + "system": "x86_64-linux", + "group": "node", + "priority": 5 + }, + { + "attr_path": "pnpm_10", + "broken": false, + "derivation": "/nix/store/1x2hdyi7z35mpsb40q1c99rzzli3lyd1-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:29.248162Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "10.34.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mqihmbwcawwpgwnwfg2hwyx4y8577991-pnpm-10.34.5" + }, + "system": "aarch64-darwin", + "group": "node", + "priority": 5 + }, + { + "attr_path": "pnpm_10", + "broken": false, + "derivation": "/nix/store/ykmg9frmp7x4dni86raf9m10xjb9hpz1-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:25:05.998051Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "10.34.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/z4vxcxkfb4mh4ajc7gvwihqqawcnd7qs-pnpm-10.34.5" + }, + "system": "aarch64-linux", + "group": "node", + "priority": 5 + }, + { + "attr_path": "pnpm_10", + "broken": false, + "derivation": "/nix/store/a4s9ni15m40b0iwglfmdrhnjwd0bab4n-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:59:22.852600Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "10.34.5", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/fb6q7d45phva2fxclv61a6h62q5n631h-fnm-1.39.0" + "out": "/nix/store/1y1j3774v84329m42q0sjy3f89n5p1fx-pnpm-10.34.5" }, "system": "x86_64-linux", "group": "node", @@ -738,17 +829,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/qsxf0z52hwzxj73hjkibphy885zvfgvq-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/0csc0zgfhcfsx2l3nzclxz2bqssyja5b-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:55:02.700665Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:20.984870Z", "stabilities": [ "unstable" ], @@ -758,7 +849,7 @@ "out" ], "outputs": { - "out": "/nix/store/xb407dwimxp8a1blrml6ywif2ghvh7f3-osv-scanner-2.3.3" + "out": "/nix/store/i3w3vaymszfimwcj21j4y9k43ijblg0p-osv-scanner-2.3.3" }, "system": "aarch64-darwin", "group": "osv-scanner", @@ -767,17 +858,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/8h52lcfwc0vdz8vmrclc3n346hm5lprj-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/2rar9pkzk4s60n1rpgidqs2lzarwr81n-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:25:13.558795Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:53.780562Z", "stabilities": [ "unstable" ], @@ -787,7 +878,7 @@ "out" ], "outputs": { - "out": "/nix/store/jhyrcnykva2j188isan381i1pmk86mz0-osv-scanner-2.3.3" + "out": "/nix/store/vqbgw2a9wcanqmxzykjn9y9z7z2n7n1y-osv-scanner-2.3.3" }, "system": "aarch64-linux", "group": "osv-scanner", @@ -796,17 +887,17 @@ { "attr_path": "osv-scanner", "broken": false, - "derivation": "/nix/store/mdknv574k14jsm8sr3bmdj1dpa1gi3p7-osv-scanner-2.3.3.drv", + "derivation": "/nix/store/b1wxrwhwz7xi87706w2zc9girrrbbqla-osv-scanner-2.3.3.drv", "description": "Vulnerability scanner written in Go which uses the data provided by https://osv.dev", "install_id": "osv-scanner", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "osv-scanner-2.3.3", "pname": "osv-scanner", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:59:02.781860Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:59:10.848863Z", "stabilities": [ "unstable" ], @@ -816,7 +907,7 @@ "out" ], "outputs": { - "out": "/nix/store/wbiwki082a5bzyaabz1ygfz043pnrdp4-osv-scanner-2.3.3" + "out": "/nix/store/khy3lac3zv5sasphfxzihpgrksrax41r-osv-scanner-2.3.3" }, "system": "x86_64-linux", "group": "osv-scanner", @@ -825,17 +916,17 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/s922673g28c76xwxcmm9pa92sd7ih1zw-diffutils-3.12.drv", + "derivation": "/nix/store/7lxvn9pyy7nz2s8qj0bdzqjj31nph3mw-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:33.335636Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:50.934972Z", "stabilities": [ "unstable" ], @@ -845,8 +936,8 @@ "out" ], "outputs": { - "info": "/nix/store/8mnr14i9nagwy7zq7idpnxmbn713vzp5-diffutils-3.12-info", - "out": "/nix/store/rbwynbh99a00f23xbha5wqj5p8ry50fs-diffutils-3.12" + "info": "/nix/store/vjyzq43a5nqpma7wj8lysi9ylpprh8km-diffutils-3.12-info", + "out": "/nix/store/l0ww0x9n8h84hybx2m6ahg3xlqxy8858-diffutils-3.12" }, "system": "aarch64-darwin", "group": "toplevel", @@ -855,17 +946,17 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/aqi2hpkam0nxfi2d0l0cnlml9w9afjj7-diffutils-3.12.drv", + "derivation": "/nix/store/bbak4vwxqpsnp3lj04a4137702fw75j0-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:28.873784Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:09.611958Z", "stabilities": [ "unstable" ], @@ -875,8 +966,8 @@ "out" ], "outputs": { - "info": "/nix/store/v1w1ykabd35wwys2ahdmsf4h5bpgslvm-diffutils-3.12-info", - "out": "/nix/store/bblvy0gjfa9sqml9nzmbh90daw7815z4-diffutils-3.12" + "info": "/nix/store/q2kfvac14x3w38v0ddznfnp8kcl43hyq-diffutils-3.12-info", + "out": "/nix/store/kwzgx6v7i5d9vz7hh3jfy5jf6kmlr3v2-diffutils-3.12" }, "system": "aarch64-linux", "group": "toplevel", @@ -885,17 +976,17 @@ { "attr_path": "diffutils", "broken": false, - "derivation": "/nix/store/06438zgfisg275d64b8bm4dil8wsgyyf-diffutils-3.12.drv", + "derivation": "/nix/store/x3xgjkib7gpi191y501yy1gskawlzdhm-diffutils-3.12.drv", "description": "Commands for showing the differences between files (diff, cmp, etc.)", "install_id": "diffutils", "license": "GPL-3.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "diffutils-3.12", "pname": "diffutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:16.159239Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:24.484311Z", "stabilities": [ "unstable" ], @@ -905,8 +996,8 @@ "out" ], "outputs": { - "info": "/nix/store/rzwh5diw4wq51z8h2v0g0g63nwqw1zq8-diffutils-3.12-info", - "out": "/nix/store/ib2z0l0fbm3p1iqw4r79i0h2qca0qgwm-diffutils-3.12" + "info": "/nix/store/7mqzvypci85daks0fhkz3hqbn0vd53np-diffutils-3.12-info", + "out": "/nix/store/38r3gawmdqhmbgxipqy39rw1csszfnl9-diffutils-3.12" }, "system": "x86_64-linux", "group": "toplevel", @@ -915,29 +1006,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/2bv0zi4clx7lw8dv93irvcsq8ivnr9ll-findutils-4.10.0.drv", + "derivation": "/nix/store/7i8kp9zi61nff679dm6vnlp5qs58nap7-findutils-4.11.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "findutils-4.10.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "findutils-4.11.0", "pname": "findutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:33.689300Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:51.293705Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "4.10.0", + "version": "4.11.0", "outputs_to_install": [ "out" ], "outputs": { - "info": "/nix/store/8h41dg3igjy9llr78qq1kkr0m6lzk991-findutils-4.10.0-info", - "locate": "/nix/store/kbd6bkcc6qraf7zf5jiz4kaf13aw8jv1-findutils-4.10.0-locate", - "out": "/nix/store/7p057vk9y6a1k665r9bc2bjxgqy456hg-findutils-4.10.0" + "info": "/nix/store/n2njn4zy6if2z4xrwa3wkrm27n004s25-findutils-4.11.0-info", + "locate": "/nix/store/vhswp9x19iavfzsln67grwgifc64j43n-findutils-4.11.0-locate", + "out": "/nix/store/p9fdf1h73x6wwiy52vw69jxiq14i7dcn-findutils-4.11.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -946,29 +1037,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/w9x12ayhi1i7z705fwab60a2ws46wm6k-findutils-4.10.0.drv", + "derivation": "/nix/store/7s3pmn6pjjp2sslq5p0llarhb993ljgj-findutils-4.11.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "findutils-4.10.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "findutils-4.11.0", "pname": "findutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:29.407796Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:10.140515Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "4.10.0", + "version": "4.11.0", "outputs_to_install": [ "out" ], "outputs": { - "info": "/nix/store/l2m8dqn962m2n193bxx4mk20gclp6dbv-findutils-4.10.0-info", - "locate": "/nix/store/kf3y536x84wmyr7k21ns77i0d8nlndlc-findutils-4.10.0-locate", - "out": "/nix/store/47s1v9jk5hp88jwkkad6fzsyzq4hasla-findutils-4.10.0" + "info": "/nix/store/nbv2c5jrq1x8gihsqpnixdzsmqvqibnh-findutils-4.11.0-info", + "locate": "/nix/store/jxmivgd8wqgp5xy9n7x7aaqi48sq68yx-findutils-4.11.0-locate", + "out": "/nix/store/2mj9fbglfqvfizz274hrd8bgvlwv1n0y-findutils-4.11.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -977,29 +1068,29 @@ { "attr_path": "findutils", "broken": false, - "derivation": "/nix/store/g2hzv7byfzyv27hniiypjdrhkrlcdzhm-findutils-4.10.0.drv", + "derivation": "/nix/store/9r7d46zm511wiswj14h7p54c9krvhyb4-findutils-4.11.0.drv", "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", "install_id": "findutils", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "name": "findutils-4.10.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "findutils-4.11.0", "pname": "findutils", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:16.766266Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:25.078827Z", "stabilities": [ "unstable" ], "unfree": false, - "version": "4.10.0", + "version": "4.11.0", "outputs_to_install": [ "out" ], "outputs": { - "info": "/nix/store/w3rs6ifakwvr7gils096dd9jna3rz02i-findutils-4.10.0-info", - "locate": "/nix/store/w0bj92hi90rbynfcry2b5rlcxmaxyggy-findutils-4.10.0-locate", - "out": "/nix/store/m1p6gxgxis75rn0d549ny2y8gpxjv9pd-findutils-4.10.0" + "info": "/nix/store/7743lb28jvffmjxk6vdd9hkq4jvcgwi1-findutils-4.11.0-info", + "locate": "/nix/store/04j3c6c4lyk57alhv5hzl4q32vv897pv-findutils-4.11.0-locate", + "out": "/nix/store/fcqbwp5hx5wh3lzf0457wmf0divknz7y-findutils-4.11.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -1008,17 +1099,17 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/8bhfhg9yz7p4l8zmyqrb67b08y631ihc-gnumake-4.4.1.drv", + "derivation": "/nix/store/qxcs4yj3adil6cjc4hhhmyfkiarhr2pn-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:34.121636Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:51.732254Z", "stabilities": [ "unstable" ], @@ -1029,10 +1120,10 @@ "out" ], "outputs": { - "doc": "/nix/store/rdwb8d7iv8j5vp5pdx9lbqjr6wk0ydji-gnumake-4.4.1-doc", - "info": "/nix/store/0ncajy1b1wgyy5jxm6fxlm7wbblsvc05-gnumake-4.4.1-info", - "man": "/nix/store/byj13qf46ib7xk4zfvk3k5w8r34z9mf2-gnumake-4.4.1-man", - "out": "/nix/store/7f7x81x6vb8kva42skn921d3ga2w0qap-gnumake-4.4.1" + "doc": "/nix/store/qpb2zaah86v6z1b0f40y90m6kf42hy3i-gnumake-4.4.1-doc", + "info": "/nix/store/dw5r16j2bsfpznbnzk3bbgxi3czy0rvn-gnumake-4.4.1-info", + "man": "/nix/store/av26gjivcsjdhq68pg6wb1l9f0ixakbv-gnumake-4.4.1-man", + "out": "/nix/store/rhw2r5z1rbp9msj03kf8i4rq1hygnm0f-gnumake-4.4.1" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1041,17 +1132,17 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/18yfg0l23y2f7w2wz6h4p3jiy6i7ycbf-gnumake-4.4.1.drv", + "derivation": "/nix/store/vjf8rbgy9y4pdxnjwjrk6vvf3xl9ri05-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:30.624261Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:11.345598Z", "stabilities": [ "unstable" ], @@ -1062,11 +1153,11 @@ "out" ], "outputs": { - "debug": "/nix/store/m4d49zx7zfgv1sdd7zg5zzsinaccyfk6-gnumake-4.4.1-debug", - "doc": "/nix/store/p7p13ajir7nw802nf7rvdhray70l4lnj-gnumake-4.4.1-doc", - "info": "/nix/store/0b0bys1xj58mjnwk2iicqa2sv55z4ac2-gnumake-4.4.1-info", - "man": "/nix/store/7qbsp83ianzwbhzsgwx8yv832n4a1kkx-gnumake-4.4.1-man", - "out": "/nix/store/qdh1xpknc0ys6m46gi4p2qcyyryc8pv0-gnumake-4.4.1" + "debug": "/nix/store/fc4qn0vswxpj2qmprk0p0nvill18z7hb-gnumake-4.4.1-debug", + "doc": "/nix/store/ffz5ypa2rwi78c6c9syncnpwhhdhaqr1-gnumake-4.4.1-doc", + "info": "/nix/store/kj5yr5dpvzij2x83ig9y0bp3dbvgsyic-gnumake-4.4.1-info", + "man": "/nix/store/fa0k4ps7a35yxf902shfzz8gmd8a9x2g-gnumake-4.4.1-man", + "out": "/nix/store/wadg45zgfyi9a4dcm5fy3qvlas76cr2z-gnumake-4.4.1" }, "system": "aarch64-linux", "group": "toplevel", @@ -1075,17 +1166,17 @@ { "attr_path": "gnumake", "broken": false, - "derivation": "/nix/store/xffycr4zy4kb00rgs8iad7xw8inb68p3-gnumake-4.4.1.drv", + "derivation": "/nix/store/hzkdjha05s9h4zsqax3q475mzl8vxb7w-gnumake-4.4.1.drv", "description": "Tool to control the generation of non-source files from sources", "install_id": "gnumake", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnumake-4.4.1", "pname": "gnumake", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:18.096266Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:26.401299Z", "stabilities": [ "unstable" ], @@ -1096,11 +1187,11 @@ "out" ], "outputs": { - "debug": "/nix/store/gq4akpk5dfabh9q7bdnd95r1g8hv9qgs-gnumake-4.4.1-debug", - "doc": "/nix/store/bdv51k4qj1vvkw0knk0p6kv4zjs6vzqy-gnumake-4.4.1-doc", - "info": "/nix/store/vznzsnngs0fydqvrdb71xmfry1zxz0h2-gnumake-4.4.1-info", - "man": "/nix/store/ndm1zqm8a3bvbh3ybhnncda9i27ip13f-gnumake-4.4.1-man", - "out": "/nix/store/66x1qiph890315003f27a15xsqax6lwf-gnumake-4.4.1" + "debug": "/nix/store/1a2srjw3r7sif10sh4zl3k0zin0f09xm-gnumake-4.4.1-debug", + "doc": "/nix/store/15y7ym18qm8dk03b7fnpc9bvccccm33q-gnumake-4.4.1-doc", + "info": "/nix/store/p18m4dcs9wylvddhprcczaaqqns2sb1d-gnumake-4.4.1-info", + "man": "/nix/store/8ayxbdiddzn28damz1f9gb0asx1j409b-gnumake-4.4.1-man", + "out": "/nix/store/r60jpv4jr5h50f0rj1k5adlwic2vgldn-gnumake-4.4.1" }, "system": "x86_64-linux", "group": "toplevel", @@ -1109,17 +1200,17 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/qi2mqp76p6l1vlbgjhljmxpjcr0wk2am-gnutar-1.35.drv", + "derivation": "/nix/store/bivi3p32c14xpkwsyhx2hfdk0vjymdps-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:34.130590Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:51.740324Z", "stabilities": [ "unstable" ], @@ -1129,8 +1220,8 @@ "out" ], "outputs": { - "info": "/nix/store/hwx86saxirjrn6gjw3p2rq70s1kc79nj-gnutar-1.35-info", - "out": "/nix/store/33a9ksqprc9ry40c2gxw8fz1yc3ssahk-gnutar-1.35" + "info": "/nix/store/zagqcasfksiqzdwfag0k0kj9nq03nkwy-gnutar-1.35-info", + "out": "/nix/store/92ly70drj8f24zadkk8jl4ld19rvkdcg-gnutar-1.35" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1139,17 +1230,17 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/777wz9r3sdwqv0gsgix6dsk0j0xq6l58-gnutar-1.35.drv", + "derivation": "/nix/store/jznds1mr4cgqbch5b1dnvq4f3jbr0m7x-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:30.638083Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:11.359922Z", "stabilities": [ "unstable" ], @@ -1159,8 +1250,8 @@ "out" ], "outputs": { - "info": "/nix/store/dgy56x9qq4ac8ilfw9jy7dh5051ikhwy-gnutar-1.35-info", - "out": "/nix/store/7sw1d6d7kv88ppd02s3fwjmrjvf3gn1i-gnutar-1.35" + "info": "/nix/store/q19mmghrf5nx584lrq71kaw7a4rji0l8-gnutar-1.35-info", + "out": "/nix/store/zlh7j5jw0knf0famz6xl5lh022y9wfk2-gnutar-1.35" }, "system": "aarch64-linux", "group": "toplevel", @@ -1169,17 +1260,17 @@ { "attr_path": "gnutar", "broken": false, - "derivation": "/nix/store/frplv4ziprj2f0cs9w8hvjkkg1ciczbj-gnutar-1.35.drv", + "derivation": "/nix/store/77j40lplqzr9ic7djj5vfarsg0vbx8j7-gnutar-1.35.drv", "description": "GNU implementation of the `tar` archiver", "install_id": "gnutar", "license": "GPL-3.0-or-later", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gnutar-1.35", "pname": "gnutar", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:18.111380Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:26.416164Z", "stabilities": [ "unstable" ], @@ -1189,8 +1280,8 @@ "out" ], "outputs": { - "info": "/nix/store/0jy4jmmbr8kqmknamddmm720ij8yql4d-gnutar-1.35-info", - "out": "/nix/store/lmbgk78d524491njr3mj0yyhwjfpgjfb-gnutar-1.35" + "info": "/nix/store/41qpycy19bvckfx0i1dnz1c6r3qfhfw1-gnutar-1.35-info", + "out": "/nix/store/3cp4kw4376flmhlxxi4w2jkancv3irp8-gnutar-1.35" }, "system": "x86_64-linux", "group": "toplevel", @@ -1199,17 +1290,17 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/0s8pmz2v6zlgfjzfqashmwg01wm7kp5c-gum-0.17.0.drv", + "derivation": "/nix/store/qbnsslqpy1phwqia82fnkhnqkz0rlgx3-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gum-0.17.0", "pname": "gum", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:54:34.364074Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:54:51.971342Z", "stabilities": [ "unstable" ], @@ -1219,7 +1310,7 @@ "out" ], "outputs": { - "out": "/nix/store/aw147lca29c11gd3m53j1x5fpq7gf8yd-gum-0.17.0" + "out": "/nix/store/hzl05lvbcfa8g936qwx356dp9a0qs4xr-gum-0.17.0" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1228,17 +1319,17 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/4019y0vw1cjnj952xjgzqwg91hk9ngvm-gum-0.17.0.drv", + "derivation": "/nix/store/73w98v13q7hia83p3km11n725fwfnc35-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gum-0.17.0", "pname": "gum", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:24:31.021381Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:11.746504Z", "stabilities": [ "unstable" ], @@ -1248,7 +1339,7 @@ "out" ], "outputs": { - "out": "/nix/store/3x2vnw12j3npn1l45p4ssc0kadmpf7b1-gum-0.17.0" + "out": "/nix/store/jz1z0g2q1vd3fk2q729c90jg1akjn8gz-gum-0.17.0" }, "system": "aarch64-linux", "group": "toplevel", @@ -1257,17 +1348,17 @@ { "attr_path": "gum", "broken": false, - "derivation": "/nix/store/c9wnn771niv74ksr94gjvga7za3xh7x9-gum-0.17.0.drv", + "derivation": "/nix/store/6i3fykxwsrm3srr5l343wcvwiyy9drdx-gum-0.17.0.drv", "description": "Tasty Bubble Gum for your shell", "install_id": "gum", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "gum-0.17.0", "pname": "gum", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:58:18.524315Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:26.827422Z", "stabilities": [ "unstable" ], @@ -1277,7 +1368,7 @@ "out" ], "outputs": { - "out": "/nix/store/p8whqn8f3fafka3wgwfba6lbzg7ld0yy-gum-0.17.0" + "out": "/nix/store/gbylyxgkksvzijjsamymlfifn27131jq-gum-0.17.0" }, "system": "x86_64-linux", "group": "toplevel", @@ -1286,17 +1377,17 @@ { "attr_path": "yq-go", "broken": false, - "derivation": "/nix/store/7jf0hnzazabbvjzr0f3jgh1wg5mvg6a8-yq-go-4.53.3.drv", + "derivation": "/nix/store/1vp45f21wks9v3lizarl7a9sjhak9lf0-yq-go-4.53.3.drv", "description": "Portable command-line YAML processor", "install_id": "yq-go", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "yq-go-4.53.3", "pname": "yq-go", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T04:57:25.210210Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:57:42.736898Z", "stabilities": [ "unstable" ], @@ -1306,7 +1397,7 @@ "out" ], "outputs": { - "out": "/nix/store/0vsha68zmnrysjsy3szkpvscqkm2qplp-yq-go-4.53.3" + "out": "/nix/store/ka1kvl4b0zhcz16kb6amn86qjjqglw3z-yq-go-4.53.3" }, "system": "aarch64-darwin", "group": "toplevel", @@ -1315,17 +1406,17 @@ { "attr_path": "yq-go", "broken": false, - "derivation": "/nix/store/zg6h49xz37iaknldifh670s28yrcdfdd-yq-go-4.53.3.drv", + "derivation": "/nix/store/wc0dhpccp56xhf3ps639l6727a0qvsxb-yq-go-4.53.3.drv", "description": "Portable command-line YAML processor", "install_id": "yq-go", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "yq-go-4.53.3", "pname": "yq-go", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T05:28:14.919088Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:27:56.770711Z", "stabilities": [ "unstable" ], @@ -1335,7 +1426,7 @@ "out" ], "outputs": { - "out": "/nix/store/wflw43nbb0jb7ddncklryi3yx0ai7cgf-yq-go-4.53.3" + "out": "/nix/store/f3mpc2r89qqvqz9sya611fr5lf4qawb5-yq-go-4.53.3" }, "system": "aarch64-linux", "group": "toplevel", @@ -1344,17 +1435,17 @@ { "attr_path": "yq-go", "broken": false, - "derivation": "/nix/store/6jmjvygi3yk6mqwd0nk1jfi2iadfrzbb-yq-go-4.53.3.drv", + "derivation": "/nix/store/lwg011rsxbv2yki46cqxhcsda6nk52gf-yq-go-4.53.3.drv", "description": "Portable command-line YAML processor", "install_id": "yq-go", "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "yq-go-4.53.3", "pname": "yq-go", - "rev": "0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5", - "rev_count": 1043649, - "rev_date": "2026-07-29T09:51:10Z", - "scrape_date": "2026-07-30T06:02:13.727121Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T06:02:21.179190Z", "stabilities": [ "unstable" ], @@ -1364,7 +1455,7 @@ "out" ], "outputs": { - "out": "/nix/store/mr1a1d7yzvg7x8vc11gj3cfiykr8wjx3-yq-go-4.53.3" + "out": "/nix/store/pyy2agrvaazs49lkpn75dibpvz45pwkm-yq-go-4.53.3" }, "system": "x86_64-linux", "group": "toplevel", @@ -1373,28 +1464,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/v9837hla896n3pjv9hmx3ii4sk30p0r9-uv-0.9.28.drv", + "derivation": "/nix/store/5xdn711qjgkkady64ywrxq6mhbi9nz9h-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T04:38:13.753987Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T02:56:01.692648Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/rnci0wgac6r47gr09bhb6x5fyc507i43-uv-0.9.28" + "out": "/nix/store/zbg4ksfcdcmqbw8x0f0xlla16g2lhxgy-uv-0.9.14" }, "system": "aarch64-darwin", "group": "uv", @@ -1403,28 +1494,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/dlp3p1pzksliq0pli84ff5ifbvh13211-uv-0.9.28.drv", + "derivation": "/nix/store/8z6dv3xfq2mc9hw87w37sw2hs1jlchyg-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:08:27.505844Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T03:05:28.971221Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/r6g6avldk8dlj30dmk2p2971akkmw9h3-uv-0.9.28" + "out": "/nix/store/2k74mawzpjihb1jpyxlmbhaz7wflbhyb-uv-0.9.14" }, "system": "aarch64-linux", "group": "uv", @@ -1433,28 +1524,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/b88x7x44g3gj9mfw2ql683lfcxqjil95-uv-0.9.28.drv", + "derivation": "/nix/store/16j8ajlaksqd7pv1pnp12v22bb79wsl8-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T06:09:00.313627Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T03:23:20.097970Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/jddcqyx0099mynb7gxr0dd66hkpqqs2r-uv-0.9.28" + "out": "/nix/store/483pf97g9l0l3rh0988ghffcppm4001a-uv-0.9.14" }, "system": "x86_64-linux", "group": "uv", @@ -1467,7 +1558,13 @@ "profile": { "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, - "options": {}, + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + }, "include": { "environments": [ { @@ -1597,7 +1694,7 @@ "uv": { "pkg-path": "uv", "pkg-group": "uv", - "version": ">=0.9.14,<0.10.0" + "version": "0.9.14" } }, "vars": { @@ -1608,7 +1705,7 @@ "UV_VENV_SEED": "1" }, "hook": { - "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n" + "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "profile": { "bash": " source .venv/bin/activate\n", @@ -1626,25 +1723,27 @@ "manifest": { "schema-version": "1.13.0", "install": { - "fnm": { - "pkg-path": "fnm", - "pkg-group": "node" + "nodejs": { + "pkg-path": "nodejs_22", + "pkg-group": "node", + "version": "22.23.2" + }, + "pnpm": { + "pkg-path": "pnpm_10", + "pkg-group": "node", + "version": "10.34.5" } }, "vars": { - "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", - "FNM_VERSION_FILE_STRATEGY": "recursive", - "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache" - }, - "hook": { - "on-activate": " set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" - }, - "profile": { - "bash": " eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", - "zsh": " eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", - "fish": " fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm" }, - "options": {} + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + } }, "name": "nemo-platform-nodejs", "descriptor": { @@ -1686,6 +1785,25 @@ } } ], - "warnings": [] + "warnings": [ + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "nemo-platform-nodejs" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "Current manifest" + } + ] } } diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index 14bfffa3d70..17877f8ac28 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -17,3 +17,6 @@ environments = [ { dir = "tools/osv-scanner" }, { dir = "tools/open-policy-agent" }, ] + +[options] +systems = ["aarch64-darwin", "aarch64-linux", "x86_64-linux"] diff --git a/.github/actions/build-nemo-platform-wheel/action.yaml b/.github/actions/build-nemo-platform-wheel/action.yaml index 74d0cd41d9d..4fb5ef1132a 100644 --- a/.github/actions/build-nemo-platform-wheel/action.yaml +++ b/.github/actions/build-nemo-platform-wheel/action.yaml @@ -73,9 +73,9 @@ runs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: ${{ inputs.python-version }} enable-cache: true - version-file: ${{ inputs.source-root }}/pyproject.toml cache-dependency-glob: ${{ inputs.source-root }}/uv.lock # Resolve early, before pnpm/node setup, so bad cadence/label/timestamp diff --git a/.github/actions/insights-testbed-prep/action.yml b/.github/actions/insights-testbed-prep/action.yml index 587cef001ec..53f6455b2de 100644 --- a/.github/actions/insights-testbed-prep/action.yml +++ b/.github/actions/insights-testbed-prep/action.yml @@ -13,6 +13,7 @@ runs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} working-directory: nemo-platform - name: Sync + judge repoint shell: bash diff --git a/.github/actions/setup-kind-cluster/action.yaml b/.github/actions/setup-kind-cluster/action.yaml index 3c9b207e01e..225a9ac2143 100644 --- a/.github/actions/setup-kind-cluster/action.yaml +++ b/.github/actions/setup-kind-cluster/action.yaml @@ -104,9 +104,9 @@ runs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.13" enable-cache: true - version-file: pyproject.toml cache-dependency-glob: uv.lock - name: Start kind cluster diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9bf6bcbd539..ddd4e839d6e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,10 +30,11 @@ concurrency: cancel-in-progress: ${{ github.event_name == 'pull_request' }} env: - # Jobs here provision their own toolchain (astral-sh/setup-uv reads the same - # required-version out of pyproject.toml, actions/setup-node pins Node), so - # the Makefile should call those rather than a mise it never installed. - NMP_SKIP_MISE: 1 + # Keep the CI uv binary aligned with the Flox development environment. + UV_VERSION: "0.9.14" + # Jobs here provision their own toolchain, so the Makefile uses those tools + # rather than activating Flox for each command. + NMP_SKIP_FLOX: 1 jobs: changes: @@ -96,7 +97,7 @@ jobs: - name: Set up uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: - version-file: pyproject.toml + version: ${{ env.UV_VERSION }} enable-cache: false - name: Run NGC metadata unit tests run: uv run --no-cache .github/scripts/tests/test_ngc_metadata.py @@ -113,7 +114,7 @@ jobs: - name: Install platform uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: - version: "0.9.14" + version: ${{ env.UV_VERSION }} enable-cache: false python-version: "3.12" @@ -123,8 +124,8 @@ jobs: - name: Check lock with platform uv run: bash script/uv-lock.sh --check - uv-latest-compatibility: - name: Check latest uv compatibility + uv-compatibility: + name: Check configured uv compatibility runs-on: ubuntu-latest steps: - name: Checkout code @@ -132,16 +133,17 @@ jobs: with: persist-credentials: false - - name: Install latest uv + - name: Install configured uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} enable-cache: false python-version: "3.12" - name: Show uv version run: uv --version - - name: Check sync with latest uv + - name: Check sync with configured uv run: uv sync --frozen --all-packages docker-bake-graph: @@ -282,7 +284,7 @@ jobs: if: steps.fastembed-cache.outputs.cache-hit != 'true' uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: - version-file: pyproject.toml + version: ${{ env.UV_VERSION }} cache-dependency-glob: uv.lock - name: Populate fastembed model cache @@ -762,6 +764,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} enable-cache: true python-version: "3.12" cache-dependency-glob: uv.lock @@ -835,6 +838,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -867,6 +871,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -930,6 +935,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} # Must satisfy the workspace floor in the root pyproject.toml (`requires-python`), or # `uv sync` refuses the interpreter outright. python-version: ${{ matrix.python-version }} @@ -998,6 +1004,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -1053,6 +1060,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -1125,6 +1133,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -1269,6 +1278,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: ${{ matrix.python-version }} enable-cache: true cache-dependency-glob: uv.lock @@ -1360,6 +1370,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.13" enable-cache: true cache-dependency-glob: uv.lock @@ -1424,6 +1435,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} python-version: "3.13" enable-cache: true cache-dependency-glob: uv.lock @@ -1702,6 +1714,7 @@ jobs: # unsupported version. uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} enable-cache: true cache-dependency-glob: uv.lock - name: Run OpenShell backend unit tests @@ -1742,10 +1755,8 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: - # Point setup-uv at the nemo-platform checkout so it picks up the - # repo's `required-version` constraint from pyproject.toml. Other - # jobs check out into the workspace root and get this implicitly. working-directory: nemo-platform + version: ${{ env.UV_VERSION }} python-version: "3.12" enable-cache: true cache-dependency-glob: uv.lock @@ -1963,7 +1974,7 @@ jobs: - changes - actionlint - uv-lock - - uv-latest-compatibility + - uv-compatibility - docker-bake-graph - build-cpu-smoke-images - kind-cpu-smoke diff --git a/.github/workflows/insights-testbed.yml b/.github/workflows/insights-testbed.yml index af538600b25..732cd168cec 100644 --- a/.github/workflows/insights-testbed.yml +++ b/.github/workflows/insights-testbed.yml @@ -37,6 +37,7 @@ on: - ".github/actions/insights-testbed-prep/**" env: + UV_VERSION: "0.9.14" TAU2_JUDGE_LLM: ${{ vars.TAU2_JUDGE_LLM || 'openai/nvidia/nvidia/evals-nemotron-ultra' }} TAU2_BENCH_REF: 8ebb7499622fc2be9b9d510d6f7a7653461f4f29 TESTBED_STATE_REPO: ${{ vars.TESTBED_STATE_REPO || 'NVIDIA-dev/NeMo-Optimizer' }} @@ -51,6 +52,7 @@ jobs: with: { path: nemo-platform, persist-credentials: false } - uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} working-directory: nemo-platform - name: Run plugin tests working-directory: nemo-platform @@ -66,6 +68,7 @@ jobs: with: { path: nemo-platform, persist-credentials: false } - uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} working-directory: nemo-platform - id: resolve env: diff --git a/.github/workflows/ngc-metadata.yaml b/.github/workflows/ngc-metadata.yaml index 447a275552a..623c2afd1f3 100644 --- a/.github/workflows/ngc-metadata.yaml +++ b/.github/workflows/ngc-metadata.yaml @@ -10,6 +10,9 @@ on: permissions: contents: read +env: + UV_VERSION: "0.9.14" + jobs: sync: runs-on: ubuntu-latest @@ -29,6 +32,7 @@ jobs: - name: Set up uv uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0 with: + version: ${{ env.UV_VERSION }} enable-cache: false - name: Sync NGC metadata diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c82f912f750..0c53ab167ed 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -96,11 +96,17 @@ repos: files: 'pyproject\.toml$' pass_filenames: false verbose: true - - id: uv-version-constraint - name: Check uv version constraints + - id: uv-version-consistency + name: Check CI and Flox uv versions entry: ./tools/lint/check-uv-version.sh language: system - files: '^(pyproject\.toml|tools/python/\.flox/env/manifest\.toml)$' + files: '^(\.github/workflows/.*\.ya?ml|tools/python/\.flox/env/manifest\.toml)$' + pass_filenames: false + - id: node-version-consistency + name: Check Node.js and pnpm versions + entry: ./tools/lint/check-node-version.sh + language: system + files: '^(\.nvmrc|web/package\.json|tools/nodejs/\.flox/env/manifest\.toml|\.github/workflows/ci\.yaml|\.github/actions/build-nemo-platform-wheel/action\.yaml)$' pass_filenames: false - id: copyright-fix name: Fix copyright headers @@ -157,11 +163,9 @@ repos: # Flox - repo: local hooks: - - id: flox-include-check - name: Flox Include Upgrade - entry: |- - bash -c 'set -e - flox include upgrade 2>/dev/null' + - id: flox-lock-consistency + name: Check Flox locks + entry: ./tools/lint/check-flox-locks.sh language: system files: '(^\.flox/env/manifest\.toml$|^tools/[^/]+/\.flox/env/manifest\.toml$)' pass_filenames: false diff --git a/AGENTS.md b/AGENTS.md index 55dd24ed989..58afac916d2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -248,7 +248,7 @@ Ensure all pre-commit hooks pass by running `uv run pre-commit run -a`. A clean - **uv version:** Root `pyproject.toml` requires and supports `uv>=0.9.14` for source checkout bootstrap. `uv.lock` updates must use uv `0.9.14`, matching the platform containers and CI lock check. CI separately validates latest uv compatibility. - **Native build deps:** `make bootstrap-python` builds `annoy` (via `nemoguardrails`). Install system headers once per VM image: `sudo apt-get install -y python3-dev build-essential`. - **Python bootstrap:** Run `make bootstrap-python` from repo root (creates `.venv`, runs `uv sync --frozen --all-packages`). See [SETUP.md](SETUP.md) for the full playbook. -- **Studio (optional):** `make bootstrap-studio` resolves the Node.js/pnpm versions pinned in `mise.toml`, so a VM shipping an older Node doesn't need upgrading. API services still run without Studio assets. Pass `NMP_SKIP_MISE=1` to bootstrap against the toolchain already on PATH. +- **Studio (optional):** `make bootstrap-studio` uses the Node.js/pnpm versions pinned in the Flox environment, so a VM shipping an older Node does not need upgrading. API services still run without Studio assets. Pass `NMP_SKIP_FLOX=1` to bootstrap against the toolchain already on PATH. ### Running the platform diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c31721716d..bc3076d29f2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,11 +62,10 @@ For complete Studio setup instructions, see the [Getting Started section in the ##### Prerequisites -1. **Node.js matching the Studio workspace engine**: Install a Node version that satisfies the `engines.node` range in `web/package.json`. -2. **pnpm**: Install via corepack (included with Node.js 16.13+) +1. **Flox**: Activate the repository environment, which provides the pinned Node.js and pnpm versions: ```bash -corepack enable pnpm +flox activate ``` #### Initialize the Repository diff --git a/Makefile b/Makefile index 4c8341a56d0..28d856b588f 100644 --- a/Makefile +++ b/Makefile @@ -64,21 +64,21 @@ refresh-openapi: ## Generate the OpenAPI specification .PHONY: stainless stainless: ## Run Stainless to generate the OpenAPI spec and sync it with the SDK - SDK_RELEASE_TIER=ga $(MISE_EXEC) ./sdk/stainless.sh sync + SDK_RELEASE_TIER=ga $(FLOX_EXEC) ./sdk/stainless.sh sync .PHONY: generate generate: stainless ## Alias for SDK generation via Stainless .PHONY: update-web-sdk -update-web-sdk: verify-mise ## Regenerate the TypeScript web SDK (web/packages/sdk) from the OpenAPI spec via Orval - cd web && $(MISE_EXEC) pnpm gen +update-web-sdk: verify-flox ## Regenerate the TypeScript web SDK (web/packages/sdk) from the OpenAPI spec via Orval + cd web && $(FLOX_PNPM) gen .PHONY: update-sdk update-sdk: build-policy refresh-openapi stainless update-web-sdk update-cli ## Update the SDK by regenerating the OpenAPI spec and syncing it with Stainless .PHONY: vendor-nemo-platform-ext vendor-nemo-platform-ext: - $(MISE_EXEC) $(MAKE) -C packages/nemo_platform_ext vendor + $(FLOX_EXEC) $(MAKE) -C packages/nemo_platform_ext vendor .PHONY: generate-cli-commands generate-cli-commands: ## Run generation of the CLI commands @@ -163,14 +163,14 @@ clean-python: ## remove python virtual environment rm -rf .venv/ .PHONY: verify-python-version -verify-python-version: verify-mise ## Verify Python version and install if necessary +verify-python-version: verify-flox ## Verify Python version and install if necessary @echo "~~~~~~" @echo "verifying python version" $(UV) python find $(PYTHON_VERSION) || $(UV) python install $(PYTHON_VERSION) # Phony rather than a file target: a `.venv/bin/python` that already exists says # nothing about which interpreter it is, so changing PYTHON_VERSION has to force -# a rebuild. Order-only prerequisite keeps mise resolution out of the recipe. +# a rebuild. Order-only prerequisite keeps tool resolution out of the recipe. .PHONY: .venv .venv: | verify-python-version ## Create a Python virtual environment @echo "~~~" @@ -212,53 +212,27 @@ bootstrap-python: verify-python-version ## Bootstrap Python dependencies. $(BOOTSTRAP_ACTIVATION_REMINDER); \ fi -# Set NMP_SKIP_MISE=1 to bootstrap against the node/pnpm already on PATH -# instead of the mise-managed ones (offline installs, nix shells, distro -# toolchains). web/package.json engines are still enforced either way. -NMP_SKIP_MISE ?= -MISE_VERSION ?= v2026.5.7 -MISE := $(shell command -v mise 2>/dev/null || echo $(HOME)/.local/bin/mise) -MISE_EXEC := $(if $(NMP_SKIP_MISE),,"$(MISE)" exec --) -UV := $(MISE_EXEC) uv - -.PHONY: verify-mise -verify-mise: ## Install mise (if missing) and run `mise install` from mise.toml - @if [ -n "$(NMP_SKIP_MISE)" ]; then \ - echo "NMP_SKIP_MISE set, using node/pnpm from PATH"; \ - exit 0; \ - fi; \ - if [ ! -x "$(MISE)" ] && ! command -v mise >/dev/null 2>&1; then \ - curl -fsSL https://mise.run | MISE_VERSION=$(MISE_VERSION) sh; \ - fi; \ - if [ ! -x "$(MISE)" ] && ! command -v mise >/dev/null 2>&1; then \ - echo "mise not on PATH. Add $$HOME/.local/bin to PATH and re-run,"; \ - echo "or re-run with NMP_SKIP_MISE=1 to use your own node/pnpm."; \ - exit 1; \ - fi; \ - if [ -z "$${GITHUB_TOKEN:-}" ] && command -v gh >/dev/null 2>&1; then \ - GITHUB_TOKEN="$$(gh auth token 2>/dev/null)"; \ - export GITHUB_TOKEN; \ - fi; \ - "$(MISE)" install --yes || { \ - echo ""; \ - echo "mise could not install the pinned tools."; \ - echo "pnpm and uv are fetched through the GitHub API, which allows only"; \ - echo "60 unauthenticated requests per hour per IP. If the output above"; \ - echo "mentions a rate limit, set GITHUB_TOKEN (or run 'gh auth login')"; \ - echo "and re-run."; \ +# Set NMP_SKIP_FLOX=1 when CI has already provisioned the required tools. +NMP_SKIP_FLOX ?= +FLOX ?= flox +FLOX_EXEC := $(if $(NMP_SKIP_FLOX),,$(FLOX) activate --dir "$(CURDIR)" --) +UV := $(FLOX_EXEC) uv +FLOX_PNPM := $(FLOX_EXEC) bash -c 'node "$$(command -v pnpm)" "$$@"' -- + +.PHONY: verify-flox +verify-flox: ## Verify Flox is available for the repository toolchain + @if [ -n "$(NMP_SKIP_FLOX)" ]; then \ + echo "NMP_SKIP_FLOX set, using the CI-provisioned toolchain"; \ + elif ! command -v "$(FLOX)" >/dev/null 2>&1; then \ + echo "flox is required. Install it, then rerun this command."; \ exit 1; \ - } + fi .PHONY: verify-pnpm -verify-pnpm: verify-mise ## Verify pnpm is available for Studio bootstrap - @$(MISE_EXEC) pnpm --version || { \ +verify-pnpm: verify-flox ## Verify pnpm is available for Studio bootstrap + @$(FLOX_PNPM) --version || { \ echo "pnpm not found."; \ - if [ -n "$(NMP_SKIP_MISE)" ]; then \ - echo "NMP_SKIP_MISE is set, so pnpm has to come from your PATH."; \ - echo "Install pnpm, or re-run without NMP_SKIP_MISE to use the mise-managed one."; \ - else \ - echo "Run 'make verify-mise' to install the pinned toolchain."; \ - fi; \ + echo "Install Flox, or provision pnpm before setting NMP_SKIP_FLOX=1."; \ exit 1; \ } @@ -266,14 +240,14 @@ verify-pnpm: verify-mise ## Verify pnpm is available for Studio bootstrap verify-node-version: verify-pnpm ## Verify pnpm and Node.js satisfy Studio's package engine @echo "~~~~~~" @echo "verifying Node.js version from web/package.json engines" - @$(MISE_EXEC) script/verify-node-version.sh + @$(FLOX_EXEC) bash script/verify-node-version.sh .PHONY: bootstrap-studio bootstrap-studio: verify-node-version ## Install web dependencies and build Studio assets for FastAPI @echo "~~~~~~" @echo "installing Studio web dependencies and building FastAPI assets" - cd web && CI=true $(MISE_EXEC) pnpm install --frozen-lockfile - cd web && $(MISE_EXEC) pnpm --filter nemo-studio-ui build:fastapi + cd web && CI=true $(FLOX_PNPM) install --frozen-lockfile + cd web && $(FLOX_PNPM) --filter nemo-studio-ui build:fastapi .PHONY: bootstrap-plugins bootstrap-plugins: .venv ## Install editable plugin packages not covered by the root uv workspace @@ -339,13 +313,13 @@ check-copyright-headers: .PHONY: lint lint: ## Run all linters (licenses, openapi, config docs, python style/types/sdk, vendored SDK, CLI, auth config) - $(MISE_EXEC) bash tools/lint/lint-all.sh + $(FLOX_EXEC) bash tools/lint/lint-all.sh LINT_FIX_VERIFY ?= 0 .PHONY: lint-fix lint-fix: ## Auto-fix lint issues (set LINT_FIX_VERIFY=1 to also run CI lint checks) - LINT_FIX_VERIFY=$(LINT_FIX_VERIFY) $(MISE_EXEC) bash tools/lint/lint-fix.sh + LINT_FIX_VERIFY=$(LINT_FIX_VERIFY) $(FLOX_EXEC) bash tools/lint/lint-fix.sh .PHONY: vendor vendor: ## Vendor packages into the SDK and generate wrapper metadata diff --git a/README.md b/README.md index b7900b2b7a2..e3d967e3509 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ source .venv/bin/activate nemo setup ``` -Source development still needs Git and GNU Make. `make bootstrap` supplies the rest of the toolchain, installing the uv, Node.js and pnpm versions pinned in `mise.toml`. Run it before other `make` targets — they call uv through mise but don't install it. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). +Source development still needs Git, GNU Make, and Flox. `make bootstrap` uses the Flox-pinned uv, Node.js, and pnpm toolchain. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). `nemo setup` starts local services, registers your LLM provider, discovers available models, selects default and fast agent models, installs agent skills, and deploys a sample agent (see more below). diff --git a/SETUP.md b/SETUP.md index f39e3a0df80..2684674077c 100644 --- a/SETUP.md +++ b/SETUP.md @@ -114,38 +114,24 @@ nemo setup --auto --start-services --install-skills --deploy-agent ### Toolchain: uv, Node.js, pnpm -`mise.toml` pins all three — uv to satisfy `pyproject.toml`'s `required-version`, Node.js and pnpm to satisfy `web/package.json` engines. `make bootstrap` installs mise on first run and invokes each through `mise exec --`, so the pinned versions win over whatever is already on your PATH. Nothing is written to your shell rc. +Flox pins all three — uv to satisfy `pyproject.toml`'s `required-version`, Node.js to match `.nvmrc`, and pnpm to match `web/package.json`. `make` invokes tools through `flox activate --`, so the pinned versions win over whatever is already on your PATH. Nothing is written to your shell rc. -**Run `make bootstrap` before any other `make` target.** Targets such as `make test-unit`, `make update-licenses` and `make refresh-openapi` call uv through mise but don't install mise themselves. On a machine that doesn't have it yet, they fail like this: +**Run `make bootstrap` before any other `make` target.** Targets such as `make test-unit`, `make update-licenses` and `make refresh-openapi` call uv through Flox. On a machine that does not have Flox yet, they fail like this: ```text -/bin/sh: /Users/you/.local/bin/mise: No such file or directory +/bin/sh: flox: command not found make: *** [test-unit] Error 127 ``` -`make bootstrap` fixes it, as does `make verify-mise` on its own. To use the toolchain you already have instead, pass `NMP_SKIP_MISE=1` — it works on every target. +`make bootstrap` fixes it, as does `make verify-flox` on its own. CI uses `NMP_SKIP_FLOX=1` only after it has provisioned the matching toolchain explicitly. -That covers the `make` targets only. To run `uv` or `pnpm` directly — `uv sync`, the Studio dev server, tests, lint — you need mise on your PATH first, since it installs to `~/.local/bin`: +That covers the `make` targets only. To run `uv` or `pnpm` directly, activate Flox first: ```bash -export PATH="$HOME/.local/bin:$PATH" +flox activate ``` -Then either prefix commands: - -```bash -mise exec -- pnpm dev -mise exec -- uv sync -``` - -or activate mise once so every shell picks up the pinned versions: - -```bash -eval "$(mise activate bash)" # ~/.bashrc -eval "$(mise activate zsh)" # ~/.zshrc -``` - -Without one of those, a system or nvm-managed Node.js takes precedence and may not satisfy `engines`, and a globally installed uv outside `required-version` fails `uv sync` with a version mismatch. To bootstrap against your own toolchain instead of mise, use `make bootstrap NMP_SKIP_MISE=1`. +Without Flox, a system Node.js may not satisfy `engines`, and a globally installed uv outside `required-version` fails `uv sync` with a version mismatch. If `nemo setup` is too high-level for the task (e.g. debugging startup, custom service set, custom plugin install after bootstrap), use the manual sections below. diff --git a/mise.toml b/mise.toml deleted file mode 100644 index 59fe4b2c463..00000000000 --- a/mise.toml +++ /dev/null @@ -1,4 +0,0 @@ -[tools] -node = "22.23.2" -pnpm = "10.34.5" -uv = "0.9" diff --git a/script/verify-node-version.sh b/script/verify-node-version.sh index e293e066b37..ef6cc7b1747 100755 --- a/script/verify-node-version.sh +++ b/script/verify-node-version.sh @@ -10,16 +10,24 @@ WEB_DIR="$REPO_ROOT/web" for tool in node pnpm; do if ! command -v "$tool" >/dev/null 2>&1; then echo "$tool is not on PATH." - if [ -n "${NMP_SKIP_MISE:-}" ]; then - echo "NMP_SKIP_MISE is set, so $tool has to come from your PATH." - echo "Install it, or re-run without NMP_SKIP_MISE to use the mise-managed one." + if [ -n "${NMP_SKIP_FLOX:-}" ]; then + echo "NMP_SKIP_FLOX is set, so $tool has to come from your PATH." + echo "Install it, or re-run without NMP_SKIP_FLOX to use the Flox-managed one." else - echo "Run 'make verify-mise' to install the pinned toolchain." + echo "Install Flox, then rerun this command." fi exit 1 fi done +# Flox's pnpm package may be built with a different Node.js version than the +# one selected by this environment. Invoke its JavaScript entrypoint with the +# selected node executable so pnpm and its child processes use the pinned Node. +pnpm_path="$(command -v pnpm)" +pnpm() { + node "${pnpm_path}" "$@" +} + # --- Engine compatibility check --- node_current="$(node --version)" diff --git a/tools/lint/check-flox-locks.sh b/tools/lint/check-flox-locks.sh new file mode 100755 index 00000000000..f4b7d7858bd --- /dev/null +++ b/tools/lint/check-flox-locks.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +root_lock=".flox/env/manifest.lock" + +canonical_manifest() { + yq -o=json '.options = (.options // {}) | sort_keys(..)' "$1" +} + +canonical_composer() { + yq -o=json '.compose.composer | .options = (.options // {}) | sort_keys(..)' "${root_lock}" +} + +canonical_include() { + local environment_dir="$1" + yq -o=json "(.compose.include[] | select(.descriptor.dir == \"${environment_dir}\") | .manifest) | .options = (.options // {}) | sort_keys(..)" "${root_lock}" +} + +if [[ ! -f "${root_lock}" ]]; then + echo "Missing ${root_lock}. Run: flox include upgrade" >&2 + exit 1 +fi + +if [[ "$(canonical_manifest .flox/env/manifest.toml)" != "$(canonical_composer)" ]]; then + echo "Root Flox manifest is not reflected in ${root_lock}. Run: flox include upgrade" >&2 + exit 1 +fi + +while IFS= read -r environment_dir; do + environment_manifest="${environment_dir}/.flox/env/manifest.toml" + environment_lock="${environment_dir}/.flox/env/manifest.lock" + + if [[ ! -f "${environment_lock}" ]]; then + echo "Missing ${environment_lock}. Run: flox upgrade --dir ${environment_dir}" >&2 + exit 1 + fi + + if [[ "$(canonical_manifest "${environment_manifest}")" != "$(canonical_manifest "${environment_lock}" | yq -o=json '.manifest')" ]]; then + echo "${environment_manifest} is not reflected in ${environment_lock}. Run: flox upgrade --dir ${environment_dir}" >&2 + exit 1 + fi + + if [[ "$(canonical_manifest "${environment_lock}" | yq -o=json '.manifest')" != "$(canonical_include "${environment_dir}")" ]]; then + echo "${environment_lock} is not reflected in ${root_lock}. Run: flox include upgrade" >&2 + exit 1 + fi +done < <(yq -r '.include.environments[].dir' .flox/env/manifest.toml) diff --git a/tools/lint/check-node-version.sh b/tools/lint/check-node-version.sh new file mode 100755 index 00000000000..9b307560f7e --- /dev/null +++ b/tools/lint/check-node-version.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +node_version="$(yq '.install.nodejs.version' tools/nodejs/.flox/env/manifest.toml)" +pnpm_version="$(yq '.install.pnpm.version' tools/nodejs/.flox/env/manifest.toml)" +nvmrc_version="$(tr -d '[:space:]' < .nvmrc)" +package_manager="$(yq -r '.packageManager' web/package.json)" + +if [[ "${node_version}" != "${nvmrc_version}" ]]; then + echo "Flox Node.js version ${node_version} does not match .nvmrc ${nvmrc_version}." >&2 + exit 1 +fi + +if [[ "${package_manager}" != "pnpm@${pnpm_version}" ]]; then + echo "Flox pnpm version ${pnpm_version} does not match web/package.json ${package_manager}." >&2 + exit 1 +fi + +assert_setup_node_uses_nvmrc() { + local workflow="$1" + local version_file="$2" + local setup_node_count + local version_file_count + + setup_node_count="$(rg -c 'uses: actions/setup-node@' "${workflow}")" + version_file_count="$(rg -F -c "node-version-file: ${version_file}" "${workflow}")" + + if [[ "${setup_node_count}" -eq 0 || "${setup_node_count}" != "${version_file_count}" ]]; then + echo "Every setup-node step in ${workflow} must use ${version_file}." >&2 + exit 1 + fi +} + +assert_setup_node_uses_nvmrc .github/workflows/ci.yaml .nvmrc +assert_setup_node_uses_nvmrc .github/actions/build-nemo-platform-wheel/action.yaml '${{ inputs.source-root }}/.nvmrc' diff --git a/tools/lint/check-uv-version.sh b/tools/lint/check-uv-version.sh index 5cebe617074..647fac9a511 100755 --- a/tools/lint/check-uv-version.sh +++ b/tools/lint/check-uv-version.sh @@ -4,11 +4,19 @@ set -euo pipefail -_python_ver="$(yq '.tool.uv.required-version' pyproject.toml)" _flox_ver="$(yq '.install.uv.version' tools/python/.flox/env/manifest.toml)" -if [[ "${_python_ver}" != "${_flox_ver}" ]]; then - printf "uv version constraints differ:\n\n" - printf "pyproject.toml flox-env\n%s %s\n" "${_python_ver}" "${_flox_ver}" | column -t +if [[ ! "${_flox_ver}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + printf "Flox must install an exact uv version, found: %s\n" "${_flox_ver}" >&2 exit 1 fi + +while IFS= read -r _workflow; do + _ci_ver="$(yq '.env.UV_VERSION' "${_workflow}")" + + if [[ "${_ci_ver}" != "${_flox_ver}" ]]; then + printf "CI and Flox uv versions differ:\n\n" >&2 + printf "workflow flox-env\n%s %s\n" "${_workflow}:${_ci_ver}" "${_flox_ver}" | column -t >&2 + exit 1 + fi +done < <(rg -l 'astral-sh/setup-uv' .github/workflows) diff --git a/tools/lint/check_uv_version.py b/tools/lint/check_uv_version.py deleted file mode 100644 index 53d9148afbc..00000000000 --- a/tools/lint/check_uv_version.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python3 -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -"""Ensure uv uses the same version constraint in Flox and pyproject.toml.""" - -import sys -import tomllib -from collections.abc import Mapping -from pathlib import Path - -PROJECT_ROOT = Path(__file__).resolve().parents[2] -PYPROJECT_PATH = PROJECT_ROOT / "pyproject.toml" -FLOX_MANIFEST_PATH = PROJECT_ROOT / "tools/python/.flox/env/manifest.toml" - - -def load_toml(path: Path) -> dict[str, object]: - with path.open("rb") as file: - return tomllib.load(file) - - -def get_nested_value(config: Mapping[str, object], *keys: str) -> object | None: - value: object = config - for key in keys: - if not isinstance(value, Mapping): - return None - value = value.get(key) - return value - - -def main() -> int: - pyproject = load_toml(PYPROJECT_PATH) - manifest = load_toml(FLOX_MANIFEST_PATH) - - pyproject_version = get_nested_value(pyproject, "tool", "uv", "required-version") - flox_version = get_nested_value(manifest, "install", "uv", "version") - - if not isinstance(pyproject_version, str) or not isinstance(flox_version, str): - print("uv version constraints must be strings", file=sys.stderr) - return 1 - - if pyproject_version != flox_version: - print( - "uv version constraints differ: " - f"pyproject.toml has {pyproject_version!r}, while " - f"tools/python/.flox/env/manifest.toml has {flox_version!r}", - file=sys.stderr, - ) - return 1 - - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/tools/lint/lint-all.sh b/tools/lint/lint-all.sh index bb505bf33ee..587412fb0d8 100755 --- a/tools/lint/lint-all.sh +++ b/tools/lint/lint-all.sh @@ -6,7 +6,9 @@ PROJECT_ROOT="${CI_PROJECT_DIR:-$(cd "${SCRIPT_DIR}/../.." && pwd)}" cd "${PROJECT_ROOT}" || exit 1 declare -a scripts=( - "check-uv-version:tools/lint/check-uv-version.sh" + "check-uv-version-consistency:tools/lint/check-uv-version.sh" + "check-node-version-consistency:tools/lint/check-node-version.sh" + "check-flox-lock-consistency:tools/lint/check-flox-locks.sh" "lint-licenses:tools/lint/lint-licenses.sh" "lint-openapi:tools/lint/lint-openapi.sh" "lint-config-reference-docs:tools/lint/lint-config-reference-docs.sh" diff --git a/tools/nodejs/.flox/env/manifest.lock b/tools/nodejs/.flox/env/manifest.lock index e60a7f61144..028eee29a69 100644 --- a/tools/nodejs/.flox/env/manifest.lock +++ b/tools/nodejs/.flox/env/manifest.lock @@ -3,142 +3,198 @@ "manifest": { "schema-version": "1.13.0", "install": { - "fnm": { - "pkg-path": "fnm", - "pkg-group": "node" + "nodejs": { + "pkg-path": "nodejs_22", + "pkg-group": "node", + "version": "22.23.2" + }, + "pnpm": { + "pkg-path": "pnpm_10", + "pkg-group": "node", + "version": "10.34.5" } }, "vars": { - "FNM_DIR": "${FLOX_ENV_CACHE}/fnm", - "FNM_VERSION_FILE_STRATEGY": "recursive", - "NPM_CONFIG_STORE_DIR": "${FLOX_ENV_CACHE}/npm-cache" - }, - "hook": { - "on-activate": " set -euo pipefail\n\n echo \"NodeJS Setup... Starting\"\n echo \"Current Directory: $(pwd)\"\n\n eval \"$(fnm env --shell bash)\"\n fnm install --use --corepack-enabled\n corepack enable\n\n package_manager=\"$(node -p \"require('./web/package.json').packageManager\")\"\n corepack prepare \"${package_manager}\" --activate\n CI=true pnpm install -C \"./web\" --frozen-lockfile\n\n echo \"NodeJS Setup... Complete\"\n" - }, - "profile": { - "bash": " eval \"$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)\"\n", - "zsh": " eval \"$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)\"\n", - "fish": " fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source\n" + "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm" }, - "options": {} + "options": { + "systems": [ + "aarch64-darwin", + "aarch64-linux", + "x86_64-linux" + ] + } }, "packages": [ { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/m4s0894j2dj2k375c7dns2ib8nk5krpw-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:12:55.889515Z", + "derivation": "/nix/store/98iw9769gchj4vs8vkfvkdnxczaarami-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:15.826463Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "22.23.2", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/fp3ndk75i6c1c31a9zqkz3pk61gz294h-fnm-1.39.0" + "out": "/nix/store/s0qzknz77k3lzikgywx2piilfp8w0581-nodejs-22.23.2" }, "system": "aarch64-darwin", "group": "node", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/zh7xw7li0b92r9cx25f4j19qdp1kqvdz-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:41:22.827979Z", + "derivation": "/nix/store/i9h6nligglciwssrc0zdri9zji0hx20c-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:46.217099Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "22.23.2", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/1312sbdkqvdp0m5gak0dfgz0bf2p1kgj-fnm-1.39.0" + "out": "/nix/store/i7dq81ramvcyrzasgv8qbf07rgfiqiai-nodejs-22.23.2" }, "system": "aarch64-linux", "group": "node", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "nodejs_22", "broken": false, - "derivation": "/nix/store/0ib0kdcx3a11klp8pjjz6a2z474bf820-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:09:01.365196Z", + "derivation": "/nix/store/1x2rjyk2j93jmsl6myl8nrv7b95viv21-nodejs-22.23.2.drv", + "description": "Event-driven I/O framework for the V8 JavaScript engine", + "install_id": "nodejs", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "nodejs-22.23.2", + "pname": "nodejs_22", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:59:03.273842Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "22.23.2", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/m6mcghc8bqzaal27zkqrp0a9mpk98hld-fnm-1.39.0" + "out": "/nix/store/3vm4j8im8bzdal3dsgmhv9gb5kvanbp1-nodejs-22.23.2" }, - "system": "x86_64-darwin", + "system": "x86_64-linux", + "group": "node", + "priority": 5 + }, + { + "attr_path": "pnpm_10", + "broken": false, + "derivation": "/nix/store/1x2hdyi7z35mpsb40q1c99rzzli3lyd1-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:29.248162Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "10.34.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/mqihmbwcawwpgwnwfg2hwyx4y8577991-pnpm-10.34.5" + }, + "system": "aarch64-darwin", + "group": "node", + "priority": 5 + }, + { + "attr_path": "pnpm_10", + "broken": false, + "derivation": "/nix/store/ykmg9frmp7x4dni86raf9m10xjb9hpz1-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:25:05.998051Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "10.34.5", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/z4vxcxkfb4mh4ajc7gvwihqqawcnd7qs-pnpm-10.34.5" + }, + "system": "aarch64-linux", "group": "node", "priority": 5 }, { - "attr_path": "fnm", + "attr_path": "pnpm_10", "broken": false, - "derivation": "/nix/store/isdxp3dj73n1j6zzxjnjg20f4016h7ia-fnm-1.39.0.drv", - "description": "Fast and simple Node.js version manager", - "install_id": "fnm", - "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", - "name": "fnm-1.39.0", - "pname": "fnm", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:40:25.581588Z", + "derivation": "/nix/store/a4s9ni15m40b0iwglfmdrhnjwd0bab4n-pnpm-10.34.5.drv", + "description": "Fast, disk space efficient package manager for JavaScript", + "install_id": "pnpm", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "name": "pnpm-10.34.5", + "pname": "pnpm_10", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:59:22.852600Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, - "version": "1.39.0", + "version": "10.34.5", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/1dih2h4sxfqkkg32db7753m02d9q54hk-fnm-1.39.0" + "out": "/nix/store/1y1j3774v84329m42q0sjy3f89n5p1fx-pnpm-10.34.5" }, "system": "x86_64-linux", "group": "node", diff --git a/tools/nodejs/.flox/env/manifest.toml b/tools/nodejs/.flox/env/manifest.toml index 93844b8c122..cc57db664e9 100644 --- a/tools/nodejs/.flox/env/manifest.toml +++ b/tools/nodejs/.flox/env/manifest.toml @@ -1,38 +1,11 @@ schema-version = "1.13.0" [install] -fnm = { pkg-path = "fnm", pkg-group = "node" } +nodejs = { pkg-path = "nodejs_22", version = "22.23.2", pkg-group = "node" } +pnpm = { pkg-path = "pnpm_10", version = "10.34.5", pkg-group = "node" } [vars] -FNM_DIR="${FLOX_ENV_CACHE}/fnm" -FNM_VERSION_FILE_STRATEGY="recursive" -NPM_CONFIG_STORE_DIR="${FLOX_ENV_CACHE}/npm-cache" +PNPM_HOME="${FLOX_ENV_CACHE}/pnpm" -[hook] -on-activate = ''' - set -euo pipefail - - echo "NodeJS Setup... Starting" - echo "Current Directory: $(pwd)" - - eval "$(fnm env --shell bash)" - fnm install --use --corepack-enabled - corepack enable - - package_manager="$(node -p "require('./web/package.json').packageManager")" - corepack prepare "${package_manager}" --activate - CI=true pnpm install -C "./web" --frozen-lockfile - - echo "NodeJS Setup... Complete" -''' - -[profile] -bash = ''' - eval "$(fnm env --shell bash --use-on-cd --version-file-strategy=recursive)" -''' -zsh = ''' - eval "$(fnm env --shell zsh --use-on-cd --version-file-strategy=recursive)" -''' -fish = ''' - fnm env --shell fish --use-on-cd --version-file-strategy=recursive | source -''' +[options] +systems = ["aarch64-darwin", "aarch64-linux", "x86_64-linux"] diff --git a/tools/python/.flox/env/manifest.lock b/tools/python/.flox/env/manifest.lock index 1955cb5e6ab..2002fd6b23d 100644 --- a/tools/python/.flox/env/manifest.lock +++ b/tools/python/.flox/env/manifest.lock @@ -6,7 +6,7 @@ "uv": { "pkg-path": "uv", "pkg-group": "uv", - "version": ">=0.9.14,<0.10.0" + "version": "0.9.14" } }, "vars": { @@ -17,7 +17,7 @@ "UV_VENV_SEED": "1" }, "hook": { - "on-activate": " set -euo pipefail\n\n echo \"Python Setup... Starting\"\n uv sync --frozen --all-packages\n echo \"Python Setup... Complete\"\n" + "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "profile": { "bash": " source .venv/bin/activate\n", @@ -30,28 +30,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/v9837hla896n3pjv9hmx3ii4sk30p0r9-uv-0.9.28.drv", + "derivation": "/nix/store/5xdn711qjgkkady64ywrxq6mhbi9nz9h-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T04:38:13.753987Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T02:56:01.692648Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/rnci0wgac6r47gr09bhb6x5fyc507i43-uv-0.9.28" + "out": "/nix/store/zbg4ksfcdcmqbw8x0f0xlla16g2lhxgy-uv-0.9.14" }, "system": "aarch64-darwin", "group": "uv", @@ -60,28 +60,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/dlp3p1pzksliq0pli84ff5ifbvh13211-uv-0.9.28.drv", + "derivation": "/nix/store/8z6dv3xfq2mc9hw87w37sw2hs1jlchyg-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:08:27.505844Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T03:05:28.971221Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/r6g6avldk8dlj30dmk2p2971akkmw9h3-uv-0.9.28" + "out": "/nix/store/2k74mawzpjihb1jpyxlmbhaz7wflbhyb-uv-0.9.14" }, "system": "aarch64-linux", "group": "uv", @@ -90,28 +90,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/1dxxxb7ia28b4fcvn00vvc2xmal3kamm-uv-0.9.28.drv", + "derivation": "/nix/store/v9j7x0id9jkqg88fydksrddjy2pxcgib-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T05:35:52.717277Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T03:13:57.183996Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/vrzvbvds4vvj5989w838m562vavqzd4w-uv-0.9.28" + "out": "/nix/store/msq3vg45z01w0bl7q0k57yyczjh10hv8-uv-0.9.14" }, "system": "x86_64-darwin", "group": "uv", @@ -120,28 +120,28 @@ { "attr_path": "uv", "broken": false, - "derivation": "/nix/store/b88x7x44g3gj9mfw2ql683lfcxqjil95-uv-0.9.28.drv", + "derivation": "/nix/store/16j8ajlaksqd7pv1pnp12v22bb79wsl8-uv-0.9.14.drv", "description": "Extremely fast Python package installer and resolver, written in Rust", "install_id": "uv", "license": "[ Apache-2.0, MIT ]", - "locked_url": "https://github.com/flox/nixpkgs?rev=00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "name": "uv-0.9.28", + "locked_url": "https://github.com/flox/nixpkgs?rev=418468ac9527e799809c900eda37cbff999199b6", + "name": "uv-0.9.14", "pname": "uv", - "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2", - "rev_count": 940249, - "rev_date": "2026-02-04T09:32:58Z", - "scrape_date": "2026-02-06T06:09:00.313627Z", + "rev": "418468ac9527e799809c900eda37cbff999199b6", + "rev_count": 905402, + "rev_date": "2025-12-02T09:27:49Z", + "scrape_date": "2025-12-04T03:23:20.097970Z", "stabilities": [ "staging", "unstable" ], "unfree": false, - "version": "0.9.28", + "version": "0.9.14", "outputs_to_install": [ "out" ], "outputs": { - "out": "/nix/store/jddcqyx0099mynb7gxr0dd66hkpqqs2r-uv-0.9.28" + "out": "/nix/store/483pf97g9l0l3rh0988ghffcppm4001a-uv-0.9.14" }, "system": "x86_64-linux", "group": "uv", diff --git a/tools/python/.flox/env/manifest.toml b/tools/python/.flox/env/manifest.toml index dab93a67cc6..eafad0fa118 100644 --- a/tools/python/.flox/env/manifest.toml +++ b/tools/python/.flox/env/manifest.toml @@ -1,7 +1,7 @@ schema-version = "1.13.0" [install] -uv = { pkg-path = "uv", version = ">=0.9.14,<0.10.0", pkg-group = "uv" } +uv = { pkg-path = "uv", version = "0.9.14", pkg-group = "uv" } [vars] UV_VENV_SEED="1" @@ -14,9 +14,12 @@ UV_PYTHON_INSTALL_DIR="${FLOX_ENV_CACHE}/python" on-activate = ''' set -euo pipefail - echo "Python Setup... Starting" + if uv sync --frozen --all-packages --check; then + return 0 + fi + + echo "Python environment is out of sync; synchronizing..." uv sync --frozen --all-packages - echo "Python Setup... Complete" ''' [profile] diff --git a/web/AGENTS.md b/web/AGENTS.md index 328abc0806e..70ec15277a9 100644 --- a/web/AGENTS.md +++ b/web/AGENTS.md @@ -32,7 +32,7 @@ Cursor/Claude skills for this monorepo live under **`web/.agents/skills/`** (for - Use **pnpm** exclusively — never npm or yarn - Run frontend commands from `web/`, not from repo root -- Node.js and pnpm come from mise (`mise.toml` at the repo root). Run `make verify-mise` from the repo root to install the pinned versions; mise lands in `~/.local/bin`, so use `~/.local/bin/mise exec -- ` if that directory isn't on PATH and mise isn't activated in the shell +- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work, or prefix one command with `flox activate -- pnpm ` - Install dependencies: `pnpm add ` - Run scripts: `pnpm ` diff --git a/web/README.md b/web/README.md index dc54d2336ca..e96baa92312 100644 --- a/web/README.md +++ b/web/README.md @@ -4,22 +4,13 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen ## Getting Started -1. Get Node.js and pnpm satisfying the `engines` in `package.json` onto your PATH. Either let [mise](https://mise.jdx.dev/) manage them from the versions pinned in `mise.toml` at the repo root: +1. Get Node.js and pnpm satisfying the `engines` in `package.json` onto your PATH. The root Flox environment provides the pinned versions: ```bash - make verify-mise # from the repo root, installs mise + the pinned versions + flox activate # from the repository root ``` - mise installs to `~/.local/bin`, so make sure that's on your PATH, then add the matching line for your shell to its startup file: - - ```bash - export PATH="$HOME/.local/bin:$PATH" - - eval "$(mise activate bash)" # ~/.bashrc - eval "$(mise activate zsh)" # ~/.zshrc - ``` - - or install Node.js and pnpm yourself. `make bootstrap-studio` and the other `make` targets use the mise-managed versions by default, whatever you pick here — pass `NMP_SKIP_MISE=1` to make them use your PATH instead. + or install Node.js and pnpm yourself. `make bootstrap-studio` and the other `make` targets use the Flox-managed versions by default. 2. Install workspace deps and copy `.env` files, from `web/`: From 1a5898b1241366f3183cbc24667555769a75bb32 Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 11:27:46 -0700 Subject: [PATCH 10/17] fix: adjust the flox behavior to be nicer in make Signed-off-by: Brooke Storm --- Makefile | 12 +++++++++++- tools/lint/lint-fix-web-sdk.sh | 3 ++- tools/lint/lint-web-sdk.sh | 3 ++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 28d856b588f..1bc00741162 100644 --- a/Makefile +++ b/Makefile @@ -215,7 +215,15 @@ bootstrap-python: verify-python-version ## Bootstrap Python dependencies. # Set NMP_SKIP_FLOX=1 when CI has already provisioned the required tools. NMP_SKIP_FLOX ?= FLOX ?= flox -FLOX_EXEC := $(if $(NMP_SKIP_FLOX),,$(FLOX) activate --dir "$(CURDIR)" --) +ifeq ($(NMP_SKIP_FLOX),) +ifeq ($(FLOX_ENV_PROJECT),$(CURDIR)) +FLOX_EXEC := +else +FLOX_EXEC := $(FLOX) activate --dir "$(CURDIR)" -- +endif +else +FLOX_EXEC := +endif UV := $(FLOX_EXEC) uv FLOX_PNPM := $(FLOX_EXEC) bash -c 'node "$$(command -v pnpm)" "$$@"' -- @@ -223,6 +231,8 @@ FLOX_PNPM := $(FLOX_EXEC) bash -c 'node "$$(command -v pnpm)" "$$@"' -- verify-flox: ## Verify Flox is available for the repository toolchain @if [ -n "$(NMP_SKIP_FLOX)" ]; then \ echo "NMP_SKIP_FLOX set, using the CI-provisioned toolchain"; \ + elif [ "$(FLOX_ENV_PROJECT)" = "$(CURDIR)" ]; then \ + echo "Using the active Flox environment"; \ elif ! command -v "$(FLOX)" >/dev/null 2>&1; then \ echo "flox is required. Install it, then rerun this command."; \ exit 1; \ diff --git a/tools/lint/lint-fix-web-sdk.sh b/tools/lint/lint-fix-web-sdk.sh index cb2f0242103..6beb309ef53 100755 --- a/tools/lint/lint-fix-web-sdk.sh +++ b/tools/lint/lint-fix-web-sdk.sh @@ -15,4 +15,5 @@ if ! command -v pnpm >/dev/null 2>&1; then exit 0 fi -exec pnpm gen +pnpm_path="$(command -v pnpm)" +exec node "${pnpm_path}" gen diff --git a/tools/lint/lint-web-sdk.sh b/tools/lint/lint-web-sdk.sh index d0db9cf3f75..c18b1ab4ddb 100755 --- a/tools/lint/lint-web-sdk.sh +++ b/tools/lint/lint-web-sdk.sh @@ -16,4 +16,5 @@ if ! command -v pnpm >/dev/null 2>&1; then exit 0 fi -exec pnpm gen:check +pnpm_path="$(command -v pnpm)" +exec node "${pnpm_path}" gen:check From 1687143148f278b5240651a7a187fbd82d7dc8ad Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 11:49:47 -0700 Subject: [PATCH 11/17] fix: use gum colors that work as expected Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 12 ++++++------ tools/common/.flox/env/manifest.lock | 6 +++--- tools/common/.flox/env/manifest.toml | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 8a3cdfde043..9d9d120b64d 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -75,9 +75,9 @@ "vars": { "ALIGN": "center", "BORDER": "double", - "BORDER_FOREGROUND": "514", - "FOREGROUND": "514", - "GUM_LOG_MESSAGE_FOREGROUND": "514", + "BORDER_FOREGROUND": "#76B900", + "FOREGROUND": "#76B900", + "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", "MARGIN": "1 2", "PADDING": "1 2", "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm", @@ -1618,9 +1618,9 @@ "vars": { "ALIGN": "center", "BORDER": "double", - "BORDER_FOREGROUND": "514", - "FOREGROUND": "514", - "GUM_LOG_MESSAGE_FOREGROUND": "514", + "BORDER_FOREGROUND": "#76B900", + "FOREGROUND": "#76B900", + "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", "MARGIN": "1 2", "PADDING": "1 2", "WIDTH": "50" diff --git a/tools/common/.flox/env/manifest.lock b/tools/common/.flox/env/manifest.lock index 5c23fa45976..b56a26ef9dd 100644 --- a/tools/common/.flox/env/manifest.lock +++ b/tools/common/.flox/env/manifest.lock @@ -25,9 +25,9 @@ "vars": { "ALIGN": "center", "BORDER": "double", - "BORDER_FOREGROUND": "514", - "FOREGROUND": "514", - "GUM_LOG_MESSAGE_FOREGROUND": "514", + "BORDER_FOREGROUND": "#76B900", + "FOREGROUND": "#76B900", + "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", "MARGIN": "1 2", "PADDING": "1 2", "WIDTH": "50" diff --git a/tools/common/.flox/env/manifest.toml b/tools/common/.flox/env/manifest.toml index 4b8f2245f37..62fff239565 100644 --- a/tools/common/.flox/env/manifest.toml +++ b/tools/common/.flox/env/manifest.toml @@ -10,9 +10,9 @@ diffutils.pkg-path = "diffutils" yq-go.pkg-path = "yq-go" [vars] -GUM_LOG_MESSAGE_FOREGROUND="514" -FOREGROUND="514" -BORDER_FOREGROUND="514" +GUM_LOG_MESSAGE_FOREGROUND="#76B900" +FOREGROUND="#76B900" +BORDER_FOREGROUND="#76B900" BORDER="double" ALIGN="center" WIDTH="50" From a98adcd146c9d32cbfde98f41ea84149c9d14006 Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 11:58:15 -0700 Subject: [PATCH 12/17] fix: minor consistancy fix around activations Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 14 +++----------- tools/python/.flox/env/manifest.lock | 7 +------ tools/python/.flox/env/manifest.toml | 15 +++------------ 3 files changed, 7 insertions(+), 29 deletions(-) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 9d9d120b64d..905da5f228f 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -89,13 +89,10 @@ "WIDTH": "50" }, "hook": { - "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" + "on-activate": " set -euo pipefail\n\n export VIRTUAL_ENV=\"$PWD/.venv\"\n export PATH=\"$VIRTUAL_ENV/bin:$PATH\"\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "profile": { - "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n", - "bash": " source .venv/bin/activate\n", - "zsh": " source .venv/bin/activate\n", - "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" + "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, "options": { "systems": [ @@ -1705,12 +1702,7 @@ "UV_VENV_SEED": "1" }, "hook": { - "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" - }, - "profile": { - "bash": " source .venv/bin/activate\n", - "zsh": " source .venv/bin/activate\n", - "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" + "on-activate": " set -euo pipefail\n\n export VIRTUAL_ENV=\"$PWD/.venv\"\n export PATH=\"$VIRTUAL_ENV/bin:$PATH\"\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "options": {} }, diff --git a/tools/python/.flox/env/manifest.lock b/tools/python/.flox/env/manifest.lock index 2002fd6b23d..dc99be3f765 100644 --- a/tools/python/.flox/env/manifest.lock +++ b/tools/python/.flox/env/manifest.lock @@ -17,12 +17,7 @@ "UV_VENV_SEED": "1" }, "hook": { - "on-activate": " set -euo pipefail\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" - }, - "profile": { - "bash": " source .venv/bin/activate\n", - "zsh": " source .venv/bin/activate\n", - "fish": " set -gx VIRTUAL_ENV \"$PWD/.venv\"\n set -gx PATH \"$VIRTUAL_ENV/bin\" $PATH\n" + "on-activate": " set -euo pipefail\n\n export VIRTUAL_ENV=\"$PWD/.venv\"\n export PATH=\"$VIRTUAL_ENV/bin:$PATH\"\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" }, "options": {} }, diff --git a/tools/python/.flox/env/manifest.toml b/tools/python/.flox/env/manifest.toml index eafad0fa118..e714a049bfe 100644 --- a/tools/python/.flox/env/manifest.toml +++ b/tools/python/.flox/env/manifest.toml @@ -14,6 +14,9 @@ UV_PYTHON_INSTALL_DIR="${FLOX_ENV_CACHE}/python" on-activate = ''' set -euo pipefail + export VIRTUAL_ENV="$PWD/.venv" + export PATH="$VIRTUAL_ENV/bin:$PATH" + if uv sync --frozen --all-packages --check; then return 0 fi @@ -21,15 +24,3 @@ on-activate = ''' echo "Python environment is out of sync; synchronizing..." uv sync --frozen --all-packages ''' - -[profile] -bash = ''' - source .venv/bin/activate -''' -zsh = ''' - source .venv/bin/activate -''' -fish = ''' - set -gx VIRTUAL_ENV "$PWD/.venv" - set -gx PATH "$VIRTUAL_ENV/bin" $PATH -''' From b99fd68237d62b0c6477373fe1cfc8bf64572eab Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 14:06:27 -0700 Subject: [PATCH 13/17] fix: correct the lint job Signed-off-by: Brooke Storm --- tools/lint/check-node-version.sh | 4 ++-- tools/lint/check-uv-version.sh | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/lint/check-node-version.sh b/tools/lint/check-node-version.sh index 9b307560f7e..b397976f36e 100755 --- a/tools/lint/check-node-version.sh +++ b/tools/lint/check-node-version.sh @@ -25,8 +25,8 @@ assert_setup_node_uses_nvmrc() { local setup_node_count local version_file_count - setup_node_count="$(rg -c 'uses: actions/setup-node@' "${workflow}")" - version_file_count="$(rg -F -c "node-version-file: ${version_file}" "${workflow}")" + setup_node_count="$(grep -c 'uses: actions/setup-node@' "${workflow}" || true)" + version_file_count="$(grep -F -c "node-version-file: ${version_file}" "${workflow}" || true)" if [[ "${setup_node_count}" -eq 0 || "${setup_node_count}" != "${version_file_count}" ]]; then echo "Every setup-node step in ${workflow} must use ${version_file}." >&2 diff --git a/tools/lint/check-uv-version.sh b/tools/lint/check-uv-version.sh index 647fac9a511..da6eeb05ce4 100755 --- a/tools/lint/check-uv-version.sh +++ b/tools/lint/check-uv-version.sh @@ -11,7 +11,17 @@ if [[ ! "${_flox_ver}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then exit 1 fi +_workflows=() while IFS= read -r _workflow; do + _workflows+=("${_workflow}") +done < <(find .github/workflows -type f \( -name '*.yaml' -o -name '*.yml' \) -exec grep -l 'astral-sh/setup-uv' {} +) + +if [[ "${#_workflows[@]}" -eq 0 ]]; then + echo "No workflows using astral-sh/setup-uv were found." >&2 + exit 1 +fi + +for _workflow in "${_workflows[@]}"; do _ci_ver="$(yq '.env.UV_VERSION' "${_workflow}")" if [[ "${_ci_ver}" != "${_flox_ver}" ]]; then @@ -19,4 +29,4 @@ while IFS= read -r _workflow; do printf "workflow flox-env\n%s %s\n" "${_workflow}:${_ci_ver}" "${_flox_ver}" | column -t >&2 exit 1 fi -done < <(rg -l 'astral-sh/setup-uv' .github/workflows) +done From ff36d1605bc7ab64aa556079318bef187cc178fc Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 14:15:58 -0700 Subject: [PATCH 14/17] chore: make all the schema versions current Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 18 ++-- .flox/env/manifest.toml | 2 +- tools/actionlint/.flox/env/manifest.lock | 2 +- tools/actionlint/.flox/env/manifest.toml | 2 +- tools/common/.flox/env/manifest.lock | 2 +- tools/common/.flox/env/manifest.toml | 2 +- tools/helm/.flox/env/manifest.lock | 89 +++++++++---------- tools/helm/.flox/env/manifest.toml | 2 +- tools/nodejs/.flox/env/manifest.lock | 2 +- tools/nodejs/.flox/env/manifest.toml | 2 +- .../open-policy-agent/.flox/env/manifest.lock | 2 +- .../open-policy-agent/.flox/env/manifest.toml | 2 +- tools/osv-scanner/.flox/env/manifest.lock | 2 +- tools/osv-scanner/.flox/env/manifest.toml | 2 +- tools/python/.flox/env/manifest.lock | 2 +- tools/python/.flox/env/manifest.toml | 2 +- 16 files changed, 66 insertions(+), 69 deletions(-) diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 905da5f228f..700e69112ed 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "actionlint": { "pkg-path": "actionlint", @@ -1551,7 +1551,7 @@ ], "compose": { "composer": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "profile": { "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, @@ -1591,7 +1591,7 @@ "include": [ { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "diffutils": { "pkg-path": "diffutils" @@ -1631,7 +1631,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "helm-docs": { "pkg-path": "helm-docs", @@ -1664,7 +1664,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "actionlint": { "pkg-path": "actionlint", @@ -1686,7 +1686,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "uv": { "pkg-path": "uv", @@ -1713,7 +1713,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "nodejs": { "pkg-path": "nodejs_22", @@ -1744,7 +1744,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "osv-scanner": { "pkg-path": "osv-scanner", @@ -1761,7 +1761,7 @@ }, { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "open-policy-agent": { "pkg-path": "open-policy-agent", diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index 17877f8ac28..9a70bef2d8d 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [profile] common = ''' diff --git a/tools/actionlint/.flox/env/manifest.lock b/tools/actionlint/.flox/env/manifest.lock index 2ee53751a38..6f638313187 100644 --- a/tools/actionlint/.flox/env/manifest.lock +++ b/tools/actionlint/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "actionlint": { "pkg-path": "actionlint", diff --git a/tools/actionlint/.flox/env/manifest.toml b/tools/actionlint/.flox/env/manifest.toml index 0cf2c36a1e0..14f50fbe945 100644 --- a/tools/actionlint/.flox/env/manifest.toml +++ b/tools/actionlint/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] actionlint = { pkg-path = "actionlint", version = "1.7.12", pkg-group = "actionlint" } diff --git a/tools/common/.flox/env/manifest.lock b/tools/common/.flox/env/manifest.lock index b56a26ef9dd..b4b95039e40 100644 --- a/tools/common/.flox/env/manifest.lock +++ b/tools/common/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "diffutils": { "pkg-path": "diffutils" diff --git a/tools/common/.flox/env/manifest.toml b/tools/common/.flox/env/manifest.toml index 62fff239565..8c0ff62b6b4 100644 --- a/tools/common/.flox/env/manifest.toml +++ b/tools/common/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] # Utilities diff --git a/tools/helm/.flox/env/manifest.lock b/tools/helm/.flox/env/manifest.lock index a91dbf286f8..4b6ff258d44 100644 --- a/tools/helm/.flox/env/manifest.lock +++ b/tools/helm/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "helm-docs": { "pkg-path": "helm-docs", @@ -31,19 +31,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/gbxz6zs7rv9qynjlq5z993cx97js8x5i-helm-docs-1.14.2.drv", + "derivation": "/nix/store/y91aqsk2pipz2vx62rdxbs5zdra3xxry-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:13:10.955708Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:06.299662Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -52,7 +51,7 @@ "out" ], "outputs": { - "out": "/nix/store/i6nz37y0ghagc34nlpfngq71fn6z3rs2-helm-docs-1.14.2" + "out": "/nix/store/0i1kal44yygaycd4s287hxsj1prg35a3-helm-docs-1.14.2" }, "system": "aarch64-darwin", "group": "helm-docs", @@ -61,19 +60,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/29i243jas4fqcpm8wdhbw4hvnyf4yp6h-helm-docs-1.14.2.drv", + "derivation": "/nix/store/bqlkqal7i3n8ysx86a4464qpsjy8wsgw-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T03:41:41.686139Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:28.058381Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -82,7 +80,7 @@ "out" ], "outputs": { - "out": "/nix/store/bgaaxnb9i8fzvkvl6ggddngc0v41wwny-helm-docs-1.14.2" + "out": "/nix/store/p2cvfmi5h311fg503nq0fi2dmihsgbcp-helm-docs-1.14.2" }, "system": "aarch64-linux", "group": "helm-docs", @@ -91,19 +89,18 @@ { "attr_path": "helm-docs", "broken": false, - "derivation": "/nix/store/7hxy923h5639mxb0lb05asr77arvwyjb-helm-docs-1.14.2.drv", + "derivation": "/nix/store/4mp8lw4dhpk6s09y63w61p122daba7ml-helm-docs-1.14.2.drv", "description": "Tool for automatically generating markdown documentation for Helm charts", "install_id": "helm-docs", "license": "GPL-3.0-only", - "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "helm-docs-1.14.2", "pname": "helm-docs", - "rev": "d407951447dcd00442e97087bf374aad70c04cea", - "rev_count": 1027867, - "rev_date": "2026-07-05T04:06:12Z", - "scrape_date": "2026-07-06T04:40:45.057500Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:43.732862Z", "stabilities": [ - "staging", "unstable" ], "unfree": false, @@ -112,7 +109,7 @@ "out" ], "outputs": { - "out": "/nix/store/63l33x2rrpzdx0fg7yg776ajm6ilmgx7-helm-docs-1.14.2" + "out": "/nix/store/68b6nv2gc1j7g6js3wj2plj2dsvx2vnx-helm-docs-1.14.2" }, "system": "x86_64-linux", "group": "helm-docs", @@ -211,17 +208,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/8fnhgk1cylc66jpbkpkhi1b8l763zz61-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/h27s9phbjyisaq14bdrh1hc6v1bmh1kh-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T04:54:14.871348Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T04:55:08.760008Z", "stabilities": [ "unstable" ], @@ -231,7 +228,7 @@ "out" ], "outputs": { - "out": "/nix/store/jg1p2gzhrgg5d0wfdv45j1144q3ms3i2-kubernetes-helm-4.2.3" + "out": "/nix/store/zxlrdn6fsss4s2i496np7kdrwy92261j-kubernetes-helm-4.2.3" }, "system": "aarch64-darwin", "group": "kubernetes-helm", @@ -240,17 +237,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/zpbg9qqi19k2pcp06yfkmv76a1yb2j0x-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/w61scb5zj8c4dmckwlmrxf8m2ma263fl-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:24:45.679341Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:24:32.211235Z", "stabilities": [ "unstable" ], @@ -260,7 +257,7 @@ "out" ], "outputs": { - "out": "/nix/store/0fmrj3fq2j2l95cj12pw1bkni4nihwsl-kubernetes-helm-4.2.3" + "out": "/nix/store/3m7a0rmsr6k5hs0xl2ym6kiv4iqgwypj-kubernetes-helm-4.2.3" }, "system": "aarch64-linux", "group": "kubernetes-helm", @@ -269,17 +266,17 @@ { "attr_path": "kubernetes-helm", "broken": false, - "derivation": "/nix/store/4nb9airy740jinzgf83vpk7gp13vjmii-kubernetes-helm-4.2.3.drv", + "derivation": "/nix/store/qkhmnhnv2j5zql42fylj3vs4h8f4p35z-kubernetes-helm-4.2.3.drv", "description": "Package manager for kubernetes", "install_id": "kubernetes-helm", "license": "Apache-2.0", - "locked_url": "https://github.com/flox/nixpkgs?rev=241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", "name": "kubernetes-helm-4.2.3", "pname": "kubernetes-helm", - "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", - "rev_count": 1037713, - "rev_date": "2026-07-19T21:52:44Z", - "scrape_date": "2026-07-21T05:59:04.143872Z", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "rev_count": 1049422, + "rev_date": "2026-08-07T12:45:23Z", + "scrape_date": "2026-08-09T05:58:48.065333Z", "stabilities": [ "unstable" ], @@ -289,7 +286,7 @@ "out" ], "outputs": { - "out": "/nix/store/7vgl8w4ma0pl7f32n0rjgnmj6xalmiac-kubernetes-helm-4.2.3" + "out": "/nix/store/wkb6xckn077grj4jqb6z6wgmwzj7g1xr-kubernetes-helm-4.2.3" }, "system": "x86_64-linux", "group": "kubernetes-helm", diff --git a/tools/helm/.flox/env/manifest.toml b/tools/helm/.flox/env/manifest.toml index 6144fa72d9a..900d4ab377d 100644 --- a/tools/helm/.flox/env/manifest.toml +++ b/tools/helm/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] diff --git a/tools/nodejs/.flox/env/manifest.lock b/tools/nodejs/.flox/env/manifest.lock index 028eee29a69..e7e8320485a 100644 --- a/tools/nodejs/.flox/env/manifest.lock +++ b/tools/nodejs/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "nodejs": { "pkg-path": "nodejs_22", diff --git a/tools/nodejs/.flox/env/manifest.toml b/tools/nodejs/.flox/env/manifest.toml index cc57db664e9..65a4601c63a 100644 --- a/tools/nodejs/.flox/env/manifest.toml +++ b/tools/nodejs/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] nodejs = { pkg-path = "nodejs_22", version = "22.23.2", pkg-group = "node" } diff --git a/tools/open-policy-agent/.flox/env/manifest.lock b/tools/open-policy-agent/.flox/env/manifest.lock index 4d8682baf54..0dd4fec0e5d 100644 --- a/tools/open-policy-agent/.flox/env/manifest.lock +++ b/tools/open-policy-agent/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "open-policy-agent": { "pkg-path": "open-policy-agent", diff --git a/tools/open-policy-agent/.flox/env/manifest.toml b/tools/open-policy-agent/.flox/env/manifest.toml index 7ef7656a83f..6072eaa42cf 100644 --- a/tools/open-policy-agent/.flox/env/manifest.toml +++ b/tools/open-policy-agent/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] open-policy-agent = { pkg-path = "open-policy-agent", version = "1.8.0", pkg-group = "open-policy-agent" } diff --git a/tools/osv-scanner/.flox/env/manifest.lock b/tools/osv-scanner/.flox/env/manifest.lock index 465f217c244..320cca7db07 100644 --- a/tools/osv-scanner/.flox/env/manifest.lock +++ b/tools/osv-scanner/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "osv-scanner": { "pkg-path": "osv-scanner", diff --git a/tools/osv-scanner/.flox/env/manifest.toml b/tools/osv-scanner/.flox/env/manifest.toml index 2cb79cd200e..e61bb413433 100644 --- a/tools/osv-scanner/.flox/env/manifest.toml +++ b/tools/osv-scanner/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] osv-scanner = { pkg-path = "osv-scanner", version = "2.3.3", pkg-group = "osv-scanner" } diff --git a/tools/python/.flox/env/manifest.lock b/tools/python/.flox/env/manifest.lock index dc99be3f765..a67d6586900 100644 --- a/tools/python/.flox/env/manifest.lock +++ b/tools/python/.flox/env/manifest.lock @@ -1,7 +1,7 @@ { "lockfile-version": 1, "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", "install": { "uv": { "pkg-path": "uv", diff --git a/tools/python/.flox/env/manifest.toml b/tools/python/.flox/env/manifest.toml index e714a049bfe..783608dffcf 100644 --- a/tools/python/.flox/env/manifest.toml +++ b/tools/python/.flox/env/manifest.toml @@ -1,4 +1,4 @@ -schema-version = "1.13.0" +schema-version = "1.14.0" [install] uv = { pkg-path = "uv", version = "0.9.14", pkg-group = "uv" } From c96175fc840ffacc30c950253c811b246e9e2a5c Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 14:38:07 -0700 Subject: [PATCH 15/17] fix: ensure all our versions are right in CI and elsewhere Signed-off-by: Brooke Storm --- tools/lint/.flox/env/manifest.lock | 833 ++++++++++++++++++++++++++++- tools/lint/.flox/env/manifest.toml | 1 + 2 files changed, 833 insertions(+), 1 deletion(-) diff --git a/tools/lint/.flox/env/manifest.lock b/tools/lint/.flox/env/manifest.lock index 2511d11a010..b45b9cc941e 100644 --- a/tools/lint/.flox/env/manifest.lock +++ b/tools/lint/.flox/env/manifest.lock @@ -3,12 +3,40 @@ "manifest": { "schema-version": "1.14.0", "install": { + "diffutils": { + "pkg-path": "diffutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnumake": { + "pkg-path": "gnumake" + }, + "gnutar": { + "pkg-path": "gnutar" + }, + "gum": { + "pkg-path": "gum" + }, "osv-scanner": { "pkg-path": "osv-scanner", "pkg-group": "osv-scanner", "version": "2.3.3" + }, + "yq-go": { + "pkg-path": "yq-go" } }, + "vars": { + "ALIGN": "center", + "BORDER": "double", + "BORDER_FOREGROUND": "#76B900", + "FOREGROUND": "#76B900", + "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", + "MARGIN": "1 2", + "PADDING": "1 2", + "WIDTH": "50" + }, "options": {} }, "packages": [ @@ -131,6 +159,766 @@ "system": "x86_64-linux", "group": "osv-scanner", "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/1dm6zyrj9634fz016hnqild1zznb18jm-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.469692Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/lw06ap9kg9hrmsp7a534pwzh303gm02w-diffutils-3.12-info", + "out": "/nix/store/yw1mksapzj4v66c5ag7ng59jn2nh6klq-diffutils-3.12" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/gy9f86m4f8bay71v2aylf6ilmfdblp4c-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.168402Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/b0jifqs0ywlwjj5yyigk7jyllsjzgiil-diffutils-3.12-info", + "out": "/nix/store/qm0ch7mlxn6kjdymcznxfsf5qdxqv9lk-diffutils-3.12" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/i5r3m138kb1gihsvjf2hs3g9dmyawk32-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:00.840124Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/7rh8a74vwdb6lvvvwjd0dlpv84hl6mr6-diffutils-3.12-info", + "out": "/nix/store/lwghldxh6irjmbp73lpxv6mrdwb4aqhv-diffutils-3.12" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "diffutils", + "broken": false, + "derivation": "/nix/store/4lqdccfv8wh1si8qh1phfjnl2v7530p9-diffutils-3.12.drv", + "description": "Commands for showing the differences between files (diff, cmp, etc.)", + "install_id": "diffutils", + "license": "GPL-3.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "diffutils-3.12", + "pname": "diffutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:24.850606Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "3.12", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/vajbg82rq4kq817ic61azz8z5363dy4c-diffutils-3.12-info", + "out": "/nix/store/3c05s0vxy8wafaa7lkj4bfh69wa0ch10-diffutils-3.12" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/971s20l3wxc0zv5c6gy4n9d04b9sxf3k-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:55.823224Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/nrk43rrjmq5dn4z0l56frzkpcya7bm7b-findutils-4.10.0-info", + "locate": "/nix/store/s494jb7dpfav3x14349f1gwa1xzw2hhp-findutils-4.10.0-locate", + "out": "/nix/store/z10ivgdarglczg1fp995rl3h6zx17ng0-findutils-4.10.0" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/bzhsr1f65ya9k9vh6b4cjzrdj9glg7bd-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:22.723360Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/bd7lq9h718463n6v4a8j889m7z7p1jmd-findutils-4.10.0-info", + "locate": "/nix/store/lr299wp5bmraayckga75pxfjjl6klz05-findutils-4.10.0-locate", + "out": "/nix/store/8z92qzl5h4dx7y6j5ks9zlpgy1rqi10v-findutils-4.10.0" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/jvn6l62vr18ih2qgn8j9iizi7gwgb9py-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.290176Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/xadm4ryq6sx6njbw97p6fvfpdhapc52w-findutils-4.10.0-info", + "locate": "/nix/store/f0y58n40x3ymy4q46jrl4ylynjzcl87g-findutils-4.10.0-locate", + "out": "/nix/store/lzlf2kma2qxsq6ijy9a9irc0g6n8cdpg-findutils-4.10.0" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/m1n6hnajwhnv5qm4mwh2b2briv8vrkb3-findutils-4.10.0.drv", + "description": "GNU Find Utilities, the basic directory searching utilities of the GNU operating system", + "install_id": "findutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:25.467195Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/z9xp5gx83h9j3nyn1qmlimfb9jnda70q-findutils-4.10.0-info", + "locate": "/nix/store/mlhv10zqih8f45hw0jqg4lzbz9ialzx3-findutils-4.10.0-locate", + "out": "/nix/store/zjwih3d9rrrw4ixll52wsy0538p7vdfd-findutils-4.10.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/fq3j34ffr44fa5a5nkwci5pdncl5h7hg-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.218409Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "doc": "/nix/store/v2jpgmm2fsg7b0z27cc514jdqbhm0isy-gnumake-4.4.1-doc", + "info": "/nix/store/dli72plfj1gcp88wv6px7qjjqvnnlql5-gnumake-4.4.1-info", + "man": "/nix/store/mzy3b5lxi8jbq5d63yvq52sjsq73907l-gnumake-4.4.1-man", + "out": "/nix/store/ij3d5cfr8h31a41l80jzid0z6kj2ajsv-gnumake-4.4.1" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/8g055kd88xxnsxxanrn2l1ycmd1zaqp4-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:23.879706Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "debug": "/nix/store/rcg8zj3391869cn266zwxynplwhyf6qw-gnumake-4.4.1-debug", + "doc": "/nix/store/qvl65zgm24p9sw0mzw3cxijcs8palykk-gnumake-4.4.1-doc", + "info": "/nix/store/2xp5f2ypvrlg6wn5s44jg3ji82l78k9q-gnumake-4.4.1-info", + "man": "/nix/store/3c96gbpypik8gzasv9brnka3i6mks9rz-gnumake-4.4.1-man", + "out": "/nix/store/v1888rzl1qf8zzd27q1vxvqqssizjx3x-gnumake-4.4.1" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/k8zf9n1v4hwky8xq8k83rxh7lrxwy630-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.829543Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "doc": "/nix/store/3b9cjf16jx4ncpp3b4k6m8q01nxsrw1n-gnumake-4.4.1-doc", + "info": "/nix/store/rriz5p4q8a6sca7sw3p3js1m5dl09ia8-gnumake-4.4.1-info", + "man": "/nix/store/wb4yn3d7vmi1hr4f8pz38rjvcl7f70ma-gnumake-4.4.1-man", + "out": "/nix/store/0bg5b97b9hbhz8907bfcrch1i116xppa-gnumake-4.4.1" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnumake", + "broken": false, + "derivation": "/nix/store/ppc7b3wjgk81bxnls18vjflgw70wxss4-gnumake-4.4.1.drv", + "description": "Tool to control the generation of non-source files from sources", + "install_id": "gnumake", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnumake-4.4.1", + "pname": "gnumake", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:26.701509Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.4.1", + "outputs_to_install": [ + "man", + "out" + ], + "outputs": { + "debug": "/nix/store/054b9sxxzph2fbwmj45njf1rspjifaz6-gnumake-4.4.1-debug", + "doc": "/nix/store/c2skg22md4ablx0qfcrsh7vpad31zgyx-gnumake-4.4.1-doc", + "info": "/nix/store/6mifiq9cp2bsg9ghkhifrvlmip7z3147-gnumake-4.4.1-info", + "man": "/nix/store/arjpl2nnq7khwfhy16qphyxxg924apy1-gnumake-4.4.1-man", + "out": "/nix/store/k9ybsvscqk4lhz5ndc1ap9800im1cry1-gnumake-4.4.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/xczzf9n70psj6lrpm5pmv2cgmv1zb19r-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.226588Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/zzm2iycbpgdv23aibi06z0akdi43rhnx-gnutar-1.35-info", + "out": "/nix/store/prip7nslhk7b9hfws6y5y9lzfxjskanv-gnutar-1.35" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/lw1g8qxvdmrdphq1cv5yb50j98m2v1xm-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:23.894623Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/q9bv4apsdh5wlqv0ga7lr9i22iv6978z-gnutar-1.35-info", + "out": "/nix/store/r4c3r48fn312jmjls34nwz41b9y4xsvs-gnutar-1.35" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/smwpwzpldpah35vkwjgkmnh2yrwl0mh2-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:01.837913Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/z68xf85yapz8rjzk7spnx09cf7cyngr5-gnutar-1.35-info", + "out": "/nix/store/s2z5cn0gikvb2x352nizvlwpmv18jh9k-gnutar-1.35" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnutar", + "broken": false, + "derivation": "/nix/store/45ynwydadvp0xmsy1bkag7lp2zysy1jc-gnutar-1.35.drv", + "description": "GNU implementation of the `tar` archiver", + "install_id": "gnutar", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gnutar-1.35", + "pname": "gnutar", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:26.716276Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "1.35", + "outputs_to_install": [ + "out", + "out" + ], + "outputs": { + "info": "/nix/store/avcnv3j0l6lwsffrihbhj84pgy11yqj3-gnutar-1.35-info", + "out": "/nix/store/1j461raj6r4hihrq9j6alrddmx837fzs-gnutar-1.35" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/ncv12x2sfb3pnxc4z7rlspgc0vf0zvbc-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:12:56.472327Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/55h6jsvhnhilka36s9jkld0k0d55c174-gum-0.17.0" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/4lqcj3v44pcscjmnjip8ggm99hrpilxr-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:41:24.298504Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/51vn4xsrgzfl9g3s00byydpx6jgjgrnd-gum-0.17.0" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/w01nbfjmxqjr3w9sycd0jliiamnljij2-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:09:02.122815Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/m2wks8knnsfgjl0ikhbi0vv7bqn53385-gum-0.17.0" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gum", + "broken": false, + "derivation": "/nix/store/468b0lgb2p00hyfj24xb44yj24r33hy4-gum-0.17.0.drv", + "description": "Tasty Bubble Gum for your shell", + "install_id": "gum", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "gum-0.17.0", + "pname": "gum", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:40:27.139900Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "0.17.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/w3h6fxv7jmapwcm3rxxwp83q16rnskm2-gum-0.17.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/fizkq87xqlj4yicyxm2610qqirk29gx6-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:15:55.233322Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/lpf51yzqr105clhg4c4vyn2blyai4axn-yq-go-4.53.3" + }, + "system": "aarch64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/89zhpxra3dajdv5g4mi9pkf26kvff87l-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T03:45:10.000608Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/hnn92zxywj73282qrq31ha89drv13244-yq-go-4.53.3" + }, + "system": "aarch64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/ic6w08gsq6fhl16368y1qgpzqvhwx3if-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:12:44.816982Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/agf9fyr053m3092vsmh6vih3apz0kw05-yq-go-4.53.3" + }, + "system": "x86_64-darwin", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "yq-go", + "broken": false, + "derivation": "/nix/store/jfa3lz2rbba3mrnvaz0l660han5gd0xy-yq-go-4.53.3.drv", + "description": "Portable command-line YAML processor", + "install_id": "yq-go", + "license": "[ MIT ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=d407951447dcd00442e97087bf374aad70c04cea", + "name": "yq-go-4.53.3", + "pname": "yq-go", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "rev_count": 1027867, + "rev_date": "2026-07-05T04:06:12Z", + "scrape_date": "2026-07-06T04:44:33.209955Z", + "stabilities": [ + "staging", + "unstable" + ], + "unfree": false, + "version": "4.53.3", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/sky6728rldnq9yzvljy25d1l6k7y1saj-yq-go-4.53.3" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 } ], "compose": { @@ -139,6 +927,9 @@ "options": {}, "include": { "environments": [ + { + "dir": "../common" + }, { "dir": "../osv-scanner" } @@ -148,7 +939,47 @@ "include": [ { "manifest": { - "schema-version": "1.13.0", + "schema-version": "1.14.0", + "install": { + "diffutils": { + "pkg-path": "diffutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnumake": { + "pkg-path": "gnumake" + }, + "gnutar": { + "pkg-path": "gnutar" + }, + "gum": { + "pkg-path": "gum" + }, + "yq-go": { + "pkg-path": "yq-go" + } + }, + "vars": { + "ALIGN": "center", + "BORDER": "double", + "BORDER_FOREGROUND": "#76B900", + "FOREGROUND": "#76B900", + "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", + "MARGIN": "1 2", + "PADDING": "1 2", + "WIDTH": "50" + }, + "options": {} + }, + "name": "common", + "descriptor": { + "dir": "../common" + } + }, + { + "manifest": { + "schema-version": "1.14.0", "install": { "osv-scanner": { "pkg-path": "osv-scanner", diff --git a/tools/lint/.flox/env/manifest.toml b/tools/lint/.flox/env/manifest.toml index 8146193aec3..dc65a993724 100644 --- a/tools/lint/.flox/env/manifest.toml +++ b/tools/lint/.flox/env/manifest.toml @@ -2,5 +2,6 @@ schema-version = "1.14.0" [include] environments = [ + { dir = "../common" }, { dir = "../osv-scanner" } ] From 518975f2aaad10c6ebffe61996aa0fa04cdb4dff Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Mon, 10 Aug 2026 16:47:40 -0700 Subject: [PATCH 16/17] fix: correct a lot of setup information Signed-off-by: Brooke Storm --- .github/workflows/ci.yaml | 5 +- AGENTS.md | 6 ++- CONTRIBUTING.md | 85 +++++++++++-------------------- Makefile | 46 +++++++++++------ README.md | 9 ++-- SETUP.md | 10 ++-- script/pnpm | 26 ++++++++++ script/verify-node-version.sh | 6 +-- script/verify-system-toolchain.sh | 69 +++++++++++++++++++++++++ web/AGENTS.md | 6 +-- web/README.md | 44 ++++++++-------- 11 files changed, 202 insertions(+), 110 deletions(-) create mode 100755 script/pnpm create mode 100755 script/verify-system-toolchain.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ddd4e839d6e..0965d1779ad 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -32,9 +32,8 @@ concurrency: env: # Keep the CI uv binary aligned with the Flox development environment. UV_VERSION: "0.9.14" - # Jobs here provision their own toolchain, so the Makefile uses those tools - # rather than activating Flox for each command. - NMP_SKIP_FLOX: 1 + # Jobs here provision their own toolchain, so Make bypasses Flox activation. + TOOLCHAIN: system jobs: changes: diff --git a/AGENTS.md b/AGENTS.md index 58afac916d2..3340b9fefbb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -245,10 +245,12 @@ Ensure all pre-commit hooks pass by running `uv run pre-commit run -a`. A clean ### Bootstrap prerequisites -- **uv version:** Root `pyproject.toml` requires and supports `uv>=0.9.14` for source checkout bootstrap. `uv.lock` updates must use uv `0.9.14`, matching the platform containers and CI lock check. CI separately validates latest uv compatibility. +- **Toolchain:** Install Flox before running `make bootstrap`; Make activates it as needed. For a preinstalled host toolchain, use `TOOLCHAIN=system` only when uv is at least `0.9.14`, Node.js is `22.23.2`, and pnpm is `10.34.5`. +- **uv version:** Root `pyproject.toml` requires and supports `uv>=0.9.14` for source checkout bootstrap. `uv.lock` updates use uv `0.9.14`, matching the platform containers and CI lock check. - **Native build deps:** `make bootstrap-python` builds `annoy` (via `nemoguardrails`). Install system headers once per VM image: `sudo apt-get install -y python3-dev build-essential`. - **Python bootstrap:** Run `make bootstrap-python` from repo root (creates `.venv`, runs `uv sync --frozen --all-packages`). See [SETUP.md](SETUP.md) for the full playbook. -- **Studio (optional):** `make bootstrap-studio` uses the Node.js/pnpm versions pinned in the Flox environment, so a VM shipping an older Node does not need upgrading. API services still run without Studio assets. Pass `NMP_SKIP_FLOX=1` to bootstrap against the toolchain already on PATH. +- **Studio (optional):** `make bootstrap-studio` uses the Node.js/pnpm versions pinned in the Flox environment, so a VM shipping an older Node does not need upgrading. API services still run without Studio assets. For a preinstalled host toolchain, use `TOOLCHAIN=system` with Node.js `22.23.2` and pnpm `10.34.5`. +- **Docker:** Not needed for dependency bootstrap. It is required before running `nemo setup` or local services. ### Running the platform diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc3076d29f2..926a85a08a7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,19 +23,22 @@ Install the local prerequisites first, then run the bootstrap targets from the r For a complete contributor environment, including Python tooling and TypeScript dependencies, install [Flox](https://flox.dev/docs/install-flox/install) and -activate the repository environment: +run bootstrap from the repository root: ```bash # macOS with Homebrew; see the Flox installation guide for other platforms. brew install flox -flox activate +make bootstrap ``` -The first activation installs the pinned Python and Node.js toolchains, -synchronizes Python dependencies, and installs the pnpm workspace dependencies. -It also installs the repository's pre-commit hook when needed. Leave the -environment with `flox deactivate` when you are done. +`make bootstrap` activates Flox as needed, installs the pinned Python and Node.js +toolchains, synchronizes Python dependencies, installs pnpm workspace +dependencies, and builds Studio assets. Run `flox activate` afterward when you +want to use `uv` or `node` directly. Use `script/pnpm` for pnpm commands so +pnpm runs with the repository's pinned Node.js. Interactive activation installs +the repository's pre-commit hook when needed; leave the environment with `flox +deactivate` when you are done. #### Python Environment Setup @@ -49,10 +52,8 @@ Install `uv`: curl -LsSf https://astral.sh/uv/0.9.14/install.sh | sh ``` -> **NeMo Platform uses uv version `>=0.9.14`.** -> -> When updating this version, make sure to update the version in -> `pyproject.toml` and CI jobs. +> **NeMo Platform requires uv version `>=0.9.14`.** Flox and CI use the exact +> repository toolchain version; `pyproject.toml` intentionally remains a range. #### Studio Environment Setup @@ -78,6 +79,18 @@ make bootstrap If you only need Python dependencies, use `make bootstrap-python`. +#### System Toolchain Alternative + +Flox is recommended, but contributors may use an existing toolchain. Install uv +`>=0.9.14`, Node.js `22.23.2`, pnpm `10.34.5`, and a C compiler, then run: + +```bash +make TOOLCHAIN=system bootstrap +``` + +Docker is not needed for dependency bootstrap, but it is required by `nemo setup` +and local services. + ##### Building the Studio UI for Local Development `make bootstrap` already installs the web dependencies and builds the @@ -95,12 +108,13 @@ For active UI development, you can run the Vite dev server instead of rebuilding ```bash cd web/packages/studio -pnpm dev +../../../script/pnpm dev ``` This provides hot module replacement (HMR) at the local URL printed by Vite. -When you're ready to test with the FastAPI service, rebuild with `pnpm build:fastapi`. +When you're ready to test with the FastAPI service, rebuild with +`../../../script/pnpm build:fastapi`. ##### Running the Platform with Studio @@ -119,8 +133,8 @@ uv run nemo setup Then start the platform from the repository root: ```bash -# From an activated virtual environment -source .venv/bin/activate +# From an activated Flox environment +flox activate nemo services run # Or run everything with quickstart config (builds OPA policy first) @@ -136,46 +150,9 @@ NMP_CONFIG_FILE_PATH=packages/nmp_platform/config/local.yaml \ Visit `http://localhost:8080/studio/` to access the Studio UI. -#### Using direnv for Automatic Virtual Environment Activation (Optional) - -[direnv](https://direnv.net/) can automatically activate your virtual environment -when you enter the project directory, eliminating the need to manually source -the venv or use `uv run` for every command. - -```bash -eval "$(direnv hook bash)" # for bash -eval "$(direnv hook zsh)" # for zsh -``` - -Create an `.envrc` file in the repository root (note: the `install_direnv.sh` -script creates this file automatically if it doesn't exist): - -```bash -# See https://github.com/direnv/direnv/wiki/Python -# This has to be before our PATH_adds as well -export VIRTUAL_ENV=.venv -layout python3 -# this should make it so you don't have to source the venv directly -PATH_add $VIRTUAL_ENV/bin -# ensure local bin is ahead of the venv, mostly for UV. we want to use the -PATH_add ./script -``` - -Allow direnv to load the configuration: - -```bash -direnv allow -``` - -Now when you `cd` into the repository, the virtual environment will -automatically activate. You can run commands like `pytest` or `ruff` directly -without needing to prefix them with `uv run`. - -Initialize pre-commit: - -```bash -pre-commit install -``` +After the first interactive `flox activate`, pre-commit is installed +automatically. System-toolchain contributors can install it explicitly with +`uv run pre-commit install`. ## Development diff --git a/Makefile b/Makefile index 1bc00741162..ea0fee06e8e 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ PYTEST_EXTRA ?= PYTHON_VERSION ?= 3.12 BOOTSTRAP_CREATE_VENV ?= 1 BOOTSTRAP_EXPECTED_VIRTUAL_ENV := $(CURDIR)/.venv -BOOTSTRAP_ACTIVATION_REMINDER = if [ "$${VIRTUAL_ENV:-}" != "$(BOOTSTRAP_EXPECTED_VIRTUAL_ENV)" ]; then echo ""; echo "Next steps:"; echo " source .venv/bin/activate"; echo " nemo --help"; fi +BOOTSTRAP_ACTIVATION_REMINDER = if [ "$(TOOLCHAIN)" = "flox" ] && [ "$${FLOX_ENV_PROJECT:-}" != "$(CURDIR)" ]; then echo ""; echo "Next steps:"; echo " flox activate"; echo " nemo --help"; elif [ "$(TOOLCHAIN)" = "system" ] && [ "$${VIRTUAL_ENV:-}" != "$(BOOTSTRAP_EXPECTED_VIRTUAL_ENV)" ]; then echo ""; echo "Next steps:"; echo " source .venv/bin/activate"; echo " nemo --help"; fi # Display platform info $(info local system architecture: $(PLATFORM)/$(ARCH)) @@ -70,7 +70,7 @@ stainless: ## Run Stainless to generate the OpenAPI spec and sync it with the SD generate: stainless ## Alias for SDK generation via Stainless .PHONY: update-web-sdk -update-web-sdk: verify-flox ## Regenerate the TypeScript web SDK (web/packages/sdk) from the OpenAPI spec via Orval +update-web-sdk: verify-toolchain ## Regenerate the TypeScript web SDK (web/packages/sdk) from the OpenAPI spec via Orval cd web && $(FLOX_PNPM) gen .PHONY: update-sdk @@ -163,7 +163,7 @@ clean-python: ## remove python virtual environment rm -rf .venv/ .PHONY: verify-python-version -verify-python-version: verify-flox ## Verify Python version and install if necessary +verify-python-version: verify-toolchain ## Verify Python version and install if necessary @echo "~~~~~~" @echo "verifying python version" $(UV) python find $(PYTHON_VERSION) || $(UV) python install $(PYTHON_VERSION) @@ -201,7 +201,7 @@ verify-python-version: verify-flox ## Verify Python version and install if neces BOOTSTRAP_LOCAL_PLUGIN_DIRS ?= .PHONY: bootstrap-python -bootstrap-python: verify-python-version ## Bootstrap Python dependencies. +bootstrap-python: verify-python-version verify-compiler ## Bootstrap Python dependencies. @echo "~~~~~~" @echo "installing python dependencies" $(UV) sync --python $(PYTHON_VERSION) --frozen --all-packages @@ -212,37 +212,51 @@ bootstrap-python: verify-python-version ## Bootstrap Python dependencies. $(BOOTSTRAP_ACTIVATION_REMINDER); \ fi -# Set NMP_SKIP_FLOX=1 when CI has already provisioned the required tools. -NMP_SKIP_FLOX ?= +TOOLCHAIN ?= flox FLOX ?= flox -ifeq ($(NMP_SKIP_FLOX),) +ifeq ($(TOOLCHAIN),flox) ifeq ($(FLOX_ENV_PROJECT),$(CURDIR)) FLOX_EXEC := else FLOX_EXEC := $(FLOX) activate --dir "$(CURDIR)" -- endif -else +else ifeq ($(TOOLCHAIN),system) FLOX_EXEC := +else +$(error TOOLCHAIN must be either flox or system) endif UV := $(FLOX_EXEC) uv -FLOX_PNPM := $(FLOX_EXEC) bash -c 'node "$$(command -v pnpm)" "$$@"' -- +FLOX_PNPM := TOOLCHAIN=$(TOOLCHAIN) $(FLOX_EXEC) $(CURDIR)/script/pnpm -.PHONY: verify-flox -verify-flox: ## Verify Flox is available for the repository toolchain - @if [ -n "$(NMP_SKIP_FLOX)" ]; then \ - echo "NMP_SKIP_FLOX set, using the CI-provisioned toolchain"; \ - elif [ "$(FLOX_ENV_PROJECT)" = "$(CURDIR)" ]; then \ +.PHONY: verify-toolchain +verify-toolchain: ## Verify the selected Flox or system toolchain +ifeq ($(TOOLCHAIN),flox) + @if [ "$(FLOX_ENV_PROJECT)" = "$(CURDIR)" ]; then \ echo "Using the active Flox environment"; \ elif ! command -v "$(FLOX)" >/dev/null 2>&1; then \ echo "flox is required. Install it, then rerun this command."; \ exit 1; \ fi +else + @bash script/verify-system-toolchain.sh +endif + +.PHONY: verify-compiler +verify-compiler: ## Verify a C compiler is available for Python package builds + @if ! command -v cc >/dev/null 2>&1; then \ + echo "A C compiler is required for Python package builds (for example, annoy)." >&2; \ + echo "Install Xcode Command Line Tools on macOS or build-essential on Debian/Ubuntu." >&2; \ + exit 1; \ + fi .PHONY: verify-pnpm -verify-pnpm: verify-flox ## Verify pnpm is available for Studio bootstrap +verify-pnpm: verify-toolchain ## Verify pnpm is available for Studio bootstrap +ifeq ($(TOOLCHAIN),system) + @bash script/verify-system-toolchain.sh web +endif @$(FLOX_PNPM) --version || { \ echo "pnpm not found."; \ - echo "Install Flox, or provision pnpm before setting NMP_SKIP_FLOX=1."; \ + echo "Install Flox or use TOOLCHAIN=system with pnpm on PATH."; \ exit 1; \ } diff --git a/README.md b/README.md index e3d967e3509..710251ebaf1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ NeMo Platform brings NVIDIA NeMo libraries together under one CLI, Python SDK, a ## Get started -**Prerequisites:** Python 3.12-3.13, `uv>=0.9.14`, and an API key for an inference provider (NVIDIA Build, OpenAI, Anthropic, Google Gemini, or a local Ollama instance). For source development, you also need Git, GNU Make, and — if you want the web UI — Node.js `>=22.23.2 <23` with `pnpm>=10.34.5`. +**Prerequisites:** Python 3.12-3.13, `uv>=0.9.14`, and an API key for an inference provider (NVIDIA Build, OpenAI, Anthropic, Google Gemini, or a local Ollama instance). Source development needs Git, GNU Make, a C compiler, and either Flox (recommended) or the pinned system Node.js/pnpm toolchain. Docker is required when starting local services. Quick install from PyPI: @@ -33,13 +33,14 @@ Source checkout for development: git clone https://github.com/NVIDIA-NeMo/nemo-platform.git cd nemo-platform +# Install Flox first: https://flox.dev/docs/install-flox/install make bootstrap -source .venv/bin/activate +flox activate nemo setup ``` -Source development still needs Git, GNU Make, and Flox. `make bootstrap` uses the Flox-pinned uv, Node.js, and pnpm toolchain. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). +`make bootstrap` uses the Flox-pinned uv, Node.js, and pnpm toolchain; it does not require a prior `flox activate`. Activate Flox after bootstrap to continue development in the managed environment. Without Flox, install uv `>=0.9.14`, Node.js `22.23.2`, pnpm `10.34.5`, and a C compiler, then run `make TOOLCHAIN=system bootstrap` followed by `source .venv/bin/activate`. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). `nemo setup` starts local services, registers your LLM provider, discovers available models, selects default and fast agent models, installs agent skills, and deploys a sample agent (see more below). @@ -85,7 +86,7 @@ nemo services run
Studio (web UI) bootstrap troubleshooting -If `make bootstrap` reports that Studio asset bootstrap did not complete, the API still runs but the web UI is unavailable until the bundle is built. Install Node 22.23.x with `pnpm env use --global 22.23.2`, then run `make bootstrap-studio` from the repo root. +If `make bootstrap` reports that Studio asset bootstrap did not complete, the API still runs but the web UI is unavailable until the bundle is built. Ensure Flox is installed, or provide system Node.js `22.23.2` and pnpm `10.34.5` with `TOOLCHAIN=system`, then run `make bootstrap-studio` from the repository root.
diff --git a/SETUP.md b/SETUP.md index 2684674077c..7610a8ca69f 100644 --- a/SETUP.md +++ b/SETUP.md @@ -88,11 +88,13 @@ is unavailable, start Docker and retry—do not proceed to `rm -rf`. The README documents the streamlined path. Prefer this over the manual steps below whenever the task fits — it covers prerequisites install, service startup, provider registration, default/fast model selection, and demo agent deployment in one shot: +Before running `make bootstrap`, install Flox from the [Flox installation guide](https://flox.dev/docs/install-flox/install). Flox is the recommended source-development toolchain and does not need to be activated first. Contributors using a preinstalled host toolchain instead need uv `>=0.9.14`, Node.js `22.23.2`, pnpm `10.34.5`, and a C compiler; they must use `make TOOLCHAIN=system bootstrap`. + === "Interactive" ```bash make bootstrap # installs Python deps, Studio assets, and plugins (including demo calculator agent) -source .venv/bin/activate +flox activate # enter the managed development environment nemo setup # interactive: prompts for provider, picks default/fast models, optionally deploys calculator-agent ``` @@ -114,7 +116,7 @@ nemo setup --auto --start-services --install-skills --deploy-agent ### Toolchain: uv, Node.js, pnpm -Flox pins all three — uv to satisfy `pyproject.toml`'s `required-version`, Node.js to match `.nvmrc`, and pnpm to match `web/package.json`. `make` invokes tools through `flox activate --`, so the pinned versions win over whatever is already on your PATH. Nothing is written to your shell rc. +Flox pins all three — uv to satisfy `pyproject.toml`'s `required-version`, Node.js to match `.nvmrc`, and pnpm to match `web/package.json`. `make` invokes tools through Flox, so the pinned versions win over whatever is already on your PATH. Nothing is written to your shell rc. **Run `make bootstrap` before any other `make` target.** Targets such as `make test-unit`, `make update-licenses` and `make refresh-openapi` call uv through Flox. On a machine that does not have Flox yet, they fail like this: @@ -123,7 +125,7 @@ Flox pins all three — uv to satisfy `pyproject.toml`'s `required-version`, Nod make: *** [test-unit] Error 127 ``` -`make bootstrap` fixes it, as does `make verify-flox` on its own. CI uses `NMP_SKIP_FLOX=1` only after it has provisioned the matching toolchain explicitly. +`make bootstrap` fixes it, as does `make verify-toolchain` on its own. CI uses `TOOLCHAIN=system` only after it has provisioned the matching toolchain explicitly. That covers the `make` targets only. To run `uv` or `pnpm` directly, activate Flox first: @@ -131,7 +133,7 @@ That covers the `make` targets only. To run `uv` or `pnpm` directly, activate Fl flox activate ``` -Without Flox, a system Node.js may not satisfy `engines`, and a globally installed uv outside `required-version` fails `uv sync` with a version mismatch. +Without Flox, install uv `>=0.9.14`, Node.js `22.23.2`, pnpm `10.34.5`, and a C compiler, then run `make TOOLCHAIN=system bootstrap`. Docker is required when starting local services, but not for dependency bootstrap. If `nemo setup` is too high-level for the task (e.g. debugging startup, custom service set, custom plugin install after bootstrap), use the manual sections below. diff --git a/script/pnpm b/script/pnpm new file mode 100755 index 00000000000..1012be4a073 --- /dev/null +++ b/script/pnpm @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" + +# Flox's pnpm_10 launcher embeds a Nix-store Node 24 interpreter, while this +# repository pins Node 22. Run pnpm's JavaScript entry point with the active +# Node binary so pnpm and Node satisfy the same repository constraints. +if [ "${TOOLCHAIN:-flox}" = "system" ]; then + if ! command -v node >/dev/null 2>&1 || ! command -v pnpm >/dev/null 2>&1; then + echo "Node.js and pnpm must be on PATH when TOOLCHAIN=system." >&2 + exit 1 + fi + exec node "$(command -v pnpm)" "$@" +fi + +if [ "${FLOX_ENV_PROJECT:-}" = "$repo_root" ]; then + exec node "$(command -v pnpm)" "$@" +fi + +if ! command -v flox >/dev/null 2>&1; then + echo "pnpm is unavailable. Install Flox or provide Node.js and pnpm on PATH." >&2 + exit 1 +fi + +exec flox activate --dir "$repo_root" -- bash -c 'exec node "$(command -v pnpm)" "$@"' pnpm "$@" diff --git a/script/verify-node-version.sh b/script/verify-node-version.sh index ef6cc7b1747..43ec7bc6c59 100755 --- a/script/verify-node-version.sh +++ b/script/verify-node-version.sh @@ -10,9 +10,9 @@ WEB_DIR="$REPO_ROOT/web" for tool in node pnpm; do if ! command -v "$tool" >/dev/null 2>&1; then echo "$tool is not on PATH." - if [ -n "${NMP_SKIP_FLOX:-}" ]; then - echo "NMP_SKIP_FLOX is set, so $tool has to come from your PATH." - echo "Install it, or re-run without NMP_SKIP_FLOX to use the Flox-managed one." + if [ "${TOOLCHAIN:-flox}" = "system" ]; then + echo "TOOLCHAIN=system is set, so $tool has to come from your PATH." + echo "Install it, or re-run without TOOLCHAIN=system to use Flox." else echo "Install Flox, then rerun this command." fi diff --git a/script/verify-system-toolchain.sh b/script/verify-system-toolchain.sh new file mode 100755 index 00000000000..4f396949bb9 --- /dev/null +++ b/script/verify-system-toolchain.sh @@ -0,0 +1,69 @@ +#!/usr/bin/env bash +set -euo pipefail + +mode="${1:-python}" +if [[ "${mode}" != "python" && "${mode}" != "web" ]]; then + echo "Usage: $0 [python|web]" >&2 + exit 2 +fi + +version_at_least() { + local current="$1" + local minimum="$2" + local current_part + local minimum_part + local index + local -a current_parts minimum_parts + + IFS=. read -r -a current_parts <<<"${current}" + IFS=. read -r -a minimum_parts <<<"${minimum}" + + for index in 0 1 2; do + current_part="${current_parts[index]:-0}" + minimum_part="${minimum_parts[index]:-0}" + if ((10#${current_part} > 10#${minimum_part})); then + return 0 + fi + if ((10#${current_part} < 10#${minimum_part})); then + return 1 + fi + done +} + +if ! command -v uv >/dev/null 2>&1; then + echo "TOOLCHAIN=system requires uv on PATH." >&2 + exit 1 +fi + +uv_minimum="$(sed -n 's/^required-version = ">=\([^"]*\)"/\1/p' pyproject.toml)" +uv_current="$(uv --version | awk '{print $2}')" +if [[ -z "${uv_minimum}" ]] || ! version_at_least "${uv_current}" "${uv_minimum}"; then + echo "TOOLCHAIN=system requires uv >=${uv_minimum:-the project minimum}; found ${uv_current}." >&2 + exit 1 +fi + +if [[ "${mode}" = "python" ]]; then + exit 0 +fi + +for tool in node pnpm; do + if ! command -v "${tool}" >/dev/null 2>&1; then + echo "TOOLCHAIN=system requires ${tool} on PATH for Studio work." >&2 + exit 1 + fi +done + +node_required="$(tr -d '[:space:]' < .nvmrc)" +node_current="$(node --version | sed 's/^v//')" +pnpm_required="$(sed -n 's/.*"packageManager": "pnpm@\([^"]*\)".*/\1/p' web/package.json)" +pnpm_current="$(pnpm --version)" + +if [[ "${node_current}" != "${node_required}" ]]; then + echo "TOOLCHAIN=system requires Node.js ${node_required}; found ${node_current}." >&2 + exit 1 +fi + +if [[ "${pnpm_current}" != "${pnpm_required}" ]]; then + echo "TOOLCHAIN=system requires pnpm ${pnpm_required}; found ${pnpm_current}." >&2 + exit 1 +fi diff --git a/web/AGENTS.md b/web/AGENTS.md index 70ec15277a9..212e148ccc0 100644 --- a/web/AGENTS.md +++ b/web/AGENTS.md @@ -32,9 +32,9 @@ Cursor/Claude skills for this monorepo live under **`web/.agents/skills/`** (for - Use **pnpm** exclusively — never npm or yarn - Run frontend commands from `web/`, not from repo root -- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work, or prefix one command with `flox activate -- pnpm ` -- Install dependencies: `pnpm add ` -- Run scripts: `pnpm ` +- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work. Invoke pnpm through `../script/pnpm` so it runs with the pinned Node.js. +- Install dependencies: `../script/pnpm add ` +- Run scripts: `../script/pnpm ` ### Bumping a shared singleton also means bumping the plugins diff --git a/web/README.md b/web/README.md index e96baa92312..6d3c2be2f85 100644 --- a/web/README.md +++ b/web/README.md @@ -4,18 +4,20 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen ## Getting Started -1. Get Node.js and pnpm satisfying the `engines` in `package.json` onto your PATH. The root Flox environment provides the pinned versions: +1. For first setup, install Flox from the repository root and run `make bootstrap-studio`; it provides the pinned Node.js and pnpm versions without requiring global installation. For interactive web work, activate Flox: ```bash flox activate # from the repository root ``` - or install Node.js and pnpm yourself. `make bootstrap-studio` and the other `make` targets use the Flox-managed versions by default. + Or install Node.js `22.23.2` and pnpm `10.34.5` yourself, then use `TOOLCHAIN=system make bootstrap-studio` from the repository root. -2. Install workspace deps and copy `.env` files, from `web/`: +2. Copy `.env` files from `web/`. `make bootstrap-studio` already installs the + workspace dependencies. For later pnpm commands, use the repository launcher + so pnpm runs with the pinned Node.js: ```bash - pnpm install + ../script/pnpm install cp packages/studio/env/.env.dev.local.sample packages/studio/env/.env.dev.local && \ cp packages/studio/env/.env.e2e packages/studio/env/.env.e2e.local ``` @@ -25,7 +27,7 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen Run the following script from `web/`: ```bash -pnpm dev +../script/pnpm dev ``` This runs the vite dev server, which has hot module reloading. This server is accessible at `http://localhost:5173`. @@ -38,15 +40,15 @@ Studio is a React + TypeScript SPA built with [Vite](https://vite.dev/), styled ### Adding Dependencies -Use `pnpm add` with a filter for the package name. [More information here.](https://pnpm.io/cli/add) +Use `../script/pnpm add` with a filter for the package name. [More information here.](https://pnpm.io/cli/add) ```bash -pnpm add --filter +../script/pnpm add --filter ``` ### eslint / prettier -We use `eslint` and `prettier` for linting and formatting. `pnpm install` will download those for you, and you can run them with the `pnpm` scripts found in `package.json`. +We use `eslint` and `prettier` for linting and formatting. `../script/pnpm install` will download those for you, and you can run the `pnpm` scripts found in `package.json` through the same launcher. It's highly recommend you set up your IDE to run these tools on save, so you don't have to worry about manually formatting/linting, and failing CI because your code isn't formatted/linted. @@ -71,27 +73,27 @@ Conventions: From `/packages/studio`: ```bash -pnpm test # run unit tests -pnpm test:watch # watch mode -pnpm test:visual # browser UI at http://localhost:51204/__vitest__/# -pnpm test -- --coverage # coverage report +../../../script/pnpm test # run unit tests +../../../script/pnpm test:watch # watch mode +../../../script/pnpm test:visual # browser UI at http://localhost:51204/__vitest__/# +../../../script/pnpm test -- --coverage # coverage report ``` ### Environment Variables Studio is configured using environment variables. How they make their way into the React app depends on the environment Studio is running in. For the full list of environment variables Studio accepts, look at `packages/studio/env/.env.fastapi`. -When the bundle is built for the **Studio FastAPI** app (`pnpm build --mode fastapi`), `STUDIO_UI_*` placeholders come from `packages/studio/env/.env.fastapi` and are resolved at runtime using **`services/studio/src/nmp/studio/env_mappings.py`** at the Platform repository root (alongside `web/`). Keep `.env.fastapi` and `env_mappings.py` in sync (see the parity comment in `.env.fastapi`). +When the bundle is built for the **Studio FastAPI** app (`../../../script/pnpm build --mode fastapi`), `STUDIO_UI_*` placeholders come from `packages/studio/env/.env.fastapi` and are resolved at runtime using **`services/studio/src/nmp/studio/env_mappings.py`** at the Platform repository root (alongside `web/`). Keep `.env.fastapi` and `env_mappings.py` in sync (see the parity comment in `.env.fastapi`). #### Local Development `.env` files in `packages/studio/env` control which microservice deployments your local Studio points to. `.local` files are gitignored — edit them freely to point at different deployments. -| File | Used by | -| ----------------------- | --------------------------------------------------------------------- | -| `.env.dev.local` | `pnpm dev` - copied from `.env.dev.local.sample` during setup | -| `.env.dev.local.sample` | Template for `.env.dev.local` | -| `.env.fastapi` | `pnpm build --mode fastapi`; must stay in sync with `env_mappings.py` | -| `.env.test` | Vitest, locally and in CI | -| `.env.e2e` | E2E tests in CI | -| `.env.e2e.local` | E2E tests locally - copied from `.env.e2e` | +| File | Used by | +| ----------------------- | ------------------------------------------------------------------------------------- | +| `.env.dev.local` | `../../../script/pnpm dev` - copied from `.env.dev.local.sample` during setup | +| `.env.dev.local.sample` | Template for `.env.dev.local` | +| `.env.fastapi` | `../../../script/pnpm build --mode fastapi`; must stay in sync with `env_mappings.py` | +| `.env.test` | Vitest, locally and in CI | +| `.env.e2e` | E2E tests in CI | +| `.env.e2e.local` | E2E tests locally - copied from `.env.e2e` | From 6433757096eefbdebeb598f5d128608eb9d02f6e Mon Sep 17 00:00:00 2001 From: Brooke Storm Date: Tue, 11 Aug 2026 11:21:59 -0700 Subject: [PATCH 17/17] fix: make pnpm outside flox but managed with clear vars Signed-off-by: Brooke Storm --- .flox/env/manifest.lock | 118 ++++----------------------- .flox/env/manifest.toml | 2 + .pre-commit-config.yaml | 6 ++ CONTRIBUTING.md | 12 +-- Makefile | 14 ++-- script/pnpm | 26 ------ script/verify-node-version.sh | 34 ++++---- tools/lint/check-node-version.sh | 4 +- tools/lint/check-python-version.sh | 23 ++++++ tools/lint/lint-all.sh | 1 + tools/nodejs/.flox/env/manifest.lock | 99 ++-------------------- tools/nodejs/.flox/env/manifest.toml | 16 +++- tools/python/.flox/env/manifest.lock | 2 +- tools/python/.flox/env/manifest.toml | 2 +- web/AGENTS.md | 6 +- web/README.md | 40 ++++----- 16 files changed, 124 insertions(+), 281 deletions(-) delete mode 100755 script/pnpm create mode 100755 tools/lint/check-python-version.sh diff --git a/.flox/env/manifest.lock b/.flox/env/manifest.lock index 700e69112ed..693d10423e4 100644 --- a/.flox/env/manifest.lock +++ b/.flox/env/manifest.lock @@ -53,11 +53,6 @@ "pkg-group": "osv-scanner", "version": "2.3.3" }, - "pnpm": { - "pkg-path": "pnpm_10", - "pkg-group": "node", - "version": "10.34.5" - }, "shellcheck": { "pkg-path": "shellcheck", "pkg-group": "actionlint", @@ -76,23 +71,25 @@ "ALIGN": "center", "BORDER": "double", "BORDER_FOREGROUND": "#76B900", + "COREPACK_HOME": "${FLOX_ENV_CACHE}/corepack", + "COREPACK_SHIMS": "${FLOX_ENV_CACHE}/corepack/bin", "FOREGROUND": "#76B900", "GUM_LOG_MESSAGE_FOREGROUND": "#76B900", "MARGIN": "1 2", "PADDING": "1 2", - "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm", + "PNPM_VERSION": "10.34.5", "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", "UV_MANAGED_PYTHON": "1", - "UV_PYTHON": "3.13", + "UV_PYTHON": "3.12", "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", "UV_VENV_SEED": "1", "WIDTH": "50" }, "hook": { - "on-activate": " set -euo pipefail\n\n export VIRTUAL_ENV=\"$PWD/.venv\"\n export PATH=\"$VIRTUAL_ENV/bin:$PATH\"\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n" + "on-activate": " set -euo pipefail\n\n export VIRTUAL_ENV=\"$PWD/.venv\"\n export PATH=\"$VIRTUAL_ENV/bin:$PATH\"\n\n if uv sync --frozen --all-packages --check; then\n return 0\n fi\n\n echo \"Python environment is out of sync; synchronizing...\"\n uv sync --frozen --all-packages\n\n set -euo pipefail\n mkdir -p \"$COREPACK_SHIMS\"\n if ! test -x \"$COREPACK_SHIMS/pnpm\" || ! \"$COREPACK_SHIMS/pnpm\" --version | grep -Fxq \"$PNPM_VERSION\"; then\n corepack install --global \"pnpm@$PNPM_VERSION\"\n corepack enable --install-directory \"$COREPACK_SHIMS\"\n fi\n export PATH=\"$COREPACK_SHIMS:$PATH\"\n" }, "profile": { - "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" + "common": " export PATH=\"$COREPACK_SHIMS:$PATH\"\n\n test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, "options": { "systems": [ @@ -643,93 +640,6 @@ "group": "node", "priority": 5 }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/1x2hdyi7z35mpsb40q1c99rzzli3lyd1-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T04:55:29.248162Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/mqihmbwcawwpgwnwfg2hwyx4y8577991-pnpm-10.34.5" - }, - "system": "aarch64-darwin", - "group": "node", - "priority": 5 - }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/ykmg9frmp7x4dni86raf9m10xjb9hpz1-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T05:25:05.998051Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/z4vxcxkfb4mh4ajc7gvwihqqawcnd7qs-pnpm-10.34.5" - }, - "system": "aarch64-linux", - "group": "node", - "priority": 5 - }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/a4s9ni15m40b0iwglfmdrhnjwd0bab4n-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T05:59:22.852600Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/1y1j3774v84329m42q0sjy3f89n5p1fx-pnpm-10.34.5" - }, - "system": "x86_64-linux", - "group": "node", - "priority": 5 - }, { "attr_path": "open-policy-agent", "broken": false, @@ -1553,7 +1463,7 @@ "composer": { "schema-version": "1.14.0", "profile": { - "common": " test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" + "common": " export PATH=\"$COREPACK_SHIMS:$PATH\"\n\n test -f .git/hooks/pre-commit || pre-commit install\n\n gum style \"NeMo Platform\"\n" }, "options": { "systems": [ @@ -1697,7 +1607,7 @@ "vars": { "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", "UV_MANAGED_PYTHON": "1", - "UV_PYTHON": "3.13", + "UV_PYTHON": "3.12", "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", "UV_VENV_SEED": "1" }, @@ -1719,15 +1629,15 @@ "pkg-path": "nodejs_22", "pkg-group": "node", "version": "22.23.2" - }, - "pnpm": { - "pkg-path": "pnpm_10", - "pkg-group": "node", - "version": "10.34.5" } }, "vars": { - "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm" + "COREPACK_HOME": "${FLOX_ENV_CACHE}/corepack", + "COREPACK_SHIMS": "${FLOX_ENV_CACHE}/corepack/bin", + "PNPM_VERSION": "10.34.5" + }, + "hook": { + "on-activate": " set -euo pipefail\n mkdir -p \"$COREPACK_SHIMS\"\n if ! test -x \"$COREPACK_SHIMS/pnpm\" || ! \"$COREPACK_SHIMS/pnpm\" --version | grep -Fxq \"$PNPM_VERSION\"; then\n corepack install --global \"pnpm@$PNPM_VERSION\"\n corepack enable --install-directory \"$COREPACK_SHIMS\"\n fi\n export PATH=\"$COREPACK_SHIMS:$PATH\"\n" }, "options": { "systems": [ diff --git a/.flox/env/manifest.toml b/.flox/env/manifest.toml index 9a70bef2d8d..57e97781d90 100644 --- a/.flox/env/manifest.toml +++ b/.flox/env/manifest.toml @@ -2,6 +2,8 @@ schema-version = "1.14.0" [profile] common = ''' + export PATH="$COREPACK_SHIMS:$PATH" + test -f .git/hooks/pre-commit || pre-commit install gum style "NeMo Platform" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0c53ab167ed..7599868583e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -102,6 +102,12 @@ repos: language: system files: '^(\.github/workflows/.*\.ya?ml|tools/python/\.flox/env/manifest\.toml)$' pass_filenames: false + - id: python-version-consistency + name: Check Make and Flox Python versions + entry: ./tools/lint/check-python-version.sh + language: system + files: '^(Makefile|tools/python/\.flox/env/manifest\.toml)$' + pass_filenames: false - id: node-version-consistency name: Check Node.js and pnpm versions entry: ./tools/lint/check-node-version.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 926a85a08a7..2789756338a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,10 +35,10 @@ make bootstrap `make bootstrap` activates Flox as needed, installs the pinned Python and Node.js toolchains, synchronizes Python dependencies, installs pnpm workspace dependencies, and builds Studio assets. Run `flox activate` afterward when you -want to use `uv` or `node` directly. Use `script/pnpm` for pnpm commands so -pnpm runs with the repository's pinned Node.js. Interactive activation installs -the repository's pre-commit hook when needed; leave the environment with `flox -deactivate` when you are done. +want to use `uv`, `node`, or `pnpm` directly. Flox supplies Node.js and Corepack +installs the repository-pinned pnpm into the environment cache. Interactive +activation installs the repository's pre-commit hook when needed; leave the +environment with `flox deactivate` when you are done. #### Python Environment Setup @@ -108,13 +108,13 @@ For active UI development, you can run the Vite dev server instead of rebuilding ```bash cd web/packages/studio -../../../script/pnpm dev +pnpm dev ``` This provides hot module replacement (HMR) at the local URL printed by Vite. When you're ready to test with the FastAPI service, rebuild with -`../../../script/pnpm build:fastapi`. +`pnpm build:fastapi`. ##### Running the Platform with Studio diff --git a/Makefile b/Makefile index ea0fee06e8e..66087a323f5 100644 --- a/Makefile +++ b/Makefile @@ -71,7 +71,7 @@ generate: stainless ## Alias for SDK generation via Stainless .PHONY: update-web-sdk update-web-sdk: verify-toolchain ## Regenerate the TypeScript web SDK (web/packages/sdk) from the OpenAPI spec via Orval - cd web && $(FLOX_PNPM) gen + cd web && $(PNPM) gen .PHONY: update-sdk update-sdk: build-policy refresh-openapi stainless update-web-sdk update-cli ## Update the SDK by regenerating the OpenAPI spec and syncing it with Stainless @@ -226,7 +226,11 @@ else $(error TOOLCHAIN must be either flox or system) endif UV := $(FLOX_EXEC) uv -FLOX_PNPM := TOOLCHAIN=$(TOOLCHAIN) $(FLOX_EXEC) $(CURDIR)/script/pnpm +ifeq ($(TOOLCHAIN),flox) +PNPM := $(FLOX_EXEC) bash -c 'corepack "pnpm@$$PNPM_VERSION" "$$@"' -- +else +PNPM := $(FLOX_EXEC) pnpm +endif .PHONY: verify-toolchain verify-toolchain: ## Verify the selected Flox or system toolchain @@ -254,7 +258,7 @@ verify-pnpm: verify-toolchain ## Verify pnpm is available for Studio bootstrap ifeq ($(TOOLCHAIN),system) @bash script/verify-system-toolchain.sh web endif - @$(FLOX_PNPM) --version || { \ + @$(PNPM) --version || { \ echo "pnpm not found."; \ echo "Install Flox or use TOOLCHAIN=system with pnpm on PATH."; \ exit 1; \ @@ -270,8 +274,8 @@ verify-node-version: verify-pnpm ## Verify pnpm and Node.js satisfy Studio's pac bootstrap-studio: verify-node-version ## Install web dependencies and build Studio assets for FastAPI @echo "~~~~~~" @echo "installing Studio web dependencies and building FastAPI assets" - cd web && CI=true $(FLOX_PNPM) install --frozen-lockfile - cd web && $(FLOX_PNPM) --filter nemo-studio-ui build:fastapi + cd web && CI=true $(PNPM) install --frozen-lockfile + cd web && $(PNPM) --filter nemo-studio-ui build:fastapi .PHONY: bootstrap-plugins bootstrap-plugins: .venv ## Install editable plugin packages not covered by the root uv workspace diff --git a/script/pnpm b/script/pnpm deleted file mode 100755 index 1012be4a073..00000000000 --- a/script/pnpm +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -repo_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" - -# Flox's pnpm_10 launcher embeds a Nix-store Node 24 interpreter, while this -# repository pins Node 22. Run pnpm's JavaScript entry point with the active -# Node binary so pnpm and Node satisfy the same repository constraints. -if [ "${TOOLCHAIN:-flox}" = "system" ]; then - if ! command -v node >/dev/null 2>&1 || ! command -v pnpm >/dev/null 2>&1; then - echo "Node.js and pnpm must be on PATH when TOOLCHAIN=system." >&2 - exit 1 - fi - exec node "$(command -v pnpm)" "$@" -fi - -if [ "${FLOX_ENV_PROJECT:-}" = "$repo_root" ]; then - exec node "$(command -v pnpm)" "$@" -fi - -if ! command -v flox >/dev/null 2>&1; then - echo "pnpm is unavailable. Install Flox or provide Node.js and pnpm on PATH." >&2 - exit 1 -fi - -exec flox activate --dir "$repo_root" -- bash -c 'exec node "$(command -v pnpm)" "$@"' pnpm "$@" diff --git a/script/verify-node-version.sh b/script/verify-node-version.sh index 43ec7bc6c59..110b45a1f8e 100755 --- a/script/verify-node-version.sh +++ b/script/verify-node-version.sh @@ -7,26 +7,24 @@ WEB_DIR="$REPO_ROOT/web" # --- Toolchain availability --- -for tool in node pnpm; do - if ! command -v "$tool" >/dev/null 2>&1; then - echo "$tool is not on PATH." - if [ "${TOOLCHAIN:-flox}" = "system" ]; then - echo "TOOLCHAIN=system is set, so $tool has to come from your PATH." - echo "Install it, or re-run without TOOLCHAIN=system to use Flox." - else - echo "Install Flox, then rerun this command." - fi +if ! command -v node >/dev/null 2>&1; then + echo "node is not on PATH." >&2 + exit 1 +fi + +if [[ -n "${PNPM_VERSION:-}" ]]; then + if ! command -v corepack >/dev/null 2>&1; then + echo "corepack is not on PATH." >&2 exit 1 fi -done - -# Flox's pnpm package may be built with a different Node.js version than the -# one selected by this environment. Invoke its JavaScript entrypoint with the -# selected node executable so pnpm and its child processes use the pinned Node. -pnpm_path="$(command -v pnpm)" -pnpm() { - node "${pnpm_path}" "$@" -} + pnpm() { + corepack "pnpm@${PNPM_VERSION}" "$@" + } +elif ! command -v pnpm >/dev/null 2>&1; then + echo "pnpm is not on PATH." >&2 + echo "Install it, or rerun without TOOLCHAIN=system to use Flox." >&2 + exit 1 +fi # --- Engine compatibility check --- diff --git a/tools/lint/check-node-version.sh b/tools/lint/check-node-version.sh index b397976f36e..d79ccf9882e 100755 --- a/tools/lint/check-node-version.sh +++ b/tools/lint/check-node-version.sh @@ -5,7 +5,7 @@ set -euo pipefail node_version="$(yq '.install.nodejs.version' tools/nodejs/.flox/env/manifest.toml)" -pnpm_version="$(yq '.install.pnpm.version' tools/nodejs/.flox/env/manifest.toml)" +pnpm_version="$(yq -r '.vars.PNPM_VERSION' tools/nodejs/.flox/env/manifest.toml)" nvmrc_version="$(tr -d '[:space:]' < .nvmrc)" package_manager="$(yq -r '.packageManager' web/package.json)" @@ -15,7 +15,7 @@ if [[ "${node_version}" != "${nvmrc_version}" ]]; then fi if [[ "${package_manager}" != "pnpm@${pnpm_version}" ]]; then - echo "Flox pnpm version ${pnpm_version} does not match web/package.json ${package_manager}." >&2 + echo "Corepack pnpm version ${pnpm_version} does not match web/package.json ${package_manager}." >&2 exit 1 fi diff --git a/tools/lint/check-python-version.sh b/tools/lint/check-python-version.sh new file mode 100755 index 00000000000..4745290992d --- /dev/null +++ b/tools/lint/check-python-version.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +make_python_version="$(sed -n 's/^PYTHON_VERSION[[:space:]]*?=[[:space:]]*\([^[:space:]#]*\).*/\1/p' Makefile)" +flox_python_version="$(yq -r '.vars.UV_PYTHON' tools/python/.flox/env/manifest.toml)" + +if [[ -z "${make_python_version}" ]]; then + echo "Could not find the default PYTHON_VERSION in Makefile." >&2 + exit 1 +fi + +if [[ -z "${flox_python_version}" || "${flox_python_version}" == "null" ]]; then + echo "Could not find UV_PYTHON in tools/python/.flox/env/manifest.toml." >&2 + exit 1 +fi + +if [[ "${make_python_version}" != "${flox_python_version}" ]]; then + echo "Makefile Python version ${make_python_version} does not match Flox UV_PYTHON ${flox_python_version}." >&2 + exit 1 +fi diff --git a/tools/lint/lint-all.sh b/tools/lint/lint-all.sh index 587412fb0d8..bdc721f2ca0 100755 --- a/tools/lint/lint-all.sh +++ b/tools/lint/lint-all.sh @@ -7,6 +7,7 @@ cd "${PROJECT_ROOT}" || exit 1 declare -a scripts=( "check-uv-version-consistency:tools/lint/check-uv-version.sh" + "check-python-version-consistency:tools/lint/check-python-version.sh" "check-node-version-consistency:tools/lint/check-node-version.sh" "check-flox-lock-consistency:tools/lint/check-flox-locks.sh" "lint-licenses:tools/lint/lint-licenses.sh" diff --git a/tools/nodejs/.flox/env/manifest.lock b/tools/nodejs/.flox/env/manifest.lock index e7e8320485a..6eb6d54a636 100644 --- a/tools/nodejs/.flox/env/manifest.lock +++ b/tools/nodejs/.flox/env/manifest.lock @@ -7,15 +7,15 @@ "pkg-path": "nodejs_22", "pkg-group": "node", "version": "22.23.2" - }, - "pnpm": { - "pkg-path": "pnpm_10", - "pkg-group": "node", - "version": "10.34.5" } }, "vars": { - "PNPM_HOME": "${FLOX_ENV_CACHE}/pnpm" + "COREPACK_HOME": "${FLOX_ENV_CACHE}/corepack", + "COREPACK_SHIMS": "${FLOX_ENV_CACHE}/corepack/bin", + "PNPM_VERSION": "10.34.5" + }, + "hook": { + "on-activate": " set -euo pipefail\n mkdir -p \"$COREPACK_SHIMS\"\n if ! test -x \"$COREPACK_SHIMS/pnpm\" || ! \"$COREPACK_SHIMS/pnpm\" --version | grep -Fxq \"$PNPM_VERSION\"; then\n corepack install --global \"pnpm@$PNPM_VERSION\"\n corepack enable --install-directory \"$COREPACK_SHIMS\"\n fi\n export PATH=\"$COREPACK_SHIMS:$PATH\"\n" }, "options": { "systems": [ @@ -112,93 +112,6 @@ "system": "x86_64-linux", "group": "node", "priority": 5 - }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/1x2hdyi7z35mpsb40q1c99rzzli3lyd1-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T04:55:29.248162Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/mqihmbwcawwpgwnwfg2hwyx4y8577991-pnpm-10.34.5" - }, - "system": "aarch64-darwin", - "group": "node", - "priority": 5 - }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/ykmg9frmp7x4dni86raf9m10xjb9hpz1-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T05:25:05.998051Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/z4vxcxkfb4mh4ajc7gvwihqqawcnd7qs-pnpm-10.34.5" - }, - "system": "aarch64-linux", - "group": "node", - "priority": 5 - }, - { - "attr_path": "pnpm_10", - "broken": false, - "derivation": "/nix/store/a4s9ni15m40b0iwglfmdrhnjwd0bab4n-pnpm-10.34.5.drv", - "description": "Fast, disk space efficient package manager for JavaScript", - "install_id": "pnpm", - "license": "MIT", - "locked_url": "https://github.com/flox/nixpkgs?rev=f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "name": "pnpm-10.34.5", - "pname": "pnpm_10", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "rev_count": 1049422, - "rev_date": "2026-08-07T12:45:23Z", - "scrape_date": "2026-08-09T05:59:22.852600Z", - "stabilities": [ - "unstable" - ], - "unfree": false, - "version": "10.34.5", - "outputs_to_install": [ - "out" - ], - "outputs": { - "out": "/nix/store/1y1j3774v84329m42q0sjy3f89n5p1fx-pnpm-10.34.5" - }, - "system": "x86_64-linux", - "group": "node", - "priority": 5 } ] } diff --git a/tools/nodejs/.flox/env/manifest.toml b/tools/nodejs/.flox/env/manifest.toml index 65a4601c63a..456ffe9e272 100644 --- a/tools/nodejs/.flox/env/manifest.toml +++ b/tools/nodejs/.flox/env/manifest.toml @@ -2,10 +2,22 @@ schema-version = "1.14.0" [install] nodejs = { pkg-path = "nodejs_22", version = "22.23.2", pkg-group = "node" } -pnpm = { pkg-path = "pnpm_10", version = "10.34.5", pkg-group = "node" } [vars] -PNPM_HOME="${FLOX_ENV_CACHE}/pnpm" +PNPM_VERSION = "10.34.5" +COREPACK_HOME = "${FLOX_ENV_CACHE}/corepack" +COREPACK_SHIMS = "${FLOX_ENV_CACHE}/corepack/bin" + +[hook] +on-activate = ''' + set -euo pipefail + mkdir -p "$COREPACK_SHIMS" + if ! test -x "$COREPACK_SHIMS/pnpm" || ! "$COREPACK_SHIMS/pnpm" --version | grep -Fxq "$PNPM_VERSION"; then + corepack install --global "pnpm@$PNPM_VERSION" + corepack enable --install-directory "$COREPACK_SHIMS" + fi + export PATH="$COREPACK_SHIMS:$PATH" +''' [options] systems = ["aarch64-darwin", "aarch64-linux", "x86_64-linux"] diff --git a/tools/python/.flox/env/manifest.lock b/tools/python/.flox/env/manifest.lock index a67d6586900..f5df79a9182 100644 --- a/tools/python/.flox/env/manifest.lock +++ b/tools/python/.flox/env/manifest.lock @@ -12,7 +12,7 @@ "vars": { "UV_CACHE_DIR": "${FLOX_ENV_CACHE}/uv-cache", "UV_MANAGED_PYTHON": "1", - "UV_PYTHON": "3.13", + "UV_PYTHON": "3.12", "UV_PYTHON_INSTALL_DIR": "${FLOX_ENV_CACHE}/python", "UV_VENV_SEED": "1" }, diff --git a/tools/python/.flox/env/manifest.toml b/tools/python/.flox/env/manifest.toml index 783608dffcf..672fd37718e 100644 --- a/tools/python/.flox/env/manifest.toml +++ b/tools/python/.flox/env/manifest.toml @@ -6,7 +6,7 @@ uv = { pkg-path = "uv", version = "0.9.14", pkg-group = "uv" } [vars] UV_VENV_SEED="1" UV_MANAGED_PYTHON="1" -UV_PYTHON="3.13" +UV_PYTHON="3.12" UV_CACHE_DIR="${FLOX_ENV_CACHE}/uv-cache" UV_PYTHON_INSTALL_DIR="${FLOX_ENV_CACHE}/python" diff --git a/web/AGENTS.md b/web/AGENTS.md index 212e148ccc0..8e616fb902b 100644 --- a/web/AGENTS.md +++ b/web/AGENTS.md @@ -32,9 +32,9 @@ Cursor/Claude skills for this monorepo live under **`web/.agents/skills/`** (for - Use **pnpm** exclusively — never npm or yarn - Run frontend commands from `web/`, not from repo root -- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work. Invoke pnpm through `../script/pnpm` so it runs with the pinned Node.js. -- Install dependencies: `../script/pnpm add ` -- Run scripts: `../script/pnpm ` +- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work; Corepack provides the repository-pinned pnpm. +- Install dependencies: `pnpm add ` +- Run scripts: `pnpm ` ### Bumping a shared singleton also means bumping the plugins diff --git a/web/README.md b/web/README.md index 6d3c2be2f85..424c42b8e5b 100644 --- a/web/README.md +++ b/web/README.md @@ -13,11 +13,11 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen Or install Node.js `22.23.2` and pnpm `10.34.5` yourself, then use `TOOLCHAIN=system make bootstrap-studio` from the repository root. 2. Copy `.env` files from `web/`. `make bootstrap-studio` already installs the - workspace dependencies. For later pnpm commands, use the repository launcher - so pnpm runs with the pinned Node.js: + workspace dependencies. In an activated Flox environment, Corepack provides + the repository-pinned pnpm: ```bash - ../script/pnpm install + pnpm install cp packages/studio/env/.env.dev.local.sample packages/studio/env/.env.dev.local && \ cp packages/studio/env/.env.e2e packages/studio/env/.env.e2e.local ``` @@ -27,7 +27,7 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen Run the following script from `web/`: ```bash -../script/pnpm dev +pnpm dev ``` This runs the vite dev server, which has hot module reloading. This server is accessible at `http://localhost:5173`. @@ -40,15 +40,15 @@ Studio is a React + TypeScript SPA built with [Vite](https://vite.dev/), styled ### Adding Dependencies -Use `../script/pnpm add` with a filter for the package name. [More information here.](https://pnpm.io/cli/add) +Use `pnpm add` with a filter for the package name. [More information here.](https://pnpm.io/cli/add) ```bash -../script/pnpm add --filter +pnpm add --filter ``` ### eslint / prettier -We use `eslint` and `prettier` for linting and formatting. `../script/pnpm install` will download those for you, and you can run the `pnpm` scripts found in `package.json` through the same launcher. +We use `eslint` and `prettier` for linting and formatting. `pnpm install` will download those for you, and you can run the `pnpm` scripts found in `package.json` directly. It's highly recommend you set up your IDE to run these tools on save, so you don't have to worry about manually formatting/linting, and failing CI because your code isn't formatted/linted. @@ -73,27 +73,27 @@ Conventions: From `/packages/studio`: ```bash -../../../script/pnpm test # run unit tests -../../../script/pnpm test:watch # watch mode -../../../script/pnpm test:visual # browser UI at http://localhost:51204/__vitest__/# -../../../script/pnpm test -- --coverage # coverage report +pnpm test # run unit tests +pnpm test:watch # watch mode +pnpm test:visual # browser UI at http://localhost:51204/__vitest__/# +pnpm test -- --coverage # coverage report ``` ### Environment Variables Studio is configured using environment variables. How they make their way into the React app depends on the environment Studio is running in. For the full list of environment variables Studio accepts, look at `packages/studio/env/.env.fastapi`. -When the bundle is built for the **Studio FastAPI** app (`../../../script/pnpm build --mode fastapi`), `STUDIO_UI_*` placeholders come from `packages/studio/env/.env.fastapi` and are resolved at runtime using **`services/studio/src/nmp/studio/env_mappings.py`** at the Platform repository root (alongside `web/`). Keep `.env.fastapi` and `env_mappings.py` in sync (see the parity comment in `.env.fastapi`). +When the bundle is built for the **Studio FastAPI** app (`pnpm build --mode fastapi`), `STUDIO_UI_*` placeholders come from `packages/studio/env/.env.fastapi` and are resolved at runtime using **`services/studio/src/nmp/studio/env_mappings.py`** at the Platform repository root (alongside `web/`). Keep `.env.fastapi` and `env_mappings.py` in sync (see the parity comment in `.env.fastapi`). #### Local Development `.env` files in `packages/studio/env` control which microservice deployments your local Studio points to. `.local` files are gitignored — edit them freely to point at different deployments. -| File | Used by | -| ----------------------- | ------------------------------------------------------------------------------------- | -| `.env.dev.local` | `../../../script/pnpm dev` - copied from `.env.dev.local.sample` during setup | -| `.env.dev.local.sample` | Template for `.env.dev.local` | -| `.env.fastapi` | `../../../script/pnpm build --mode fastapi`; must stay in sync with `env_mappings.py` | -| `.env.test` | Vitest, locally and in CI | -| `.env.e2e` | E2E tests in CI | -| `.env.e2e.local` | E2E tests locally - copied from `.env.e2e` | +| File | Used by | +| ----------------------- | --------------------------------------------------------------------- | +| `.env.dev.local` | `pnpm dev` - copied from `.env.dev.local.sample` during setup | +| `.env.dev.local.sample` | Template for `.env.dev.local` | +| `.env.fastapi` | `pnpm build --mode fastapi`; must stay in sync with `env_mappings.py` | +| `.env.test` | Vitest, locally and in CI | +| `.env.e2e` | E2E tests in CI | +| `.env.e2e.local` | E2E tests locally - copied from `.env.e2e` |