From 6a8051f5f790270c99c305eaf7a14cd88096ea00 Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Tue, 25 Nov 2025 21:44:10 +0100 Subject: [PATCH 1/2] build(flox): Reorganize Flox environments Prepare for adding more Flox environments by moving the single existing environment to a subdirectory and add a convenience script to run this minimal environment in isolation. Signed-off-by: Sebastian Schuberth --- .github/workflows/build-and-test.yml | 4 +-- REUSE.toml | 5 ++++ {.flox => flox/minimal/.flox}/.gitattributes | 0 {.flox => flox/minimal/.flox}/.gitignore | 0 {.flox => flox/minimal/.flox}/env.json | 0 .../minimal/.flox}/env/manifest.lock | 0 .../minimal/.flox}/env/manifest.toml | 0 flox/run_isolated.sh | 30 +++++++++++++++++++ 8 files changed, 37 insertions(+), 2 deletions(-) rename {.flox => flox/minimal/.flox}/.gitattributes (100%) rename {.flox => flox/minimal/.flox}/.gitignore (100%) rename {.flox => flox/minimal/.flox}/env.json (100%) rename {.flox => flox/minimal/.flox}/env/manifest.lock (100%) rename {.flox => flox/minimal/.flox}/env/manifest.toml (100%) create mode 100755 flox/run_isolated.sh diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 79581bcd52a23..e796950348394 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -73,7 +73,7 @@ jobs: disable-metrics: true if: runner.os != 'Windows' - name: Run unit tests in a minimal environment - run: env -i "$(which flox)" activate -- ./gradlew --scan test jacocoTestReport + run: ./flox/run_isolated.sh minimal ./gradlew --scan test jacocoTestReport if: runner.os != 'Windows' - name: Run unit tests run: ./gradlew --scan test jacocoTestReport @@ -101,7 +101,7 @@ jobs: with: disable-metrics: true - name: Run functional tests that do not require external tools - run: env -i "$(which flox)" activate -- ./gradlew --scan -Dkotest.tags=!RequiresExternalTool funTest jacocoFunTestReport + run: ./flox/run_isolated.sh minimal ./gradlew --scan -Dkotest.tags=!RequiresExternalTool funTest jacocoFunTestReport - name: Create Test Summary uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2 with: diff --git a/REUSE.toml b/REUSE.toml index 186bbf03817ad..f15aa454c6325 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -10,6 +10,11 @@ path = ".**" SPDX-FileCopyrightText = "2017 The ORT Project Authors (see )" SPDX-License-Identifier = "Apache-2.0" +[[annotations]] +path = "**/.flox/**" +SPDX-FileCopyrightText = "2025 The ORT Project Authors (see )" +SPDX-License-Identifier = "Apache-2.0" + [[annotations]] path = "**/.gitattributes" SPDX-FileCopyrightText = "2018 The ORT Project Authors (see )" diff --git a/.flox/.gitattributes b/flox/minimal/.flox/.gitattributes similarity index 100% rename from .flox/.gitattributes rename to flox/minimal/.flox/.gitattributes diff --git a/.flox/.gitignore b/flox/minimal/.flox/.gitignore similarity index 100% rename from .flox/.gitignore rename to flox/minimal/.flox/.gitignore diff --git a/.flox/env.json b/flox/minimal/.flox/env.json similarity index 100% rename from .flox/env.json rename to flox/minimal/.flox/env.json diff --git a/.flox/env/manifest.lock b/flox/minimal/.flox/env/manifest.lock similarity index 100% rename from .flox/env/manifest.lock rename to flox/minimal/.flox/env/manifest.lock diff --git a/.flox/env/manifest.toml b/flox/minimal/.flox/env/manifest.toml similarity index 100% rename from .flox/env/manifest.toml rename to flox/minimal/.flox/env/manifest.toml diff --git a/flox/run_isolated.sh b/flox/run_isolated.sh new file mode 100755 index 0000000000000..982965060738f --- /dev/null +++ b/flox/run_isolated.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# Copyright (C) 2025 The ORT Project Authors (see ) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# License-Filename: LICENSE + +SELF="${BASH_SOURCE[0]}" + +if [ "$#" -lt 2 ]; then + echo "Usage: $SELF " >&2 + exit 1 +fi + +ENV_DIR="$(dirname "$SELF")/$1" +shift + +env -i "$(which flox)" activate -d "$ENV_DIR" -- "$@" From fdcf5b40a29d0b5d06b0c6a7f84d45c9398f5c63 Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Wed, 26 Nov 2025 12:05:37 +0100 Subject: [PATCH 2/2] build(flox): Add composite envionments with external tools At the example of scanners only for now, show how to create Flox environments for their tools so that functional tests for scanners can be run independently of whether they are currently installed via: ./flox/run_isolated.sh external-tools ./gradlew -p plugins/scanners \ funTest Note that if an included environment changes, the compose environment needs to be updated [1] by running flox include upgrade [1]: https://flox.dev/docs/concepts/composition/#getting-the-latest-manifests Signed-off-by: Sebastian Schuberth --- flox/external-tools/.flox/.gitattributes | 1 + flox/external-tools/.flox/.gitignore | 5 + flox/external-tools/.flox/env.json | 4 + flox/external-tools/.flox/env/manifest.lock | 431 ++++++++++++++++++ flox/external-tools/.flox/env/manifest.toml | 16 + plugins/scanners/.flox/.gitattributes | 1 + plugins/scanners/.flox/.gitignore | 5 + plugins/scanners/.flox/env.json | 4 + plugins/scanners/.flox/env/manifest.lock | 348 ++++++++++++++ plugins/scanners/.flox/env/manifest.toml | 17 + .../scanners/askalono/.flox/.gitattributes | 1 + plugins/scanners/askalono/.flox/.gitignore | 5 + plugins/scanners/askalono/.flox/env.json | 4 + .../scanners/askalono/.flox/env/manifest.lock | 55 +++ .../scanners/askalono/.flox/env/manifest.toml | 14 + .../scanners/licensee/.flox/.gitattributes | 1 + plugins/scanners/licensee/.flox/.gitignore | 5 + plugins/scanners/licensee/.flox/env.json | 4 + .../scanners/licensee/.flox/env/manifest.lock | 55 +++ .../scanners/licensee/.flox/env/manifest.toml | 14 + .../scanners/scancode/.flox/.gitattributes | 1 + plugins/scanners/scancode/.flox/.gitignore | 5 + plugins/scanners/scancode/.flox/env.json | 4 + .../scanners/scancode/.flox/env/manifest.lock | 56 +++ .../scanners/scancode/.flox/env/manifest.toml | 14 + 25 files changed, 1070 insertions(+) create mode 100644 flox/external-tools/.flox/.gitattributes create mode 100644 flox/external-tools/.flox/.gitignore create mode 100644 flox/external-tools/.flox/env.json create mode 100644 flox/external-tools/.flox/env/manifest.lock create mode 100644 flox/external-tools/.flox/env/manifest.toml create mode 100644 plugins/scanners/.flox/.gitattributes create mode 100644 plugins/scanners/.flox/.gitignore create mode 100644 plugins/scanners/.flox/env.json create mode 100644 plugins/scanners/.flox/env/manifest.lock create mode 100644 plugins/scanners/.flox/env/manifest.toml create mode 100644 plugins/scanners/askalono/.flox/.gitattributes create mode 100644 plugins/scanners/askalono/.flox/.gitignore create mode 100644 plugins/scanners/askalono/.flox/env.json create mode 100644 plugins/scanners/askalono/.flox/env/manifest.lock create mode 100644 plugins/scanners/askalono/.flox/env/manifest.toml create mode 100644 plugins/scanners/licensee/.flox/.gitattributes create mode 100644 plugins/scanners/licensee/.flox/.gitignore create mode 100644 plugins/scanners/licensee/.flox/env.json create mode 100644 plugins/scanners/licensee/.flox/env/manifest.lock create mode 100644 plugins/scanners/licensee/.flox/env/manifest.toml create mode 100644 plugins/scanners/scancode/.flox/.gitattributes create mode 100644 plugins/scanners/scancode/.flox/.gitignore create mode 100644 plugins/scanners/scancode/.flox/env.json create mode 100644 plugins/scanners/scancode/.flox/env/manifest.lock create mode 100644 plugins/scanners/scancode/.flox/env/manifest.toml diff --git a/flox/external-tools/.flox/.gitattributes b/flox/external-tools/.flox/.gitattributes new file mode 100644 index 0000000000000..bb5491e192330 --- /dev/null +++ b/flox/external-tools/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/flox/external-tools/.flox/.gitignore b/flox/external-tools/.flox/.gitignore new file mode 100644 index 0000000000000..8d211868311bd --- /dev/null +++ b/flox/external-tools/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/flox/external-tools/.flox/env.json b/flox/external-tools/.flox/env.json new file mode 100644 index 0000000000000..ec6686e1fc9d2 --- /dev/null +++ b/flox/external-tools/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "external-tools", + "version": 1 +} diff --git a/flox/external-tools/.flox/env/manifest.lock b/flox/external-tools/.flox/env/manifest.lock new file mode 100644 index 0000000000000..ed1426826241b --- /dev/null +++ b/flox/external-tools/.flox/env/manifest.lock @@ -0,0 +1,431 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "askalono": { + "pkg-path": "askalono", + "version": "0.5.0" + }, + "coreutils": { + "pkg-path": "coreutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnused": { + "pkg-path": "gnused" + }, + "jdk21": { + "pkg-path": "jdk21" + }, + "licensee": { + "pkg-path": "licensee", + "version": "9.18.0" + }, + "scancode": { + "pkg-path": "python313Packages.scancode-toolkit", + "version": "32.4.1" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "packages": [ + { + "attr_path": "askalono", + "broken": false, + "derivation": "/nix/store/cs0r6zbl6bi3vxn649kd88cinv423p17-askalono-0.5.0.drv", + "description": "Tool to detect open source licenses from texts", + "install_id": "askalono", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "askalono-0.5.0", + "pname": "askalono", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:45.089339Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "0.5.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/29qdm571l1avbarlwgqmqcg8smj3cnaj-askalono-0.5.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "coreutils", + "broken": false, + "derivation": "/nix/store/m507z3g5zq4lv5x99rqb6dfdh5m0xixx-coreutils-9.8.drv", + "description": "GNU Core Utilities", + "install_id": "coreutils", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "coreutils-9.8", + "pname": "coreutils", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:45.670192Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "9.8", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/94960sngigrxkp9c4xf1w5kkp99fn41j-coreutils-9.8-debug", + "info": "/nix/store/y1m7chay8is0jhibk9n4a39sacbnsf8q-coreutils-9.8-info", + "out": "/nix/store/imad8dvhp77h0pjbckp6wvmnyhp8dpgg-coreutils-9.8" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "findutils", + "broken": false, + "derivation": "/nix/store/3shvx0chqk6wsazrwqv401apv1p7cbmy-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=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "findutils-4.10.0", + "pname": "findutils", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:46.432840Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.10.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/a9zjkxa2lhxfczxh7rbv1gg92ssinpq2-findutils-4.10.0-info", + "locate": "/nix/store/w6wisplhj1i8s7msj7qnn5xi5m02izgs-findutils-4.10.0-locate", + "out": "/nix/store/av4xw9f56xlx5pgv862wabfif6m1yc0a-findutils-4.10.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "gnused", + "broken": false, + "derivation": "/nix/store/379i0mbr9krm4pp924s43k1mxgpjy36d-gnused-4.9.drv", + "description": "GNU sed, a batch stream editor", + "install_id": "gnused", + "license": "GPL-3.0-or-later", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "gnused-4.9", + "pname": "gnused", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:47.437825Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "4.9", + "outputs_to_install": [ + "out" + ], + "outputs": { + "info": "/nix/store/p0xbl3agrrybwbqykdsh18yw1vf5n0p8-gnused-4.9-info", + "out": "/nix/store/drc7kang929jaza6cy9zdx10s4gw1z5p-gnused-4.9" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "jdk21", + "broken": false, + "derivation": "/nix/store/b7j35wva9ag6zzsvd1g4hvy1zmvv4pwv-openjdk-21.0.9+10.drv", + "description": "Open-source Java Development Kit", + "install_id": "jdk21", + "license": "GPL-2.0-only", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "openjdk-21.0.9+10", + "pname": "jdk21", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:22:06.781716Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "21.0.9+10", + "outputs_to_install": [ + "out" + ], + "outputs": { + "debug": "/nix/store/iqrpym2396ppr5498xci88zf6kc37yxl-openjdk-21.0.9+10-debug", + "out": "/nix/store/65qpdkc33j5wqzxvz8c23zhgms8hl35y-openjdk-21.0.9+10" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "licensee", + "broken": false, + "derivation": "/nix/store/8dz9kax6nrxfs9ih5flvqa3rzn6z4m3g-licensee-9.18.0.drv", + "description": "Ruby Gem to detect under what license a project is distributed", + "install_id": "licensee", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "licensee-9.18.0", + "pname": "licensee", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:22:11.287396Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "9.18.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0vvfcirkcb60fgdb5262ql2kh8s27i9z-licensee-9.18.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "python313Packages.scancode-toolkit", + "broken": false, + "derivation": "/nix/store/4cdwapmmmbdsn4df6052hfv8dgl21rli-python3.13-scancode-toolkit-32.4.1.drv", + "description": "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts", + "install_id": "scancode", + "license": "[ Apache-2.0, CC-BY-4.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "python3.13-scancode-toolkit-32.4.1", + "pname": "scancode-toolkit", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:23:32.725926Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "32.4.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/r1adpf44r11x5mmajphffvwmck0fbpxw-python3.13-scancode-toolkit-32.4.1-dist", + "out": "/nix/store/qlxbfh5mc5i047xi0qmn4zycnqpwis9n-python3.13-scancode-toolkit-32.4.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ], + "compose": { + "composer": { + "version": 1, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + }, + "include": { + "environments": [ + { + "dir": "../minimal" + }, + { + "dir": "../../plugins/scanners" + } + ] + } + }, + "include": [ + { + "manifest": { + "version": 1, + "install": { + "coreutils": { + "pkg-path": "coreutils" + }, + "findutils": { + "pkg-path": "findutils" + }, + "gnused": { + "pkg-path": "gnused" + }, + "jdk21": { + "pkg-path": "jdk21" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "name": "ort-flox", + "descriptor": { + "dir": "../minimal" + } + }, + { + "manifest": { + "version": 1, + "install": { + "askalono": { + "pkg-path": "askalono", + "version": "0.5.0" + }, + "licensee": { + "pkg-path": "licensee", + "version": "9.18.0" + }, + "scancode": { + "pkg-path": "python313Packages.scancode-toolkit", + "version": "32.4.1" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "name": "scanners", + "descriptor": { + "dir": "../../plugins/scanners" + } + } + ], + "warnings": [ + { + "warning": { + "Overriding": [ + "vars", + "FLOX_DISABLE_METRICS" + ] + }, + "higher_priority_name": "scanners" + }, + { + "warning": { + "Overriding": [ + "options", + "activate", + "mode" + ] + }, + "higher_priority_name": "scanners" + }, + { + "warning": { + "Overriding": [ + "options", + "cuda-detection" + ] + }, + "higher_priority_name": "scanners" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "scanners" + }, + { + "warning": { + "Overriding": [ + "vars", + "FLOX_DISABLE_METRICS" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "activate", + "mode" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "cuda-detection" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "Current manifest" + } + ] + } +} diff --git a/flox/external-tools/.flox/env/manifest.toml b/flox/external-tools/.flox/env/manifest.toml new file mode 100644 index 0000000000000..5fd45bb0a66d8 --- /dev/null +++ b/flox/external-tools/.flox/env/manifest.toml @@ -0,0 +1,16 @@ +# Flox manifest version managed by Flox CLI +version = 1 + +[vars] +FLOX_DISABLE_METRICS = "true" + +[options] +activate.mode = "run" +cuda-detection = false +systems = ["x86_64-linux"] + +[include] +environments = [ + { dir = "../minimal" }, + { dir = "../../plugins/scanners" } +] diff --git a/plugins/scanners/.flox/.gitattributes b/plugins/scanners/.flox/.gitattributes new file mode 100644 index 0000000000000..bb5491e192330 --- /dev/null +++ b/plugins/scanners/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/plugins/scanners/.flox/.gitignore b/plugins/scanners/.flox/.gitignore new file mode 100644 index 0000000000000..8d211868311bd --- /dev/null +++ b/plugins/scanners/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/plugins/scanners/.flox/env.json b/plugins/scanners/.flox/env.json new file mode 100644 index 0000000000000..d1013981e62f6 --- /dev/null +++ b/plugins/scanners/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "scanners", + "version": 1 +} diff --git a/plugins/scanners/.flox/env/manifest.lock b/plugins/scanners/.flox/env/manifest.lock new file mode 100644 index 0000000000000..b08ddbee59d7d --- /dev/null +++ b/plugins/scanners/.flox/env/manifest.lock @@ -0,0 +1,348 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "askalono": { + "pkg-path": "askalono", + "version": "0.5.0" + }, + "licensee": { + "pkg-path": "licensee", + "version": "9.18.0" + }, + "scancode": { + "pkg-path": "python313Packages.scancode-toolkit", + "version": "32.4.1" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "packages": [ + { + "attr_path": "askalono", + "broken": false, + "derivation": "/nix/store/cs0r6zbl6bi3vxn649kd88cinv423p17-askalono-0.5.0.drv", + "description": "Tool to detect open source licenses from texts", + "install_id": "askalono", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "askalono-0.5.0", + "pname": "askalono", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:45.089339Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "0.5.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/29qdm571l1avbarlwgqmqcg8smj3cnaj-askalono-0.5.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "licensee", + "broken": false, + "derivation": "/nix/store/8dz9kax6nrxfs9ih5flvqa3rzn6z4m3g-licensee-9.18.0.drv", + "description": "Ruby Gem to detect under what license a project is distributed", + "install_id": "licensee", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "licensee-9.18.0", + "pname": "licensee", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:22:11.287396Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "9.18.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0vvfcirkcb60fgdb5262ql2kh8s27i9z-licensee-9.18.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + }, + { + "attr_path": "python313Packages.scancode-toolkit", + "broken": false, + "derivation": "/nix/store/4cdwapmmmbdsn4df6052hfv8dgl21rli-python3.13-scancode-toolkit-32.4.1.drv", + "description": "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts", + "install_id": "scancode", + "license": "[ Apache-2.0, CC-BY-4.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "python3.13-scancode-toolkit-32.4.1", + "pname": "scancode-toolkit", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:23:32.725926Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "32.4.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/r1adpf44r11x5mmajphffvwmck0fbpxw-python3.13-scancode-toolkit-32.4.1-dist", + "out": "/nix/store/qlxbfh5mc5i047xi0qmn4zycnqpwis9n-python3.13-scancode-toolkit-32.4.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ], + "compose": { + "composer": { + "version": 1, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + }, + "include": { + "environments": [ + { + "dir": "askalono" + }, + { + "dir": "licensee" + }, + { + "dir": "scancode" + } + ] + } + }, + "include": [ + { + "manifest": { + "version": 1, + "install": { + "askalono": { + "pkg-path": "askalono", + "version": "0.5.0" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "name": "askalono", + "descriptor": { + "dir": "askalono" + } + }, + { + "manifest": { + "version": 1, + "install": { + "licensee": { + "pkg-path": "licensee", + "version": "9.18.0" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "name": "licensee", + "descriptor": { + "dir": "licensee" + } + }, + { + "manifest": { + "version": 1, + "install": { + "scancode": { + "pkg-path": "python313Packages.scancode-toolkit", + "version": "32.4.1" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "name": "scancode", + "descriptor": { + "dir": "scancode" + } + } + ], + "warnings": [ + { + "warning": { + "Overriding": [ + "vars", + "FLOX_DISABLE_METRICS" + ] + }, + "higher_priority_name": "licensee" + }, + { + "warning": { + "Overriding": [ + "options", + "activate", + "mode" + ] + }, + "higher_priority_name": "licensee" + }, + { + "warning": { + "Overriding": [ + "options", + "cuda-detection" + ] + }, + "higher_priority_name": "licensee" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "licensee" + }, + { + "warning": { + "Overriding": [ + "vars", + "FLOX_DISABLE_METRICS" + ] + }, + "higher_priority_name": "scancode" + }, + { + "warning": { + "Overriding": [ + "options", + "activate", + "mode" + ] + }, + "higher_priority_name": "scancode" + }, + { + "warning": { + "Overriding": [ + "options", + "cuda-detection" + ] + }, + "higher_priority_name": "scancode" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "scancode" + }, + { + "warning": { + "Overriding": [ + "vars", + "FLOX_DISABLE_METRICS" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "activate", + "mode" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "cuda-detection" + ] + }, + "higher_priority_name": "Current manifest" + }, + { + "warning": { + "Overriding": [ + "options", + "systems" + ] + }, + "higher_priority_name": "Current manifest" + } + ] + } +} diff --git a/plugins/scanners/.flox/env/manifest.toml b/plugins/scanners/.flox/env/manifest.toml new file mode 100644 index 0000000000000..a14eeddef6e51 --- /dev/null +++ b/plugins/scanners/.flox/env/manifest.toml @@ -0,0 +1,17 @@ +# Flox manifest version managed by Flox CLI +version = 1 + +[vars] +FLOX_DISABLE_METRICS = "true" + +[options] +activate.mode = "run" +cuda-detection = false +systems = ["x86_64-linux"] + +[include] +environments = [ + { dir = "askalono" }, + { dir = "licensee" }, + { dir = "scancode" } +] diff --git a/plugins/scanners/askalono/.flox/.gitattributes b/plugins/scanners/askalono/.flox/.gitattributes new file mode 100644 index 0000000000000..bb5491e192330 --- /dev/null +++ b/plugins/scanners/askalono/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/plugins/scanners/askalono/.flox/.gitignore b/plugins/scanners/askalono/.flox/.gitignore new file mode 100644 index 0000000000000..8d211868311bd --- /dev/null +++ b/plugins/scanners/askalono/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/plugins/scanners/askalono/.flox/env.json b/plugins/scanners/askalono/.flox/env.json new file mode 100644 index 0000000000000..4950bee22db62 --- /dev/null +++ b/plugins/scanners/askalono/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "askalono", + "version": 1 +} diff --git a/plugins/scanners/askalono/.flox/env/manifest.lock b/plugins/scanners/askalono/.flox/env/manifest.lock new file mode 100644 index 0000000000000..4fb9752b20631 --- /dev/null +++ b/plugins/scanners/askalono/.flox/env/manifest.lock @@ -0,0 +1,55 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "askalono": { + "pkg-path": "askalono", + "version": "0.5.0" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "packages": [ + { + "attr_path": "askalono", + "broken": false, + "derivation": "/nix/store/cs0r6zbl6bi3vxn649kd88cinv423p17-askalono-0.5.0.drv", + "description": "Tool to detect open source licenses from texts", + "install_id": "askalono", + "license": "Apache-2.0", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "askalono-0.5.0", + "pname": "askalono", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:21:45.089339Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "0.5.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/29qdm571l1avbarlwgqmqcg8smj3cnaj-askalono-0.5.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ] +} diff --git a/plugins/scanners/askalono/.flox/env/manifest.toml b/plugins/scanners/askalono/.flox/env/manifest.toml new file mode 100644 index 0000000000000..895bc868d194f --- /dev/null +++ b/plugins/scanners/askalono/.flox/env/manifest.toml @@ -0,0 +1,14 @@ +# Flox manifest version managed by Flox CLI +version = 1 + +[vars] +FLOX_DISABLE_METRICS = "true" + +[options] +activate.mode = "run" +cuda-detection = false +systems = ["x86_64-linux"] + +[install] +askalono.pkg-path = "askalono" +askalono.version = "0.5.0" diff --git a/plugins/scanners/licensee/.flox/.gitattributes b/plugins/scanners/licensee/.flox/.gitattributes new file mode 100644 index 0000000000000..bb5491e192330 --- /dev/null +++ b/plugins/scanners/licensee/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/plugins/scanners/licensee/.flox/.gitignore b/plugins/scanners/licensee/.flox/.gitignore new file mode 100644 index 0000000000000..8d211868311bd --- /dev/null +++ b/plugins/scanners/licensee/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/plugins/scanners/licensee/.flox/env.json b/plugins/scanners/licensee/.flox/env.json new file mode 100644 index 0000000000000..3cc2d098bd514 --- /dev/null +++ b/plugins/scanners/licensee/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "licensee", + "version": 1 +} diff --git a/plugins/scanners/licensee/.flox/env/manifest.lock b/plugins/scanners/licensee/.flox/env/manifest.lock new file mode 100644 index 0000000000000..85ec5f8f3881e --- /dev/null +++ b/plugins/scanners/licensee/.flox/env/manifest.lock @@ -0,0 +1,55 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "licensee": { + "pkg-path": "licensee", + "version": "9.18.0" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "packages": [ + { + "attr_path": "licensee", + "broken": false, + "derivation": "/nix/store/8dz9kax6nrxfs9ih5flvqa3rzn6z4m3g-licensee-9.18.0.drv", + "description": "Ruby Gem to detect under what license a project is distributed", + "install_id": "licensee", + "license": "MIT", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "licensee-9.18.0", + "pname": "licensee", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:22:11.287396Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "9.18.0", + "outputs_to_install": [ + "out" + ], + "outputs": { + "out": "/nix/store/0vvfcirkcb60fgdb5262ql2kh8s27i9z-licensee-9.18.0" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ] +} diff --git a/plugins/scanners/licensee/.flox/env/manifest.toml b/plugins/scanners/licensee/.flox/env/manifest.toml new file mode 100644 index 0000000000000..edaebbaf6596d --- /dev/null +++ b/plugins/scanners/licensee/.flox/env/manifest.toml @@ -0,0 +1,14 @@ +# Flox manifest version managed by Flox CLI +version = 1 + +[vars] +FLOX_DISABLE_METRICS = "true" + +[options] +activate.mode = "run" +cuda-detection = false +systems = ["x86_64-linux"] + +[install] +licensee.pkg-path = "licensee" +licensee.version = "9.18.0" diff --git a/plugins/scanners/scancode/.flox/.gitattributes b/plugins/scanners/scancode/.flox/.gitattributes new file mode 100644 index 0000000000000..bb5491e192330 --- /dev/null +++ b/plugins/scanners/scancode/.flox/.gitattributes @@ -0,0 +1 @@ +env/manifest.lock linguist-generated=true linguist-language=JSON diff --git a/plugins/scanners/scancode/.flox/.gitignore b/plugins/scanners/scancode/.flox/.gitignore new file mode 100644 index 0000000000000..8d211868311bd --- /dev/null +++ b/plugins/scanners/scancode/.flox/.gitignore @@ -0,0 +1,5 @@ +run/ +cache/ +lib/ +log/ +!env/ diff --git a/plugins/scanners/scancode/.flox/env.json b/plugins/scanners/scancode/.flox/env.json new file mode 100644 index 0000000000000..6db2c8ce83ac9 --- /dev/null +++ b/plugins/scanners/scancode/.flox/env.json @@ -0,0 +1,4 @@ +{ + "name": "scancode", + "version": 1 +} diff --git a/plugins/scanners/scancode/.flox/env/manifest.lock b/plugins/scanners/scancode/.flox/env/manifest.lock new file mode 100644 index 0000000000000..a52a80ac3c6e6 --- /dev/null +++ b/plugins/scanners/scancode/.flox/env/manifest.lock @@ -0,0 +1,56 @@ +{ + "lockfile-version": 1, + "manifest": { + "version": 1, + "install": { + "scancode": { + "pkg-path": "python313Packages.scancode-toolkit", + "version": "32.4.1" + } + }, + "vars": { + "FLOX_DISABLE_METRICS": "true" + }, + "options": { + "systems": [ + "x86_64-linux" + ], + "cuda-detection": false, + "activate": { + "mode": "run" + } + } + }, + "packages": [ + { + "attr_path": "python313Packages.scancode-toolkit", + "broken": false, + "derivation": "/nix/store/4cdwapmmmbdsn4df6052hfv8dgl21rli-python3.13-scancode-toolkit-32.4.1.drv", + "description": "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts", + "install_id": "scancode", + "license": "[ Apache-2.0, CC-BY-4.0 ]", + "locked_url": "https://github.com/flox/nixpkgs?rev=5ae3b07d8d6527c42f17c876e404993199144b6a", + "name": "python3.13-scancode-toolkit-32.4.1", + "pname": "scancode-toolkit", + "rev": "5ae3b07d8d6527c42f17c876e404993199144b6a", + "rev_count": 901419, + "rev_date": "2025-11-24T06:39:56Z", + "scrape_date": "2025-11-26T03:23:32.725926Z", + "stabilities": [ + "unstable" + ], + "unfree": false, + "version": "32.4.1", + "outputs_to_install": [ + "out" + ], + "outputs": { + "dist": "/nix/store/r1adpf44r11x5mmajphffvwmck0fbpxw-python3.13-scancode-toolkit-32.4.1-dist", + "out": "/nix/store/qlxbfh5mc5i047xi0qmn4zycnqpwis9n-python3.13-scancode-toolkit-32.4.1" + }, + "system": "x86_64-linux", + "group": "toplevel", + "priority": 5 + } + ] +} diff --git a/plugins/scanners/scancode/.flox/env/manifest.toml b/plugins/scanners/scancode/.flox/env/manifest.toml new file mode 100644 index 0000000000000..7eb8a9fb6556b --- /dev/null +++ b/plugins/scanners/scancode/.flox/env/manifest.toml @@ -0,0 +1,14 @@ +# Flox manifest version managed by Flox CLI +version = 1 + +[vars] +FLOX_DISABLE_METRICS = "true" + +[options] +activate.mode = "run" +cuda-detection = false +systems = ["x86_64-linux"] + +[install] +scancode.pkg-path = "python313Packages.scancode-toolkit" +scancode.version = "32.4.1"