diff --git a/lib/fileset/default.nix b/lib/fileset/default.nix index 60b5913a6e86..6d3593f8f247 100644 --- a/lib/fileset/default.nix +++ b/lib/fileset/default.nix @@ -123,7 +123,6 @@ let pathExists seq typeOf - nixVersion ; inherit (lib.lists) @@ -138,7 +137,6 @@ let inherit (lib.strings) isStringLike - versionOlder ; inherit (lib.filesystem) diff --git a/lib/filesystem.nix b/lib/filesystem.nix index 5e31e8e2311c..9f05c05eb7cd 100644 --- a/lib/filesystem.nix +++ b/lib/filesystem.nix @@ -371,7 +371,6 @@ in let inherit (lib) concatMapAttrs - id makeScope recurseIntoAttrs removeSuffix diff --git a/lib/meta.nix b/lib/meta.nix index 3341caf0e0fb..3079f79f2f50 100644 --- a/lib/meta.nix +++ b/lib/meta.nix @@ -19,7 +19,6 @@ let isString match typeOf - elemAt ; in diff --git a/lib/network/internal.nix b/lib/network/internal.nix index 2e439c15f16c..adda711444fd 100644 --- a/lib/network/internal.nix +++ b/lib/network/internal.nix @@ -23,7 +23,6 @@ let */ ipv6Bits = 128; ipv6Pieces = 8; # 'x:x:x:x:x:x:x:x' - ipv6PieceBits = 16; # One piece in range from 0 to 0xffff. ipv6PieceMaxValue = 65535; # 2^16 - 1 in let diff --git a/lib/options.nix b/lib/options.nix index 6191a876cdd4..accbb56ff34a 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -468,7 +468,7 @@ rec { : 3\. Function argument */ mergeUniqueOption = - args@{ + { message, # WARNING: the default merge function assumes that the definition is a valid (option) value. You MUST pass a merge function if the return value needs to be # - type checked beyond what .check does (which should be very little; only on the value head; not attribute values, etc) diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index f257d9953fc3..e2872dcafce9 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -51,7 +51,6 @@ let filter filterAttrs fix - fold foldAttrs foldl foldl' @@ -4794,7 +4793,7 @@ runTests { # for sub-directories testPackagesFromDirectoryNestedScopes = let - inherit (lib) makeScope recurseIntoAttrs; + inherit (lib) makeScope; emptyScope = makeScope lib.callPackageWith (_: { }); in { diff --git a/lib/tests/modules/deferred-module-error.nix b/lib/tests/modules/deferred-module-error.nix index aec15dc53495..2f74421b2da5 100644 --- a/lib/tests/modules/deferred-module-error.nix +++ b/lib/tests/modules/deferred-module-error.nix @@ -3,16 +3,10 @@ let inherit (lib) types mkOption - setDefaultModuleLocation evalModules ; inherit (types) deferredModule - lazyAttrsOf - submodule - str - raw - enum ; in { diff --git a/lib/tests/modules/deferred-module.nix b/lib/tests/modules/deferred-module.nix index 0b280b824674..e14afb54f213 100644 --- a/lib/tests/modules/deferred-module.nix +++ b/lib/tests/modules/deferred-module.nix @@ -1,12 +1,11 @@ { lib, ... }: let - inherit (lib) types mkOption setDefaultModuleLocation; + inherit (lib) types mkOption; inherit (types) deferredModule lazyAttrsOf submodule str - raw enum ; in diff --git a/lib/tests/modules/disable-module-bad-key.nix b/lib/tests/modules/disable-module-bad-key.nix index a29a00e2e093..825f3b3139bf 100644 --- a/lib/tests/modules/disable-module-bad-key.nix +++ b/lib/tests/modules/disable-module-bad-key.nix @@ -1,15 +1,4 @@ { lib, ... }: -let - inherit (lib) mkOption types; - - moduleWithKey = - { config, ... }: - { - config = { - enable = true; - }; - }; -in { imports = [ ./declare-enable.nix diff --git a/lib/tests/modules/types-attrTag.nix b/lib/tests/modules/types-attrTag.nix index f30c1fc904f8..d48badae391f 100644 --- a/lib/tests/modules/types-attrTag.nix +++ b/lib/tests/modules/types-attrTag.nix @@ -6,7 +6,6 @@ }: let inherit (lib) mkOption types; - forceDeep = x: builtins.deepSeq x x; mergedSubOption = (options.merged.type.getSubOptions options.merged.loc).extensible; in { diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 17ec4577d6e7..b0917d818018 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5326,12 +5326,6 @@ githubId = 27779510; keys = [ { fingerprint = "FDF5 EF67 8CC1 FE22 1845 6A22 CF7B BB5B C756 1BD3"; } ]; }; - coffeeispower = { - email = "tiagodinis33@proton.me"; - github = "coffeeispower"; - name = "Tiago Dinis"; - githubId = 92828847; - }; cofob = { name = "Egor Ternovoy"; email = "cofob@riseup.net"; @@ -7916,6 +7910,12 @@ githubId = 45268815; name = "Flavio Galán"; }; + ElSebas41 = { + email = "achavezaiquipa@gmail.com"; + github = "ElSebas41"; + githubId = 189925713; + name = "Angel Chavez"; + }; elvishjerricco = { email = "elvishjerricco@gmail.com"; matrix = "@elvishjerricco:matrix.org"; @@ -12562,6 +12562,11 @@ githubId = 277474; keys = [ { fingerprint = "F1F1 3395 8E8E 9CC4 D9FC 9647 1931 9CD8 416A 642B"; } ]; }; + jfr = { + name = "Joseph Fox-Rabinovitz"; + github = " joe-saronic"; + githubId = 156837150; + }; jfroche = { name = "Jean-François Roche"; email = "jfroche@pyxel.be"; diff --git a/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix b/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix index 87125c0ed7cb..d78d9bf22ca3 100644 --- a/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix +++ b/pkgs/applications/editors/vscode/extensions/Google.gemini-cli-vscode-ide-companion/default.nix @@ -19,6 +19,8 @@ vscode-utils.buildVscodeExtension (finalAttrs: { installPhase = '' runHook preInstall + patchShebangs . + npm --workspace=gemini-cli-vscode-ide-companion run prepackage # the bundled vsce is broken, using our packaged version diff --git a/pkgs/applications/emulators/libretro/cores/fbneo.nix b/pkgs/applications/emulators/libretro/cores/fbneo.nix index 446ddad877a8..8efae4a3c047 100644 --- a/pkgs/applications/emulators/libretro/cores/fbneo.nix +++ b/pkgs/applications/emulators/libretro/cores/fbneo.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "fbneo"; - version = "0-unstable-2026-04-21"; + version = "0-unstable-2026-04-30"; src = fetchFromGitHub { owner = "libretro"; repo = "fbneo"; - rev = "5cd2221d04fef37ef2f99793acc100b445691612"; - hash = "sha256-uv7MKLlHzTWSeGd0SRCfF+4S+SiJeZny0OerU1MbWOI="; + rev = "806cbc866c973caf442b4b6c6058f867b36bd1fb"; + hash = "sha256-kHB2Zz6mjhZiYDtoMIuaFvB2C/RIU89e2JNeBzHgIuU="; }; makefile = "Makefile"; diff --git a/pkgs/applications/emulators/libretro/cores/mame.nix b/pkgs/applications/emulators/libretro/cores/mame.nix index fc2ee5a8284e..99538b682af0 100644 --- a/pkgs/applications/emulators/libretro/cores/mame.nix +++ b/pkgs/applications/emulators/libretro/cores/mame.nix @@ -9,13 +9,13 @@ }: mkLibretroCore { core = "mame"; - version = "0-unstable-2026-04-21"; + version = "0-unstable-2026-04-23"; src = fetchFromGitHub { owner = "libretro"; repo = "mame"; - rev = "18d4628347a2475ba2f34e6bdc4eca81ba38b5f6"; - hash = "sha256-0shdiEw9OFGbgnl2aIwOy5gMb9xjTfTQKFEFEAEbP9Y="; + rev = "da690d2f5393a45e20ef941980e7d940fb9d2f19"; + hash = "sha256-7OGD/OEAwVwT0Svepf1XtCqtWbLFXyFL8YTFqOOhVPc="; fetchSubmodules = true; }; diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json index aeae652ca67f..bf2a8c1e529c 100644 --- a/pkgs/applications/networking/cluster/terraform-providers/providers.json +++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json @@ -1049,11 +1049,11 @@ "vendorHash": null }, "oracle_oci": { - "hash": "sha256-Uv63hWyUzjZncV01WVpoHR+OYMf7qIDdyGmdMlBkZzU=", + "hash": "sha256-xB/wHvFmv14Lz1IR4+n7+l+RbRJCtDqZisLURK9IB4E=", "homepage": "https://registry.terraform.io/providers/oracle/oci", "owner": "oracle", "repo": "terraform-provider-oci", - "rev": "v8.10.0", + "rev": "v8.12.0", "spdx": "MPL-2.0", "vendorHash": null }, diff --git a/pkgs/by-name/ac/acltoolkit/package.nix b/pkgs/by-name/ac/acltoolkit/package.nix index 0c0e92304814..67505709888f 100644 --- a/pkgs/by-name/ac/acltoolkit/package.nix +++ b/pkgs/by-name/ac/acltoolkit/package.nix @@ -7,7 +7,9 @@ python3.pkgs.buildPythonPackage { pname = "acltoolkit"; version = "0-unstable-2023-02-03"; - format = "setuptools"; + pyproject = true; + + build-system = with python3.pkgs; [ setuptools ]; src = fetchFromGitHub { owner = "zblurx"; @@ -21,7 +23,7 @@ python3.pkgs.buildPythonPackage { sed -i -e "s/==[0-9.]*//" setup.py ''; - propagatedBuildInputs = with python3.pkgs; [ + dependencies = with python3.pkgs; [ asn1crypto dnspython impacket diff --git a/pkgs/by-name/am/amp-cli/package-lock.json b/pkgs/by-name/am/amp-cli/package-lock.json index a6d089bae382..42a9d633e30e 100644 --- a/pkgs/by-name/am/amp-cli/package-lock.json +++ b/pkgs/by-name/am/amp-cli/package-lock.json @@ -5,7 +5,7 @@ "packages": { "": { "dependencies": { - "@sourcegraph/amp": "^0.0.1776834056-gfb3ba0" + "@sourcegraph/amp": "^0.0.1777624460-g8bb2f0" } }, "node_modules/@napi-rs/keyring": { @@ -228,9 +228,9 @@ } }, "node_modules/@sourcegraph/amp": { - "version": "0.0.1776834056-gfb3ba0", - "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1776834056-gfb3ba0.tgz", - "integrity": "sha512-2wXC+aXm7+NzNDIpa2Y7bii5V8Ya3wfF5/0MA2BsXfO/RfJ8zrhuFzeoDsO049VlKD5UkOOVOHbyXMk23whC5Q==", + "version": "0.0.1777624460-g8bb2f0", + "resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1777624460-g8bb2f0.tgz", + "integrity": "sha512-LGr3VAfyW5W7eJNPa545KvCL11qsac0FFzu67rPrqCR2Xh7v0mP1N7S9TLHKDG74NoqmB3xdhX7o0lIk2ZoGkg==", "license": "Amp Commercial License", "dependencies": { "@napi-rs/keyring": "1.1.10" diff --git a/pkgs/by-name/am/amp-cli/package.nix b/pkgs/by-name/am/amp-cli/package.nix index 87913f65b4aa..f507ceeacf83 100644 --- a/pkgs/by-name/am/amp-cli/package.nix +++ b/pkgs/by-name/am/amp-cli/package.nix @@ -9,11 +9,11 @@ buildNpmPackage (finalAttrs: { pname = "amp-cli"; - version = "0.0.1776834056-gfb3ba0"; + version = "0.0.1777624460-g8bb2f0"; src = fetchzip { url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz"; - hash = "sha256-okV2WpxYTrKFW373OO6yfLs8YCULJ9K6uVgNNH58oHk="; + hash = "sha256-HUoRVq++AsIbQxJHkI4oyPyBbFcji6BvWdWxrqdUQQ0="; }; postPatch = '' @@ -45,7 +45,7 @@ buildNpmPackage (finalAttrs: { chmod +x bin/amp-wrapper.js ''; - npmDepsHash = "sha256-apW3mTGaTTnl2uIW9Ds+B6xxpIgLIIQH/pRtbTAOFEU="; + npmDepsHash = "sha256-Lnnutg8LDp9UMuJ+TuoRABK7lcQNizZDltr1cMFpYEc="; propagatedBuildInputs = [ ripgrep diff --git a/pkgs/by-name/bi/bitrise/package.nix b/pkgs/by-name/bi/bitrise/package.nix index 1a17df96a354..271122ea8ca1 100644 --- a/pkgs/by-name/bi/bitrise/package.nix +++ b/pkgs/by-name/bi/bitrise/package.nix @@ -6,13 +6,13 @@ }: buildGoModule (finalAttrs: { pname = "bitrise"; - version = "2.39.2"; + version = "2.39.4"; src = fetchFromGitHub { owner = "bitrise-io"; repo = "bitrise"; rev = "v${finalAttrs.version}"; - hash = "sha256-yduH5UkBwcp41pCeFyoOYtaTwvINrbMaQQlvmeRAXCY="; + hash = "sha256-Sg7Os1HqxyGQ7WngCFmV0s8HsFHLt/IgX79nd1tBciU="; }; # many tests rely on writable $HOME/.bitrise and require network access diff --git a/pkgs/by-name/bo/bombsquad/package.nix b/pkgs/by-name/bo/bombsquad/package.nix index 3ad32a7bddba..6eb61c0f9647 100644 --- a/pkgs/by-name/bo/bombsquad/package.nix +++ b/pkgs/by-name/bo/bombsquad/package.nix @@ -126,7 +126,6 @@ stdenv.mkDerivation (finalAttrs: { ]; maintainers = with lib.maintainers; [ syedahkam - coffeeispower mrmaxmeier ]; mainProgram = "bombsquad"; diff --git a/pkgs/by-name/br/brill/package.nix b/pkgs/by-name/br/brill/package.nix index 922bf72c9790..79e85051cee1 100644 --- a/pkgs/by-name/br/brill/package.nix +++ b/pkgs/by-name/br/brill/package.nix @@ -2,6 +2,7 @@ lib, stdenvNoCC, fetchzip, + installFonts, }: stdenvNoCC.mkDerivation (finalAttrs: { @@ -14,10 +15,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { stripRoot = false; }; + nativeBuildInputs = [ installFonts ]; + installPhase = '' runHook preInstall - install -Dm644 *.ttf -t $out/share/fonts/truetype install -Dm644 *agreement.pdf -t $out/share/licenses/brill install -Dm644 *use.pdf -t $out/share/doc/brill diff --git a/pkgs/by-name/bu/bun/package.nix b/pkgs/by-name/bu/bun/package.nix index 0baa565112f7..fc5b4064c6e3 100644 --- a/pkgs/by-name/bu/bun/package.nix +++ b/pkgs/by-name/bu/bun/package.nix @@ -133,7 +133,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { jk thilobillerbeck cdmistman - coffeeispower diogomdp ]; platforms = builtins.attrNames finalAttrs.passthru.sources; diff --git a/pkgs/by-name/c6/c64-debugger/package.nix b/pkgs/by-name/c6/c64-debugger/package.nix index 8951b52cbd57..2a1d6e9525bb 100644 --- a/pkgs/by-name/c6/c64-debugger/package.nix +++ b/pkgs/by-name/c6/c64-debugger/package.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation { # Build C64 debugger make -C MTEngine \ - CFLAGS="-w -O2 -fcommon" \ + CFLAGS="-w -O2 -fcommon -std=gnu17" \ CXXFLAGS="-w -O2 --std=c++11" \ DEFINES="-DRUN_COMMODORE64" \ -j$NIX_BUILD_CORES @@ -55,7 +55,7 @@ stdenv.mkDerivation { # Build 65XE debugger make -C MTEngine \ - CFLAGS="-w -O2 -fcommon" \ + CFLAGS="-w -O2 -fcommon -std=gnu17" \ CXXFLAGS="-w -O2 --std=c++11" \ DEFINES="-DRUN_ATARI" \ -j$NIX_BUILD_CORES @@ -64,7 +64,7 @@ stdenv.mkDerivation { # Build NES debugger make -C MTEngine \ - CFLAGS="-w -O2 -fcommon" \ + CFLAGS="-w -O2 -fcommon -std=gnu17" \ CXXFLAGS="-w -O2 --std=c++11" \ DEFINES="-DRUN_NES" \ -j$NIX_BUILD_CORES diff --git a/pkgs/by-name/ca/catppuccin-hyprland/package.nix b/pkgs/by-name/ca/catppuccin-hyprland/package.nix new file mode 100644 index 000000000000..7739a58a7631 --- /dev/null +++ b/pkgs/by-name/ca/catppuccin-hyprland/package.nix @@ -0,0 +1,39 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + nix-update-script, +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "catppuccin-hyprland"; + version = "1.3"; + strictDeps = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "catppuccin"; + repo = "hyprland"; + tag = "v${finalAttrs.version}"; + hash = "sha256-jkk021LLjCLpWOaInzO4Klg6UOR4Sh5IcKdUxIn7Dis="; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/themes + cp -rva $src/themes $out/share/themes/catppuccin-hyprland-themes + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Soothing pastel theme for Hyprland"; + homepage = "https://github.com/catppuccin/hyprland"; + changelog = "https://github.com/catppuccin/hyprland/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ElSebas41 ]; + platforms = lib.platforms.all; + }; +}) diff --git a/pkgs/by-name/di/distribution/package.nix b/pkgs/by-name/di/distribution/package.nix index 551c2e1284ae..fa4d6c2db891 100644 --- a/pkgs/by-name/di/distribution/package.nix +++ b/pkgs/by-name/di/distribution/package.nix @@ -9,13 +9,13 @@ buildGoModule (finalAttrs: { pname = "distribution"; - version = "3.1.0"; + version = "3.1.1"; src = fetchFromGitHub { owner = "distribution"; repo = "distribution"; tag = "v${finalAttrs.version}"; - hash = "sha256-r0J1zsj4Qioe8+dByqzOgJypW+A06P2uIjetPu7w+24="; + hash = "sha256-KsN3QW71VwGrgrhOmwzzmTm/54+ZaTFj5kNgbta1FmI="; }; vendorHash = null; diff --git a/pkgs/by-name/en/envio/package.nix b/pkgs/by-name/en/envio/package.nix index 4d2b478f4d71..1e5edb2e598f 100644 --- a/pkgs/by-name/en/envio/package.nix +++ b/pkgs/by-name/en/envio/package.nix @@ -1,25 +1,28 @@ { + stdenv, lib, fetchFromGitHub, installShellFiles, gpgme, + dbus, libgpg-error, pkg-config, rustPlatform, + nix-update-script, }: rustPlatform.buildRustPackage (finalAttrs: { pname = "envio"; - version = "0.6.1"; + version = "0.7.0"; src = fetchFromGitHub { - owner = "envio-cli"; + owner = "humblepenguinn"; repo = "envio"; rev = "v${finalAttrs.version}"; - hash = "sha256-je0DBoBIayFK//Aija5bnO/2z+hxNWgVkwOgxMyq5s4="; + hash = "sha256-uiuJ3yFuU5S0e6SrD1C4tU5Ve/VBoGmyclbokESDZAw="; }; - cargoHash = "sha256-stb5BZ77yBUjP6p3yfdgtN6fkE7wWU6A+sPAmc8YZD0="; + cargoHash = "sha256-eECjTnqjy38jA5kHddPaBZaZ/1ErHB7uQPbZYNFBcSU="; nativeBuildInputs = [ pkg-config @@ -29,15 +32,19 @@ rustPlatform.buildRustPackage (finalAttrs: { buildInputs = [ libgpg-error gpgme + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + dbus ]; postInstall = '' installManPage man/*.1 ''; + passthru.updateScript = nix-update-script { }; + meta = { - homepage = "https://envio-cli.github.io/home"; - changelog = "https://github.com/envio-cli/envio/blob/${finalAttrs.version}/CHANGELOG.md"; + changelog = "https://github.com/humblepenguinn/envio/blob/v${finalAttrs.version}/CHANGELOG.md"; description = "Modern and secure CLI tool for managing environment variables"; mainProgram = "envio"; longDescription = '' diff --git a/pkgs/by-name/ew/eww/package.nix b/pkgs/by-name/ew/eww/package.nix index 7019085acea8..b079226da18d 100644 --- a/pkgs/by-name/ew/eww/package.nix +++ b/pkgs/by-name/ew/eww/package.nix @@ -70,7 +70,6 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://github.com/elkowar/eww"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ - coffeeispower w-lfchen ]; mainProgram = "eww"; diff --git a/pkgs/by-name/ge/gemini-cli/package.nix b/pkgs/by-name/ge/gemini-cli/package.nix index 43f9e5ab6d0a..440462e68e9b 100644 --- a/pkgs/by-name/ge/gemini-cli/package.nix +++ b/pkgs/by-name/ge/gemini-cli/package.nix @@ -15,18 +15,18 @@ buildNpmPackage (finalAttrs: { pname = "gemini-cli"; - version = "0.38.2"; + version = "0.40.1"; src = fetchFromGitHub { owner = "google-gemini"; repo = "gemini-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-DPJMpm+hOQQxG87/NyrCrlomeR4AD1WNfNoIsdaakaE="; + hash = "sha256-oWznf9xleb9bpW2dnMIUehkMqKCb6AecZjcVwZgBrdo="; }; nodejs = nodejs_22; - npmDepsHash = "sha256-6UnLSmKdnXwEXgGcyRTibDkEqvlRr75e3fRld0v6T2s="; + npmDepsHash = "sha256-sscqcey+hPsfajrTspy6FScjfFmtvJMP1w56cFuu3DI="; dontPatchElf = stdenv.isDarwin; diff --git a/pkgs/by-name/io/iosevka/package.nix b/pkgs/by-name/io/iosevka/package.nix index bf611919b08e..11db7ce5dee8 100644 --- a/pkgs/by-name/io/iosevka/package.nix +++ b/pkgs/by-name/io/iosevka/package.nix @@ -4,7 +4,7 @@ buildNpmPackage, fetchFromGitHub, cctools, - remarshal, + go-toml, ttfautohint-nox, # Custom font set options. # See https://typeof.net/Iosevka/customizer @@ -63,14 +63,14 @@ buildNpmPackage rec { src = fetchFromGitHub { owner = "be5invis"; repo = "iosevka"; - rev = "v${version}"; + tag = "v${version}"; hash = "sha256-eOh1jdrgaMYhqxP+QSCBxqhkJUGYrWLTkYwGmKSNrRA="; }; npmDepsHash = "sha256-9v4PKlS8FNuhnhdJmu3J1Bl+uSPS4KqE3PBrOhf9jQw="; nativeBuildInputs = [ - remarshal + go-toml ttfautohint-nox ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ @@ -78,6 +78,8 @@ buildNpmPackage rec { cctools ]; + strictDeps = true; + buildPlan = if builtins.isAttrs privateBuildPlan then builtins.toJSON { buildPlans.${pname} = privateBuildPlan; } @@ -85,22 +87,16 @@ buildNpmPackage rec { privateBuildPlan; inherit extraParameters; - passAsFile = [ - "extraParameters" - ] - ++ lib.optionals ( - !(builtins.isString privateBuildPlan && lib.hasPrefix builtins.storeDir privateBuildPlan) - ) [ "buildPlan" ]; configurePhase = '' runHook preConfigure ${lib.optionalString (builtins.isAttrs privateBuildPlan) '' - remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml + printf "%s" "$buildPlan" | jsontoml -use-json-number > private-build-plans.toml ''} ${lib.optionalString (builtins.isString privateBuildPlan && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) '' - cp "$buildPlanPath" private-build-plans.toml + printf "%s" "$buildPlan" > private-build-plans.toml '' } ${lib.optionalString @@ -111,7 +107,7 @@ buildNpmPackage rec { } ${lib.optionalString (extraParameters != null) '' echo -e "\n" >> params/parameters.toml - cat "$extraParametersPath" >> params/parameters.toml + printf "%s" "$extraParameters" >> params/parameters.toml ''} runHook postConfigure ''; @@ -137,6 +133,8 @@ buildNpmPackage rec { enableParallelBuilding = true; requiredSystemFeatures = [ "big-parallel" ]; + __structuredAttrs = true; + meta = { homepage = "https://typeof.net/Iosevka/"; downloadPage = "https://github.com/be5invis/Iosevka/releases"; diff --git a/pkgs/by-name/jo/joularjx/package.nix b/pkgs/by-name/jo/joularjx/package.nix index 0710781fa0aa..4233f4b861bc 100644 --- a/pkgs/by-name/jo/joularjx/package.nix +++ b/pkgs/by-name/jo/joularjx/package.nix @@ -8,18 +8,18 @@ maven.buildMavenPackage rec { pname = "joularjx"; - version = "2.9.0"; + version = "3.1.0"; src = fetchFromGitHub { owner = "joular"; repo = "joularjx"; rev = version; - hash = "sha256-/Drv6PVMmz3QNEu8zMokTKBZeYWMjuKczu18qKqNAx4="; + hash = "sha256-hr8a3Qr1LdFfGBLVJVkm6hhCW7knG4VpXj7nCtcptuU="; }; - mvnHash = "sha256-TKHo0hZBjgBeUWYvbjF3MZ6Egp3qB2LGwWfrGrcVkOk="; + mvnHash = "sha256-3y39873pxlQD7d02sbVtZ2I/zcQtPZ30XrA2qY84EzA="; - mvnParameters = "-DskipTests"; + mvnParameters = "-DskipTests -Dmaven.javadoc.skip=true"; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/ke/keymapp/linux.nix b/pkgs/by-name/ke/keymapp/linux.nix index 4f8f00cb8894..2bbc75904008 100644 --- a/pkgs/by-name/ke/keymapp/linux.nix +++ b/pkgs/by-name/ke/keymapp/linux.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation { runHook preInstall install -m755 -D keymapp "$out/bin/keymapp" - install -Dm644 icon.png "$out/share/pixmaps/keymapp.png" + install -Dm644 icon.png "$out/share/icons/keymapp.png" runHook postInstall ''; diff --git a/pkgs/by-name/kn/knockpy/package.nix b/pkgs/by-name/kn/knockpy/package.nix index a73ae217c24e..749cfa835ce7 100644 --- a/pkgs/by-name/kn/knockpy/package.nix +++ b/pkgs/by-name/kn/knockpy/package.nix @@ -6,22 +6,22 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pname = "knockpy"; - version = "7.0.2"; + version = "9.0.0"; pyproject = true; src = fetchFromGitHub { owner = "guelfoweb"; - repo = "knock"; + repo = "knockpy"; tag = finalAttrs.version; - hash = "sha256-tJNosM8zGzH0uMvVawoBl2d+8xkVzTIjycnHHjnMzSo="; + hash = "sha256-azgciGYf6Km6MuBE7RRHhcx1hhc309FTv3KOfZ25Iqo="; }; pythonRelaxDeps = [ - "beautifulsoup4" "dnspython" + "httpx" "pyopenssl" - "requests" - "tqdm" + "python-dotenv" + "rich" ]; build-system = with python3.pkgs; [ @@ -29,22 +29,23 @@ python3.pkgs.buildPythonApplication (finalAttrs: { ]; dependencies = with python3.pkgs; [ - beautifulsoup4 dnspython + httpx + h2 pyopenssl - requests - tqdm + python-dotenv + rich ]; # Project has no tests doCheck = false; - pythonImportsCheck = [ "knock" ]; + pythonImportsCheck = [ "knockpy" ]; meta = { description = "Tool to scan subdomains"; - homepage = "https://github.com/guelfoweb/knock"; - changelog = "https://github.com/guelfoweb/knock/releases/tag/${finalAttrs.version}"; + homepage = "https://github.com/guelfoweb/knockpy"; + changelog = "https://github.com/guelfoweb/knockpy/releases/tag/${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ fab ]; mainProgram = "knockpy"; diff --git a/pkgs/by-name/li/libtrace/package.nix b/pkgs/by-name/li/libtrace/package.nix index 587daf602726..64786e976743 100644 --- a/pkgs/by-name/li/libtrace/package.nix +++ b/pkgs/by-name/li/libtrace/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libtrace"; - version = "4.0.30-1"; + version = "4.0.31-1"; src = fetchFromGitHub { owner = "LibtraceTeam"; repo = "libtrace"; tag = finalAttrs.version; - hash = "sha256-zUSc/ZrXo1EV+XB2KYtNPZqd8GzmunO9rCjSKppMMcw="; + hash = "sha256-QsqJquBnhRf7OBOs6eWFo9WFF9J2Bw4zbX1/ooN43Xw="; }; strictDeps = true; diff --git a/pkgs/by-name/ll/llmfit/package.nix b/pkgs/by-name/ll/llmfit/package.nix index d91a86f49d2a..32aac6b8f44c 100644 --- a/pkgs/by-name/ll/llmfit/package.nix +++ b/pkgs/by-name/ll/llmfit/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "llmfit"; - version = "0.9.17"; + version = "0.9.18"; src = fetchFromGitHub { owner = "AlexsJones"; repo = "llmfit"; tag = "v${finalAttrs.version}"; - hash = "sha256-ILLNExMAsBhikwrXZa9qgNlJzKTEwhjhvl5UQGtKPT0="; + hash = "sha256-0NswrJNA6IPqL5RaZyVyMc4p6UI7ZiWnjlnyTC4nW6o="; }; - cargoHash = "sha256-ftnGz3mUGMOQveKbsiUVSsP0hqkj9LVxnGrCG+fzvJ4="; + cargoHash = "sha256-pI3n53GSyM/HDyZ4frFzDENthupmCMC2aQOERVBMUJ4="; meta = { description = "TUI to find LLM models right sized for the system's RAM, CPU, and GPU"; diff --git a/pkgs/by-name/ll/llmserve/package.nix b/pkgs/by-name/ll/llmserve/package.nix new file mode 100644 index 000000000000..e9f04e89a190 --- /dev/null +++ b/pkgs/by-name/ll/llmserve/package.nix @@ -0,0 +1,34 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "llmserve"; + version = "0.0.8"; + + src = fetchFromGitHub { + owner = "AlexsJones"; + repo = "llmserve"; + tag = "v${finalAttrs.version}"; + hash = "sha256-j4ko8AkrIOWlM1Tkl/pGMI1PzQc6yImCAZXEmO/NBko="; + }; + + cargoHash = "sha256-jwCQSm4k1YofCn2r5IX+knXbTo70bsAVHIxojeLpkqI="; + + __structuredAttrs = true; + __darwinAllowLocalNetworking = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "TUI for serving local LLM models"; + homepage = "https://github.com/AlexsJones/llmserve"; + changelog = "https://github.com/AlexsJones/llmserve/blob/v${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ afh ]; + mainProgram = "llmserve"; + }; +}) diff --git a/pkgs/by-name/mu/multica-cli/package.nix b/pkgs/by-name/mu/multica-cli/package.nix index eefc862af298..b3637d909a37 100644 --- a/pkgs/by-name/mu/multica-cli/package.nix +++ b/pkgs/by-name/mu/multica-cli/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { __structuredAttrs = true; pname = "multica-cli"; - version = "0.2.21"; + version = "0.2.23"; src = fetchFromGitHub { owner = "multica-ai"; repo = "multica"; rev = "v${version}"; - hash = "sha256-13xhPBLV3aWf5ESn4L2rGXXFTrYVejF+HQnTCGlE1bg="; + hash = "sha256-2W2OjiKsjaLmKJTr1Rr31eqL/yt+o4XsLFeLwbyv7MY="; }; sourceRoot = "${src.name}/server"; diff --git a/pkgs/by-name/no/node-core-utils/package.nix b/pkgs/by-name/no/node-core-utils/package.nix index 03e01bf8ed0e..e2026de8f56e 100644 --- a/pkgs/by-name/no/node-core-utils/package.nix +++ b/pkgs/by-name/no/node-core-utils/package.nix @@ -9,16 +9,16 @@ buildNpmPackage (finalAttrs: { pname = "node-core-utils"; - version = "6.3.2"; + version = "6.3.3"; src = fetchFromGitHub { owner = "nodejs"; repo = "node-core-utils"; tag = "v${finalAttrs.version}"; - hash = "sha256-i9Y4XtvQjqHmbo5yzGmOT7d0wPf4xEt2ta32AOwJT/g="; + hash = "sha256-NjtvCsmXWDy8Z0syi/KlZN9YtMlfuUQLjF1PmIj6Vv8="; }; - npmDepsHash = "sha256-FQbFzentyRARuB2fpRZGDfMJHkrgvyUGovaOgpE0z5Y="; + npmDepsHash = "sha256-xSV5goCw5GmfgZ+GgsAbfH+Hds2jrdpIZoh/nZIUrwo="; dontNpmBuild = true; dontNpmPrune = true; diff --git a/pkgs/by-name/pr/proxelar/package.nix b/pkgs/by-name/pr/proxelar/package.nix index 34950e77b77e..96548c6c3c08 100644 --- a/pkgs/by-name/pr/proxelar/package.nix +++ b/pkgs/by-name/pr/proxelar/package.nix @@ -8,16 +8,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "proxelar"; - version = "0.4.3"; + version = "0.4.4"; src = fetchFromGitHub { owner = "emanuele-em"; repo = "proxelar"; tag = "v${finalAttrs.version}"; - hash = "sha256-PQRGn03chv+x3AO0yyxkXDmrCHVDP9vjaVUwMRMxpYE="; + hash = "sha256-dUz20mk9ghUyCRuxkEpjjibhDMk7kAezZxGPadQhhM0="; }; - cargoHash = "sha256-1cPkzDIF4bcESbEOATYM2fd7FenV5dkrrYsZIoCML7Q="; + cargoHash = "sha256-Jc6NExi2BUs1Hoia4MyDouj/LUO9tCRN0Pu2/32uG7c="; __structuredAttrs = true; diff --git a/pkgs/by-name/ra/radcli/package.nix b/pkgs/by-name/ra/radcli/package.nix index 42ec2653ec4a..67ca68c615f8 100644 --- a/pkgs/by-name/ra/radcli/package.nix +++ b/pkgs/by-name/ra/radcli/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "radcli"; - version = "1.5.0"; + version = "1.5.1"; src = fetchFromGitHub { owner = "radcli"; repo = "radcli"; tag = finalAttrs.version; - hash = "sha256-Q+rcNhYmQpEE5LYC/zvbh4RIxx2g9djuWmrSUdh00+c="; + hash = "sha256-bp6qwnedyutS2d97AUDCBEVyu8hAKq72zdCLvpRFuJM="; }; postUnpack = '' diff --git a/pkgs/by-name/re/repath-studio/package.nix b/pkgs/by-name/re/repath-studio/package.nix index e0ad43c16654..a9e19ab77b1d 100644 --- a/pkgs/by-name/re/repath-studio/package.nix +++ b/pkgs/by-name/re/repath-studio/package.nix @@ -195,7 +195,7 @@ buildNpmPackage (finalAttrs: { }; meta = { - changelog = "https://github.com/repath-studio/repath-studio/blob/v${finalAttrs.src.rev}/CHANGELOG.md"; + changelog = "https://github.com/repath-studio/repath-studio/blob/${finalAttrs.src.rev}/CHANGELOG.md"; description = "Cross-platform vector graphics editor, that combines procedural tooling with traditional design workflows"; homepage = "https://repath.studio"; downloadPage = "https://github.com/repath-studio/repath-studio"; diff --git a/pkgs/by-name/ru/rubik/package.nix b/pkgs/by-name/ru/rubik/package.nix index 71b933042a9f..67ac23964f55 100644 --- a/pkgs/by-name/ru/rubik/package.nix +++ b/pkgs/by-name/ru/rubik/package.nix @@ -1,86 +1,29 @@ { - stdenv, + stdenvNoCC, lib, - fetchurl, + fetchFromGitHub, + installFonts, }: -let - # Latest commit touching the rubik tree - commit = "054aa9d546cd6308f8ff7139b332490e0967aebe"; -in -stdenv.mkDerivation { +stdenvNoCC.mkDerivation { pname = "rubik"; version = "2.200"; - srcs = [ - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Black.ttf"; - sha256 = "0h4mxqz0b5as7g964bv98aanaghp4wgs2g5wnf7apxnd2fng14dn"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-BlackItalic.ttf"; - sha256 = "0x8j3fwavkf1jf7s97ncvs0jk463v1fyajcxqxvv7lpk55sjnbpy"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Bold.ttf"; - sha256 = "0prjqdbdpnhwr66gjw9mc1590gmjl7fir8wnanzch6arvngmxaj9"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-BoldItalic.ttf"; - sha256 = "1zyl55fkjr61k6yfvgi0cr2iz4s0kkv3mkjpdmpla9jnk10rd8lm"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-ExtraBold.ttf"; - sha256 = "0vi01lc2dadgmw5z26nkfzn7vl3lsd0flhqqfp40nn8jvpdkb2mq"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-ExtraBoldItalic.ttf"; - sha256 = "0ldcszzzrc44gldflman7kcfk38x77grjb3zjvxjvgn875ggwabk"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Italic.ttf"; - sha256 = "09x7fh6ad4w6027410vhkvisgy8vqm2mzdsc19z3szlrxi0gl0rx"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Light.ttf"; - sha256 = "19a6k0pprcra6nxk3l0k6wkg9g0qn5h1v71rw2m8im64kyjx4qpf"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-LightItalic.ttf"; - sha256 = "0r9hbh9xnbp0584vjiiq72583j1ai3dw93gfy823c736y6bk0j2m"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Medium.ttf"; - sha256 = "01nky9la4qjd80dy200j8l7zl0r2h9zw90k7aghzlb5abk4i3zvf"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-MediumItalic.ttf"; - sha256 = "1i81x9h2cr65bj85z5b2mki59532nvlbh92wb84zfhfdz97s30cq"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-Regular.ttf"; - sha256 = "1vk4n6yc4x1vlwfrp26jhagyl5l86jwa4lalccc320crrwqfc521"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-SemiBold.ttf"; - sha256 = "0blmy1ywsf9hr1a66cl12bjn32i072w6ncvsir0s5smm2c0gksvb"; - }) - (fetchurl { - url = "https://raw.githubusercontent.com/googlefonts/rubik/${commit}/fonts/ttf/Rubik-SemiBoldItalic.ttf"; - sha256 = "1sj22d3jrlxl6ka0naf5nby3k0i7pzadk5b8xgdhcslwijwiib3y"; - }) + outputs = [ + "out" + "webfont" ]; - sourceRoot = "."; + src = fetchFromGitHub { + owner = "googlefonts"; + repo = "rubik"; + # Latest commit touching the rubik tree + rev = "054aa9d546cd6308f8ff7139b332490e0967aebe"; + hash = "sha256-AkWMLbDIect48KLEYIIx/WNQ57P1Ivp5VrJP8mdj1oE="; + }; - unpackCmd = '' - ttfName=$(basename $(stripHash $curSrc)) - cp $curSrc ./$ttfName - ''; + nativeBuildInputs = [ installFonts ]; - installPhase = '' - mkdir -p $out/share/fonts/truetype - cp -a *.ttf $out/share/fonts/truetype/ - ''; + preInstall = "rm -r old/"; meta = { homepage = "https://fonts.google.com/specimen/Rubik"; diff --git a/pkgs/by-name/sd/sdl3-image/package.nix b/pkgs/by-name/sd/sdl3-image/package.nix index 795e5faad0c9..b915e67b3418 100644 --- a/pkgs/by-name/sd/sdl3-image/package.nix +++ b/pkgs/by-name/sd/sdl3-image/package.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "sdl3-image"; - version = "3.4.2"; + version = "3.4.4"; outputs = [ "lib" @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "libsdl-org"; repo = "SDL_image"; tag = "release-${finalAttrs.version}"; - hash = "sha256-LNEbXhUDB6OKk3HxwV+jANnskS82ewhQe8pDy+P6L40="; + hash = "sha256-ttnoe9bTtA8+eUMOs55v58xb+cWpNEiiTDEeX9GBxaw="; }; strictDeps = true; diff --git a/pkgs/by-name/se/sendspin-go/package.nix b/pkgs/by-name/se/sendspin-go/package.nix index b5bd771e8996..6b4a94974662 100644 --- a/pkgs/by-name/se/sendspin-go/package.nix +++ b/pkgs/by-name/se/sendspin-go/package.nix @@ -12,13 +12,13 @@ buildGoModule (finalAttrs: { pname = "sendspin-go"; - version = "1.6.0"; + version = "1.6.2"; src = fetchFromGitHub { owner = "Sendspin"; repo = "sendspin-go"; tag = "v${finalAttrs.version}"; - hash = "sha256-kCTW9eOSC/15c2PaXWiWsAqEOCWodKYcptqtWAQc9fQ="; + hash = "sha256-ME4LZp5NNLSAtdkIUZJWWWQTUr5Lt3y+HscJAR/AS7c="; }; __structuredAttrs = true; diff --git a/pkgs/by-name/se/sequoia-git/package.nix b/pkgs/by-name/se/sequoia-git/package.nix index a2f8d1d8b402..926be6c54991 100644 --- a/pkgs/by-name/se/sequoia-git/package.nix +++ b/pkgs/by-name/se/sequoia-git/package.nix @@ -52,6 +52,8 @@ rustPlatform.buildRustPackage (final: { installShellCompletion --fish ${final.env.ASSET_OUT_DIR}/shell-completions/${final.meta.mainProgram}.fish ''; + __structuredAttrs = true; + meta = { homepage = "https://sequoia-pgp.gitlab.io/sequoia-git"; license = lib.licenses.lgpl2Plus; diff --git a/pkgs/by-name/sj/sjasmplus/package.nix b/pkgs/by-name/sj/sjasmplus/package.nix index 7fee75f5899d..d64999eb57bd 100644 --- a/pkgs/by-name/sj/sjasmplus/package.nix +++ b/pkgs/by-name/sj/sjasmplus/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "sjasmplus"; - version = "1.21.1"; + version = "1.23.0"; src = fetchFromGitHub { owner = "z00m128"; repo = "sjasmplus"; tag = "v${finalAttrs.version}"; - hash = "sha256-wD31GT88hOKhsaXTKEiVIkmZO5sYYv7xb7CjiS2G1W0="; + hash = "sha256-k3rEpHvasqEQP16EZVwtA4jwf0wZ1zUlQpkAzN7JCDI="; }; buildInputs = [ luabridge ]; diff --git a/pkgs/by-name/sl/slint-viewer/package.nix b/pkgs/by-name/sl/slint-viewer/package.nix index 88bab1a42643..400d7d6c2ab1 100644 --- a/pkgs/by-name/sl/slint-viewer/package.nix +++ b/pkgs/by-name/sl/slint-viewer/package.nix @@ -13,14 +13,14 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "slint-viewer"; - version = "1.16.0"; + version = "1.16.1"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-POkfEU4m54dEgaSSEHLqKozMXqMxqkUoLCevm6SY2IU="; + hash = "sha256-/hv/5qd0JhV2H91VWjzUh4cOPOLj6/fsXHSwdDSnfCc="; }; - cargoHash = "sha256-zjiII898Zpzdr19UHua3yuhRRHCn5yg/PHYpYODh7Pc="; + cargoHash = "sha256-9x33UuQGFfHFEsTdSjNnfBlgER4fBIfAmemeWSes304="; buildInputs = [ qt6.qtbase diff --git a/pkgs/by-name/sw/switchres/package.nix b/pkgs/by-name/sw/switchres/package.nix index 464fad23eb10..b94b4c353754 100644 --- a/pkgs/by-name/sw/switchres/package.nix +++ b/pkgs/by-name/sw/switchres/package.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "antonioginer"; repo = "switchres"; tag = "v${finalAttrs.version}"; - hash = "sha256-s4OTnq46lvYoxB5Q2CkYNcMbsNdy7kg4rbovbVXJUMs="; + hash = "sha256-jHMZuROSmRhCKb0AV3t1WUJZMOnB4ahx+ZcrWRFmTrM="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/t3/t3code/package.nix b/pkgs/by-name/t3/t3code/package.nix new file mode 100644 index 000000000000..5a5bb91918f1 --- /dev/null +++ b/pkgs/by-name/t3/t3code/package.nix @@ -0,0 +1,237 @@ +{ + bun, + cctools, + copyDesktopItems, + electron_40, + fetchFromGitHub, + installShellFiles, + lib, + libicns, + makeBinaryWrapper, + makeDesktopItem, + nix-update-script, + node-gyp, + nodejs, + python3, + stdenv, + stdenvNoCC, + writableTmpDirAsHomeHook, + writeDarwinBundle, + xcbuild, +}: + +stdenv.mkDerivation ( + finalAttrs: + let + appName = "T3 Code (Alpha)"; + electron = electron_40; + desktopIcon = + if stdenv.hostPlatform.isDarwin then + "assets/prod/black-macos-1024.png" + else + "assets/prod/black-universal-1024.png"; + nodeModules = stdenvNoCC.mkDerivation { + pname = "${finalAttrs.pname}-node_modules"; + inherit (finalAttrs) src version strictDeps; + + nativeBuildInputs = [ + bun + nodejs + writableTmpDirAsHomeHook + ]; + + dontConfigure = true; + dontFixup = true; + + postPatch = '' + for packageJson in \ + packages/{contracts,shared}/package.json + do + substituteInPlace "$packageJson" \ + --replace-fail '"prepare": "effect-language-service patch",' '"prepare": "true",' + done + ''; + + buildPhase = '' + runHook preBuild + + bun install \ + --cpu="*" \ + --ignore-scripts \ + --no-progress \ + --frozen-lockfile \ + --os="*" + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir --parents $out + cp --recursive node_modules $out + find apps packages -type d -name node_modules -exec cp --recursive --parents {} $out \; + + runHook postInstall + ''; + + outputHash = "sha256-MuP+L8PwV9gKbeiJXYtUpgyIAYPmq4G1FolP7uB9J3w="; + outputHashMode = "recursive"; + }; + in + { + pname = "t3code"; + version = "0.0.21"; + strictDeps = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "pingdotgg"; + repo = "t3code"; + tag = "v${finalAttrs.version}"; + hash = "sha256-e0U9DkEh20w1xq4P9Fri3bx2ifCiDK4G/vVPHDP+lXs="; + }; + + postPatch = '' + substituteInPlace apps/web/vite.config.ts \ + --replace-fail 'const host = process.env.HOST?.trim() || "localhost";' \ + 'const host = process.env.HOST?.trim() || "127.0.0.1";' + ''; + + nativeBuildInputs = [ + bun + installShellFiles + makeBinaryWrapper + node-gyp + nodejs + python3 + writableTmpDirAsHomeHook + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + cctools.libtool + libicns + writeDarwinBundle + xcbuild + ]; + + configurePhase = '' + runHook preConfigure + + cp --recursive ${nodeModules}/. . + + chmod --recursive u+rwX node_modules + patchShebangs node_modules + + # Compile node-pty's native addon from the vendored bun store. + export npm_config_nodedir=${nodejs} + cd node_modules/.bun/node-pty@*/node_modules/node-pty + node-gyp rebuild + node scripts/post-install.js + cd - + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + for app in web server desktop; do + bun run --cwd apps/"$app" build + done + + runHook postBuild + ''; + + # Bun vendors many prebuilt native artifacts for non-host platforms, and + # some of those binaries are statically linked. Let fixup handle wrappers, + # shebangs, and stripping, but skip patchelf on the vendored tree. + dontPatchELF = true; + # The tmpdir audit hook also shells out to patchelf while scanning every + # vendored ELF for leaked build paths. That produces spurious warnings on + # Bun's static foreign-platform binaries. + noAuditTmpdir = true; + + installPhase = '' + runHook preInstall + + mkdir --parents "$out"/libexec/t3code/apps/desktop "$out"/libexec/t3code/apps/server + cp --recursive --no-preserve=mode node_modules "$out"/libexec/t3code + cp --recursive --no-preserve=mode apps/server/{node_modules,dist} "$out"/libexec/t3code/apps/server + cp --recursive --no-preserve=mode apps/desktop/{node_modules,dist-electron} "$out"/libexec/t3code/apps/desktop + + mkdir --parents "$out"/libexec/t3code/apps/desktop/prod-resources + install --mode=444 ${desktopIcon} \ + "$out"/libexec/t3code/apps/desktop/prod-resources/icon.png + + find "$out"/libexec/t3code -xtype l -delete + + makeWrapper ${lib.getExe nodejs} "$out"/bin/t3code \ + --add-flags "$out"/libexec/t3code/apps/server/dist/bin.mjs + + makeWrapper ${lib.getExe electron} "$out"/bin/t3code-desktop \ + --add-flags "$out"/libexec/t3code/apps/desktop/dist-electron/main.cjs \ + --inherit-argv0 + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir --parents "$out/Applications/${appName}.app/Contents/"{MacOS,Resources} + png2icns \ + "$out/Applications/${appName}.app/Contents/Resources/t3code.icns" \ + ${desktopIcon} + write-darwin-bundle "$out" "${appName}" t3code-desktop t3code + '' + + '' + mkdir --parents \ + "$out"/share/icons/hicolor/scalable/apps + install --mode=444 ${desktopIcon} \ + "$out"/share/icons/t3code.png + install --mode=444 assets/prod/logo.svg \ + "$out"/share/icons/hicolor/scalable/apps/t3code.svg + + runHook postInstall + ''; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + for shell in bash fish zsh; do + installShellCompletion --cmd t3code --"$shell" <("$out/bin/t3code" --completions "$shell") + done + ''; + + desktopItems = [ + (makeDesktopItem { + name = "t3code"; + desktopName = appName; + comment = "Minimal web GUI for coding agents"; + exec = "t3code-desktop %U"; + terminal = false; + icon = "t3code"; + startupWMClass = "t3code"; + categories = [ "Development" ]; + }) + ]; + + passthru = { + inherit nodeModules; + updateScript = nix-update-script { + extraArgs = [ + "--subpackage" + "nodeModules" + ]; + }; + }; + + meta = { + description = "Minimal web GUI for coding agents"; + homepage = "https://t3.codes"; + downloadPage = "https://t3.codes/download"; + changelog = "https://github.com/pingdotgg/t3code/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + iamanaws + qweered + ]; + mainProgram = "t3code-desktop"; + inherit (nodejs.meta) platforms; + }; + } +) diff --git a/pkgs/by-name/we/wealthfolio/package.nix b/pkgs/by-name/we/wealthfolio/package.nix index e0c71d5e1811..4a3fe94ce668 100644 --- a/pkgs/by-name/we/wealthfolio/package.nix +++ b/pkgs/by-name/we/wealthfolio/package.nix @@ -19,13 +19,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "wealthfolio"; - version = "3.2.1"; + version = "3.3.0"; src = fetchFromGitHub { owner = "afadil"; repo = "wealthfolio"; rev = "v${finalAttrs.version}"; - hash = "sha256-flXuskAzrDFBMcAtOe++QpFRIXvbbx5eqXxrymC4MMM="; + hash = "sha256-33gThDw8crrgW5zn9+N8bx6zyuXC2oXu6Slu0WtYrDE="; }; pnpmDeps = fetchPnpmDeps { @@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: { src cargoRoot ; - hash = "sha256-Zo3EVWxuJ//EtqUZ1l2/B1MGlmpoBcWQksY/IpCb5N4"; + hash = "sha256-ZsUHCNiOoCYUDXs6zdtkI+xYPNJbThGhUhgA4erBy4Q="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/wi/wireplumber/package.nix b/pkgs/by-name/wi/wireplumber/package.nix index 9e2421cdb114..3eadcd1f53fc 100644 --- a/pkgs/by-name/wi/wireplumber/package.nix +++ b/pkgs/by-name/wi/wireplumber/package.nix @@ -43,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; __structuredAttrs = true; + separateDebugInfo = true; nativeBuildInputs = [ meson diff --git a/pkgs/by-name/xn/xnviewmp/package.nix b/pkgs/by-name/xn/xnviewmp/package.nix index 8e6ce15df574..24842efada65 100644 --- a/pkgs/by-name/xn/xnviewmp/package.nix +++ b/pkgs/by-name/xn/xnviewmp/package.nix @@ -25,11 +25,11 @@ let in appimageTools.wrapType2 rec { pname = "xnviewmp"; - version = "1.10.5"; + version = "1.11.2"; src = fetchurl { url = "https://download.xnview.com/old_versions/XnView_MP/XnView_MP-${version}.glibc2.17-x86_64.AppImage"; - hash = "sha256-BGdjVwinH2P9vG3aiWeUpFTIftmbYjdJEmcrXXi7XFw="; + hash = "sha256-czgleryYMhRKxnv7Qb3E03iZ4mKXaz//jz7HmuQbjIc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ze/zettlr/package.nix b/pkgs/by-name/ze/zettlr/package.nix index c01c2e053b10..1899d2d99ead 100644 --- a/pkgs/by-name/ze/zettlr/package.nix +++ b/pkgs/by-name/ze/zettlr/package.nix @@ -9,11 +9,11 @@ # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs. let pname = "zettlr"; - version = "4.3.1"; + version = "4.4.0"; src = fetchurl { url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage"; - hash = "sha256-7fQ4XObfXBiSqnhJPkUKsXBazucCTHjwvkK70dP74bE="; + hash = "sha256-Swic0hKZowOQasv5VAhT/1Gc3I03Zpw4c1FIQE1qsCQ="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; diff --git a/pkgs/data/json-schema/lib.nix b/pkgs/data/json-schema/lib.nix index 7202de3ba70a..599c58c40fce 100644 --- a/pkgs/data/json-schema/lib.nix +++ b/pkgs/data/json-schema/lib.nix @@ -85,7 +85,6 @@ let }) group; }) groups; }; - passAsFile = [ "catalogJson" ]; passthru = { inherit groups; }; @@ -93,6 +92,7 @@ let jq json-schema-catalog-rs ]; + __structuredAttrs = true; } // lib.optionalAttrs (version != null) { inherit version; @@ -105,7 +105,7 @@ let mkdir -p "$out_dir" # Write the catalog JSON. `jq` formats it nicely. - jq . <"$catalogJsonPath" >"$out_file" + printf "%s" "$catalogJson" | jq . >"$out_file" json-schema-catalog check "$out_file" ''; diff --git a/pkgs/development/python-modules/aioblescan/default.nix b/pkgs/development/python-modules/aioblescan/default.nix index 1de147641d4b..d53bfe7a9e65 100644 --- a/pkgs/development/python-modules/aioblescan/default.nix +++ b/pkgs/development/python-modules/aioblescan/default.nix @@ -3,17 +3,20 @@ buildPythonPackage, fetchFromGitHub, pytestCheckHook, + setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "aioblescan"; version = "0.2.14"; - format = "setuptools"; + pyproject = true; + + build-system = [ setuptools ]; src = fetchFromGitHub { owner = "frawau"; repo = "aioblescan"; - tag = version; + tag = finalAttrs.version; hash = "sha256-JeA9jX566OSRiejdnlifbcNGm0J0C+xzA6zXDUyZ6jc="; }; @@ -25,8 +28,8 @@ buildPythonPackage rec { description = "Library to listen for BLE advertized packets"; mainProgram = "aioblescan"; homepage = "https://github.com/frawau/aioblescan"; - changelog = "https://github.com/frawau/aioblescan/releases/tag/${version}"; + changelog = "https://github.com/frawau/aioblescan/releases/tag/${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix index 3e13e7fe81a1..d4e6c0be2e35 100644 --- a/pkgs/development/python-modules/boto3-stubs/default.nix +++ b/pkgs/development/python-modules/boto3-stubs/default.nix @@ -358,13 +358,13 @@ buildPythonPackage (finalAttrs: { pname = "boto3-stubs"; - version = "1.43.1"; + version = "1.43.2"; pyproject = true; src = fetchPypi { pname = "boto3_stubs"; inherit (finalAttrs) version; - hash = "sha256-vYe75R4IjHXuxpUPxGuQh5rWPoyLZ7FYJ1xcZkIz59w="; + hash = "sha256-DUZjbz52GpIHARSzmnaxVMXabFeUyJDhRAp/GRvx/y4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/iamdata/default.nix b/pkgs/development/python-modules/iamdata/default.nix index b6f6a5257051..0bd78ebdac36 100644 --- a/pkgs/development/python-modules/iamdata/default.nix +++ b/pkgs/development/python-modules/iamdata/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "iamdata"; - version = "0.1.202605011"; + version = "0.1.202605021"; pyproject = true; src = fetchFromGitHub { owner = "cloud-copilot"; repo = "iam-data-python"; tag = "v${finalAttrs.version}"; - hash = "sha256-LeMds94lqlwtzXkWHhZFF5K+c46XzCUaDbZqtiDbKb0="; + hash = "sha256-nnvd6bVqsnBH5K3zSI5VNs8NK4CT35Rotx7FIw2EiXE="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix index d0bba49852c2..387cf12aea45 100644 --- a/pkgs/development/python-modules/mypy-boto3/default.nix +++ b/pkgs/development/python-modules/mypy-boto3/default.nix @@ -127,8 +127,8 @@ in "sha256-gJM0o+V8YnmwVkgnRzR+Peaz45JuRpE8Hs6LRwfTeUQ="; mypy-boto3-appstream = - buildMypyBoto3Package "appstream" "1.43.0" - "sha256-FWmLbsuieRRvtLtGYEvA8qx7lUmA28gcqBwFAYKEu7g="; + buildMypyBoto3Package "appstream" "1.43.2" + "sha256-lNImOTgL0fRu5Kjv9w4j5eifxpv1qjhVRd1/4bIGfQY="; mypy-boto3-appsync = buildMypyBoto3Package "appsync" "1.43.0" @@ -255,8 +255,8 @@ in "sha256-PVskBSuwqSfNybHDtLLfVpDG0dwR/Q1LhrHz1imsR8A="; mypy-boto3-cloudwatch = - buildMypyBoto3Package "cloudwatch" "1.43.0" - "sha256-jVUV51R8Yc8QyvjijYo1uyRPgTBpyZfsVVg7/og9f/A="; + buildMypyBoto3Package "cloudwatch" "1.43.2" + "sha256-oI+4JjIbiNqAQ6QXXX3OeigRmsIqym4S2TiwrjMijQU="; mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.43.0" @@ -507,8 +507,8 @@ in "sha256-2Ly3Ty1hw3U5NTRf1KCIw4Q/1WSD7pFEBafr1JiYLPA="; mypy-boto3-entityresolution = - buildMypyBoto3Package "entityresolution" "1.43.0" - "sha256-OW2ITDZlMSCnCMlfCl3lBMTMXRhahVaSIoOX70hX6U0="; + buildMypyBoto3Package "entityresolution" "1.43.2" + "sha256-vJVCkj3pNY8p6UKnr1zdMy8um84ONHYEYG2izkVaNA8="; mypy-boto3-es = buildMypyBoto3Package "es" "1.43.0" @@ -602,8 +602,8 @@ in "sha256-YeeEfYiM8ZJxcmxk6an+uCan9sMzYN4SWiApLaGCyzo="; mypy-boto3-iam = - buildMypyBoto3Package "iam" "1.43.0" - "sha256-qAL1Um+zThQZnOsQcTvFXGI9GffSzbQ9e8G1Ak3CtUI="; + buildMypyBoto3Package "iam" "1.43.2" + "sha256-uwMlq15hxaRid1n/6fpvv00icUbwtIWFVfegKJYi9Qo="; mypy-boto3-identitystore = buildMypyBoto3Package "identitystore" "1.43.0" @@ -630,8 +630,8 @@ in "sha256-F+4rmr2/nI1TQCFnMY0dPxAXlgN3IBSfiQaDGup5HSw="; mypy-boto3-iot = - buildMypyBoto3Package "iot" "1.43.0" - "sha256-SngqqN4Ccm4i7KhhFBU1eylZG/7OlGkzqiynEG/7m2g="; + buildMypyBoto3Package "iot" "1.43.2" + "sha256-4/pzyGy3MPDZiezsGyNskYyMZ7tR/Z8wvRWdH2GY8s8="; mypy-boto3-iot-data = buildMypyBoto3Package "iot-data" "1.43.0" @@ -806,8 +806,8 @@ in "sha256-EunrKwNaYp0CDiwp8frI7zASilMF4wYHjDSuCsJ6aJM="; mypy-boto3-logs = - buildMypyBoto3Package "logs" "1.43.0" - "sha256-rqx+8C6S+zdg00iiWgMyeSAQTOPuJEZIJw81xYbu5iY="; + buildMypyBoto3Package "logs" "1.43.2" + "sha256-LpQlM5FyqetOuHJMReJScyFj7qQlpnJ4/neymHiMSBo="; mypy-boto3-lookoutequipment = buildMypyBoto3Package "lookoutequipment" "1.43.0" @@ -1070,8 +1070,8 @@ in "sha256-YrrEKl3aGz//5Z5JGapHhWtk6hBXQ4cuRQmLqGYztzg="; mypy-boto3-quicksight = - buildMypyBoto3Package "quicksight" "1.43.0" - "sha256-2u+DpuVv/U/yXXYf6i7+ID9Va2m1y/tTOkJAcfAem6w="; + buildMypyBoto3Package "quicksight" "1.43.2" + "sha256-Xx5T3gaf6AlZLHooWhnD5lU6DPGBz/rNyvSzCUFc7vQ="; mypy-boto3-ram = buildMypyBoto3Package "ram" "1.43.0" diff --git a/pkgs/development/python-modules/pip-api/default.nix b/pkgs/development/python-modules/pip-api/default.nix index c3653d0f5af4..5d4f315f5a1e 100644 --- a/pkgs/development/python-modules/pip-api/default.nix +++ b/pkgs/development/python-modules/pip-api/default.nix @@ -9,7 +9,7 @@ virtualenv, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pip-api"; version = "0.0.34"; pyproject = true; @@ -17,13 +17,13 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "di"; repo = "pip-api"; - tag = version; + tag = "v${finalAttrs.version}"; hash = "sha256-nmCP4hp+BsD80OBjerOu+QTBBExGHvn/v19od4V3ncI="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ pip ]; + dependencies = [ pip ]; nativeCheckInputs = [ pretend @@ -40,13 +40,15 @@ buildPythonPackage rec { "test_invoke_install" "test_invoke_uninstall" "test_isolation" + # Tests fails on hydra + "test_parse_requirements_editable" ]; meta = { description = "Importable pip API"; - homepage = "https://github.com/di/pip-api"; - changelog = "https://github.com/di/pip-api/blob/${version}/CHANGELOG"; - license = with lib.licenses; [ mit ]; + homepage = "https://github.com/di/pip-api/"; + changelog = "https://github.com/di/pip-api/blob/${finalAttrs.src.tag}/CHANGELOG"; + license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/pytest-assume/default.nix b/pkgs/development/python-modules/pytest-assume/default.nix new file mode 100644 index 000000000000..4c344372f157 --- /dev/null +++ b/pkgs/development/python-modules/pytest-assume/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + pytest, + pytestCheckHook, + six, +}: + +buildPythonPackage (finalAttrs: { + pname = "pytest-assume"; + version = "2.4.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "astraw38"; + repo = "pytest-assume"; + tag = "v${finalAttrs.version}"; + hash = "sha256-QIwETun/n8SnBzK/axWiVTcuWiJ0ph3+2pQYVRMmVWI="; + }; + + build-system = [ setuptools ]; + + buildInputs = [ pytest ]; + + dependencies = [ six ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + pythonImportsCheck = [ "pytest_assume" ]; + + meta = { + description = "Pytest plugin that allows multiple failures per test"; + homepage = "https://github.com/astraw38/pytest-assume"; + changelog = "https://github.com/astraw38/pytest-assume/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jfr ]; + }; +}) diff --git a/pkgs/development/python-modules/reflex-chakra/default.nix b/pkgs/development/python-modules/reflex-chakra/default.nix index 3624dafe8bab..f1f77de34991 100644 --- a/pkgs/development/python-modules/reflex-chakra/default.nix +++ b/pkgs/development/python-modules/reflex-chakra/default.nix @@ -41,5 +41,6 @@ buildPythonPackage (finalAttrs: { changelog = "https://github.com/reflex-dev/reflex-chakra/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; + broken = true; # ImportError: cannot import name '_issubclass' from 'reflex.utils.types' }; }) diff --git a/pkgs/development/python-modules/reflex-hosting-cli/default.nix b/pkgs/development/python-modules/reflex-hosting-cli/default.nix deleted file mode 100644 index cd524f2b8f74..000000000000 --- a/pkgs/development/python-modules/reflex-hosting-cli/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - hatchling, - charset-normalizer, - httpx, - pipdeptree, - platformdirs, - pydantic, - python-dateutil, - pyyaml, - rich, - tabulate, - typer, - websockets, -}: - -buildPythonPackage rec { - pname = "reflex-hosting-cli"; - version = "0.1.62"; - pyproject = true; - - # source is not published https://github.com/reflex-dev/reflex/issues/3762 - src = fetchPypi { - pname = "reflex_hosting_cli"; - inherit version; - hash = "sha256-ejq4ciGKfr36LqGGuDRAMi5lj6kM9+onCuwbr+HrDZg="; - }; - - pythonRelaxDeps = [ - "click" - "rich" - "pipdeptree" - ]; - - build-system = [ hatchling ]; - - dependencies = [ - charset-normalizer - httpx - pipdeptree - platformdirs - pydantic - python-dateutil - pyyaml - rich - tabulate - typer - websockets - ]; - - pythonImportsCheck = [ - "reflex_cli" - "reflex_cli.cli" - "reflex_cli.deployments" - ]; - - # no tests on pypi - doCheck = false; - - meta = { - description = "Reflex Hosting CLI"; - homepage = "https://pypi.org/project/reflex-hosting-cli/"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ pbsds ]; - }; -} diff --git a/pkgs/development/python-modules/reflex/default.nix b/pkgs/development/python-modules/reflex/default.nix index e1661874280d..3b9cd46d0736 100644 --- a/pkgs/development/python-modules/reflex/default.nix +++ b/pkgs/development/python-modules/reflex/default.nix @@ -2,34 +2,39 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonAtLeast, # build-system hatchling, - pre-commit, - toml, + uv-dynamic-versioning, # dependencies - alembic, + requests, click, granian, httpx, packaging, platformdirs, psutil, - pydantic, python-multipart, python-socketio, redis, - reflex-hosting-cli, rich, - sqlmodel, starlette, typing-extensions, wrapt, + # sub package dependencies + pydantic, + griffelib, + mistletoe, + pyyaml, + typing-inspection, + email-validator, + ruff-format, + # tests attrs, + typer, numpy, pandas, pillow, @@ -41,71 +46,126 @@ python-dotenv, ruff, starlette-admin, - unzip, uvicorn, versionCheckHook, writableTmpDirAsHomeHook, }: +let + + metaCommon = { + description = "Web apps in pure Python"; + homepage = "https://github.com/reflex-dev/reflex"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ pbsds ]; + }; + + buildSubPackage = + { + pname, + version, + src, + workspace, + workspaces, + subPkgs, + }: + buildPythonPackage { + inherit pname version src; + pyproject = true; + sourceRoot = "${src.name}/packages/${pname}"; + + build-system = [ + hatchling + uv-dynamic-versioning + ruff + ] + ++ lib.optional (pname != "hatch-reflex-pyi") subPkgs.hatch-reflex-pyi; + + preBuild = '' + # for .ruff_cache and whatnot, written by hatch-reflex-pyi + chmod -R +w ../.. + ''; + + inherit (workspace) dependencies; + + # the top-level package tests everything + doCheck = false; + + meta = metaCommon; + }; + +in + buildPythonPackage (finalAttrs: { pname = "reflex"; - version = "0.8.28"; + version = "0.9.1"; pyproject = true; src = fetchFromGitHub { owner = "reflex-dev"; repo = "reflex"; tag = "v${finalAttrs.version}"; - hash = "sha256-sohID83qFnXV8vsaRy+t4cKxkki97U7sFxHIEYIEWeY="; + hash = "sha256-YYy/K4AXeh9wS4Vodg3NOqwolPYHTgpP5/yWkutMsxo="; }; - # For some reason, pre_commit is supposedly missing when python>=3.14 - postPatch = lib.optionalString (pythonAtLeast "3.14") '' - substituteInPlace pyproject.toml \ - --replace-fail '"pre_commit", ' "" - ''; - build-system = [ hatchling - pre-commit - toml + uv-dynamic-versioning ]; - dependencies = [ - alembic - click - granian - httpx - packaging - platformdirs - psutil - pydantic - python-multipart - python-socketio - redis - reflex-hosting-cli - rich - sqlmodel - starlette - typing-extensions - wrapt - ] - ++ granian.optional-dependencies.reload; + nativeBuildInputs = [ + ruff + ]; + + dependencies = + let + inherit (finalAttrs.passthru) subPkgs; + in + [ + click + requests + granian + httpx + packaging + psutil + python-multipart + python-socketio + redis + rich + starlette + typing-extensions + wrapt + plotly + + subPkgs.reflex-base + subPkgs.reflex-components-code + subPkgs.reflex-components-core + subPkgs.reflex-components-dataeditor + subPkgs.reflex-components-gridjs + subPkgs.reflex-components-lucide + subPkgs.reflex-components-markdown + subPkgs.reflex-components-moment + subPkgs.reflex-components-plotly + subPkgs.reflex-components-radix + subPkgs.reflex-components-react-player + subPkgs.reflex-components-recharts + subPkgs.reflex-components-sonner + subPkgs.reflex-hosting-cli + ] + ++ granian.optional-dependencies.reload; nativeCheckInputs = [ attrs + typer numpy pandas pillow playwright - plotly pytest-asyncio pytest-mock pytestCheckHook python-dotenv - ruff starlette-admin - unzip uvicorn versionCheckHook writableTmpDirAsHomeHook @@ -113,43 +173,254 @@ buildPythonPackage (finalAttrs: { versionCheckProgramArg = "--version"; disabledTests = [ - # Tests touch network - "test_find_and_check_urls" - "test_event_actions" - "test_upload_file" + # Touches network "test_node_version" + # /proc is too funky in nix sandbox "test_get_cpu_info" + # flaky "test_preprocess" # KeyError: 'reflex___state____state' "test_send" # AssertionError: Expected 'post' to have been called once. Called 0 times. "test_state_manager_lock" # Lock expired for token 87164611-f... - # tries to pin the string of a traceback, doesn't account for ansi colors - "test_state_with_invalid_yield" + # tries to run bun or npm "test_output_system_info" - # Comparison with magic string - "test_background_task_no_block" + # reflex.utils.exceptions.StateSerializationError: Failed to serialize state # reflex___istate___dynamic____dill_state due to unpicklable object. "test_fallback_pickle" + + # AssertionError (mocked_open.call_count == 2) + "test_delete_token_from_config" ]; disabledTestPaths = [ "tests/benchmarks/" "tests/integration/" + + # circular imports (reflex-docgen) + "tests/units/docgen/test_class_and_component.py" + "tests/units/docgen/test_markdown.py" + "docs/app/tests/test_docgen_double_eval.py" + + # circular imports (reflex_site_shared) + "docs/app/tests/test_routes.py" ]; __darwinAllowLocalNetworking = true; - pythonImportsCheck = [ "reflex" ]; + pythonImportsCheck = [ + "reflex" + "reflex.admin" + "reflex.app" + "reflex.app_mixins.lifespan" + "reflex.app_mixins.middleware" + "reflex.app_mixins.mixin" + "reflex.assets" + "reflex.compiler" + "reflex.components" + "reflex.config" + "reflex.constants" + "reflex.custom_components" + "reflex.environment" + "reflex.event" + "reflex.experimental" + "reflex.experimental.client_state" + "reflex.experimental.hooks" + "reflex.experimental.memo" + "reflex.istate" + "reflex.middleware" + "reflex.model" + "reflex.page" + "reflex.plugins" + "reflex.plugins.sitemap" + "reflex.plugins.tailwind_v3" + "reflex.plugins.tailwind_v4" + "reflex.reflex" + "reflex.route" + "reflex.state" + "reflex.style" + "reflex.utils" + "reflex.vars" + ]; - meta = { - description = "Web apps in pure Python"; - homepage = "https://github.com/reflex-dev/reflex"; + passthru = { + # all [tool.uv.sources] workspaces in pyproject.toml + workspaces = + let + inherit (finalAttrs.passthru) subPkgs; + in + # this is generated with: + # ./pkgs/development/python-modules/reflex/mk_workspaces.sh + { + hatch-reflex-pyi.dependencies = [ + hatchling + ]; + integrations-docs.dependencies = [ + ]; + reflex-base.dependencies = [ + packaging + platformdirs + pydantic + rich + typing-extensions + ]; + reflex-components-code.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-radix + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-core.dependencies = [ + python-multipart + subPkgs.reflex-base + subPkgs.reflex-components-lucide + subPkgs.reflex-components-sonner + ruff + starlette + typing-extensions + ]; + reflex-components-dataeditor.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-gridjs.dependencies = [ + subPkgs.reflex-base + ruff + ]; + reflex-components-internal.dependencies = [ + finalAttrs.finalPackage # reflex + subPkgs.reflex-base + subPkgs.reflex-components-code + subPkgs.reflex-components-core + subPkgs.reflex-components-dataeditor + subPkgs.reflex-components-gridjs + subPkgs.reflex-components-lucide + subPkgs.reflex-components-markdown + subPkgs.reflex-components-moment + subPkgs.reflex-components-plotly + subPkgs.reflex-components-radix + subPkgs.reflex-components-react-player + subPkgs.reflex-components-recharts + subPkgs.reflex-components-sonner + subPkgs.reflex-hosting-cli + ruff + ]; + reflex-components-lucide.dependencies = [ + subPkgs.reflex-base + ruff + ]; + reflex-components-markdown.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-code + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-radix + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-moment.dependencies = [ + subPkgs.reflex-base + ruff + ]; + reflex-components-plotly.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-radix.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-react-player.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-core + subPkgs.reflex-components-lucide + subPkgs.reflex-components-sonner + ruff + ]; + reflex-components-recharts.dependencies = [ + subPkgs.reflex-base + ruff + ]; + reflex-components-sonner.dependencies = [ + subPkgs.reflex-base + subPkgs.reflex-components-lucide + ruff + ]; + reflex-docgen.dependencies = [ + griffelib + mistletoe + pyyaml + finalAttrs.finalPackage # reflex + typing-extensions + typing-inspection + ]; + reflex-hosting-cli.dependencies = [ + click + httpx + packaging + platformdirs + rich + ]; + reflex-site-shared.dependencies = [ + email-validator + httpx + pyyaml + finalAttrs.finalPackage # reflex + subPkgs.reflex-base + subPkgs.reflex-components-code + subPkgs.reflex-components-core + subPkgs.reflex-components-dataeditor + subPkgs.reflex-components-gridjs + subPkgs.reflex-components-internal + subPkgs.reflex-components-lucide + subPkgs.reflex-components-markdown + subPkgs.reflex-components-moment + subPkgs.reflex-components-plotly + subPkgs.reflex-components-radix + subPkgs.reflex-components-react-player + subPkgs.reflex-components-recharts + subPkgs.reflex-components-sonner + subPkgs.reflex-hosting-cli + ruff + ruff-format + ]; + }; + + inherit buildSubPackage; + subPkgs = lib.flip lib.mapAttrs finalAttrs.passthru.workspaces ( + pname: workspace: + (finalAttrs.passthru.buildSubPackage { + inherit pname workspace; + inherit (finalAttrs) version src; + inherit (finalAttrs.passthru) workspaces subPkgs; + }) + ); + + tests = { + reflex-no-checks = finalAttrs.finalPackage.overrideAttrs (old: { + pname = "${old.pname}-sans-checks-phase"; + doCheck = false; + nativeCheckInputs = [ ]; + }); + } + // finalAttrs.passthru.subPkgs; + }; + + meta = metaCommon // { changelog = "https://github.com/reflex-dev/reflex/releases/tag/${finalAttrs.src.tag}"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ pbsds ]; mainProgram = "reflex"; }; }) diff --git a/pkgs/development/python-modules/reflex/mk_workspaces.sh b/pkgs/development/python-modules/reflex/mk_workspaces.sh new file mode 100755 index 000000000000..f162c1fcc56d --- /dev/null +++ b/pkgs/development/python-modules/reflex/mk_workspaces.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env nix-shell +#!nix-shell --pure -i bash -p nix jq yq +set -euo pipefail + +src=$(nix-build . -A python3Packages.reflex.src --no-out-link) +# echo >&2 "src=$src"; exit 0 # DEBUG + +declare -a workspace_paths=( "$src"/packages/* ) +# printf >&2 "%s\n" "${workspace_paths[@]}"; exit 0 # DEBUG + +declare -a workspaces=( "${workspace_paths[@]##*/}" ) +# printf >&2 "%s\n" "${workspaces[@]}"; exit 0 # DEBUG + +workspaces_json=$( printf '"%s"\n' "${workspaces[@]}" | jq -s '.' -c ) + +for workspace in "${workspaces[@]}"; do + echo "$workspace.dependencies = [" + tomlq <"$src/packages/$workspace/pyproject.toml" \ + --argjson "workspaces" "$workspaces_json" \ + '.project.dependencies + (.tool.hatch.build.hooks."reflex-pyi".dependencies // []) + | map( split("[ !><=]"; null)[0] ) # remove ">= 1.2.3" + | map( gsub("_"; "-") ) # normalize attrpath/pname + | unique[] + | if (. as $dep | $workspaces|index($dep) != null) then + " subPkgs.\(.)" + elif . == "reflex" then + " finalAttrs.finalPackage # reflex" + else + " \(.)" + end + ' -r + echo '];' +done diff --git a/pkgs/development/python-modules/ruff-format/default.nix b/pkgs/development/python-modules/ruff-format/default.nix new file mode 100644 index 000000000000..ec1073f6df4c --- /dev/null +++ b/pkgs/development/python-modules/ruff-format/default.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + cargo, + rustPlatform, + rustc, +}: + +buildPythonPackage (finalAttrs: { + pname = "ruff-format"; + version = "0.5.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "reflex-dev"; + repo = "ruff-format"; + tag = "v${finalAttrs.version}"; + hash = "sha256-7XWeEcvbsVffaDbGDW2251qaZtUj6Sip3TEs9lytoo8="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) pname version src; + hash = "sha256-D19Irgy8kh14neAJDMlNRQ81qyYB8NNZ25wxjbUk7wk="; + }; + + build-system = [ + cargo + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + rustc + ]; + + pythonImportsCheck = [ + "ruff_format" + ]; + + meta = { + description = "Fast Python code formatter"; + homepage = "https://github.com/reflex-dev/ruff-format"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ pbsds ]; + }; +}) diff --git a/pkgs/development/python-modules/symbolic/default.nix b/pkgs/development/python-modules/symbolic/default.nix index fccaf7e3e3d6..afc62c2ccd30 100644 --- a/pkgs/development/python-modules/symbolic/default.nix +++ b/pkgs/development/python-modules/symbolic/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "symbolic"; - version = "12.18.0"; + version = "12.18.3"; pyproject = true; src = fetchFromGitHub { @@ -23,12 +23,12 @@ buildPythonPackage rec { tag = version; # the `py` directory is not included in the tarball, so we fetch the source via git instead forceFetchGit = true; - hash = "sha256-BPGT+Hb47LN7X6Qx31foqQUMLd8UW5wKVg5xzkQERh8="; + hash = "sha256-BQI5Fb8W9mwCYDHDlA3mAenofeWM2pp1BZkzMSdQzdc="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-6u6j0AQTyR7lU5kWAHTfa0B0cY0EhTBDG9L7vq62UCw="; + hash = "sha256-MfD67NKyw2ygTK8b11WNIpazny2hJArJ+lpicsFJfRw="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/victron-mqtt/default.nix b/pkgs/development/python-modules/victron-mqtt/default.nix index 696833cdd76b..eabe258913c4 100644 --- a/pkgs/development/python-modules/victron-mqtt/default.nix +++ b/pkgs/development/python-modules/victron-mqtt/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "victron-mqtt"; - version = "2026.4.17"; + version = "2026.4.19"; pyproject = true; src = fetchFromGitHub { owner = "tomer-w"; repo = "victron_mqtt"; tag = "v${finalAttrs.version}"; - hash = "sha256-7aLgA5TW4VAFlR2I2rWtsDIkOXUJUJY6Z0WXhifuJ0k="; + hash = "sha256-KJAq/tYQHdlgeUTG+o3yKD5x1XKpYLDlDAr1ti2lbYI="; }; build-system = [ diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix index 50e3f9127212..9e6dac8f9a11 100644 --- a/pkgs/development/python-modules/weconnect-mqtt/default.nix +++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix @@ -10,7 +10,7 @@ weconnect, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "weconnect-mqtt"; version = "0.49.5"; pyproject = true; @@ -18,13 +18,13 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "tillsteinbach"; repo = "WeConnect-mqtt"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-69p7lAO7W+odrm1kLhvB8v4kNKx6IWBUSOQKgrxVCCY="; }; postPatch = '' substituteInPlace weconnect_mqtt/__version.py \ - --replace-fail "0.0.0dev" "${version}" + --replace-fail "0.0.0dev" "${finalAttrs.version}" substituteInPlace requirements.txt \ --replace-fail "weconnect[Images]~=" "weconnect>=" substituteInPlace pytest.ini \ @@ -52,9 +52,9 @@ buildPythonPackage rec { meta = { description = "Python client that publishes data from Volkswagen WeConnect"; homepage = "https://github.com/tillsteinbach/WeConnect-mqtt"; - changelog = "https://github.com/tillsteinbach/WeConnect-mqtt/releases/tag/${src.tag}"; + changelog = "https://github.com/tillsteinbach/WeConnect-mqtt/releases/tag/v${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; mainProgram = "weconnect-mqtt"; }; -} +}) diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix index 0573db759011..9630b198e69c 100644 --- a/pkgs/development/python-modules/weconnect/default.nix +++ b/pkgs/development/python-modules/weconnect/default.nix @@ -12,7 +12,7 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "weconnect"; version = "0.60.11"; pyproject = true; @@ -20,13 +20,13 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "tillsteinbach"; repo = "WeConnect-python"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-llAWCjhP/fwI+H8BRpMYxba8jC+WDc66xkUDwT3NHcA="; }; postPatch = '' substituteInPlace weconnect/__version.py \ - --replace-fail "0.0.0dev" "${version}" + --replace-fail "0.0.0dev" "${finalAttrs.version}" substituteInPlace setup.py \ --replace-fail "setup_requires=SETUP_REQUIRED" "setup_requires=[]" \ --replace-fail "tests_require=TEST_REQUIRED" "tests_require=[]" @@ -34,6 +34,11 @@ buildPythonPackage rec { --replace-fail "required_plugins = pytest-cov" "" ''; + pythonRelaxDeps = [ + "oauthlib" + "requests" + ]; + build-system = [ setuptools ]; dependencies = [ @@ -42,8 +47,6 @@ buildPythonPackage rec { requests ]; - pythonRelaxDeps = [ "oauthlib" ]; - optional-dependencies = { Images = [ ascii-magic @@ -61,8 +64,8 @@ buildPythonPackage rec { meta = { description = "Python client for the Volkswagen WeConnect Services"; homepage = "https://github.com/tillsteinbach/WeConnect-python"; - changelog = "https://github.com/tillsteinbach/WeConnect-python/releases/tag/${src.tag}"; + changelog = "https://github.com/tillsteinbach/WeConnect-python/releases/tag/v${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/package.nix b/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/package.nix index cdbaf4ac3655..d1f17bfde7b1 100644 --- a/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/package.nix +++ b/pkgs/servers/home-assistant/custom-components/smartthinq-sensors/package.nix @@ -10,13 +10,13 @@ buildHomeAssistantComponent rec { owner = "ollo69"; domain = "smartthinq_sensors"; - version = "0.42.0"; + version = "0.42.2"; src = fetchFromGitHub { inherit owner; repo = "ha-smartthinq-sensors"; rev = "v${version}"; - hash = "sha256-ks1feF4TjzQaI6r6HzZ2cXPcUO+yMoeav34C/2jlH3k="; + hash = "sha256-y8MGGTcOrr4IZUefBgq7wVG3H5UFAB7L2FkwoVsygb0="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/universal-remote-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/universal-remote-card/package.nix index 32786a78a71b..7af5928e7842 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/universal-remote-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/universal-remote-card/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "universal-remote-card"; - version = "4.10.8"; + version = "4.10.10"; src = fetchFromGitHub { owner = "Nerwyn"; repo = "android-tv-card"; rev = version; - hash = "sha256-VeLAvCdVFO0LsO/vvaHZVYy0F1DHjD82jHay+Au9kPU="; + hash = "sha256-2qtxohJLtccku1fQvxCV97QbZUwvn5FGvsuaunvsViA="; }; - npmDepsHash = "sha256-c/ZqmMZECRUjQW88eJqdOowPynAdOcve8qtHZhuEBak="; + npmDepsHash = "sha256-c5A+GmMkqxgL8fQyDp8qul/cW40iTbgHf7O/iR0F2bY="; installPhase = '' runHook preInstall diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index aff8d37062ab..5d6657fb3a3b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15271,6 +15271,8 @@ self: super: with self; { pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { }; + pytest-assume = callPackage ../development/python-modules/pytest-assume { }; + pytest-astropy = callPackage ../development/python-modules/pytest-astropy { }; pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { }; @@ -16711,7 +16713,7 @@ self: super: with self; { reflex-chakra = callPackage ../development/python-modules/reflex-chakra { }; - reflex-hosting-cli = callPackage ../development/python-modules/reflex-hosting-cli { }; + inherit (reflex.subPkgs) reflex-hosting-cli; reflink = callPackage ../development/python-modules/reflink { }; @@ -17206,6 +17208,8 @@ self: super: with self; { ruff-api = callPackage ../development/python-modules/ruff-api { }; + ruff-format = callPackage ../development/python-modules/ruff-format { }; + rules = callPackage ../development/python-modules/rules { }; rumps = callPackage ../development/python-modules/rumps { };