Change:
Package name: Grahpite-cli Latest released version: 1.1.1 <!-- Search your package here: --- Current version on the unstable channel: 1.0.9 Current version on the stable/release channel: 1.0.9 <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! --- Notify maintainers <!-- If the result shows no maintainers, tag the person that last updated the package. --Note for maintainers: Please tag this issue in your PR. This package has no maintainer because it is a NPM package. might be related? Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
Hello thanks for the request, I will try to go from node2nix to build from source as the issue linked suggestes
Giving a quick check to the graphite-cli repo linked in the npm package it is archived and "moved to your mono-repo" and also it is built with yarn so nor it can migrated to buildNpmPackage nor to building from source, so my guess is that it will need to still in node2nix
Please make a PR marking the package as unfree since their monorepo isn't publicly available.
As of right now graphite-cli is already unfree

Discussion:
<ins> { "name": "@withgraphite/graphite-cli", "version": "1.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@withgraphite/graphite-cli", "version": "1.1.2", "license": "None", "dependencies": { "chalk": "^4.1.2", "ws": "^8.6.0", "yargs": "^17.5.1" }, "bin": { "graphite": "graphite.js", "gt": "graphite.js" } }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/ws": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { "node": ">=10" } }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { "node": ">=12" } } } } </ins>

<ins> { lib , buildNpmPackage , fetchurl , installShellFiles }: buildNpmPackage rec { pname = "graphite-cli"; version = "1.1.2"; src = fetchurl { url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz"; hash = "sha256-NNBI1S33jD6ZKbztZXSRtYwt3w0T4A5Bg2zxMWw74cY="; }; npmDepsHash = "sha256-Nk0Aoyv4eEXZD4B9B/B6mJd/UDy8Kc/sHtQWXrLukSk="; postPatch = '' ln -s ${./package-lock.json} package-lock.json ''; nativeBuildInputs = [ installShellFiles ]; dontNpmBuild = true; postInstall = '' installShellCompletion --cmd gt  --bash <($out/bin/gt completion)  --zsh <(ZSH_NAME=zsh $out/bin/gt completion) ''; passthru.updateScript = ./update.sh; meta = { description = "CLI that makes creating stacked git changes fast & intuitive"; downloadPage = "https://www.npmjs.com/package/@withgraphite/graphite-cli"; homepage = "https://graphite.dev/docs/graphite-cli"; license = lib.licenses.unfree; # no license specified mainProgram = "gt"; maintainers = with lib.maintainers; [ ]; }; } </ins>

<ins> #! /usr/bin/env nix-shell #! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget set -euo pipefail pushd "$(dirname "${BASH_SOURCE[0]}")" version=$(npm view @withgraphite/graphite-cli version) tarball="graphite-cli-$version.tgz" url="https://registry.npmjs.org/@withgraphite/graphite-cli/-/$tarball" if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then echo "Already up to date!" exit 0 fi sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix sha256=$(nix-prefetch-url "$url") src_hash=$(nix-hash --to-sri --type sha256 "$sha256") sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix rm -f package-lock.json package.json *.tgz wget "$url" tar xf "$tarball" --strip-components=1 package/package.json npm i --package-lock-only npm_hash=$(prefetch-npm-deps package-lock.json) sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix rm -f package.json *.tgz popd </ins>

"@nerdwallet/shepherd" = pkgs.shepherd; # added 2023-09-30 "@nestjs/cli" = pkgs.nest-cli; # Added 2023-05-06 "@tailwindcss/language-server" = pkgs.tailwindcss-language-server; # added 2024-01-22 <ins> "@withgraphite/graphite-cli" = pkgs.graphite-cli; # added 2024-01-25 </ins> "@zwave-js/server" = pkgs.zwave-js-server; # Added 2023-09-09 alloy = pkgs.titanium-alloy; # added 2023-08-17 antennas = pkgs.antennas; # added 2023-07-30

inherit (pkgs) gitmoji-cli; # added 2023-09-23 glob = pkgs.node-glob; # added 2023-08-18 inherit (pkgs) gqlint; # added 2023-08-19 <ins> inherit (pkgs) graphite-cli; # added 2024-01-25 </ins> inherit (pkgs) graphqurl; # added 2023-08-19 gtop = pkgs.gtop; # added 2023-07-31 hs-client = pkgs.hsd; # added 2023-08-20

"@electron-forge/cli" = "electron-forge"; "@microsoft/rush" = "rush"; "@webassemblyjs/cli-1.11.1" = "wasm2wast"; <del> "@withgraphite/graphite-cli" = "gt"; </del> # Packages that provide a single executable. "@angular/cli" = "ng";

, "webpack-dev-server" , "copy-webpack-plugin" , "webtorrent-cli" <del> , "@withgraphite/graphite-cli" </del> , "wrangler" , "wring" , "@yaegassy/coc-nginx"

bypassCache = true; reconstructLock = true; }; <del> "@withgraphite/graphite-cli" = nodeEnv.buildNodePackage { name = "_at_withgraphite_slash_graphite-cli"; packageName = "@withgraphite/graphite-cli"; version = "1.0.14"; src = fetchurl { url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-1.0.14.tgz"; sha512 = "VXgUM5RSYXMVc9i3E1A6j0CYNS5ScQjUXaKO9l3epOws5rxiyDa7QOl7tiSXTQw1eQKtzXxiwve+iWDZsPSDQw=="; }; dependencies = [ sources."ansi-regex-5.0.1" sources."ansi-styles-4.3.0" sources."bufferutil-4.0.8" sources."chalk-4.1.2" sources."cliui-8.0.1" sources."color-convert-2.0.1" sources."color-name-1.1.4" sources."emoji-regex-8.0.0" sources."escalade-3.1.1" sources."get-caller-file-2.0.5" sources."has-flag-4.0.0" sources."is-fullwidth-code-point-3.0.0" sources."node-gyp-build-4.8.0" sources."require-directory-2.1.1" sources."string-width-4.2.3" sources."strip-ansi-6.0.1" sources."supports-color-7.2.0" sources."utf-8-validate-6.0.3" sources."wrap-ansi-7.0.0" sources."ws-8.16.0" sources."y18n-5.0.8" sources."yargs-17.7.2" sources."yargs-parser-21.1.1" ]; buildInputs = globalBuildInputs; meta = { homepage = "https://github.com/withgraphite/graphite-cli"; license = "None"; }; production = true; bypassCache = true; reconstructLock = true; }; </del> wrangler = nodeEnv.buildNodePackage { name = "wrangler"; packageName = "wrangler";

''; }; <del> graphite-cli = prev."@withgraphite/graphite-cli".override (old: { name = "graphite-cli"; nativeBuildInputs = with pkgs; [ installShellFiles pkg-config ]; buildInputs = with pkgs; [ cairo pango pixman ]; # 'gt completion' auto-detects zshell from environment variables: # https://github.com/yargs/yargs/blob/2b6ba3139396b2e623aed404293f467f16590039/lib/completion.ts#L45 postInstall = '' installShellCompletion --cmd gt  --bash <($out/bin/gt completion)  --zsh <(ZSH_NAME=zsh $out/bin/gt completion) ''; meta = old.meta // { license = lib.licenses.unfree; # no license specified }; }); </del> graphql-language-service-cli = prev.graphql-language-service-cli.override { nativeBuildInputs = [ pkgs.buildPackages.makeWrapper ]; postInstall = ''

goperf = callPackage ../development/tools/goperf { }; <del> graphite-cli = nodePackages.graphite-cli; </del> gucci = callPackage ../tools/text/gucci { }; guglielmo = libsForQt5.callPackage ../applications/radio/guglielmo { };