diff --git a/dev-shell/default.nix b/dev-shell/default.nix index ac62e2cf3..cf1ddb558 100644 --- a/dev-shell/default.nix +++ b/dev-shell/default.nix @@ -20,6 +20,7 @@ let ../ekaos/modules/languages/crystal.nix ../ekaos/modules/languages/cue.nix ../ekaos/modules/languages/deno.nix + ../ekaos/modules/languages/dotnet.nix ../ekaos/modules/languages/elixir.nix ../ekaos/modules/languages/erlang.nix ../ekaos/modules/languages/fortran.nix @@ -29,27 +30,34 @@ let ../ekaos/modules/languages/guile.nix ../ekaos/modules/languages/hare.nix ../ekaos/modules/languages/haskell.nix + ../ekaos/modules/languages/idris.nix ../ekaos/modules/languages/java.nix ../ekaos/modules/languages/javascript.nix ../ekaos/modules/languages/jsonnet.nix ../ekaos/modules/languages/julia.nix ../ekaos/modules/languages/kotlin.nix + ../ekaos/modules/languages/lean.nix ../ekaos/modules/languages/lobster.nix ../ekaos/modules/languages/lua.nix ../ekaos/modules/languages/nim.nix ../ekaos/modules/languages/nix.nix ../ekaos/modules/languages/nodejs.nix + ../ekaos/modules/languages/ocaml.nix ../ekaos/modules/languages/odin.nix ../ekaos/modules/languages/opentofu.nix ../ekaos/modules/languages/perl.nix ../ekaos/modules/languages/php.nix + ../ekaos/modules/languages/pkl.nix ../ekaos/modules/languages/purescript.nix ../ekaos/modules/languages/python.nix ../ekaos/modules/languages/r-lang.nix + ../ekaos/modules/languages/racket.nix + ../ekaos/modules/languages/raku.nix ../ekaos/modules/languages/ruby.nix ../ekaos/modules/languages/rust.nix ../ekaos/modules/languages/scala.nix ../ekaos/modules/languages/shell.nix + ../ekaos/modules/languages/sml.nix ../ekaos/modules/languages/solidity.nix ../ekaos/modules/languages/tcl.nix ../ekaos/modules/languages/terraform.nix @@ -58,6 +66,7 @@ let ../ekaos/modules/languages/typescript.nix ../ekaos/modules/languages/unison.nix ../ekaos/modules/languages/vala.nix + ../ekaos/modules/languages/vlang.nix ../ekaos/modules/languages/zig.nix ]; @@ -94,6 +103,17 @@ let }; }; + # Devshell feature modules (dotenv, scripts, etc.) + devshellModuleFiles = [ + ./modules/dotenv.nix + ./modules/enterShell.nix + ./modules/env.nix + ./modules/files.nix + ./modules/packages.nix + ./modules/scripts.nix + ./modules/treefmt.nix + ]; + # Simple mkShell implementation (Phase 1 - basic version) mkShell = attrs: @@ -165,13 +185,14 @@ in inherit (processCompose) tui logDir dataDir; }; - # Evaluate language modules (check = false ignores service options) + # Evaluate language + devshell feature modules (check = false ignores service options) languagesEval = lib.evalModules { modules = [ { _module.check = false; } languageStubModule ] ++ languageModuleFiles + ++ devshellModuleFiles ++ modules; specialArgs = { inherit lib pkgs; @@ -182,6 +203,75 @@ in langPackages = languagesEval.config.environment.packages; langVariables = languagesEval.config.environment.variables; + # Extract devshell feature config + dotenvCfg = languagesEval.config.dotenv or { enable = false; }; + scriptsCfg = languagesEval.config.scripts or { }; + treefmtCfg = languagesEval.config.treefmt or { enable = false; }; + enterShellCode = languagesEval.config.enterShell or ""; + envVars = languagesEval.config.env or { }; + modulePackages = languagesEval.config.packages or [ ]; + filesCfg = languagesEval.config.files or { }; + + # Build script wrappers from scripts config + scriptPackages = lib.mapAttrsToList (name: body: pkgs.writeShellScriptBin name body) scriptsCfg; + + # Extra packages from devshell features + featurePackages = lib.optional (treefmtCfg.enable or false) pkgs.treefmt; + + # Dotenv loading shell code + dotenvShellHook = + let + files = + if builtins.isList (dotenvCfg.filename or ".env") then + dotenvCfg.filename + else + [ (dotenvCfg.filename or ".env") ]; + loadFile = f: '' + if [ -f "${f}" ]; then + set -a + . "${f}" + set +a + fi + ''; + in + lib.optionalString (dotenvCfg.enable or false) (lib.concatMapStringsSep "\n" loadFile files); + + # User-defined env vars + envExports = lib.concatStringsSep "\n" ( + lib.mapAttrsToList (name: value: "export ${name}=${lib.escapeShellArg value}") envVars + ); + + # File generation shell code + filesShellHook = + let + enabledFiles = lib.filterAttrs ( + _: cfg: cfg.text != null || cfg.json != null || cfg.toml != null + ) filesCfg; + generateFile = + name: cfg: + let + content = + if cfg.text != null then + cfg.text + else if cfg.json != null then + builtins.toJSON cfg.json + else if cfg.toml != null then + (lib.generators.toTOML { } cfg.toml) + else + ""; + mode = if cfg.executable then "755" else "644"; + escapedContent = lib.escapeShellArg content; + in + '' + mkdir -p "$(dirname "${name}")" + printf '%s\n' ${escapedContent} > "${name}" + chmod ${mode} "${name}" + ''; + in + lib.optionalString (enabledFiles != { }) ( + "# Generated files\n" + lib.concatStringsSep "" (lib.mapAttrsToList generateFile enabledFiles) + ); + # Generate export statements for language environment variables langExports = lib.concatStringsSep "\n" ( lib.mapAttrsToList ( @@ -248,6 +338,11 @@ in trap _pc_cleanup EXIT ''} + ${lib.optionalString (envVars != { }) envExports} + ${filesShellHook} + ${dotenvShellHook} + ${enterShellCode} + # User's custom shellHook ${shellHook} ''; @@ -257,7 +352,14 @@ in shellArgs // { buildInputs = - buildInputs ++ packages ++ langPackages ++ [ processComposePackage ] ++ (lib.attrValues utilities); + buildInputs + ++ packages + ++ modulePackages + ++ langPackages + ++ featurePackages + ++ scriptPackages + ++ [ processComposePackage ] + ++ (lib.attrValues utilities); shellHook = enhancedShellHook; diff --git a/dev-shell/modules/dotenv.nix b/dev-shell/modules/dotenv.nix new file mode 100644 index 000000000..3087f82b0 --- /dev/null +++ b/dev-shell/modules/dotenv.nix @@ -0,0 +1,18 @@ +# dotenv — load .env files into the shell environment +# +# Usage: +# dotenv.enable = true; +# dotenv.filename = ".env"; # or a list: [ ".env" ".env.local" ] +{ lib, ... }: + +{ + options.dotenv = { + enable = lib.mkEnableOption "loading .env files into the shell environment"; + + filename = lib.mkOption { + type = lib.types.either lib.types.str (lib.types.listOf lib.types.str); + default = ".env"; + description = "Path to .env file(s) to load, relative to the project root."; + }; + }; +} diff --git a/dev-shell/modules/enterShell.nix b/dev-shell/modules/enterShell.nix new file mode 100644 index 000000000..a1d1675b5 --- /dev/null +++ b/dev-shell/modules/enterShell.nix @@ -0,0 +1,16 @@ +# enterShell — bash code to run when entering the dev shell +# +# Usage: +# enterShell = '' +# echo "Welcome to the project!" +# export MY_VAR=foo +# ''; +{ lib, ... }: + +{ + options.enterShell = lib.mkOption { + type = lib.types.lines; + default = ""; + description = "Bash code to execute when entering the dev shell."; + }; +} diff --git a/dev-shell/modules/env.nix b/dev-shell/modules/env.nix new file mode 100644 index 000000000..dc989e231 --- /dev/null +++ b/dev-shell/modules/env.nix @@ -0,0 +1,17 @@ +# env — environment variables for the dev shell +# +# Usage: +# env.DATABASE_URL = "postgres://localhost/mydb"; +# env.RUST_LOG = "debug"; +{ lib, ... }: + +{ + options.env = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + default = { }; + description = "Environment variables to set in the dev shell."; + example = { + DATABASE_URL = "postgres://localhost/mydb"; + }; + }; +} diff --git a/dev-shell/modules/files.nix b/dev-shell/modules/files.nix new file mode 100644 index 000000000..878cc5d98 --- /dev/null +++ b/dev-shell/modules/files.nix @@ -0,0 +1,44 @@ +# files — generate config files in the project directory +# +# Usage: +# files."config.json".json = { key = "value"; }; +# files.".prettierrc".text = ''{ "semi": false }''; +# files."setup.cfg".ini = { metadata = { name = "myproject"; }; }; +{ lib, ... }: + +let + fileSubmodule = { + options = { + text = lib.mkOption { + type = lib.types.nullOr lib.types.str; + default = null; + description = "Text content for the file."; + }; + + json = lib.mkOption { + type = lib.types.nullOr lib.types.anything; + default = null; + description = "JSON value to serialize into the file."; + }; + + toml = lib.mkOption { + type = lib.types.nullOr lib.types.anything; + default = null; + description = "TOML value to serialize into the file."; + }; + + executable = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Whether the file should be executable."; + }; + }; + }; +in +{ + options.files = lib.mkOption { + type = lib.types.attrsOf (lib.types.submodule fileSubmodule); + default = { }; + description = "Files to generate in the project directory when entering the dev shell."; + }; +} diff --git a/dev-shell/modules/packages.nix b/dev-shell/modules/packages.nix new file mode 100644 index 000000000..9aa5a2790 --- /dev/null +++ b/dev-shell/modules/packages.nix @@ -0,0 +1,13 @@ +# packages — extra packages for the dev shell (module-level) +# +# Usage in a module: +# packages = [ pkgs.ripgrep pkgs.jq ]; +{ lib, ... }: + +{ + options.packages = lib.mkOption { + type = lib.types.listOf lib.types.package; + default = [ ]; + description = "Extra packages to include in the dev shell."; + }; +} diff --git a/dev-shell/modules/scripts.nix b/dev-shell/modules/scripts.nix new file mode 100644 index 000000000..7b9c2b1a7 --- /dev/null +++ b/dev-shell/modules/scripts.nix @@ -0,0 +1,18 @@ +# scripts — define named shell scripts available in the dev shell +# +# Usage: +# scripts.hello = "echo hello world"; +# scripts.build = "cargo build --release"; +{ lib, ... }: + +{ + options.scripts = lib.mkOption { + type = lib.types.attrsOf lib.types.str; + default = { }; + description = "Named shell scripts to make available in the dev shell."; + example = { + build = "cargo build --release"; + test = "cargo test"; + }; + }; +} diff --git a/dev-shell/modules/treefmt.nix b/dev-shell/modules/treefmt.nix new file mode 100644 index 000000000..f734a092e --- /dev/null +++ b/dev-shell/modules/treefmt.nix @@ -0,0 +1,11 @@ +# treefmt — one CLI to format the whole tree +# +# Usage: +# treefmt.enable = true; +{ lib, ... }: + +{ + options.treefmt = { + enable = lib.mkEnableOption "treefmt, a unified code formatter"; + }; +} diff --git a/ekaos/modules/languages/erlang.nix b/ekaos/modules/languages/erlang.nix index e9e400253..65652f72e 100644 --- a/ekaos/modules/languages/erlang.nix +++ b/ekaos/modules/languages/erlang.nix @@ -12,7 +12,6 @@ let name = "erlang"; defaultPackage = pkgs: pkgs.erlang; resolveVersion = langLib.mkMajorVersionResolver "erlang"; - defaultLspPackage = pkgs: pkgs.erlang-language-platform; }; in diff --git a/ekaos/modules/languages/go.nix b/ekaos/modules/languages/go.nix index 4eb61a802..a632da7dd 100644 --- a/ekaos/modules/languages/go.nix +++ b/ekaos/modules/languages/go.nix @@ -20,7 +20,6 @@ let mod = langLib.mkLanguageModule { name = "go"; defaultPackage = pkgs: pkgs.go; - defaultLspPackage = pkgs: pkgs.gopls; environmentVariables = _: { GOPATH = "$HOME/go"; }; diff --git a/ekaos/modules/languages/java.nix b/ekaos/modules/languages/java.nix index 5b8f99014..37f5ba8b4 100644 --- a/ekaos/modules/languages/java.nix +++ b/ekaos/modules/languages/java.nix @@ -1,4 +1,8 @@ # Java programming language module +# +# Usage: +# languages.java.enable = true; +# languages.java.version = "21"; # optional: select specific version { config, lib, diff --git a/ekaos/modules/languages/javascript.nix b/ekaos/modules/languages/javascript.nix index abe082ddc..a18245a79 100644 --- a/ekaos/modules/languages/javascript.nix +++ b/ekaos/modules/languages/javascript.nix @@ -1,4 +1,7 @@ # JavaScript programming language module +# +# Usage: +# languages.javascript.enable = true; { config, lib, @@ -11,7 +14,6 @@ let mod = langLib.mkLanguageModule { name = "javascript"; defaultPackage = pkgs: pkgs.nodejs; - defaultLspPackage = pkgs: pkgs.typescript-language-server; resolveVersion = langLib.mkMajorVersionResolver "nodejs"; environmentVariables = _: { NODE_PATH = "$HOME/.node_modules"; diff --git a/ekaos/modules/languages/kotlin.nix b/ekaos/modules/languages/kotlin.nix index 5bc5c1f85..3a9fb0326 100644 --- a/ekaos/modules/languages/kotlin.nix +++ b/ekaos/modules/languages/kotlin.nix @@ -11,7 +11,6 @@ let mod = langLib.mkLanguageModule { name = "kotlin"; defaultPackage = pkgs: pkgs.kotlin; - }; in diff --git a/ekaos/modules/languages/lua.nix b/ekaos/modules/languages/lua.nix index 41f929aff..00330b135 100644 --- a/ekaos/modules/languages/lua.nix +++ b/ekaos/modules/languages/lua.nix @@ -11,7 +11,6 @@ let mod = langLib.mkLanguageModule { name = "lua"; defaultPackage = pkgs: pkgs.lua; - defaultLspPackage = pkgs: pkgs.lua-language-server; }; in diff --git a/ekaos/modules/languages/nodejs.nix b/ekaos/modules/languages/nodejs.nix index 17d702350..9b898fded 100644 --- a/ekaos/modules/languages/nodejs.nix +++ b/ekaos/modules/languages/nodejs.nix @@ -1,4 +1,8 @@ # Node.js programming language module +# +# Usage: +# languages.nodejs.enable = true; +# languages.nodejs.version = "22"; # optional: select specific version { config, lib, @@ -11,7 +15,6 @@ let mod = langLib.mkLanguageModule { name = "nodejs"; defaultPackage = pkgs: pkgs.nodejs; - defaultLspPackage = pkgs: pkgs.typescript-language-server; resolveVersion = langLib.mkMajorVersionResolver "nodejs"; environmentVariables = _: { NODE_PATH = "$HOME/.node_modules"; diff --git a/ekaos/modules/languages/python.nix b/ekaos/modules/languages/python.nix index a54119ad0..a77a2edfb 100644 --- a/ekaos/modules/languages/python.nix +++ b/ekaos/modules/languages/python.nix @@ -1,4 +1,7 @@ # Python programming language module +# +# Usage: +# languages.python.enable = true; { config, lib, @@ -11,7 +14,6 @@ let mod = langLib.mkLanguageModule { name = "python"; defaultPackage = pkgs: pkgs.python3; - defaultLspPackage = pkgs: pkgs.pyright; }; in diff --git a/ekaos/modules/languages/ruby.nix b/ekaos/modules/languages/ruby.nix index 797dc75e6..f9a3a79f0 100644 --- a/ekaos/modules/languages/ruby.nix +++ b/ekaos/modules/languages/ruby.nix @@ -1,4 +1,7 @@ # Ruby programming language module +# +# Usage: +# languages.ruby.enable = true; { config, lib, diff --git a/ekaos/modules/languages/rust.nix b/ekaos/modules/languages/rust.nix index 8aebc1fea..4ebd67fa1 100644 --- a/ekaos/modules/languages/rust.nix +++ b/ekaos/modules/languages/rust.nix @@ -6,11 +6,6 @@ # languages.rust.enable = true; # languages.rust.version = "1.98"; # optional: select specific version # -# # Include additional tools: -# languages.rust.cargo.enable = true; # default: true -# languages.rust.clippy.enable = true; # default: true -# languages.rust.rustfmt.enable = true; # default: true -# # # Per-user: # users.users.alice.languages.rust.enable = true; { @@ -26,56 +21,10 @@ let mod = langLib.mkLanguageModule { name = "rust"; defaultPackage = pkgs': pkgs'.rust; - defaultLspPackage = pkgs': pkgs'.rust-analyzer; environmentVariables = _: { CARGO_HOME = "$HOME/.cargo"; }; sessionPath = _: [ "$HOME/.cargo/bin" ]; - - extraOptions = { - cargo = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Whether to include cargo."; - }; - }; - - clippy = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Whether to include clippy."; - }; - }; - - rustfmt = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Whether to include rustfmt."; - }; - }; - }; - - # Extra module with full config access for wiring companion tools - imports = [ - ( - { config, lib, ... }: - let - cfg = config.languages.rust; - rustPkgs = cfg.package.pkgs or { }; - in - { - config = lib.mkIf cfg.enable { - environment.packages = - lib.optional (cfg.cargo.enable && rustPkgs ? cargo) rustPkgs.cargo - ++ lib.optional (cfg.clippy.enable && rustPkgs ? clippy) rustPkgs.clippy - ++ lib.optional (cfg.rustfmt.enable && rustPkgs ? rustfmt) rustPkgs.rustfmt; - }; - } - ) - ]; }; in diff --git a/ekaos/modules/languages/scala.nix b/ekaos/modules/languages/scala.nix index d8e68d544..d2d52e142 100644 --- a/ekaos/modules/languages/scala.nix +++ b/ekaos/modules/languages/scala.nix @@ -1,4 +1,7 @@ # Scala programming language module +# +# Usage: +# languages.scala.enable = true; { config, lib, @@ -11,7 +14,6 @@ let mod = langLib.mkLanguageModule { name = "scala"; defaultPackage = pkgs: pkgs.scala; - }; in diff --git a/ekaos/modules/languages/typescript.nix b/ekaos/modules/languages/typescript.nix index 9996f4144..01c19dcdc 100644 --- a/ekaos/modules/languages/typescript.nix +++ b/ekaos/modules/languages/typescript.nix @@ -1,4 +1,7 @@ # TypeScript programming language module +# +# Usage: +# languages.typescript.enable = true; { config, lib, @@ -11,7 +14,6 @@ let mod = langLib.mkLanguageModule { name = "typescript"; defaultPackage = pkgs: pkgs.nodejs; - defaultLspPackage = pkgs: pkgs.typescript-language-server; resolveVersion = langLib.mkMajorVersionResolver "nodejs"; environmentVariables = _: { NODE_PATH = "$HOME/.node_modules"; diff --git a/ekaos/modules/languages/zig.nix b/ekaos/modules/languages/zig.nix index 8978b6c6a..8fe673f6d 100644 --- a/ekaos/modules/languages/zig.nix +++ b/ekaos/modules/languages/zig.nix @@ -20,7 +20,6 @@ let mod = langLib.mkLanguageModule { name = "zig"; defaultPackage = pkgs: pkgs.zig; - defaultLspPackage = pkgs: pkgs.zls; environmentVariables = _: { ZIG_GLOBAL_CACHE_DIR = "$HOME/.cache/zig"; }; diff --git a/pkgs/erlang-language-platform/default.nix b/pkgs/erlang-language-platform/default.nix deleted file mode 100644 index fa4166041..000000000 --- a/pkgs/erlang-language-platform/default.nix +++ /dev/null @@ -1,67 +0,0 @@ -# erlang-language-platform — IDE-first library for Erlang (pre-built binary) -{ - stdenv, - lib, - fetchurl, - autoPatchelfHook, - erlang, -}: - -let - arch = if stdenv.hostPlatform.isAarch64 then "aarch64" else "x86_64"; - platform = - if stdenv.hostPlatform.isDarwin then - "elp-macos-${arch}-apple-darwin" - else - "elp-linux-${arch}-unknown-linux-gnu"; - otp_version = "otp-${lib.versions.major erlang.version}"; - release_major = "${platform}-${otp_version}"; - - hashes = builtins.fromJSON (builtins.readFile ./hashes.json); - - release_name = - let - hash_names = builtins.attrNames hashes; - found_name = lib.lists.findFirst (name: lib.strings.hasPrefix release_major name) false hash_names; - in - if found_name != false then - found_name - else - throw "erlang-language-platform does not support OTP version ${otp_version}"; -in -stdenv.mkDerivation { - pname = "erlang-language-platform"; - version = "2026-08-10"; - - src = fetchurl { - url = "https://github.com/WhatsApp/erlang-language-platform/releases/download/2026-08-10/${release_name}.tar.gz"; - hash = hashes.${release_name}; - }; - - nativeBuildInputs = lib.optionals stdenv.hostPlatform.isElf [ autoPatchelfHook ]; - - buildInputs = lib.optionals stdenv.hostPlatform.isElf [ (lib.getLib stdenv.cc.cc) ]; - - sourceRoot = "."; - - installPhase = '' - runHook preInstall - install -m755 -D elp $out/bin/elp - runHook postInstall - ''; - - meta = { - description = "IDE-first library for the semantic analysis of Erlang code, including LSP server"; - homepage = "https://github.com/WhatsApp/erlang-language-platform/"; - license = with lib.licenses; [ - mit - asl20 - ]; - platforms = [ - "aarch64-linux" - "x86_64-linux" - "aarch64-darwin" - ]; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; - }; -} diff --git a/pkgs/erlang-language-platform/hashes.json b/pkgs/erlang-language-platform/hashes.json deleted file mode 100644 index e33c017ac..000000000 --- a/pkgs/erlang-language-platform/hashes.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "elp-linux-aarch64-unknown-linux-gnu-otp-27.3": "sha256-Cvcb1i6VmYt+V+3SCDFBtg7atR0KLamI5ucau4jNPzQ=", - "elp-linux-aarch64-unknown-linux-gnu-otp-28.5": "sha256-7t5xHHSqk9af06G2X7iPEBafy/+40vyDBIYDPYL1zO8=", - "elp-linux-aarch64-unknown-linux-gnu-otp-29": "sha256-kcmCh/VzhmB2blcuzcHf+bBtBB6tG0Y/BCLcW/xkmfw=", - "elp-linux-x86_64-unknown-linux-gnu-otp-27.3": "sha256-wOZyqDgbXqeH6UqHKEdWexDZtNAFPKEUj0sjb2GvPGM=", - "elp-linux-x86_64-unknown-linux-gnu-otp-28.5": "sha256-dzK/P1Ky/Ai29FQo+4oU7noT04rkWC5vtP7JF2zm4PA=", - "elp-linux-x86_64-unknown-linux-gnu-otp-29": "sha256-cR6oWbnJmOuZD55kfgMCnDqh37YbF35t5b+VxptiaVs=", - "elp-macos-aarch64-apple-darwin-otp-27.3": "sha256-cxepk07cQR6UOS1cxyDy4MGBEueVkGBniq701trN2fI=", - "elp-macos-aarch64-apple-darwin-otp-28.5": "sha256-KWAgiiSyuX5zbhVxs1Dbk68AEPkW0Tb5I5BKFXzAfFU=", - "elp-macos-aarch64-apple-darwin-otp-29": "sha256-vUSQZh30uF9lVByc4EIUI5ZzAEBIa981y13xsrrCJ2E=" -} diff --git a/pkgs/gopls/default.nix b/pkgs/gopls/default.nix deleted file mode 100644 index f08011708..000000000 --- a/pkgs/gopls/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -# gopls — official Go language server -{ - lib, - buildGoModule, - fetchFromGitHub, -}: - -buildGoModule (finalAttrs: { - pname = "gopls"; - version = "0.23.0"; - - src = fetchFromGitHub { - owner = "golang"; - repo = "tools"; - tag = "gopls/v${finalAttrs.version}"; - hash = "sha256-GTRZ0tS2a7Cx4qRf6PfxhkGVPYRoLYOmE+W/2x9Pttk="; - }; - - modRoot = "gopls"; - vendorHash = "sha256-rvm33C3z3T6moeEQ4C7aG+dT8ROqmpBFehIpwGFZMrU="; - - ldflags = [ "-X main.version=v${finalAttrs.version}" ]; - - subPackages = [ "." ]; - - meta = { - description = "Official language server for the Go language"; - homepage = "https://github.com/golang/tools/tree/master/gopls"; - license = lib.licenses.bsd3; - mainProgram = "gopls"; - }; -}) diff --git a/pkgs/lua-language-server/default.nix b/pkgs/lua-language-server/default.nix deleted file mode 100644 index 348091207..000000000 --- a/pkgs/lua-language-server/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -# lua-language-server — Language server for Lua -{ - lib, - stdenv, - fetchFromGitHub, - ninja, - makeWrapper, - fmt, - libbfd, - libunwind, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "lua-language-server"; - version = "3.19.1"; - - src = fetchFromGitHub { - owner = "luals"; - repo = "lua-language-server"; - tag = finalAttrs.version; - hash = "sha256-3Sm958Fr5wn54B+aJMaK+cR/F10dPIcGvBrhjHTy2us="; - fetchSubmodules = true; - }; - - nativeBuildInputs = [ - ninja - makeWrapper - ]; - - buildInputs = [ - fmt - libbfd - libunwind - ]; - - env.NIX_LDFLAGS = "-lfmt"; - - postPatch = '' - # use system fmt library - for d in 3rd/bee.lua 3rd/luamake/bee.lua - do - rm -r $d/3rd/fmt/* - touch $d/3rd/fmt/format.cc - substituteInPlace $d/bee/nonstd/format.h $d/bee/nonstd/print.h \ - --replace-fail "include <3rd/fmt/fmt" "include $out - ''; - - # Stage 1: install root workspace deps (glob, jsonc-parser) - pyright-root = buildNpmPackage { - pname = "pyright-root"; - inherit version src; - npmDepsHash = "sha256-0w/CYFfAaEK6LKZZc9+nt5zUmxCqCcJfSZRAroOhJOA="; - dontNpmBuild = true; - postPatch = '' - cp ${patchedPackageJSON} ./package.json - cp ${./package-lock.json} ./package-lock.json - ''; - installPhase = '' - runHook preInstall - cp -r . "$out" - runHook postInstall - ''; - }; - - # Stage 2: install pyright-internal deps (vscode-languageserver, etc) - pyright-internal = buildNpmPackage { - pname = "pyright-internal"; - inherit version src; - sourceRoot = "${src.name}/packages/pyright-internal"; - npmDepsHash = "sha256-skTnHcET5ujyKTEqh3oyiBwHF6yvaY8c/ccOnwQQKJ0="; - dontNpmBuild = true; - installPhase = '' - runHook preInstall - cp -r . "$out" - runHook postInstall - ''; - }; -in - -# Stage 3: install pyright CLI deps and link workspace node_modules -buildNpmPackage rec { - pname = "pyright"; - inherit version src; - - sourceRoot = "${src.name}/packages/pyright"; - npmDepsHash = "sha256-rgENiJVYKMSZimWzlvaaiC6Z5/OEdk4W47gkjcuv0nw="; - - postPatch = '' - chmod +w ../../ - ln -s ${pyright-root}/node_modules ../../node_modules - chmod +w ../pyright-internal - ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules - ''; - - dontNpmBuild = true; - - postInstall = '' - mkdir -p $out/bin - ln -s $out/lib/node_modules/pyright/index.js $out/bin/pyright - ln -s $out/lib/node_modules/pyright/langserver.index.js $out/bin/pyright-langserver - ''; - - meta = { - description = "Type checker for the Python language"; - homepage = "https://github.com/Microsoft/pyright"; - license = lib.licenses.mit; - mainProgram = "pyright"; - }; -} diff --git a/pkgs/pyright/package-lock.json b/pkgs/pyright/package-lock.json deleted file mode 100644 index b2ba1a8c0..000000000 --- a/pkgs/pyright/package-lock.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "name": "pyright-root", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "pyright-root", - "devDependencies": { - "glob": "^11.1.0", - "jsonc-parser": "^3.3.1" - } - }, - "node_modules/@isaacs/cliui": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/brace-expansion": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", - "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^9.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jsonc-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", - "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", - "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - } - } -} diff --git a/pkgs/rapidfuzz-cpp/default.nix b/pkgs/rapidfuzz-cpp/default.nix deleted file mode 100644 index 09ef075b6..000000000 --- a/pkgs/rapidfuzz-cpp/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - cmake, - catch2_3, - python3Packages, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "rapidfuzz-cpp"; - version = "3.3.4"; - - outputs = [ - "out" - "include" - ]; - outputInclude = "include"; - - src = fetchFromGitHub { - owner = "rapidfuzz"; - repo = "rapidfuzz-cpp"; - rev = "v${finalAttrs.version}"; - hash = "sha256-rfW4k6D0vrPwZ/6G9NuDLhZiyhr9s/tMo6a6t//Po04="; - }; - - nativeBuildInputs = [ - cmake - cmake.configurePhaseHook - ]; - - cmakeEntries = { - ${if finalAttrs.finalPackage.doCheck then "RAPIDFUZZ_BUILD_TESTING" else null} = true; - }; - - CXXFLAGS = lib.optionals stdenv.cc.isClang [ - # error: no member named 'fill' in namespace 'std' - "-include algorithm" - ]; - - nativeCheckInputs = [ - catch2_3 - ]; - - passthru = { - tests = { - /** - `python3Packages.levenshtein` crucially depends on `rapidfuzz-cpp` - */ - inherit (python3Packages) levenshtein; - }; - }; - - meta = { - description = "Rapid fuzzy string matching in C++ using the Levenshtein Distance"; - homepage = "https://github.com/rapidfuzz/rapidfuzz-cpp"; - changelog = "https://github.com/rapidfuzz/rapidfuzz-cpp/blob/${finalAttrs.src.rev}/CHANGELOG.md"; - license = lib.licenses.mit; - platforms = lib.platforms.unix; - }; -}) diff --git a/pkgs/sbt/default.nix b/pkgs/sbt/default.nix deleted file mode 100644 index d025f0f77..000000000 --- a/pkgs/sbt/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - java, - autoPatchelfHook, - zlib, - ncurses, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "sbt"; - version = "2.0.8"; - - src = fetchurl { - url = "https://github.com/sbt/sbt/releases/download/v${finalAttrs.version}/sbt-${finalAttrs.version}.tgz"; - hash = "sha256-QMKjF4bTaihvDZ6L/fURgeVAjE+Z6rhVVuK81eEuq0Q="; - }; - - postPatch = '' - echo -java-home ${java.home} >>conf/sbtopts - ''; - - nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]; - - buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ - stdenv.cc.cc # libstdc++.so.6 - zlib - ]; - - propagatedBuildInputs = [ - # for infocmp - ncurses - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/share/sbt $out/bin - cp -ra . $out/share/sbt - ln -sT ../share/sbt/bin/sbt $out/bin/sbt - ln -sT ../share/sbt/bin/sbtn-${ - if (stdenv.hostPlatform.isDarwin) then - "universal-apple-darwin" - else if (stdenv.hostPlatform.isAarch64) then - "aarch64-pc-linux" - else - "x86_64-pc-linux" - } $out/bin/sbtn - - runHook postInstall - ''; - - meta = { - homepage = "https://www.scala-sbt.org/"; - license = lib.licenses.bsd3; - sourceProvenance = with lib.sourceTypes; [ - binaryBytecode - binaryNativeCode - ]; - description = "Build tool for Scala, Java and more"; - platforms = lib.platforms.unix; - mainProgram = "sbt"; - }; -}) diff --git a/pkgs/sbt/scala-native.nix b/pkgs/sbt/scala-native.nix deleted file mode 100644 index 012b55074..000000000 --- a/pkgs/sbt/scala-native.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - lib, - sbt, - makeWrapper, - boehmgc, - libunwind, - re2, - llvmPackages, - zlib, -}: - -sbt.overrideAttrs (previousAttrs: { - nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [ makeWrapper ]; - - postFixup = (previousAttrs.postFixup or "") + '' - wrapProgram $out/bin/sbt \ - --set CLANG_PATH "${llvmPackages.clang}/bin/clang" \ - --set CLANGPP_PATH "${llvmPackages.clang}/bin/clang" \ - --set CPATH "${ - lib.makeSearchPathOutput "dev" "include" [ - re2 - zlib - boehmgc - libunwind - llvmPackages.libcxx - ] - }/c++/v1" \ - --set LIBRARY_PATH "${ - lib.makeLibraryPath [ - re2 - zlib - boehmgc - libunwind - llvmPackages.libcxx - ] - }" \ - --set NIX_CFLAGS_LINK "-lc++" - ''; -}) diff --git a/pkgs/taskflow/default.nix b/pkgs/taskflow/default.nix deleted file mode 100644 index e1f147980..000000000 --- a/pkgs/taskflow/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - cmake, - doctest, - fetchFromGitHub, - lib, - replaceVars, - stdenv, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "taskflow"; - version = "4.1.0"; - - outputs = [ - "out" - "include" - ]; - outputInclude = "include"; - - src = fetchFromGitHub { - owner = "taskflow"; - repo = "taskflow"; - tag = "v${finalAttrs.version}"; - hash = "sha256-IxorLV5qQ8veFiwRka8k5oMR51KTUn10MbCIYNVToLk="; - }; - - patches = [ - (replaceVars ./unvendor-doctest.patch { - inherit doctest; - }) - ]; - - postPatch = '' - rm -r 3rd-party - - # tries to use x86 intrinsics on aarch64-darwin - sed -i '/^#if __has_include ()/,/^#endif/d' taskflow/utility/os.hpp - ''; - - nativeBuildInputs = [ - cmake - cmake.configurePhaseHook - ]; - - cmakeEntries = { - # FIXME remove once Taskflow is updated to 4.0.0 - CMAKE_CXX_STANDARD = "20"; - # building the tests implies running them in the buildPhase - TF_BUILD_TESTS = finalAttrs.finalPackage.doCheck; - }; - - # Massive test suite - doCheck = false; - - meta = { - description = "General-purpose Parallel and Heterogeneous Task Programming System"; - homepage = "https://taskflow.github.io/"; - changelog = - let - release = lib.replaceStrings [ "." ] [ "-" ] finalAttrs.version; - in - "https://taskflow.github.io/taskflow/release-${release}.html"; - license = lib.licenses.mit; - platforms = lib.platforms.unix; - }; -}) diff --git a/pkgs/taskflow/unvendor-doctest.patch b/pkgs/taskflow/unvendor-doctest.patch deleted file mode 100644 index 2caea7fe4..000000000 --- a/pkgs/taskflow/unvendor-doctest.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt -index c1fef333..eaf387ea 100644 ---- a/unittests/CMakeLists.txt -+++ b/unittests/CMakeLists.txt -@@ -1,6 +1,6 @@ - enable_testing() - --include(${TF_3RD_PARTY_DIR}/doctest/doctest.cmake) -+include(@doctest@/lib/cmake/doctest/doctest.cmake) - - list(APPEND TF_UNITTESTS - test_utility -@@ -44,7 +44,7 @@ endif() - foreach(unittest IN LISTS TF_UNITTESTS) - add_executable(${unittest} ${unittest}.cpp) - target_link_libraries(${unittest} ${PROJECT_NAME} ${ATOMIC_LIBRARY} tf::default_settings) -- target_include_directories(${unittest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest) -+ target_include_directories(${unittest} PRIVATE @doctest@/include/doctest) - doctest_discover_tests(${unittest}) - endforeach() - diff --git a/pkgs/typescript-go/default.nix b/pkgs/typescript-go/default.nix deleted file mode 100644 index 5907094af..000000000 --- a/pkgs/typescript-go/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - buildGoModule, - fetchFromGitHub, - go, -}: - -(buildGoModule.override { go = go.v1_26; }) (finalAttrs: { - pname = "typescript-go"; - version = "7.0.2"; - - src = fetchFromGitHub { - owner = "microsoft"; - repo = "typescript-go"; - tag = "typescript/v${finalAttrs.version}"; - hash = "sha256-fRejdQSwaxSS2pjHrbJO2CQgZS5lWJmBNEM/TgbJTJ8="; - }; - - vendorHash = "sha256-q6dMb2ab4uZ3GTrcA7v2JzfmOM+ZzBcJN6gKOpLfM/k="; - - ldflags = [ - "-s" - "-w" - ]; - - env.CGO_ENABLED = 0; - - subPackages = [ - "cmd/tsgo" - ]; - - postInstall = '' - ln -s "$out/bin/tsgo" "$out/bin/tsc" - ''; - - meta = { - description = "Go implementation of TypeScript"; - homepage = "https://github.com/microsoft/typescript-go"; - license = lib.licenses.asl20; - mainProgram = "tsc"; - }; -}) diff --git a/pkgs/typescript-language-server/default.nix b/pkgs/typescript-language-server/default.nix deleted file mode 100644 index 2989caad9..000000000 --- a/pkgs/typescript-language-server/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -# typescript-language-server — LSP server for TypeScript/JavaScript -# -# Zero runtime npm dependencies — installed directly from the registry tarball. -{ - lib, - stdenv, - fetchurl, - makeWrapper, - nodejs, - typescript-go, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "typescript-language-server"; - version = "6.0.0"; - - src = fetchurl { - url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-${finalAttrs.version}.tgz"; - hash = "sha512-LXtzY3UZGfghWA5eRU6/T5j1+YiGRgy14mR3GOKyTKlE1op1TYKQnLVxwBsmnXeDhGLuvzZyIHBAqvrekAITYQ=="; - }; - - sourceRoot = "package"; - - nativeBuildInputs = [ makeWrapper ]; - - dontBuild = true; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/typescript-language-server $out/bin - cp -r . $out/lib/typescript-language-server/ - - makeWrapper ${nodejs}/bin/node $out/bin/typescript-language-server \ - --add-flags "$out/lib/typescript-language-server/lib/cli.mjs" \ - --prefix PATH : ${lib.makeBinPath [ typescript-go ]} - - runHook postInstall - ''; - - meta = { - description = "TypeScript & JavaScript Language Server (LSP)"; - homepage = "https://github.com/typescript-language-server/typescript-language-server"; - license = lib.licenses.asl20; - mainProgram = "typescript-language-server"; - }; -}) diff --git a/pkgs/zls/default.nix b/pkgs/zls/default.nix deleted file mode 100644 index 65d59cdd1..000000000 --- a/pkgs/zls/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -# zls — Zig Language Server -{ - lib, - stdenv, - fetchFromGitHub, - zig, - callPackage, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "zls"; - version = "0.16.0"; - - src = fetchFromGitHub { - owner = "zigtools"; - repo = "zls"; - tag = finalAttrs.version; - fetchSubmodules = true; - hash = "sha256-k0xWObsw9K12BKfK+UB5TieWDFEFfBQhN1X1NO35fWk="; - }; - - nativeBuildInputs = [ zig ]; - - dontConfigure = true; - - zigBuildFlags = [ - "--system" - "${callPackage ./deps.nix { }}" - ]; - - buildPhase = '' - runHook preBuild - - export ZIG_GLOBAL_CACHE_DIR="$TMPDIR/zig-cache" - export ZIG_LOCAL_CACHE_DIR="$TMPDIR/zig-local-cache" - - zig build ''${zigBuildFlags[@]} -Doptimize=ReleaseSafe - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - install -Dm755 zig-out/bin/zls $out/bin/zls - runHook postInstall - ''; - - meta = { - description = "Zig LSP implementation + Zig Language Server"; - homepage = "https://github.com/zigtools/zls"; - license = lib.licenses.mit; - mainProgram = "zls"; - platforms = lib.platforms.unix; - }; -}) diff --git a/pkgs/zls/deps.nix b/pkgs/zls/deps.nix deleted file mode 100644 index 544f1bb2d..000000000 --- a/pkgs/zls/deps.nix +++ /dev/null @@ -1,27 +0,0 @@ -# generated by zon2nix (https://github.com/nix-community/zon2nix) - -{ linkFarm, fetchzip }: - -linkFarm "zig-packages" [ - { - name = "known_folders-0.0.0-Fy-PJk3KAACzUg2us_0JvQQmod1ZA8jBt7MuoKCihq88"; - path = fetchzip { - url = "https://github.com/ziglibs/known-folders/archive/d6d03830968cca6b7b9f24fd97ee348346a6905d.tar.gz"; - hash = "sha256-8LlAnEwuoeQuN9V5nUuh2UwXRhS5KOwDkpm6yuOfClk="; - }; - } - { - name = "diffz-0.0.1-G2tlISzNAQCldmOcINavGmF1zdt20NFPXeM8d07jp_68"; - path = fetchzip { - url = "https://github.com/ziglibs/diffz/archive/b39fe07e7fdbcf56e43ba2890b9f484f16969f90.tar.gz"; - hash = "sha256-mmgaOXFpoBYMsNdVkoFa7wJKkiXtzXIbSxRUgWLdVUc="; - }; - } - { - name = "lsp_kit-0.1.0-bi_PL3IyDACfp1xdTnkiOHEok2YpPCCCJHuuOcNzjl1D"; - path = fetchzip { - url = "https://github.com/zigtools/lsp-kit/archive/b886a2b0d5cee85ecbcc3089b863f7517cc9ff7f.tar.gz"; - hash = "sha256-367wPydvnpl9RYlTrXwk4bZ/ui9DbYjeY/VDYs7ZJRs="; - }; - } -] diff --git a/python/pkgs/betamax/default.nix b/python/pkgs/betamax/default.nix deleted file mode 100644 index 3f5d3a965..000000000 --- a/python/pkgs/betamax/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - pytestCheckHook, - requests, - setuptools, -}: - -buildPythonPackage (finalAttrs: { - pname = "betamax"; - version = "0.9.0"; - pyproject = true; - - src = fetchPypi { - inherit (finalAttrs) pname version; - hash = "sha256-gjFuFnm8aHnjyDMY0Ba1S3ySJf8IxEYt5IE+IgONX5Q="; - }; - - build-system = [ setuptools ]; - - dependencies = [ requests ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - testPaths = [ "tests" ]; - - pythonImportsCheck = [ "betamax" ]; - - disabledTestPaths = [ - # Tests require network access - "tests/integration/test_hooks.py" - "tests/integration/test_placeholders.py" - "tests/integration/test_record_modes.py" - "tests/integration/test_unicode.py" - "tests/regression/test_gzip_compression.py" - "tests/regression/test_requests_2_11_body_matcher.py" - ]; - - meta = { - description = "VCR imitation for requests"; - homepage = "https://betamax.readthedocs.org/"; - changelog = "https://github.com/betamaxpy/betamax/blob/${finalAttrs.version}/HISTORY.rst"; - license = lib.licenses.asl20; - }; -}) diff --git a/python/pkgs/cachecontrol/default.nix b/python/pkgs/cachecontrol/default.nix deleted file mode 100644 index 92de4fdc5..000000000 --- a/python/pkgs/cachecontrol/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - msgpack, - requests, - uv-build, - filelock ? null, - redis ? null, -}: - -buildPythonPackage rec { - pname = "cachecontrol"; - version = "0.14.4"; - pyproject = true; - - __darwinAllowLocalNetworking = true; - - src = fetchFromGitHub { - owner = "ionrock"; - repo = "cachecontrol"; - tag = "v${version}"; - hash = "sha256-627SqJocVOO0AfI8vswPqOr15MA/Lx7RLAdRAXzWu84="; - }; - - build-system = [ uv-build ]; - - dependencies = [ - msgpack - requests - ]; - - optional-dependencies = { - filecache = [ filelock ]; - redis = [ redis ]; - }; - - nativeCheckInputs = lib.concatAttrValues optional-dependencies; - - pythonImportsCheck = [ "cachecontrol" ]; - - meta = { - description = "Httplib2 caching for requests"; - mainProgram = "doesitcache"; - homepage = "https://github.com/ionrock/cachecontrol"; - changelog = "https://github.com/psf/cachecontrol/releases/tag/${src.tag}"; - license = lib.licenses.asl20; - - }; -} diff --git a/python/pkgs/cleo/default.nix b/python/pkgs/cleo/default.nix deleted file mode 100644 index 5b2c1e740..000000000 --- a/python/pkgs/cleo/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - crashtest, - poetry-core, - pytest-mock, - pytestCheckHook, - rapidfuzz, -}: - -buildPythonPackage (finalAttrs: { - pname = "cleo"; - version = "2.2.1"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "python-poetry"; - repo = "cleo"; - tag = finalAttrs.version; - hash = "sha256-+OvE09hbF6McdXpXdv5UBdZ0LiSOTL8xyE/+bBNIFNk="; - }; - - nativeBuildInputs = [ - poetry-core - ]; - - pythonRelaxDeps = [ "rapidfuzz" ]; - - propagatedBuildInputs = [ - crashtest - rapidfuzz - ]; - - pythonImportsCheck = [ - "cleo" - "cleo.application" - "cleo.commands.command" - "cleo.helpers" - ]; - - nativeCheckInputs = [ - pytest-mock - pytestCheckHook - ]; - - testPaths = [ "tests" ]; - - meta = { - homepage = "https://github.com/python-poetry/cleo"; - changelog = "https://github.com/python-poetry/cleo/blob/${finalAttrs.src.rev}/CHANGELOG.md"; - description = "Allows you to create beautiful and testable command-line interfaces"; - license = lib.licenses.mit; - - }; -}) diff --git a/python/pkgs/crashtest/default.nix b/python/pkgs/crashtest/default.nix deleted file mode 100644 index d6e873243..000000000 --- a/python/pkgs/crashtest/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - pythonAtLeast, -}: - -buildPythonPackage rec { - pname = "crashtest"; - version = "0.4.1"; - format = "setuptools"; - disabled = !(pythonAtLeast "3.6"); - - src = fetchPypi { - inherit pname version; - hash = "sha256-gNex8xbr+9Qp9kgHbWJ1yHe6MLpIl53kGRcUp1Jm8M4="; - }; - - # has tests, but only on GitHub, however the pyproject build fails for me - pythonImportsCheck = [ - "crashtest.frame" - "crashtest.inspector" - ]; - - meta = { - homepage = "https://github.com/sdispater/crashtest"; - description = "Manage Python errors with ease"; - license = lib.licenses.mit; - - }; -} diff --git a/python/pkgs/findpython/default.nix b/python/pkgs/findpython/default.nix deleted file mode 100644 index d9c2e94d3..000000000 --- a/python/pkgs/findpython/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - pythonOlder, - - # build time - pdm-backend, - - # runtime - packaging, - platformdirs, -}: - -buildPythonPackage rec { - pname = "findpython"; - version = "0.8.0"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-U7MiZIdN+lmQvQnXF4GThtjbMUnYn+IPiP4QeN4oa64="; - }; - - build-system = [ pdm-backend ]; - - dependencies = [ - packaging - platformdirs - ]; - - pythonImportsCheck = [ "findpython" ]; - - meta = { - description = "Utility to find python versions on your system"; - mainProgram = "findpython"; - homepage = "https://github.com/frostming/findpython"; - changelog = "https://github.com/frostming/findpython/releases/tag/${version}"; - license = lib.licenses.mit; - - }; -} diff --git a/python/pkgs/pbs-installer/default.nix b/python/pkgs/pbs-installer/default.nix deleted file mode 100644 index 3c23c36e3..000000000 --- a/python/pkgs/pbs-installer/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - pdm-backend, - httpx, - zstandard, -}: - -buildPythonPackage rec { - pname = "pbs-installer"; - version = "2026.09.01"; - pyproject = true; - - src = fetchFromGitHub { - owner = "frostming"; - repo = "pbs-installer"; - tag = version; - hash = "sha256-DmS0RThERXTCufIX4oAG3qfxzs324Ol2oeqN+iKiNfs="; - }; - - build-system = [ pdm-backend ]; - - optional-dependencies = { - all = optional-dependencies.install ++ optional-dependencies.download; - download = [ httpx ]; - install = [ zstandard ]; - }; - - pythonImportsCheck = [ "pbs_installer" ]; - - # upstream has no test - doCheck = false; - - meta = { - description = "Installer for Python Build Standalone"; - homepage = "https://github.com/frostming/pbs-installer"; - changelog = "https://github.com/frostming/pbs-installer/releases/tag/${src.tag}"; - license = lib.licenses.mit; - }; -} diff --git a/python/pkgs/pdm-backend/default.nix b/python/pkgs/pdm-backend/default.nix deleted file mode 100644 index 2a8b08b6d..000000000 --- a/python/pkgs/pdm-backend/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - buildPythonPackage, - pythonOlder, - fetchFromGitHub, - - # propagates - importlib-metadata, -}: - -buildPythonPackage rec { - pname = "pdm-backend"; - version = "2.4.9"; - pyproject = true; - - src = fetchFromGitHub { - owner = "pdm-project"; - repo = "pdm-backend"; - tag = version; - hash = "sha256-082ZSfRUGUV8DX+vuJeOd+HOuAfnKfZPZ3Lyhx6TRlE="; - }; - - env.PDM_BUILD_SCM_VERSION = version; - - dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; - - pythonImportsCheck = [ "pdm.backend" ]; - - setupHook = ./setup-hook.sh; - - meta = { - homepage = "https://github.com/pdm-project/pdm-backend"; - changelog = "https://github.com/pdm-project/pdm-backend/releases/tag/${version}"; - description = "Yet another PEP 517 backend"; - license = lib.licenses.mit; - - }; -} diff --git a/python/pkgs/pdm-backend/setup-hook.sh b/python/pkgs/pdm-backend/setup-hook.sh deleted file mode 100644 index c8b2fda6d..000000000 --- a/python/pkgs/pdm-backend/setup-hook.sh +++ /dev/null @@ -1,10 +0,0 @@ -pdm-version-pretend-hook() { - if [ -z "${PDM_BUILD_SCM_VERSION-}" ]; then - echo "Setting PDM_BUILD_SCM_VERSION to $version" - export PDM_BUILD_SCM_VERSION="$version" - fi -} - -if [ -z "${dontSetPdmBackendVersion-}" ]; then - preBuildHooks+=(pdm-version-pretend-hook) -fi diff --git a/python/pkgs/pkginfo/default.nix b/python/pkgs/pkginfo/default.nix deleted file mode 100644 index 8d65c0f7b..000000000 --- a/python/pkgs/pkginfo/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - setuptools, - pytestCheckHook, -}: - -buildPythonPackage (finalAttrs: { - pname = "pkginfo"; - version = "1.13"; - pyproject = true; - - src = fetchPypi { - inherit (finalAttrs) pname version; - hash = "sha256-T3BHHGQ/cf6EoGIwwOM8XFsSozsv0hv/FN2u9al0rbE="; - }; - - build-system = [ setuptools ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - # The test suite reads example metadata from `docs/examples/`. - testPaths = [ - "pkginfo" - "docs" - ]; - - disabledTests = [ - # wheel metadata version mismatch 2.1 vs 2.2 - "test_get_metadata_w_module" - "test_get_metadata_w_package_name" - "test_installed_ctor_w_dist_info" - "test_installed_ctor_w_name" - "test_installed_ctor_w_package" - # tests referencing fixture wheel/sdist archives in docs/examples/ - "test_wheel" - "test_get_metadata_w_wheel" - "test_sdist" - ]; - - # Most tests require fixture archives from docs/examples/ not present in PyPI sdist - disabledTestPaths = [ - "pkginfo/tests/test_sdist.py" - "pkginfo/tests/test_wheel.py" - "pkginfo/tests/test_utils.py" - "pkginfo/tests/test_bdist.py" - "pkginfo/tests/test_develop.py" - ]; - - pythonImportsCheck = [ "pkginfo" ]; - - meta = { - changelog = "https://pypi.org/project/pkginfo/#pkginfo-changelog"; - description = "Query metadatdata from sdists, bdists or installed packages"; - mainProgram = "pkginfo"; - homepage = "https://code.launchpad.net/~tseaver/pkginfo"; - longDescription = '' - This package provides an API for querying the distutils metadata - written in the PKG-INFO file inside a source distriubtion (an sdist) - or a binary distribution (e.g., created by running bdist_egg). It can - also query the EGG-INFO directory of an installed distribution, and the - *.egg-info stored in a "development checkout" (e.g, created by running - setup.py develop). - ''; - license = lib.licenses.mit; - }; -}) diff --git a/python/pkgs/poetry-dynamic-versioning/default.nix b/python/pkgs/poetry-dynamic-versioning/default.nix index d20c14763..0e5e04f60 100644 --- a/python/pkgs/poetry-dynamic-versioning/default.nix +++ b/python/pkgs/poetry-dynamic-versioning/default.nix @@ -5,7 +5,6 @@ fetchFromGitHub, jinja2, poetry-core, - poetry, pytestCheckHook, pythonOlder, tomlkit, @@ -36,7 +35,6 @@ buildPythonPackage rec { # Takes a long time nativeCheckInputs = [ pytestCheckHook - poetry ]; # virtualenv: error: argument dest: the destination . is not write-able at / diff --git a/python/pkgs/rapidfuzz/default.nix b/python/pkgs/rapidfuzz/default.nix deleted file mode 100644 index 4cafb5538..000000000 --- a/python/pkgs/rapidfuzz/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - lib, - stdenv, - buildPythonPackage, - fetchFromGitHub, - cmake, - cython, - ninja, - scikit-build-core, - numpy, - rapidfuzz-cpp, - taskflow, -}: - -buildPythonPackage rec { - pname = "rapidfuzz"; - version = "3.14.5"; - pyproject = true; - - src = fetchFromGitHub { - owner = "maxbachmann"; - repo = "RapidFuzz"; - tag = "v${version}"; - hash = "sha256-wF7eeSD6GQfN0EOwDvrgjMqN5u2wxXFlktQS7nIKgkU="; - }; - - build-system = [ - cmake - cython - ninja - scikit-build-core - ]; - - buildInputs = [ - rapidfuzz-cpp - taskflow - ]; - - # Taskflow 4.1's TaskflowConfigVersion.cmake uses SameMinorVersion - # compatibility, so find_package(Taskflow 4.0.0) fails against 4.1.x. - # Insert a version-matched find_package call so CMake finds the system copy. - postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace-fail \ - 'find_package(Taskflow 4.0.0 QUIET)' \ - 'find_package(Taskflow ${taskflow.version} QUIET)' - ''; - - env.RAPIDFUZZ_BUILD_EXTENSION = 1; - - optional-dependencies = { - all = [ numpy ]; - }; - - pythonImportsCheck = [ "rapidfuzz" ]; - - meta = { - description = "Rapid fuzzy string matching"; - homepage = "https://github.com/maxbachmann/RapidFuzz"; - changelog = "https://github.com/maxbachmann/RapidFuzz/blob/${src.tag}/CHANGELOG.rst"; - license = lib.licenses.mit; - - }; -} diff --git a/python/pkgs/requests-toolbelt/default.nix b/python/pkgs/requests-toolbelt/default.nix deleted file mode 100644 index b069d02f7..000000000 --- a/python/pkgs/requests-toolbelt/default.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - lib, - betamax, - buildPythonPackage, - fetchPypi, - pyopenssl, - pytestCheckHook, - requests, - trustme ? null, -}: - -buildPythonPackage (finalAttrs: { - pname = "requests-toolbelt"; - version = "1.0.0"; - format = "setuptools"; - - src = fetchPypi { - pname = "requests-toolbelt"; - inherit (finalAttrs) version; - hash = "sha256-doGgo9BHAStb3A7jfX+PB+vnarCMrsz8OSHOI8iNW8Y="; - }; - - propagatedBuildInputs = [ requests ]; - - doCheck = false; - nativeCheckInputs = [ - betamax - pyopenssl - pytestCheckHook - ] - ++ lib.optional (trustme != null) trustme; - - disabledTests = [ - # incompatible with urllib3 2.0 - "test_dump_response" - "test_dump_all" - "test_prepared_request_override_base" - "test_prepared_request_with_base" - "test_request_override_base" - "test_request_with_base" - ]; - - pythonImportsCheck = [ "requests_toolbelt" ]; - - passthru.tests = { - unitTests = finalAttrs.finalPackage.overridePythonAttrs { doCheck = true; }; - }; - - meta = { - description = "Toolbelt of useful classes and functions to be used with requests"; - homepage = "http://toolbelt.rtfd.org"; - changelog = "https://github.com/requests/toolbelt/blob/${finalAttrs.version}/HISTORY.rst"; - license = lib.licenses.asl20; - }; -}) diff --git a/python/pkgs/shellingham/default.nix b/python/pkgs/shellingham/default.nix deleted file mode 100644 index 17aa357ad..000000000 --- a/python/pkgs/shellingham/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - procps, - setuptools, - pytest-mock, - pytestCheckHook, -}: - -buildPythonPackage (finalAttrs: { - pname = "shellingham"; - version = "1.5.4"; - pyproject = true; - - src = fetchFromGitHub { - owner = "sarugaku"; - repo = "shellingham"; - tag = finalAttrs.version; - hash = "sha256-xeBo3Ok+XPrHN4nQd7M8/11leSV/8z1f7Sj33+HFVtQ="; - }; - - postPatch = '' - substituteInPlace src/shellingham/posix/ps.py \ - --replace-fail \ - 'cmd = ["ps",' \ - 'cmd = ["${lib.getExe' procps "ps"}",' - ''; - - build-system = [ setuptools ]; - - nativeCheckInputs = [ - pytest-mock - pytestCheckHook - ]; - - testPaths = [ "tests" ]; - - pythonImportsCheck = [ "shellingham" ]; - - meta = { - description = "Tool to detect the surrounding shell"; - homepage = "https://github.com/sarugaku/shellingham"; - changelog = "https://github.com/sarugaku/shellingham/blob/${finalAttrs.src.tag}/CHANGELOG.rst"; - license = lib.licenses.isc; - }; -})