From 5e448a752f838ea7608c647db151ccdfa4aec345 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 6 Mar 2025 13:20:58 -0400 Subject: [PATCH 01/11] godot: move all packages into pkgs/development/tools/godot --- .../tools/godot/4/default.nix} | 0 .../tools/godot/4}/deps.json | 0 .../tools/godot/4/export-templates.nix} | 0 .../tools/godot/4/mono.nix} | 0 pkgs/development/tools/godot/default.nix | 16 +++++++++ pkgs/top-level/all-packages.nix | 34 ++++++++----------- 6 files changed, 31 insertions(+), 19 deletions(-) rename pkgs/{by-name/go/godot_4/package.nix => development/tools/godot/4/default.nix} (100%) rename pkgs/{by-name/go/godot_4 => development/tools/godot/4}/deps.json (100%) rename pkgs/{by-name/go/godot_4-export-templates/package.nix => development/tools/godot/4/export-templates.nix} (100%) rename pkgs/{by-name/go/godot_4-mono/package.nix => development/tools/godot/4/mono.nix} (100%) create mode 100644 pkgs/development/tools/godot/default.nix diff --git a/pkgs/by-name/go/godot_4/package.nix b/pkgs/development/tools/godot/4/default.nix similarity index 100% rename from pkgs/by-name/go/godot_4/package.nix rename to pkgs/development/tools/godot/4/default.nix diff --git a/pkgs/by-name/go/godot_4/deps.json b/pkgs/development/tools/godot/4/deps.json similarity index 100% rename from pkgs/by-name/go/godot_4/deps.json rename to pkgs/development/tools/godot/4/deps.json diff --git a/pkgs/by-name/go/godot_4-export-templates/package.nix b/pkgs/development/tools/godot/4/export-templates.nix similarity index 100% rename from pkgs/by-name/go/godot_4-export-templates/package.nix rename to pkgs/development/tools/godot/4/export-templates.nix diff --git a/pkgs/by-name/go/godot_4-mono/package.nix b/pkgs/development/tools/godot/4/mono.nix similarity index 100% rename from pkgs/by-name/go/godot_4-mono/package.nix rename to pkgs/development/tools/godot/4/mono.nix diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix new file mode 100644 index 000000000000..f052c0d38a7d --- /dev/null +++ b/pkgs/development/tools/godot/default.nix @@ -0,0 +1,16 @@ +{ callPackage }: { + godot3 = callPackage ./3 { }; + godot3-export-templates = callPackage ./3/export-templates.nix { }; + godot3-headless = callPackage ./3/headless.nix { }; + godot3-debug-server = callPackage ./3/debug-server.nix { }; + godot3-server = callPackage ./3/server.nix { }; + godot3-mono = callPackage ./3/mono { }; + godot3-mono-export-templates = callPackage ./3/mono/export-templates.nix { }; + godot3-mono-headless = callPackage ./3/mono/headless.nix { }; + godot3-mono-debug-server = callPackage ./3/mono/debug-server.nix { }; + godot3-mono-server = callPackage ./3/mono/server.nix { }; + + godot_4 = callPackage ./4/default.nix {}; + godot_4-mono = callPackage ./4/mono.nix {}; + godot_4-export-templates = callPackage ./4/export-templates.nix {}; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d4747cf24f7b..104b8f50fcf1 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3445,25 +3445,21 @@ with pkgs; gnutar = callPackage ../tools/archivers/gnutar { }; - godot3 = callPackage ../development/tools/godot/3 { }; - - godot3-export-templates = callPackage ../development/tools/godot/3/export-templates.nix { }; - - godot3-headless = callPackage ../development/tools/godot/3/headless.nix { }; - - godot3-debug-server = callPackage ../development/tools/godot/3/debug-server.nix { }; - - godot3-server = callPackage ../development/tools/godot/3/server.nix { }; - - godot3-mono = callPackage ../development/tools/godot/3/mono {}; - - godot3-mono-export-templates = callPackage ../development/tools/godot/3/mono/export-templates.nix { }; - - godot3-mono-headless = callPackage ../development/tools/godot/3/mono/headless.nix { }; - - godot3-mono-debug-server = callPackage ../development/tools/godot/3/mono/debug-server.nix { }; - - godot3-mono-server = callPackage ../development/tools/godot/3/mono/server.nix { }; + inherit (callPackage ../development/tools/godot { }) + godot3 + godot3-export-templates + godot3-headless + godot3-debug-server + godot3-server + godot3-mono + godot3-mono-export-templates + godot3-mono-headless + godot3-mono-debug-server + godot3-mono-server + godot_4 + godot_4-mono + godot_4-export-templates + ; goattracker = callPackage ../applications/audio/goattracker { }; From 621ebe0f84b323fd480a68bad2ed722ea548fee8 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 6 Mar 2025 13:58:58 -0400 Subject: [PATCH 02/11] godot_4: compute commitHash in fetcher --- pkgs/development/tools/godot/4/default.nix | 50 +++++++++++----------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/pkgs/development/tools/godot/4/default.nix b/pkgs/development/tools/godot/4/default.nix index 214a337d1716..b7d62e05a848 100644 --- a/pkgs/development/tools/godot/4/default.nix +++ b/pkgs/development/tools/godot/4/default.nix @@ -64,13 +64,28 @@ let attrs = finalAttrs: rec { pname = "godot4${suffix}"; version = "4.3-stable"; - commitHash = "77dcf97d82cbfe4e4615475fa52ca03da645dbd8"; src = fetchFromGitHub { owner = "godotengine"; repo = "godot"; - rev = commitHash; - hash = "sha256-v2lBD3GEL8CoIwBl3UoLam0dJxkLGX0oneH6DiWkEsM="; + tag = version; + hash = "sha256-MzElflwXHWLgPtoOIhPLA00xX8eEdQsexZaGIEOzbj0="; + # Required for the commit hash to be included in the version number. + # + # `methods.py` reads the commit hash from `.git/HEAD` and manually follows + # refs. + # + # See also 'hash' in + # https://docs.godotengine.org/en/stable/classes/class_engine.html#class-engine-method-get-version-info + leaveDotGit = true; + # Only keep HEAD, because leaveDotGit is non-deterministic: + # https://github.com/NixOS/nixpkgs/issues/8567 + postFetch = '' + hash=$(git -C "$out" rev-parse HEAD) + rm -r "$out"/.git + mkdir "$out"/.git + echo "$hash" > "$out"/.git/HEAD + ''; }; outputs = [ @@ -88,28 +103,15 @@ let # https://docs.godotengine.org/en/stable/classes/class_engine.html#class-engine-method-get-version-info BUILD_NAME = "nixpkgs"; - # Required for the commit hash to be included in the version number. - # - # `methods.py` reads the commit hash from `.git/HEAD` and manually follows - # refs. Since we just write the hash directly, there is no need to emulate any - # other parts of the .git directory. - # - # See also 'hash' in - # https://docs.godotengine.org/en/stable/classes/class_engine.html#class-engine-method-get-version-info - preConfigure = - '' - mkdir -p .git - echo ${commitHash} > .git/HEAD - '' - + lib.optionalString withMono '' - # TODO: avoid pulling in dependencies of windows-only project - dotnet sln modules/mono/editor/GodotTools/GodotTools.sln \ - remove modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj + preConfigure = lib.optionalString withMono '' + # TODO: avoid pulling in dependencies of windows-only project + dotnet sln modules/mono/editor/GodotTools/GodotTools.sln \ + remove modules/mono/editor/GodotTools/GodotTools.OpenVisualStudio/GodotTools.OpenVisualStudio.csproj - dotnet restore modules/mono/glue/GodotSharp/GodotSharp.sln - dotnet restore modules/mono/editor/GodotTools/GodotTools.sln - dotnet restore modules/mono/editor/Godot.NET.Sdk/Godot.NET.Sdk.sln - ''; + dotnet restore modules/mono/glue/GodotSharp/GodotSharp.sln + dotnet restore modules/mono/editor/GodotTools/GodotTools.sln + dotnet restore modules/mono/editor/Godot.NET.Sdk/Godot.NET.Sdk.sln + ''; # From: https://github.com/godotengine/godot/blob/4.2.2-stable/SConstruct sconsFlags = mkSconsFlagsFromAttrSet { From 02b55413d65deb9b4f2819948e9f7bcc68b645c9 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 6 Mar 2025 14:07:01 -0400 Subject: [PATCH 03/11] godot_4-mono: remove dotnet-sdk_6 dependency --- pkgs/development/tools/godot/4/default.nix | 5 ++--- pkgs/development/tools/godot/4/deps.json | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/godot/4/default.nix b/pkgs/development/tools/godot/4/default.nix index b7d62e05a848..9ca551663b38 100644 --- a/pkgs/development/tools/godot/4/default.nix +++ b/pkgs/development/tools/godot/4/default.nix @@ -3,7 +3,6 @@ autoPatchelfHook, buildPackages, dbus, - dotnet-sdk_6, dotnetCorePackages, fetchFromGitHub, fontconfig, @@ -146,7 +145,7 @@ let pkg-config ]; - buildInputs = lib.optionals withMono dotnet-sdk_6.packages; + buildInputs = lib.optionals withMono dotnet-sdk.packages; nativeBuildInputs = [ @@ -274,7 +273,7 @@ stdenv.mkDerivation ( runtimeIds = map (system: dotnetCorePackages.systemToDotnetRid system) old.meta.platforms; buildInputs = old.buildInputs - ++ lib.concatLists (lib.attrValues (lib.getAttrs runtimeIds dotnet-sdk_6.targetPackages)); + ++ lib.concatLists (lib.attrValues (lib.getAttrs runtimeIds dotnet-sdk.targetPackages)); }; } attrs else diff --git a/pkgs/development/tools/godot/4/deps.json b/pkgs/development/tools/godot/4/deps.json index fbd5eccc024a..b1a4b925a867 100644 --- a/pkgs/development/tools/godot/4/deps.json +++ b/pkgs/development/tools/godot/4/deps.json @@ -29,6 +29,11 @@ "version": "1.0.9", "hash": "sha256-7c5TRZ594tr1Fj5fNiXtPI0pcBuyX/3eU4x+it6Yzew=" }, + { + "pname": "Microsoft.AspNetCore.App.Ref", + "version": "6.0.36", + "hash": "sha256-9jDkWbjw/nd8yqdzVTagCuqr6owJ/DUMi4BlUZT4hWU=" + }, { "pname": "Microsoft.Bcl.AsyncInterfaces", "version": "1.1.1", @@ -224,6 +229,11 @@ "version": "17.7.1", "hash": "sha256-ySyNpRodd6R6qKnGrgwLYaiHZga2GL0fQARrYGIFa6k=" }, + { + "pname": "Microsoft.NETCore.App.Ref", + "version": "6.0.36", + "hash": "sha256-9LZgVoIFF8qNyUu8kdJrYGLutMF/cL2K82HN2ywwlx8=" + }, { "pname": "Microsoft.NETCore.Platforms", "version": "1.0.1", From 57cb153e9ff88c8483f81c97a75260a00333b50a Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 6 Mar 2025 16:01:52 -0400 Subject: [PATCH 04/11] godot: support multiple versions --- pkgs/development/tools/godot/4.3/default.nix | 6 ++ .../tools/godot/{4 => 4.3}/deps.json | 0 pkgs/development/tools/godot/4/mono.nix | 6 -- .../tools/godot/{4/default.nix => common.nix} | 19 +++--- pkgs/development/tools/godot/default.nix | 59 +++++++++++++++++-- ...templates.nix => export-templates-bin.nix} | 12 ++-- pkgs/development/tools/godot/update.sh | 17 ++++++ pkgs/top-level/all-packages.nix | 6 ++ 8 files changed, 103 insertions(+), 22 deletions(-) create mode 100644 pkgs/development/tools/godot/4.3/default.nix rename pkgs/development/tools/godot/{4 => 4.3}/deps.json (100%) delete mode 100644 pkgs/development/tools/godot/4/mono.nix rename pkgs/development/tools/godot/{4/default.nix => common.nix} (96%) rename pkgs/development/tools/godot/{4/export-templates.nix => export-templates-bin.nix} (74%) create mode 100755 pkgs/development/tools/godot/update.sh diff --git a/pkgs/development/tools/godot/4.3/default.nix b/pkgs/development/tools/godot/4.3/default.nix new file mode 100644 index 000000000000..47f3bafbb2e6 --- /dev/null +++ b/pkgs/development/tools/godot/4.3/default.nix @@ -0,0 +1,6 @@ +{ + version = "4.3-stable"; + hash = "sha256-MzElflwXHWLgPtoOIhPLA00xX8eEdQsexZaGIEOzbj0="; + exportTemplatesHash = "sha256-XRnKii+eexIkbGf7bqc42SR0NBULFvgMdOpSRNNk6kg="; + nugetDeps = ./deps.json; +} diff --git a/pkgs/development/tools/godot/4/deps.json b/pkgs/development/tools/godot/4.3/deps.json similarity index 100% rename from pkgs/development/tools/godot/4/deps.json rename to pkgs/development/tools/godot/4.3/deps.json diff --git a/pkgs/development/tools/godot/4/mono.nix b/pkgs/development/tools/godot/4/mono.nix deleted file mode 100644 index 825b6ab67ead..000000000000 --- a/pkgs/development/tools/godot/4/mono.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - godot_4, -}: -godot_4.override { - withMono = true; -} diff --git a/pkgs/development/tools/godot/4/default.nix b/pkgs/development/tools/godot/common.nix similarity index 96% rename from pkgs/development/tools/godot/4/default.nix rename to pkgs/development/tools/godot/common.nix index 9ca551663b38..3368dd1d819b 100644 --- a/pkgs/development/tools/godot/4/default.nix +++ b/pkgs/development/tools/godot/common.nix @@ -6,6 +6,7 @@ dotnetCorePackages, fetchFromGitHub, fontconfig, + hash, installShellFiles, lib, libdecor, @@ -27,12 +28,14 @@ stdenv, testers, udev, + version, vulkan-loader, wayland, wayland-scanner, withDbus ? true, withFontconfig ? true, withMono ? false, + nugetDeps ? null, withPlatform ? "linuxbsd", withPrecision ? "single", withPulseaudio ? true, @@ -62,13 +65,13 @@ let attrs = finalAttrs: rec { pname = "godot4${suffix}"; - version = "4.3-stable"; + inherit version; src = fetchFromGitHub { owner = "godotengine"; repo = "godot"; tag = version; - hash = "sha256-MzElflwXHWLgPtoOIhPLA00xX8eEdQsexZaGIEOzbj0="; + inherit hash; # Required for the commit hash to be included in the version number. # # `methods.py` reads the commit hash from `.git/HEAD` and manually follows @@ -235,10 +238,12 @@ let runHook postInstall ''; - passthru.tests = { - version = testers.testVersion { - package = finalAttrs.finalPackage; - version = lib.replaceStrings [ "-" ] [ "." ] version; + passthru = { + tests = { + version = testers.testVersion { + package = finalAttrs.finalPackage; + version = lib.replaceStrings [ "-" ] [ "." ] version; + }; }; }; @@ -268,7 +273,7 @@ in stdenv.mkDerivation ( if withMono then dotnetCorePackages.addNuGetDeps { - nugetDeps = ./deps.json; + inherit nugetDeps; overrideFetchAttrs = old: rec { runtimeIds = map (system: dotnetCorePackages.systemToDotnetRid system) old.meta.platforms; buildInputs = diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index f052c0d38a7d..644a85588905 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -1,4 +1,49 @@ -{ callPackage }: { +{ + callPackage, + nix-update-script, + fetchzip, +}: +let + mkGodotPackages = + versionPrefix: + let + attrs = import ./${versionPrefix}; + inherit (attrs) + version + hash + exportTemplatesHash + nugetDeps + ; + in + rec { + godot = (callPackage ./common.nix { inherit version hash nugetDeps; }).overrideAttrs (old: { + passthru = old.passthru or { } // { + inherit export-templates-bin; + updateScript = [ + ./update.sh + versionPrefix + (builtins.unsafeGetAttrPos "version" attrs).file + ]; + }; + }); + + godot-mono = godot.override { + withMono = true; + }; + + export-templates-bin = ( + callPackage ./export-templates-bin.nix { + inherit version; + hash = exportTemplatesHash; + } + ); + }; + + godotPackages_4_3 = mkGodotPackages "4.3"; + godotPackages_4 = godotPackages_4_3; + godotPackages = godotPackages_4; +in +rec { godot3 = callPackage ./3 { }; godot3-export-templates = callPackage ./3/export-templates.nix { }; godot3-headless = callPackage ./3/headless.nix { }; @@ -10,7 +55,13 @@ godot3-mono-debug-server = callPackage ./3/mono/debug-server.nix { }; godot3-mono-server = callPackage ./3/mono/server.nix { }; - godot_4 = callPackage ./4/default.nix {}; - godot_4-mono = callPackage ./4/mono.nix {}; - godot_4-export-templates = callPackage ./4/export-templates.nix {}; + godot_4_3 = godotPackages_4_3.godot; + godot_4_3-mono = godotPackages_4_3.godot-mono; + godot_4_3-export-templates = godotPackages_4_3.export-templates-bin; + godot_4 = godotPackages_4.godot; + godot_4-mono = godotPackages_4.godot-mono; + godot_4-export-templates = godotPackages_4.export-templates-bin; + godot = godotPackages.godot; + godot-mono = godotPackages.godot-mono; + godot-export-templates = godotPackages.export-templates-bin; } diff --git a/pkgs/development/tools/godot/4/export-templates.nix b/pkgs/development/tools/godot/export-templates-bin.nix similarity index 74% rename from pkgs/development/tools/godot/4/export-templates.nix rename to pkgs/development/tools/godot/export-templates-bin.nix index 3514e649fddb..76a1bc43b78b 100644 --- a/pkgs/development/tools/godot/4/export-templates.nix +++ b/pkgs/development/tools/godot/export-templates-bin.nix @@ -1,13 +1,15 @@ +{ + fetchzip, + hash, + version, +}: # Export templates is necessary for setting up Godot engine, it's used when exporting projects. # Godot applications/games packages needs to reference export templates. # Export templates version should be kept in sync with Godot version. # https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#export-templates - -{ fetchzip, godot_4, ... }: - fetchzip { pname = "export_templates"; extension = "zip"; - url = "https://github.com/godotengine/godot/releases/download/${godot_4.version}/Godot_v${godot_4.version}_export_templates.tpz"; - hash = "sha256-XRnKii+eexIkbGf7bqc42SR0NBULFvgMdOpSRNNk6kg="; + url = "https://github.com/godotengine/godot/releases/download/${version}/Godot_v${version}_export_templates.tpz"; + inherit hash; } diff --git a/pkgs/development/tools/godot/update.sh b/pkgs/development/tools/godot/update.sh new file mode 100755 index 000000000000..56d326f99d74 --- /dev/null +++ b/pkgs/development/tools/godot/update.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=./. --pure -i bash -p bash nix nix-update git cacert common-updater-scripts --keep UPDATE_NIX_ATTR_PATH --keep UPDATE_NIX_OLD_VERSION +set -euo pipefail + +versionPrefix=$1 +file=$2 +attr=$UPDATE_NIX_ATTR_PATH + +prev_version=$UPDATE_NIX_OLD_VERSION +nix-update "$attr" \ + --version-regex "($versionPrefix\\b.*-stable)" \ + --override-filename "$2" +[[ $(nix eval --raw -f. "$attr".version) != "$prev_version" ]] || exit 0 + +"$(nix build --impure --expr "((import ./. {}).$attr.override { withMono = true; }).fetch-deps" --print-out-paths --no-link)" + +update-source-version "$attr" --ignore-same-version --source-key=export-templates-bin --file="$file" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 104b8f50fcf1..c9630a2886b2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3456,9 +3456,15 @@ with pkgs; godot3-mono-headless godot3-mono-debug-server godot3-mono-server + godot_4_3 + godot_4_3-mono + godot_4_3-export-templates godot_4 godot_4-mono godot_4-export-templates + godot + godot-mono + godot-export-templates ; goattracker = callPackage ../applications/audio/goattracker { }; From 1fd7e115a86bd86ab4b343cfc0c43a1c27243f22 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Thu, 6 Mar 2025 16:32:19 -0400 Subject: [PATCH 05/11] godot_4_4: init at 4.4-stable --- pkgs/development/tools/godot/4.4/default.nix | 6 + pkgs/development/tools/godot/4.4/deps.json | 1307 ++++++++++++++++++ pkgs/development/tools/godot/default.nix | 4 + pkgs/top-level/all-packages.nix | 3 + 4 files changed, 1320 insertions(+) create mode 100644 pkgs/development/tools/godot/4.4/default.nix create mode 100644 pkgs/development/tools/godot/4.4/deps.json diff --git a/pkgs/development/tools/godot/4.4/default.nix b/pkgs/development/tools/godot/4.4/default.nix new file mode 100644 index 000000000000..a91869cab4b2 --- /dev/null +++ b/pkgs/development/tools/godot/4.4/default.nix @@ -0,0 +1,6 @@ +{ + version = "4.4-stable"; + hash = "sha256-lCWz0FLSlqUZLA4APgcxuc4wupkMcXcvZ9TUzREAM4U="; + exportTemplatesHash = "sha256-ayY1euO7WJJhZcF0NfobuD1Pcr8LeV/3g/opaZ2wniQ="; + nugetDeps = ./deps.json; +} diff --git a/pkgs/development/tools/godot/4.4/deps.json b/pkgs/development/tools/godot/4.4/deps.json new file mode 100644 index 000000000000..39c1e7db87ec --- /dev/null +++ b/pkgs/development/tools/godot/4.4/deps.json @@ -0,0 +1,1307 @@ +[ + { + "pname": "coverlet.collector", + "version": "3.2.0", + "hash": "sha256-2aM3pKX5toQQRLKpH5ArzND2Rgq1fSpMsLxcEDbat+M=" + }, + { + "pname": "DiffPlex", + "version": "1.5.0", + "hash": "sha256-6HwA6ZyCn++NAXy6ep9ywSF/Ss+e/nmMhjyeIft9fQw=" + }, + { + "pname": "Humanizer.Core", + "version": "2.14.1", + "hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o=" + }, + { + "pname": "Humanizer.Core", + "version": "2.2.0", + "hash": "sha256-5Q6oRaV8wHPONHreKvB74VjV2FW36mwC3n+05It5vyI=" + }, + { + "pname": "JetBrains.Annotations", + "version": "2019.1.3", + "hash": "sha256-gn2Z7yANT+2tnK+qbOA2PviRf1M1VtvamABGajgGC6E=" + }, + { + "pname": "JetBrains.Rider.PathLocator", + "version": "1.0.9", + "hash": "sha256-7c5TRZ594tr1Fj5fNiXtPI0pcBuyX/3eU4x+it6Yzew=" + }, + { + "pname": "Microsoft.AspNetCore.App.Ref", + "version": "6.0.36", + "hash": "sha256-9jDkWbjw/nd8yqdzVTagCuqr6owJ/DUMi4BlUZT4hWU=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "1.1.1", + "hash": "sha256-fAcX4sxE0veWM1CZBtXR/Unky+6sE33yrV7ohrWGKig=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "5.0.0", + "hash": "sha256-bpJjcJSUSZH0GeOXoZI12xUQOf2SRtxG7sZV0dWS5TI=" + }, + { + "pname": "Microsoft.Bcl.AsyncInterfaces", + "version": "7.0.0", + "hash": "sha256-1e031E26iraIqun84ad0fCIR4MJZ1hcQo4yFN+B7UfE=" + }, + { + "pname": "Microsoft.Build", + "version": "15.1.548", + "hash": "sha256-v6rTGfytT6QwXkp97T6vQurVi8oDzZmIOn3/cHYuC6s=" + }, + { + "pname": "Microsoft.Build.Framework", + "version": "15.1.548", + "hash": "sha256-0U6XANGftKOS9Owx1x8hOe5GOdqx2uwQwuAsVHw297g=" + }, + { + "pname": "Microsoft.Build.Locator", + "version": "1.2.6", + "hash": "sha256-Z5wzSnsGbbJe3nvj6kAAv6KhYMK1H3Mktn4ugflpzuY=" + }, + { + "pname": "Microsoft.Build.NoTargets", + "version": "2.0.1", + "hash": "sha256-5Gqi/OQayuQiQNEcoaFue0glNvcF4nmGneW07Hs9prg=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzer.Testing", + "version": "1.1.1", + "hash": "sha256-3w7g0KhG16ZH8rYK9FxP15qbd+hTgwRDpDJEKpDMHu8=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "2.6.1", + "hash": "sha256-1+FV3KvwerZsknecHZhdDACsPKaWrbQQeN27BAcZk94=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.3.2", + "hash": "sha256-pDeaMqX7a01Hp1Qd9P/y/B2rEGAv2eIY0Ld/klBZW5g=" + }, + { + "pname": "Microsoft.CodeAnalysis.Analyzers", + "version": "3.3.4", + "hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE=" + }, + { + "pname": "Microsoft.CodeAnalysis.CodeFix.Testing", + "version": "1.1.1", + "hash": "sha256-NXEGr/+rzt4ENdTWPlgW7upyjofPP841xzwU78lReio=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "1.0.1", + "hash": "sha256-jjWtdrHSISgBF1m94P0DsVbQa4YxKnf2CWRWYHQLTG8=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "3.11.0", + "hash": "sha256-lOW5q1kAAk+Wpweb9TaZ1LztWzAODt9yZKe6SN5rkV8=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "3.8.0", + "hash": "sha256-3G9vSc/gHH7FWgOySLTut1+eEaf3H66qcPOvNPLOx4o=" + }, + { + "pname": "Microsoft.CodeAnalysis.Common", + "version": "4.8.0", + "hash": "sha256-3IEinVTZq6/aajMVA8XTRO3LTIEt0PuhGyITGJLtqz4=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "3.11.0", + "hash": "sha256-AVFv1c6eMi5Jc6GXyL2P3WSs9YTOs3hPO7iGq9tZJsA=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp", + "version": "4.8.0", + "hash": "sha256-MmOnXJvd/ezs5UPcqyGLnbZz5m+VedpRfB+kFZeeqkU=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Analyzer.Testing", + "version": "1.1.1", + "hash": "sha256-uZf99S701CcUoR8XHn+PusRXdDeeWylFiqdMjR9R6TY=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.XUnit", + "version": "1.1.1", + "hash": "sha256-Fs+ygXsCxoJGcaatBc1v8ZXTVSsid+Y60O4/JLiMD18=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.CodeFix.Testing", + "version": "1.1.1", + "hash": "sha256-g1AkqFBndpl4ySk1w5IMAN+EibO9OsLiWCLjMggImDo=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.XUnit", + "version": "1.1.1", + "hash": "sha256-3z6ELEBETjKlCyGQ5PzyQWS6Ud982BQMNvLdJnOdlWw=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing", + "version": "1.1.1", + "hash": "sha256-nX4GSfovb8K4cD9xFEKXcRXVDNmXyWOaAAVQ/XfvAFk=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit", + "version": "1.1.1", + "hash": "sha256-QAQ87pM9sr+8uqwDSXR39x3wtx82jVGcdTJPmwDSB2Y=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "3.11.0", + "hash": "sha256-4WQgwOdmKbCMfT2c4K+5ZkErU3zkRboJO0ORHhnUvpo=" + }, + { + "pname": "Microsoft.CodeAnalysis.CSharp.Workspaces", + "version": "4.8.0", + "hash": "sha256-WNzc+6mKqzPviOI0WMdhKyrWs8u32bfGj2XwmfL7bwE=" + }, + { + "pname": "Microsoft.CodeAnalysis.SourceGenerators.Testing", + "version": "1.1.1", + "hash": "sha256-d4zoBTjX9DAwIZfGAa9as5vE/BIshKIov4GepT9l1vg=" + }, + { + "pname": "Microsoft.CodeAnalysis.Testing.Verifiers.XUnit", + "version": "1.1.1", + "hash": "sha256-WOo0pITkG6CZwJ9MiLaCMSbjbBOxn7+tlpjJGn//gnc=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "1.0.1", + "hash": "sha256-/SYPkq5LhOoEWi+rcBZDyQL2U0cQk2YrykNJODrRLVs=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "3.11.0", + "hash": "sha256-mkJ/pkf7x7kQ2NngYl8yOlEwJIEjphL84KyUC5vEKh4=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "3.8.0", + "hash": "sha256-3D7xV3V1WsUU9OMMEOj+z9GouCDKXSBC4Z/Szs/OcWE=" + }, + { + "pname": "Microsoft.CodeAnalysis.Workspaces.Common", + "version": "4.8.0", + "hash": "sha256-X8R4SpWVO/gpip5erVZf5jCCx8EX3VzIRtNrQiLDIoM=" + }, + { + "pname": "Microsoft.CodeCoverage", + "version": "17.7.1", + "hash": "sha256-MePYLGy7Y4DuPZccxIbRTjq4GB554jBwT4noLiAZJKs=" + }, + { + "pname": "Microsoft.Composition", + "version": "1.0.27", + "hash": "sha256-G/3p3zxOWC8HqLt7Ll5cqN7507F6N/G6G/HzKazQRdE=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.0.1", + "hash": "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8=" + }, + { + "pname": "Microsoft.NET.Test.Sdk", + "version": "17.7.1", + "hash": "sha256-ySyNpRodd6R6qKnGrgwLYaiHZga2GL0fQARrYGIFa6k=" + }, + { + "pname": "Microsoft.NETCore.App.Ref", + "version": "6.0.36", + "hash": "sha256-9LZgVoIFF8qNyUu8kdJrYGLutMF/cL2K82HN2ywwlx8=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.0.1", + "hash": "sha256-mZotlGZqtrqDSoBrZhsxFe6fuOv5/BIo0w2Z2x0zVAU=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "2.0.0", + "hash": "sha256-IEvBk6wUXSdyCnkj6tHahOJv290tVVT8tyemYcR0Yro=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "2.1.2", + "hash": "sha256-gYQQO7zsqG+OtN4ywYQyfsiggS2zmxw4+cPXlK+FB5Q=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "5.0.0", + "hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.0.1", + "hash": "sha256-lxxw/Gy32xHi0fLgFWNj4YTFBSBkjx5l6ucmbTyf7V4=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.0", + "hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ=" + }, + { + "pname": "Microsoft.NETFramework.ReferenceAssemblies", + "version": "1.0.0", + "hash": "sha256-6faPQ4jaFY3OGGVk3lZKW+DEZaIOBZ/wHqbiDTsRR1k=" + }, + { + "pname": "Microsoft.NETFramework.ReferenceAssemblies.net461", + "version": "1.0.0", + "hash": "sha256-oS7sUMzKBkLmhggqbI6eBqb1OPAipH0TDTaDaBixcwM=" + }, + { + "pname": "Microsoft.TestPlatform.ObjectModel", + "version": "17.7.1", + "hash": "sha256-KfqM1E0jhAg07QfpjfEcjQ+HX13XZfdvveT5qxm89Sk=" + }, + { + "pname": "Microsoft.TestPlatform.TestHost", + "version": "17.7.1", + "hash": "sha256-MMrdBDByByYDpO/xaRCl9Cb27zIfcjPJqld/649e8Mw=" + }, + { + "pname": "Microsoft.VisualBasic", + "version": "10.0.1", + "hash": "sha256-7HHzZcWLVTTQ1K1rCIyoB+UxLHMvOIz+O5av6XDa22A=" + }, + { + "pname": "Microsoft.VisualStudio.Composition", + "version": "16.1.8", + "hash": "sha256-yFT4t3Uk31R5EPdAxxsTAmRuiv58MlYoYL4JT1ywlHQ=" + }, + { + "pname": "Microsoft.VisualStudio.Composition.NetFxAttributes", + "version": "16.1.8", + "hash": "sha256-FFemIG+m8RWUPo5W+kCHPh5Yn4fGS+tpjGiQTcT0sAE=" + }, + { + "pname": "Microsoft.VisualStudio.Validation", + "version": "15.0.82", + "hash": "sha256-7JFaA/HZHVjsEtTh/iHDRLi5RcuA39KKvvCkuI4JQFc=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.0.1", + "hash": "sha256-B4t5El/ViBdxALMcpZulewc4j/3SIXf71HhJWhm4Ctk=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "4.0.0", + "hash": "sha256-M/06F/Z2wTHCh4pZOgtCjUGLD1FJXEJKCmzOeFMl7uo=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "4.3.0", + "hash": "sha256-50XwFbyRfZkTD/bBn76WV/NIpOy/mzXD3MMEVFX/vr8=" + }, + { + "pname": "Microsoft.Win32.Registry", + "version": "5.0.0", + "hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA=" + }, + { + "pname": "NETStandard.Library", + "version": "1.6.1", + "hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw=" + }, + { + "pname": "NETStandard.Library", + "version": "2.0.3", + "hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo=" + }, + { + "pname": "Newtonsoft.Json", + "version": "13.0.1", + "hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo=" + }, + { + "pname": "Newtonsoft.Json", + "version": "9.0.1", + "hash": "sha256-mYCBrgUhIJFzRuLLV9SIiIFHovzfR8Uuqfg6e08EnlU=" + }, + { + "pname": "NuGet.Common", + "version": "5.6.0", + "hash": "sha256-uc/gCpcfugMjulqDVpS0ryfcaVBtmKyho07g3M8o//g=" + }, + { + "pname": "NuGet.Configuration", + "version": "5.6.0", + "hash": "sha256-K5A66u9WPz8PZYIl+DDyCAodYGUJfLdNNix6f5F7adI=" + }, + { + "pname": "NuGet.Frameworks", + "version": "5.6.0", + "hash": "sha256-iMacMTcuvemRQ4p3gv/3MioC/OEDOju8rnmZioWq9bc=" + }, + { + "pname": "NuGet.Frameworks", + "version": "6.12.1", + "hash": "sha256-GGpkbas+PNLx35vvr3nyAVz5lY/aeoMx6qjmT368Lpg=" + }, + { + "pname": "NuGet.Frameworks", + "version": "6.5.0", + "hash": "sha256-ElqfN4CcKxT3hP2qvxxObb4mnBlYG89IMxO0Sm5oZ2g=" + }, + { + "pname": "NuGet.Packaging", + "version": "5.6.0", + "hash": "sha256-bl/A1QbIJAu/GpzKOKjGwe7NrTXlYH5s3ppJ6mYAoQk=" + }, + { + "pname": "NuGet.Protocol", + "version": "5.6.0", + "hash": "sha256-faY3xEk4g9xQFRT7DspGmlVLRGH1r4Vvr5VLT9sLUf8=" + }, + { + "pname": "NuGet.Resolver", + "version": "5.6.0", + "hash": "sha256-wAiARlBJtCjP482a0jnZKpZBbHRl3voXYMTz3WEox04=" + }, + { + "pname": "NuGet.Versioning", + "version": "5.6.0", + "hash": "sha256-3HKwW3hhTuwkZM5n02VFe8yDZbCLgqNE8gI+pqFTToI=" + }, + { + "pname": "ReflectionAnalyzers", + "version": "0.1.22-dev", + "hash": "sha256-NA/pyCCzzIewVr6IfZtFQjR5lOBnBdSzYj5SzgsBFvw=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA=" + }, + { + "pname": "runtime.native.System", + "version": "4.0.0", + "hash": "sha256-bmaM0ovT4X4aqDJOR255Yda/u3fmHZskU++lMnsy894=" + }, + { + "pname": "runtime.native.System", + "version": "4.3.0", + "hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y=" + }, + { + "pname": "runtime.native.System.IO.Compression", + "version": "4.1.0", + "hash": "sha256-085JrZxNEwIHdBWKKKFsh1JzpF0AblvrUsz5T8kH4jQ=" + }, + { + "pname": "runtime.native.System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8=" + }, + { + "pname": "runtime.native.System.Net.Http", + "version": "4.3.0", + "hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw=" + }, + { + "pname": "System.AppContext", + "version": "4.1.0", + "hash": "sha256-v6YfyfrKmhww+EYHUq6cwYUMj00MQ6SOfJtcGVRlYzs=" + }, + { + "pname": "System.AppContext", + "version": "4.3.0", + "hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg=" + }, + { + "pname": "System.Buffers", + "version": "4.3.0", + "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" + }, + { + "pname": "System.Buffers", + "version": "4.5.1", + "hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI=" + }, + { + "pname": "System.Collections", + "version": "4.0.11", + "hash": "sha256-puoFMkx4Z55C1XPxNw3np8nzNGjH+G24j43yTIsDRL0=" + }, + { + "pname": "System.Collections", + "version": "4.3.0", + "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" + }, + { + "pname": "System.Collections.Concurrent", + "version": "4.0.12", + "hash": "sha256-zIEM7AB4SyE9u6G8+o+gCLLwkgi6+3rHQVPdn/dEwB8=" + }, + { + "pname": "System.Collections.Concurrent", + "version": "4.3.0", + "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" + }, + { + "pname": "System.Collections.Immutable", + "version": "1.1.36", + "hash": "sha256-x/UyLEyveCYI+JAWo9xallSPbl78dIVuW2pGqgTY/C0=" + }, + { + "pname": "System.Collections.Immutable", + "version": "1.2.0", + "hash": "sha256-FQ3l+ulbLSPhQ0JcQCC4D4SzjTnHsRqcOj56Ywy7pMo=" + }, + { + "pname": "System.Collections.Immutable", + "version": "5.0.0", + "hash": "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8=" + }, + { + "pname": "System.Collections.Immutable", + "version": "7.0.0", + "hash": "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk=" + }, + { + "pname": "System.Collections.NonGeneric", + "version": "4.0.1", + "hash": "sha256-jdCVXmGOsJ+2F0xAagCkiMZ91SGAm9iOhO2u4ksmKaU=" + }, + { + "pname": "System.ComponentModel.Composition", + "version": "4.5.0", + "hash": "sha256-xxeZs1zIkhl2ZXU8CaOtCkMX1N290IK7bbHYeEKD0aQ=" + }, + { + "pname": "System.Composition", + "version": "1.0.31", + "hash": "sha256-wcQEG6MCRa1S03s3Yb3E3tfsIBZid99M7WDhcb48Qik=" + }, + { + "pname": "System.Composition", + "version": "7.0.0", + "hash": "sha256-YjhxuzuVdAzRBHNQy9y/1ES+ll3QtLcd2o+o8wIyMao=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "1.0.31", + "hash": "sha256-u+XnXfj6LQ3OXwrb9KqHRW4a/a9yHzLrJOXwDQ1a/sY=" + }, + { + "pname": "System.Composition.AttributedModel", + "version": "7.0.0", + "hash": "sha256-3s52Dyk2J66v/B4LLYFBMyXl0I8DFDshjE+sMjW4ubM=" + }, + { + "pname": "System.Composition.Convention", + "version": "1.0.31", + "hash": "sha256-GQWo1YDyQ3r2OMcKW+GbR3BbZNIAdwK79XAfinNj+AE=" + }, + { + "pname": "System.Composition.Convention", + "version": "7.0.0", + "hash": "sha256-N4MkkBXSQkcFKsEdcSe6zmyFyMmFOHmI2BNo3wWxftk=" + }, + { + "pname": "System.Composition.Hosting", + "version": "1.0.31", + "hash": "sha256-fg9BIY+zWtiEBIJefYP2lKHDYa4r/vtPTr3ZI8e0K7g=" + }, + { + "pname": "System.Composition.Hosting", + "version": "7.0.0", + "hash": "sha256-7liQGMaVKNZU1iWTIXvqf0SG8zPobRoLsW7q916XC3M=" + }, + { + "pname": "System.Composition.Runtime", + "version": "1.0.31", + "hash": "sha256-mqfxjAnVyE1YCgXMOcV34IWhYFnvXVKjMo9Y/d3yDuo=" + }, + { + "pname": "System.Composition.Runtime", + "version": "7.0.0", + "hash": "sha256-Oo1BxSGLETmdNcYvnkGdgm7JYAnQmv1jY0gL0j++Pd0=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "1.0.31", + "hash": "sha256-w9ApcUJr7jYP4Vf5+efIIqoWmr5v9R56W4uC0n8KktQ=" + }, + { + "pname": "System.Composition.TypedParts", + "version": "7.0.0", + "hash": "sha256-6ZzNdk35qQG3ttiAi4OXrihla7LVP+y2fL3bx40/32s=" + }, + { + "pname": "System.Console", + "version": "4.0.0", + "hash": "sha256-jtZfT/TpJtLisV/y5Mk3IfCpE79zwhBYXtyGP9jC3Xo=" + }, + { + "pname": "System.Console", + "version": "4.3.0", + "hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo=" + }, + { + "pname": "System.Diagnostics.Contracts", + "version": "4.0.1", + "hash": "sha256-Mq2MU+80m+zqhe92JazEIDi4rsgk8MHg3yjNYlObzXg=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.0.11", + "hash": "sha256-P+rSQJVoN6M56jQbs76kZ9G3mAWFdtF27P/RijN8sj4=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.3.0", + "hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=" + }, + { + "pname": "System.Diagnostics.FileVersionInfo", + "version": "4.0.0", + "hash": "sha256-Yy94jPhDXF2QHOF7qTmqKkn1048K9xkKryuBeDzsu+g=" + }, + { + "pname": "System.Diagnostics.Process", + "version": "4.1.0", + "hash": "sha256-OgW6ogQ+oYADYS0PHmwXdhrOKQJpqXlwzSvmfjTLNBg=" + }, + { + "pname": "System.Diagnostics.Process", + "version": "4.3.0", + "hash": "sha256-Rzo24qXhuJDDgrGNHr2eQRHhwLmsYmWDqAg/P5fOlzw=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.0.1", + "hash": "sha256-vSBqTbmWXylvRa37aWyktym+gOpsvH43mwr6A962k6U=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y=" + }, + { + "pname": "System.Diagnostics.TraceSource", + "version": "4.0.0", + "hash": "sha256-cCjdPU7ow91HGf1hBIOLJMQGO6pNmF+N+5/Z38XJh9U=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.1.0", + "hash": "sha256-JA0jJcLbU3zh52ub3zweob2EVHvxOqiC6SCYHrY5WbQ=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q=" + }, + { + "pname": "System.Dynamic.Runtime", + "version": "4.0.11", + "hash": "sha256-qWqFVxuXioesVftv2RVJZOnmojUvRjb7cS3Oh3oTit4=" + }, + { + "pname": "System.Dynamic.Runtime", + "version": "4.3.0", + "hash": "sha256-k75gjOYimIQtLBD5NDzwwi3ZMUBPRW3jmc3evDMMJbU=" + }, + { + "pname": "System.Globalization", + "version": "4.0.11", + "hash": "sha256-rbSgc2PIEc2c2rN6LK3qCREAX3DqA2Nq1WcLrZYsDBw=" + }, + { + "pname": "System.Globalization", + "version": "4.3.0", + "hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI=" + }, + { + "pname": "System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc=" + }, + { + "pname": "System.Globalization.Extensions", + "version": "4.3.0", + "hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk=" + }, + { + "pname": "System.IO", + "version": "4.1.0", + "hash": "sha256-V6oyQFwWb8NvGxAwvzWnhPxy9dKOfj/XBM3tEC5aHrw=" + }, + { + "pname": "System.IO", + "version": "4.3.0", + "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" + }, + { + "pname": "System.IO.Compression", + "version": "4.1.0", + "hash": "sha256-UT4KEfJNZOk7b4X0AqLFUsqfHu6myVH/BhbRKYc+1Uc=" + }, + { + "pname": "System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA=" + }, + { + "pname": "System.IO.Compression.ZipFile", + "version": "4.3.0", + "hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.0.1", + "hash": "sha256-4VKXFgcGYCTWVXjAlniAVq0dO3o5s8KHylg2wg2/7k0=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.0.1", + "hash": "sha256-IpigKMomqb6pmYWkrlf0ZdpILtRluX2cX5sOKVW0Feg=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.3.0", + "hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg=" + }, + { + "pname": "System.IO.Pipelines", + "version": "5.0.1", + "hash": "sha256-2zT5uBiyYm+jLIoJppIKJttTtpcMNKxd7Li0QEVjbv8=" + }, + { + "pname": "System.IO.Pipelines", + "version": "7.0.0", + "hash": "sha256-W2181khfJUTxLqhuAVRhCa52xZ3+ePGOLIPwEN8WisY=" + }, + { + "pname": "System.IO.Pipes", + "version": "4.0.0", + "hash": "sha256-6qMAD6DCZ5c1wswLWi1msqwu8GwI8un1RzjpUhzbrjs=" + }, + { + "pname": "System.Linq", + "version": "4.1.0", + "hash": "sha256-ZQpFtYw5N1F1aX0jUK3Tw+XvM5tnlnshkTCNtfVA794=" + }, + { + "pname": "System.Linq", + "version": "4.3.0", + "hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.1.0", + "hash": "sha256-7zqB+FXgkvhtlBzpcZyd81xczWP0D3uWssyAGw3t7b4=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.3.0", + "hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8=" + }, + { + "pname": "System.Linq.Parallel", + "version": "4.0.1", + "hash": "sha256-TV1F3KYFipPmPnWFjX6hOZQNFsG2m729EdgPSFzqY0Q=" + }, + { + "pname": "System.Memory", + "version": "4.5.4", + "hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E=" + }, + { + "pname": "System.Memory", + "version": "4.5.5", + "hash": "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI=" + }, + { + "pname": "System.Net.Http", + "version": "4.3.0", + "hash": "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.0.11", + "hash": "sha256-2YSijNhCdw/ZU2yfH7vE+ReA8pgxRCXPnWr+ab36v4M=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE=" + }, + { + "pname": "System.Net.Sockets", + "version": "4.1.0", + "hash": "sha256-muK7oXIX7ykqhXskuUt0KX6Hzg5VogJhUS0JiOB2BY0=" + }, + { + "pname": "System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus=" + }, + { + "pname": "System.Numerics.Vectors", + "version": "4.4.0", + "hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U=" + }, + { + "pname": "System.ObjectModel", + "version": "4.0.12", + "hash": "sha256-MudZ/KYcvYsn2cST3EE049mLikrNkmE7QoUoYKKby+s=" + }, + { + "pname": "System.ObjectModel", + "version": "4.3.0", + "hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q=" + }, + { + "pname": "System.Reflection", + "version": "4.1.0", + "hash": "sha256-idZHGH2Yl/hha1CM4VzLhsaR8Ljo/rV7TYe7mwRJSMs=" + }, + { + "pname": "System.Reflection", + "version": "4.3.0", + "hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.0.1", + "hash": "sha256-F1MvYoQWHCY89/O4JBwswogitqVvKuVfILFqA7dmuHk=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.3.0", + "hash": "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.0.1", + "hash": "sha256-YG+eJBG5P+5adsHiw/lhJwvREnvdHw6CJyS8ZV4Ujd0=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.3.0", + "hash": "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.0.1", + "hash": "sha256-uVvNOnL64CPqsgZP2OLqNmxdkZl6Q0fTmKmv9gcBi+g=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.3.0", + "hash": "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.0.1", + "hash": "sha256-NsfmzM9G/sN3H8X2cdnheTGRsh7zbRzvegnjDzDH/FQ=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "1.0.21", + "hash": "sha256-0yqDWxwaw57YQ5dl8qdo+2o6VvG8qKp4il093uWWAUs=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "1.3.0", + "hash": "sha256-a/RQr++mSsziWaOTknicfIQX/zJrwPFExfhK6PM0tfg=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "1.6.0", + "hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "5.0.0", + "hash": "sha256-Wo+MiqhcP9dQ6NuFGrQTw6hpbJORFwp+TBNTq2yhGp8=" + }, + { + "pname": "System.Reflection.Metadata", + "version": "7.0.0", + "hash": "sha256-GwAKQhkhPBYTqmRdG9c9taqrKSKDwyUgOEhWLKxWNPI=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.0.1", + "hash": "sha256-SFSfpWEyCBMAOerrMCOiKnpT+UAWTvRcmoRquJR6Vq0=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.1.0", + "hash": "sha256-R0YZowmFda+xzKNR4kKg7neFoE30KfZwp/IwfRSKVK4=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.3.0", + "hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.0.1", + "hash": "sha256-cZ2/3/fczLjEpn6j3xkgQV9ouOVjy4Kisgw5xWw9kSw=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo=" + }, + { + "pname": "System.Runtime", + "version": "4.1.0", + "hash": "sha256-FViNGM/4oWtlP6w0JC0vJU+k9efLKZ+yaXrnEeabDQo=" + }, + { + "pname": "System.Runtime", + "version": "4.3.0", + "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "4.5.3", + "hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "4.7.1", + "hash": "sha256-UvyoDV8O0oY3HPG1GbA56YVdvwTGEfjYR5gW1O7IK4U=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "5.0.0", + "hash": "sha256-neARSpLPUzPxEKhJRwoBzhPxK+cKIitLx7WBYncsYgo=" + }, + { + "pname": "System.Runtime.CompilerServices.Unsafe", + "version": "6.0.0", + "hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.1.0", + "hash": "sha256-X7DZ5CbPY7jHs20YZ7bmcXs9B5Mxptu/HnBUvUnNhGc=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.0.1", + "hash": "sha256-j2QgVO9ZOjv7D1het98CoFpjoYgxjupuIhuBUmLLH7w=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.1.0", + "hash": "sha256-QceAYlJvkPRJc/+5jR+wQpNNI3aqGySWWSO30e/FfQY=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" + }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.0.0", + "hash": "sha256-5j53amb76A3SPiE3B0llT2XPx058+CgE7OXL4bLalT4=" + }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.3.0", + "hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA=" + }, + { + "pname": "System.Runtime.Loader", + "version": "4.0.0", + "hash": "sha256-gE5/ehU3Qq5phhSxGuPmSv1DFVQeiyl1/+YyrO+I7lI=" + }, + { + "pname": "System.Runtime.Numerics", + "version": "4.3.0", + "hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc=" + }, + { + "pname": "System.Runtime.Serialization.Primitives", + "version": "4.1.1", + "hash": "sha256-80B05oxJbPLGq2pGOSl6NlZvintX9A1CNpna2aN0WRA=" + }, + { + "pname": "System.Security.AccessControl", + "version": "4.5.0", + "hash": "sha256-AFsKPb/nTk2/mqH/PYpaoI8PLsiKKimaXf+7Mb5VfPM=" + }, + { + "pname": "System.Security.AccessControl", + "version": "5.0.0", + "hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54=" + }, + { + "pname": "System.Security.Cryptography.Algorithms", + "version": "4.3.0", + "hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.3.0", + "hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw=" + }, + { + "pname": "System.Security.Cryptography.Csp", + "version": "4.3.0", + "hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ=" + }, + { + "pname": "System.Security.Cryptography.Encoding", + "version": "4.3.0", + "hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss=" + }, + { + "pname": "System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4=" + }, + { + "pname": "System.Security.Cryptography.Primitives", + "version": "4.3.0", + "hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318=" + }, + { + "pname": "System.Security.Cryptography.ProtectedData", + "version": "4.3.0", + "hash": "sha256-CbfRZFmnJZCAsx9cx9UehCtzsbnVo+ce+n4pXDsx4s0=" + }, + { + "pname": "System.Security.Cryptography.X509Certificates", + "version": "4.3.0", + "hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0=" + }, + { + "pname": "System.Security.Permissions", + "version": "4.5.0", + "hash": "sha256-Fa6dX6Gyse1A/RBoin8cVaHQePbfBvp6jjWxUXPhXKQ=" + }, + { + "pname": "System.Security.Principal", + "version": "4.0.1", + "hash": "sha256-9wBgPnJfFOtrhKZ7wDXZ4q12GklQ49Ka02/9v7Frf9k=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.5.0", + "hash": "sha256-BkUYNguz0e4NJp1kkW7aJBn3dyH9STwB5N8XqnlCsmY=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "5.0.0", + "hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.0.11", + "hash": "sha256-PEailOvG05CVgPTyKLtpAgRydlSHmtd5K0Y8GSHY2Lc=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg=" + }, + { + "pname": "System.Text.Encoding.CodePages", + "version": "4.5.1", + "hash": "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw=" + }, + { + "pname": "System.Text.Encoding.CodePages", + "version": "7.0.0", + "hash": "sha256-eCKTVwumD051ZEcoJcDVRGnIGAsEvKpfH3ydKluHxmo=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.0.11", + "hash": "sha256-+kf7J3dEhgCbnCM5vHYlsTm5/R/Ud0Jr6elpHm922iI=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.1.0", + "hash": "sha256-x6OQN6MCN7S0fJ6EFTfv4rczdUWjwuWE9QQ0P6fbh9c=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.3.0", + "hash": "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0=" + }, + { + "pname": "System.Threading", + "version": "4.0.11", + "hash": "sha256-mob1Zv3qLQhQ1/xOLXZmYqpniNUMCfn02n8ZkaAhqac=" + }, + { + "pname": "System.Threading", + "version": "4.3.0", + "hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc=" + }, + { + "pname": "System.Threading.Channels", + "version": "7.0.0", + "hash": "sha256-Cu0gjQsLIR8Yvh0B4cOPJSYVq10a+3F9pVz/C43CNeM=" + }, + { + "pname": "System.Threading.Overlapped", + "version": "4.0.1", + "hash": "sha256-CAWZlavcuBQHs+kaSX9CmkpHF7wC8rFrug3XPb5KJzo=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.0.11", + "hash": "sha256-5SLxzFg1df6bTm2t09xeI01wa5qQglqUwwJNlQPJIVs=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" + }, + { + "pname": "System.Threading.Tasks.Dataflow", + "version": "4.6.0", + "hash": "sha256-YYrT3GRzVBdendxt8FUDCnOBJi0nw/CJ9VrzcPJWLSg=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.0.0", + "hash": "sha256-+YdcPkMhZhRbMZHnfsDwpNbUkr31X7pQFGxXYcAPZbE=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.3.0", + "hash": "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.5.4", + "hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng=" + }, + { + "pname": "System.Threading.Thread", + "version": "4.0.0", + "hash": "sha256-7EtSJuKqcW107FYA5Ko9NFXEWUPIzNDtlfKaQV2pvb8=" + }, + { + "pname": "System.Threading.Thread", + "version": "4.3.0", + "hash": "sha256-pMs6RNFC3nQOGz9EqIcyWmO8YLaqay+q/Qde5hqPXXg=" + }, + { + "pname": "System.Threading.ThreadPool", + "version": "4.0.10", + "hash": "sha256-/fowWjM/0ZZFC1Rwu0i5N71iRxV2JOd3jQV2Jn0wuTk=" + }, + { + "pname": "System.Threading.ThreadPool", + "version": "4.3.0", + "hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg=" + }, + { + "pname": "System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s=" + }, + { + "pname": "System.ValueTuple", + "version": "4.5.0", + "hash": "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.0.11", + "hash": "sha256-haZAFFQ9Sl2DhfvEbdx2YRqKEoxNMU5STaqpMmXw0zA=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.3.0", + "hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA=" + }, + { + "pname": "System.Xml.XDocument", + "version": "4.0.11", + "hash": "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg=" + }, + { + "pname": "System.Xml.XDocument", + "version": "4.3.0", + "hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI=" + }, + { + "pname": "System.Xml.XmlDocument", + "version": "4.0.1", + "hash": "sha256-gdoFrPo54v1LjkBF79f8EvtltVVjHz9ZI9kc5ve0GkY=" + }, + { + "pname": "System.Xml.XPath", + "version": "4.0.1", + "hash": "sha256-lQCoK2M51SGRuGjfiuIW26Y2goABY2RLE6cZ4816WDo=" + }, + { + "pname": "System.Xml.XPath.XmlDocument", + "version": "4.0.1", + "hash": "sha256-bK9AfAYrdSipdRbmo8Rk7394ku92UFNe2TEQF5+k/lA=" + }, + { + "pname": "xunit", + "version": "2.4.2", + "hash": "sha256-tePXTtlRgTAhfnUzc13Y9MwowU/cKttl1qlzHLqhWS0=" + }, + { + "pname": "xunit.abstractions", + "version": "2.0.3", + "hash": "sha256-0D1y/C34iARI96gb3bAOG8tcGPMjx+fMabTPpydGlAM=" + }, + { + "pname": "xunit.analyzers", + "version": "1.0.0", + "hash": "sha256-hZEaTaJN0bWw9q8tha5RziGlZ/lkDrj2S+QLQxgRjlw=" + }, + { + "pname": "xunit.assert", + "version": "2.3.0", + "hash": "sha256-lN+NiUEQoHWmoamUjvsNt2PVhHXYeHJHjHRk1BTs6R8=" + }, + { + "pname": "xunit.assert", + "version": "2.4.2", + "hash": "sha256-wMyRXZzDn9Se4c0Pzzn0U4YuKRiUtu6o4MoPjJPPzUU=" + }, + { + "pname": "xunit.core", + "version": "2.4.2", + "hash": "sha256-jRFoW8LSuqDINuJlno3xT3VfdkHFVEbDKctU/mISIMc=" + }, + { + "pname": "xunit.extensibility.core", + "version": "2.4.2", + "hash": "sha256-wlTMUOQg5NaAPEsWkNSr8QSPbbCNSicpFajp1rowCsA=" + }, + { + "pname": "xunit.extensibility.execution", + "version": "2.4.2", + "hash": "sha256-l5Q60IBYWE5tYJCdFEEQnO5rIlXcNEM5S4Ut8vFnL2U=" + }, + { + "pname": "xunit.runner.visualstudio", + "version": "2.4.5", + "hash": "sha256-Gv7U1VPKfNb7IOWrwUGUKAeurKtE3AtQmegDFNkYHHk=" + } +] diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 644a85588905..6771d5230bc2 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -40,6 +40,7 @@ let }; godotPackages_4_3 = mkGodotPackages "4.3"; + godotPackages_4_4 = mkGodotPackages "4.4"; godotPackages_4 = godotPackages_4_3; godotPackages = godotPackages_4; in @@ -58,6 +59,9 @@ rec { godot_4_3 = godotPackages_4_3.godot; godot_4_3-mono = godotPackages_4_3.godot-mono; godot_4_3-export-templates = godotPackages_4_3.export-templates-bin; + godot_4_4 = godotPackages_4_4.godot; + godot_4_4-mono = godotPackages_4_4.godot-mono; + godot_4_4-export-templates = godotPackages_4_4.export-templates-bin; godot_4 = godotPackages_4.godot; godot_4-mono = godotPackages_4.godot-mono; godot_4-export-templates = godotPackages_4.export-templates-bin; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c9630a2886b2..74dc327074e7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3459,6 +3459,9 @@ with pkgs; godot_4_3 godot_4_3-mono godot_4_3-export-templates + godot_4_4 + godot_4_4-mono + godot_4_4-export-templates godot_4 godot_4-mono godot_4-export-templates From a30f85f22c0ebfac4e32a7b52efb3fc9ca806ce0 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Wed, 5 Mar 2025 15:10:51 -0400 Subject: [PATCH 06/11] godot_4-export-templates: add version to derivation --- pkgs/development/tools/godot/default.nix | 2 +- .../tools/godot/export-templates-bin.nix | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 6771d5230bc2..3c65d82a6a26 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -33,7 +33,7 @@ let export-templates-bin = ( callPackage ./export-templates-bin.nix { - inherit version; + inherit version godot; hash = exportTemplatesHash; } ); diff --git a/pkgs/development/tools/godot/export-templates-bin.nix b/pkgs/development/tools/godot/export-templates-bin.nix index 76a1bc43b78b..5bec3547041a 100644 --- a/pkgs/development/tools/godot/export-templates-bin.nix +++ b/pkgs/development/tools/godot/export-templates-bin.nix @@ -1,6 +1,8 @@ { fetchzip, + godot, hash, + lib, version, }: # Export templates is necessary for setting up Godot engine, it's used when exporting projects. @@ -8,8 +10,20 @@ # Export templates version should be kept in sync with Godot version. # https://docs.godotengine.org/en/stable/tutorials/export/exporting_projects.html#export-templates fetchzip { - pname = "export_templates"; + pname = "godot-export-templates"; + version = version; extension = "zip"; url = "https://github.com/godotengine/godot/releases/download/${version}/Godot_v${version}_export_templates.tpz"; inherit hash; + + meta = { + inherit (godot.meta) + changelog + description + homepage + license + maintainers + ; + sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + }; } From c05bd204f34daebb42647aa3b769d467d93aa304 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 7 Mar 2025 09:57:29 -0400 Subject: [PATCH 07/11] opengamepadui: use godot 4.3 explicitly --- pkgs/by-name/op/opengamepadui/package.nix | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/op/opengamepadui/package.nix b/pkgs/by-name/op/opengamepadui/package.nix index 4ad2f25edb78..ca22d434ae0a 100644 --- a/pkgs/by-name/op/opengamepadui/package.nix +++ b/pkgs/by-name/op/opengamepadui/package.nix @@ -5,8 +5,7 @@ dbus, fetchFromGitHub, gamescope, - godot_4, - godot_4-export-templates, + godot_4_3, hwdata, lib, libGL, @@ -46,8 +45,8 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ autoPatchelfHook cargo - godot_4 - godot_4-export-templates + godot_4_3 + godot_4_3.export-templates-bin pkg-config rustPlatform.cargoSetupHook ]; @@ -76,13 +75,13 @@ stdenv.mkDerivation (finalAttrs: { env = let - versionAndRelease = lib.splitString "-" godot_4.version; + versionAndRelease = lib.splitString "-" godot_4_3.version; in { - GODOT = lib.getExe godot_4; + GODOT = lib.getExe godot_4_3; GODOT_VERSION = lib.elemAt versionAndRelease 0; GODOT_RELEASE = lib.elemAt versionAndRelease 1; - EXPORT_TEMPLATE = "${godot_4-export-templates}"; + EXPORT_TEMPLATE = "${godot_4_3.export-templates-bin}"; BUILD_TYPE = "${finalAttrs.buildType}"; }; @@ -94,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: { # Godot looks for export templates in HOME export HOME=$(mktemp -d) mkdir -p $HOME/.local/share/godot/export_templates - ln -s "${godot_4-export-templates}" "$HOME/.local/share/godot/export_templates/$GODOT_VERSION.$GODOT_RELEASE" + ln -s "${godot_4_3.export-templates-bin}" "$HOME/.local/share/godot/export_templates/$GODOT_VERSION.$GODOT_RELEASE" ''; postInstall = '' From 6a765878abb0d42631f56f324746eec859fcf296 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 7 Mar 2025 09:57:34 -0400 Subject: [PATCH 08/11] pixelorama: use godot 4.3 explicitly --- pkgs/by-name/pi/pixelorama/package.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/pi/pixelorama/package.nix b/pkgs/by-name/pi/pixelorama/package.nix index 7bdc3c163f0d..5d2af594eb39 100644 --- a/pkgs/by-name/pi/pixelorama/package.nix +++ b/pkgs/by-name/pi/pixelorama/package.nix @@ -4,8 +4,7 @@ alsa-lib, autoPatchelfHook, fetchFromGitHub, - godot_4, - godot_4-export-templates, + godot_4_3, libGL, libpulseaudio, libX11, @@ -28,7 +27,8 @@ let presets.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - godot_version_folder = lib.replaceStrings [ "-" ] [ "." ] godot_4.version; + godot = godot_4_3; + godot_version_folder = lib.replaceStrings [ "-" ] [ "." ] godot.version; in stdenv.mkDerivation (finalAttrs: { pname = "pixelorama"; @@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ autoPatchelfHook - godot_4 + godot ]; runtimeDependencies = map lib.getLib [ @@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: { export HOME=$(mktemp -d) mkdir -p $HOME/.local/share/godot/export_templates - ln -s "${godot_4-export-templates}" "$HOME/.local/share/godot/export_templates/${godot_version_folder}" + ln -s "${godot.export-templates-bin}" "$HOME/.local/share/godot/export_templates/${godot_version_folder}" mkdir -p build godot4 --headless --export-release "${preset}" ./build/pixelorama From 04fce5b8682199e50172a890d34de393af211909 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 7 Mar 2025 09:59:08 -0400 Subject: [PATCH 09/11] godot_4: default to godot 4.4 --- pkgs/development/tools/godot/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index 3c65d82a6a26..20a697c01fd0 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -41,7 +41,7 @@ let godotPackages_4_3 = mkGodotPackages "4.3"; godotPackages_4_4 = mkGodotPackages "4.4"; - godotPackages_4 = godotPackages_4_3; + godotPackages_4 = godotPackages_4_4; godotPackages = godotPackages_4; in rec { From 24fcfa457aa1071ce9df35d7c8cc41728c6aa3d8 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 7 Mar 2025 20:14:18 -0400 Subject: [PATCH 10/11] godot: add bin/godot symlink --- pkgs/development/tools/godot/common.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/godot/common.nix b/pkgs/development/tools/godot/common.nix index 3368dd1d819b..fee03b1c159d 100644 --- a/pkgs/development/tools/godot/common.nix +++ b/pkgs/development/tools/godot/common.nix @@ -235,7 +235,8 @@ let }" '' + '' - runHook postInstall + ln -s godot4${suffix} "$out"/bin/godot + runHook post Install ''; passthru = { From 4f5970c8e7dfa66bdd3e0fe828b69773e9fca193 Mon Sep 17 00:00:00 2001 From: David McFarland Date: Fri, 7 Mar 2025 20:52:41 -0400 Subject: [PATCH 11/11] godot: add project test --- pkgs/development/tools/godot/common.nix | 121 +++++++++++++++++++++++- 1 file changed, 116 insertions(+), 5 deletions(-) diff --git a/pkgs/development/tools/godot/common.nix b/pkgs/development/tools/godot/common.nix index fee03b1c159d..dea54a9fd638 100644 --- a/pkgs/development/tools/godot/common.nix +++ b/pkgs/development/tools/godot/common.nix @@ -23,9 +23,11 @@ libXrender, makeWrapper, pkg-config, + runCommand, scons, speechd-minimal, stdenv, + stdenvNoCC, testers, udev, version, @@ -240,12 +242,121 @@ let ''; passthru = { - tests = { - version = testers.testVersion { - package = finalAttrs.finalPackage; - version = lib.replaceStrings [ "-" ] [ "." ] version; + tests = + let + pkg = finalAttrs.finalPackage; + dottedVersion = lib.replaceStrings [ "-" ] [ "." ] version; + exportedProject = stdenvNoCC.mkDerivation { + name = "${pkg.name}-project-export"; + + nativeBuildInputs = [ + pkg + autoPatchelfHook + ]; + + runtimeDependencies = map lib.getLib [ + alsa-lib + libGL + libpulseaudio + libX11 + libXcursor + libXext + libXi + libXrandr + udev + vulkan-loader + ]; + + unpackPhase = '' + runHook preUnpack + + mkdir test + cd test + touch project.godot + + cat >create-scene.gd <<'EOF' + extends SceneTree + + func _initialize(): + var node = Node.new() + var script = ResourceLoader.load("res://test.gd") + print(script) + node.set_script(script) + var scene = PackedScene.new() + var scenePath = "res://test.tscn" + scene.pack(node) + var x = ResourceSaver.save(scene, scenePath) + ProjectSettings["application/run/main_scene"] = scenePath + ProjectSettings.save() + node.free() + quit() + EOF + + cat >test.gd <<'EOF' + extends Node + func _ready(): + print("Hello, World!") + get_tree().quit() + EOF + + cat >export_presets.cfg <<'EOF' + [preset.0] + name="build" + platform="Linux" + runnable=true + export_filter="all_resources" + include_filter="" + exclude_filter="" + [preset.0.options] + __empty="" + EOF + + runHook postUnpack + ''; + + buildPhase = '' + runHook preBuild + + export HOME=$(mktemp -d) + mkdir -p $HOME/.local/share/godot/export_templates + ln -s "${pkg.export-templates-bin}" "$HOME/.local/share/godot/export_templates/${dottedVersion}" + + godot --headless -s create-scene.gd + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p "$out"/bin + godot --headless --export-release build "$out"/bin/test + + runHook postInstall + ''; + }; + in + { + version = testers.testVersion { + package = pkg; + version = dottedVersion; + }; + + project-runs = runCommand "${pkg.name}-project-runs" { } '' + ( + set -eo pipefail + HOME=$(mktemp -d) + "${exportedProject}"/bin/test --headless | tail -n1 | ( + read output + if [[ "$output" != "Hello, World!" ]]; then + echo "unexpected output: $output" >&2 + exit 1 + fi + ) + touch "$out" + ) + ''; }; - }; }; requiredSystemFeatures = [