From 3b3da8abf115cfa3b478bd31e4e1895cf3d48a75 Mon Sep 17 00:00:00 2001 From: dish Date: Fri, 14 Nov 2025 17:20:06 -0500 Subject: [PATCH] elmPackages.elm-xref: migrate from internal node-packages.nix set --- pkgs/development/compilers/elm/default.nix | 2 + .../elm/packages/elm-xref/default.nix | 48 ++++++++++ .../elm/packages/elm-xref/elm-srcs.nix | 57 ++++++++++++ .../elm/packages/elm-xref/registry.dat | Bin 0 -> 329 bytes .../compilers/elm/packages/elm-xref/update.sh | 17 ++++ .../compilers/elm/packages/node/default.nix | 1 - .../elm/packages/node/node-packages.json | 1 - .../elm/packages/node/node-packages.nix | 84 ------------------ 8 files changed, 124 insertions(+), 86 deletions(-) create mode 100644 pkgs/development/compilers/elm/packages/elm-xref/default.nix create mode 100644 pkgs/development/compilers/elm/packages/elm-xref/elm-srcs.nix create mode 100644 pkgs/development/compilers/elm/packages/elm-xref/registry.dat create mode 100755 pkgs/development/compilers/elm/packages/elm-xref/update.sh diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index 696a00d1e825..74f9de42f788 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -77,6 +77,8 @@ lib.makeScope pkgs.newScope ( elm-verify-examples = callPackage ./packages/elm-verify-examples { }; + elm-xref = callPackage ./packages/elm-xref { }; + lamdera = callPackage ./packages/lamdera { }; } ) diff --git a/pkgs/development/compilers/elm/packages/elm-xref/default.nix b/pkgs/development/compilers/elm/packages/elm-xref/default.nix new file mode 100644 index 000000000000..616bbca334a2 --- /dev/null +++ b/pkgs/development/compilers/elm/packages/elm-xref/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, + elmPackages, +}: + +buildNpmPackage (finalAttrs: { + pname = "elm-xref"; + version = "4.1.1"; + + src = fetchFromGitHub { + owner = "zwilias"; + repo = "elm-xref"; + tag = finalAttrs.version; + hash = "sha256-J58NTSMo2uxpWFnPX+AGHVAqQOiRfgBxYzis/PZp1MA="; + }; + + npmDepsHash = "sha256-LZynUf2M+g31mia41jw7vmGNugUUUAX/TehDxQ7j+YY="; + + nativeBuildInputs = [ + elmPackages.elm + ]; + + npmFlags = [ "--ignore-scripts" ]; + + npmBuildScript = "elm"; + + postConfigure = + (elmPackages.fetchElmDeps { + elmPackages = import ./elm-srcs.nix; + elmVersion = elmPackages.elm.version; + registryDat = ./registry.dat; + }) + + '' + ln -sf ${lib.getExe elmPackages.elm} node_modules/.bin/elm + ''; + + passthru.updateScript = ./update.sh; + + meta = { + description = "Cross referencing tool for Elm"; + homepage = "https://github.com/zwilias/elm-xref"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ pyrox0 ]; + mainProgram = "elm-xref"; + }; +}) diff --git a/pkgs/development/compilers/elm/packages/elm-xref/elm-srcs.nix b/pkgs/development/compilers/elm/packages/elm-xref/elm-srcs.nix new file mode 100644 index 000000000000..7f9715b33ae2 --- /dev/null +++ b/pkgs/development/compilers/elm/packages/elm-xref/elm-srcs.nix @@ -0,0 +1,57 @@ +{ + + "elm/core" = { + sha256 = "1hf4sw78zav7czzgjnc4rn6r7ipj76ya7zbwnjgz7wbs5ijiacmc"; + version = "1.0.3"; + }; + + "elm/json" = { + sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh"; + version = "1.1.3"; + }; + + "elm/parser" = { + sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512"; + version = "1.1.0"; + }; + + "stil4m/elm-syntax" = { + sha256 = "182fz12a115j3wz3fkc209mq8rbbqmvl237pmrvygmvbxwv4ix37"; + version = "7.1.1"; + }; + + "elm-community/json-extra" = { + sha256 = "0hwlhdlvd5xi866m9bpnabcg2qrgcvfj34p1x1mhx85ymr3gv9mv"; + version = "4.2.0"; + }; + + "elm-community/list-extra" = { + sha256 = "06ddwrc0ai0pn5mw99a1d9xnihkliyvq0qvzn32z1l88msflrib7"; + version = "8.2.2"; + }; + + "elm/time" = { + sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1"; + version = "1.0.0"; + }; + + "elm/url" = { + sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4"; + version = "1.0.0"; + }; + + "rtfeldman/elm-hex" = { + sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d"; + version = "1.0.0"; + }; + + "rtfeldman/elm-iso8601-date-strings" = { + sha256 = "1fa5sslklldy0dq8bm0zdkb9ni50yxhb09xb6lgk00x55bmza9ik"; + version = "1.1.3"; + }; + + "stil4m/structured-writer" = { + sha256 = "0xr95m8k42vwyff91vfd4q59fhnmhywyj20nzxqhl7blk82hnwj0"; + version = "1.0.2"; + }; +} diff --git a/pkgs/development/compilers/elm/packages/elm-xref/registry.dat b/pkgs/development/compilers/elm/packages/elm-xref/registry.dat new file mode 100644 index 0000000000000000000000000000000000000000..df677556c8c715b40f5edbbe5f576c4c002e3898 GIT binary patch literal 329 zcmZR80B#7yz|EYRlgpBvUzEzozzh{*0E=Z6=jSmpqKL5-Bo-B?7BMoy6hc&%Wag$K zgur6VrA0YNLcFOtxw^^uxw)lznI)B6Aft6tD@uwIS(xBPp{dEqEG~hl;b4L*;w&mj zOU+5iP0V8lnV6AUfn*6nQUWBIS)6ZSW?-nBl30?eTU=6x^|#0qwVzo3$W#U(|h$t9&lsVTbUMVTe3MT`t^w*Uarhed7x literal 0 HcmV?d00001 diff --git a/pkgs/development/compilers/elm/packages/elm-xref/update.sh b/pkgs/development/compilers/elm/packages/elm-xref/update.sh new file mode 100755 index 000000000000..2bc827f3c5ca --- /dev/null +++ b/pkgs/development/compilers/elm/packages/elm-xref/update.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nix-update elm2nix nixfmt + +set -eu -o pipefail + +PACKAGE_DIR=$(realpath "$(dirname "$0")") + +# Update version, src and npm deps +nix-update "$UPDATE_NIX_ATTR_PATH" + +# Update elm deps +cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json +trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT +elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix" +nixfmt "$PACKAGE_DIR/elm-srcs.nix" +elm2nix snapshot +cp registry.dat "$PACKAGE_DIR/registry.dat" diff --git a/pkgs/development/compilers/elm/packages/node/default.nix b/pkgs/development/compilers/elm/packages/node/default.nix index c3cff6a18b46..af2abc9f533a 100644 --- a/pkgs/development/compilers/elm/packages/node/default.nix +++ b/pkgs/development/compilers/elm/packages/node/default.nix @@ -17,7 +17,6 @@ with self; with elmLib; { inherit (nodePkgs) - elm-xref elm-git-install ; diff --git a/pkgs/development/compilers/elm/packages/node/node-packages.json b/pkgs/development/compilers/elm/packages/node/node-packages.json index 377909773f35..c9dec5c2b82e 100644 --- a/pkgs/development/compilers/elm/packages/node/node-packages.json +++ b/pkgs/development/compilers/elm/packages/node/node-packages.json @@ -1,5 +1,4 @@ [ - "elm-xref", "create-elm-app", "elm-optimize-level-2", "elm-pages", diff --git a/pkgs/development/compilers/elm/packages/node/node-packages.nix b/pkgs/development/compilers/elm/packages/node/node-packages.nix index 99f6ea1b3f74..5cdcfeeacef7 100644 --- a/pkgs/development/compilers/elm/packages/node/node-packages.nix +++ b/pkgs/development/compilers/elm/packages/node/node-packages.nix @@ -3045,15 +3045,6 @@ let sha512 = "W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="; }; }; - "compare-versions-3.6.0" = { - name = "compare-versions"; - packageName = "compare-versions"; - version = "3.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz"; - sha512 = "W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA=="; - }; - }; "component-emitter-1.3.1" = { name = "component-emitter"; packageName = "component-emitter"; @@ -6951,15 +6942,6 @@ let sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="; }; }; - "klaw-2.1.1" = { - name = "klaw"; - packageName = "klaw"; - version = "2.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/klaw/-/klaw-2.1.1.tgz"; - sha512 = "kuInGWCNc98b1ghOqBJfqPOvAKn9HHgm+SdluR5VNfdA7rs7uNsuXGy7CCqsP6pFKPpUoCH4s9o00GEj9xONHg=="; - }; - }; "kleur-4.1.5" = { name = "kleur"; packageName = "kleur"; @@ -10218,24 +10200,6 @@ let sha512 = "RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="; }; }; - "semver-regex-3.1.4" = { - name = "semver-regex"; - packageName = "semver-regex"; - version = "3.1.4"; - src = fetchurl { - url = "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz"; - sha512 = "6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA=="; - }; - }; - "semver-sort-1.0.0" = { - name = "semver-sort"; - packageName = "semver-sort"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/semver-sort/-/semver-sort-1.0.0.tgz"; - sha512 = "JicVlQKz/C//4BiPmbHEDou6HihXxo5xqB/8Hm9FaLJ6HHkRRvYgCECq4u/z0XF8kyJQ/KAZt++A/kYz/oOSSg=="; - }; - }; "send-0.19.0" = { name = "send"; packageName = "send"; @@ -12588,54 +12552,6 @@ let }; in { - elm-xref = nodeEnv.buildNodePackage { - name = "elm-xref"; - packageName = "elm-xref"; - version = "4.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/elm-xref/-/elm-xref-4.1.1.tgz"; - sha512 = "1Cl3pZ8Z8Nd0VIu6277C4l4IMjDJEZuX1jkGZX/YZGdCQvGd1v0pB20NKi+U8YbfyjzaereAHah2eL3eXamn6w=="; - }; - dependencies = [ - sources."bluebird-3.7.2" - sources."compare-versions-3.6.0" - sources."core-util-is-1.0.3" - sources."fs-extra-6.0.1" - sources."graceful-fs-4.2.11" - sources."inherits-2.0.4" - sources."isarray-1.0.0" - sources."jsonfile-4.0.0" - sources."klaw-2.1.1" - sources."minimist-1.2.8" - sources."process-nextick-args-2.0.1" - sources."readable-stream-2.3.8" - sources."safe-buffer-5.1.2" - sources."semver-6.3.1" - sources."semver-regex-3.1.4" - ( - sources."semver-sort-1.0.0" - // { - dependencies = [ - sources."semver-5.7.2" - ]; - } - ) - sources."string_decoder-1.1.1" - sources."through2-2.0.5" - sources."universalify-0.1.2" - sources."util-deprecate-1.0.2" - sources."xtend-4.0.2" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Cross referencing tool for Elm - find usages and unused code"; - homepage = "https://github.com/zwilias/elm-xref#readme"; - license = "BSD-3-Clause"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; create-elm-app = nodeEnv.buildNodePackage { name = "create-elm-app"; packageName = "create-elm-app";