diff --git a/pkgs/by-name/ya/yarn-berry/package.nix b/pkgs/by-name/ya/yarn-berry/package.nix index fd8caf96ea471..9e648d2279a10 100644 --- a/pkgs/by-name/ya/yarn-berry/package.nix +++ b/pkgs/by-name/ya/yarn-berry/package.nix @@ -5,17 +5,25 @@ stdenv, testers, yarn, + berryVersion ? 4, }: +let + version_4 = "4.8.1"; + version_3 = "3.8.7"; + hash_4 = "sha256-JRQVUO5KsaGMmoC99cloW+hbFjgaFLNT3tqA29TVu34="; + hash_3 = "sha256-vRrk+Fs/7dZha3h7yI5NpMfd1xezesnigpFgTRCACZo="; +in + stdenv.mkDerivation (finalAttrs: { pname = "yarn-berry"; - version = "4.8.1"; + version = if berryVersion == 4 then version_4 else version_3; src = fetchFromGitHub { owner = "yarnpkg"; repo = "berry"; tag = "@yarnpkg/cli/${finalAttrs.version}"; - hash = "sha256-JRQVUO5KsaGMmoC99cloW+hbFjgaFLNT3tqA29TVu34="; + hash = if berryVersion == 4 then hash_4 else hash_3; }; buildInputs = [ diff --git a/pkgs/by-name/ya/yarn-berry/update.sh b/pkgs/by-name/ya/yarn-berry/update.sh index 5ce8bc02c9571..f2b09077c2cc0 100755 --- a/pkgs/by-name/ya/yarn-berry/update.sh +++ b/pkgs/by-name/ya/yarn-berry/update.sh @@ -17,5 +17,7 @@ EOF ) version=$(jq -r "[.data.repository.tag.nodes[].name | select(contains(\"-\")|not)] | max_by(split(\".\") | map(tonumber))" <<< "$payload") +version3=$(jq -r "[.data.repository.tag.nodes[].name | select(contains(\"-\")|not)] | map(select(. < \"4.0.0\")) | sort | last" <<< "$payload") -update-source-version yarn-berry "$version" +update-source-version yarn-berry4 "$version" --version-key="version_4" +update-source-version yarn-berry3 "$version3" --version-key="version_3" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5f2baf5a3bf8..9de4275fc11f9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5707,6 +5707,9 @@ with pkgs; yapf = with python3Packages; toPythonApplication yapf; + yarn-berry_4 = yarn-berry.override { berryVersion = 4; }; + yarn-berry_3 = yarn-berry.override { berryVersion = 3; }; + yarn2nix-moretea = callPackage ../development/tools/yarn2nix-moretea { pkgs = pkgs.__splicedPackages; };