Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-11-06 06:06:47 +00:00
committed by GitHub
94 changed files with 974 additions and 556 deletions
+7
View File
@@ -7749,6 +7749,13 @@
githubId = 3422442;
name = "Ruben Maher";
};
er0k = {
email = "er0k@er0k.net";
github = "er0k";
githubId = 916239;
name = "er0k";
keys = [ { fingerprint = "60DE 4570 2E31 81A2 AF87 F075 B005 BA3C 8EE8 108D"; } ];
};
eraserhd = {
email = "jason.m.felice@gmail.com";
github = "eraserhd";
@@ -16,8 +16,8 @@ let
inherit tiling_wm;
};
stableVersion = {
version = "2025.1.4.8"; # "Android Studio Narwhal 4 Feature Drop | 2025.1.4"
sha256Hash = "sha256-znRzVtUqNrLmpLYd9a96jFh85n+EgOsdteVLqxnMvfM=";
version = "2025.2.1.7"; # "Android Studio Otter | 2025.2.1"
sha256Hash = "sha256-Fq8foC10bkwYLYhS/zhZu6XBgnaO/qz6GKi4HWXnjLE=";
};
betaVersion = {
version = "2025.2.1.6"; # "Android Studio Otter | 2025.2.1 RC 1"
+3 -3
View File
@@ -133,9 +133,9 @@ rec {
unstable = fetchurl rec {
# NOTE: Don't forget to change the hash for staging as well.
version = "10.17";
version = "10.18";
url = "https://dl.winehq.org/wine/source/10.x/wine-${version}.tar.xz";
hash = "sha256-u/jn3jLOqf4wU2HUr4XjBJIlTEvwIDnuJtrHpmcBtOY=";
hash = "sha256-Uftyc9ZdCd6gMsSl4hl7EnJLJ8o2DhpiKyNz0e5QrXs=";
patches = [
# Also look for root certificates at $NIX_SSL_CERT_FILE
@@ -145,7 +145,7 @@ rec {
# see https://gitlab.winehq.org/wine/wine-staging
staging = fetchFromGitLab {
inherit version;
hash = "sha256-fTEzj3o7A9H9jIh3yhw8SCfNsnVeJ6pyL3jERqhVbr8=";
hash = "sha256-vhIjeEbWLpcKtkBd/KeAeaLKOUZt7LAkH6GTebs3ROM=";
domain = "gitlab.winehq.org";
owner = "wine";
repo = "wine-staging";
@@ -92,6 +92,10 @@ buildDubPackage (
# We get around this by manually pre-fetching the submodule and copying it into the right place
cp -r --no-preserve=all ${cimgui-src}/* "$cimgui_dir/deps/cimgui"
# bump cmake minimum version to a version supported by cmake 4
substituteInPlace "$cimgui_dir/deps/cimgui/CMakeLists.txt" \
--replace-fail "cmake_minimum_required(VERSION 3.1)" "cmake_minimum_required(VERSION 3.10)"
# Disable the original cmake fetcher script
substituteInPlace "$cimgui_dir/deps/CMakeLists.txt" \
--replace-fail "PullSubmodules(" "# PullSubmodules(" \
@@ -1129,13 +1129,13 @@
"vendorHash": "sha256-M2lJKmIR66lQKFkInjizn68ax2Gq4sim5Y3vZKyDhZ8="
},
"rootlyhq_rootly": {
"hash": "sha256-215PagKhONN483SGvYsLWQfKnSWmUKL1vCM4mr2xuGo=",
"hash": "sha256-8UlBt9gmQflO5sB++U4Ih40+6p+U6N8PE1npQYg9D8U=",
"homepage": "https://registry.terraform.io/providers/rootlyhq/rootly",
"owner": "rootlyhq",
"repo": "terraform-provider-rootly",
"rev": "v4.3.5",
"rev": "v4.3.7",
"spdx": "MPL-2.0",
"vendorHash": "sha256-MNddgnKFdrOCfpj84McqW/8lmU/t36x2Whsl9xkmrhM="
"vendorHash": "sha256-IpWN8hCZlXm9hbPr2VcjzU7wtqivUk2h+LOaaz4KyP4="
},
"rundeck_rundeck": {
"hash": "sha256-g8unbz8+UGLiAOJju6E2bLkygvZgHkv173PdMDefmrc=",
+12 -6
View File
@@ -9,22 +9,25 @@
}:
buildGoModule rec {
pname = "aws-vault";
version = "7.2.0";
version = "7.7.5";
src = fetchFromGitHub {
owner = "99designs";
owner = "ByteNess";
repo = "aws-vault";
rev = "v${version}";
hash = "sha256-Qs4vxFgehWQYYECBGBSU8YI/BHLwOQUO5wBlNEUzD7c=";
hash = "sha256-K91GNyvtjDO6UMU9cC+TbUdMWdXrPlKLU8u5cbEMdRA=";
};
vendorHash = "sha256-4bJKDEZlO0DzEzTQ7m+SQuzhe+wKmL6wLueqgSz/46s=";
proxyVendor = true;
vendorHash = "sha256-3AL3vjKqzjrzgPrLLwIgWpn1hRB6soTMbaRly/fvziA=";
nativeBuildInputs = [
installShellFiles
makeWrapper
];
env.CGO_ENABLED = "0";
postInstall = ''
# make xdg-open overrideable at runtime
# aws-vault uses https://github.com/skratchdot/open-golang/blob/master/open/open.go to open links
@@ -55,8 +58,11 @@ buildGoModule rec {
meta = with lib; {
description = "Vault for securely storing and accessing AWS credentials in development environments";
mainProgram = "aws-vault";
homepage = "https://github.com/99designs/aws-vault";
homepage = "https://github.com/ByteNess/aws-vault";
license = licenses.mit;
maintainers = with maintainers; [ zimbatm ];
maintainers = with maintainers; [
zimbatm
er0k
];
};
}
+14 -3
View File
@@ -27,6 +27,7 @@
cargo,
rustPlatform,
nix-update-script,
versionCheckHook,
}:
let
llvmStdenv = llvmPackages_19.stdenv;
@@ -183,6 +184,12 @@ llvmStdenv.mkDerivation (finalAttrs: {
# https://github.com/ClickHouse/ClickHouse/issues/49988
hardeningDisable = [ "fortify" ];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
preVersionCheck = ''
version=${builtins.head (lib.splitString "-" version)}
'';
postInstall = ''
sed -i -e '\!<log>/var/log/clickhouse-server/clickhouse-server\.log</log>!d' \
$out/etc/clickhouse-server/config.xml
@@ -218,12 +225,16 @@ llvmStdenv.mkDerivation (finalAttrs: {
homepage = "https://clickhouse.com";
description = "Column-oriented database management system";
license = licenses.asl20;
maintainers = with maintainers; [
thevar1able
];
changelog = "https://github.com/ClickHouse/ClickHouse/blob/v${version}/CHANGELOG.md";
mainProgram = "clickhouse";
# not supposed to work on 32-bit https://github.com/ClickHouse/ClickHouse/pull/23959#issuecomment-835343685
platforms = lib.filter (x: (lib.systems.elaborate x).is64bit) (platforms.linux ++ platforms.darwin);
broken = stdenv.buildPlatform != stdenv.hostPlatform;
maintainers = with maintainers; [
thevar1able
];
};
})
+22 -1
View File
@@ -3,6 +3,8 @@
stdenv,
fetchFromGitHub,
cmake,
withPython ? false,
python ? null,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -18,7 +20,26 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DCLINGO_BUILD_WITH_PYTHON=OFF" ];
cmakeFlags =
if withPython then
[
"-DCLINGO_BUILD_WITH_PYTHON=ON"
"-DPYTHON_EXECUTABLE=${lib.getExe python.pythonOnBuildForHost}"
]
else
[ "-DCLINGO_BUILD_WITH_PYTHON=OFF" ];
propagatedBuildInputs = lib.optionals withPython (
with python.pkgs;
[
python
cffi
]
);
pythonImportsCheck = [
"clingo"
];
meta = {
description = "ASP system to ground and solve logic programs";
@@ -10,11 +10,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "copilot-language-server";
version = "1.389.0";
version = "1.392.0";
src = fetchzip {
url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-js-${finalAttrs.version}.zip";
hash = "sha256-QX3gSKV/FABXbeu1KzrSEyxFJU/xptSVvuxqTjTI9Go=";
hash = "sha256-+stenLWQWykBKHole0wW8w8jRzhjOio/VEcMPmklI/0=";
stripRoot = false;
};
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cryptoverif";
version = "2.11";
version = "2.12";
src = fetchurl {
url = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${finalAttrs.version}.tar.gz";
hash = "sha256-duc7t0Qpr1Z2FZEoufdQ7kcBlLbXHO+r9ivEgUxqK9s=";
hash = "sha256-d3MIYb57+95bB493hdtHiGnTOronYaQo1Qqq1TcJh1c=";
};
/*
+5 -5
View File
@@ -12,7 +12,7 @@
}:
let
pname = "dependabot-cli";
version = "1.77.0";
version = "1.78.1";
# `tag` is what `dependabot` uses to find the relevant docker images.
tag = "nixpkgs-dependabot-cli-${version}";
@@ -20,12 +20,12 @@ let
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy --image-tag latest --final-image-name dependabot-update-job-proxy --final-image-tag ${tag}
updateJobProxy.imageDigest = "sha256:53f33581efa03f1ed691b44896b231923888ba24b0e12cdc440aac2333d532c5";
updateJobProxy.hash = "sha256-GcCci6YcbZb4DgP91KpdBzwmnk5ffUJSHLtDCPyysZ4=";
updateJobProxy.hash = "sha256-M7vf5YS4ORG0TY+iHXL6nNAJhwgtO4PZbO4EEBBT6qo=";
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/dependabot/dependabot-updater-github-actions --image-tag latest --final-image-name dependabot-updater-github-actions --final-image-tag ${tag}
updaterGitHubActions.imageDigest = "sha256:c58d4bebdfcaf0664ad1025e509d4b77c35ba4999b4bfad2519b2d6e0d84603d";
updaterGitHubActions.hash = "sha256-P2kcpbYKj29iW3ma808LyVwhEYlcr+4JJuvOD6fGNoc=";
updaterGitHubActions.imageDigest = "sha256:a719a18ffb9aa87dba253be94e137ba7561fdf59f60d9a67c3ebc840ab2058a7";
updaterGitHubActions.hash = "sha256-nb8uX3pu+m7cu6Owi9EnWmUT4Epr4yXScSIFBR/Kb6Q=";
in
buildGoModule {
inherit pname version;
@@ -34,7 +34,7 @@ buildGoModule {
owner = "dependabot";
repo = "cli";
rev = "v${version}";
hash = "sha256-Uo5QuYOEd74EiEIkf17WsjlR81x9VbOGtZcoeqegIsc=";
hash = "sha256-Q6WZ7FrcEGfUfG/3Zx8Z4Jd+CB6pEcw1fDo3AF8ML4M=";
};
vendorHash = "sha256-dD48OKpuGAJAro7qV4tqpf/uENV2X1VQ2kUvAuJLXc0=";
+2 -7
View File
@@ -43,9 +43,7 @@
numMultipath ? 64,
watchfrrSupport ? true,
cumulusSupport ? false,
rtadvSupport ? true,
irdpSupport ? true,
routeReplacementSupport ? true,
mgmtdSupport ? true,
# Experimental as of 10.1, reconsider if upstream changes defaults
grpcSupport ? false,
@@ -151,24 +149,21 @@ stdenv.mkDerivation (finalAttrs: {
configureFlags = [
"--disable-silent-rules"
"--disable-exampledir"
"--enable-configfile-mask=0640"
"--enable-group=frr"
"--enable-logfile-mask=0640"
"--enable-multipath=${toString numMultipath}"
"--enable-user=frr"
"--enable-vty-group=frrvty"
"--localstatedir=/run/frr"
"--localstatedir=/var"
"--sbindir=${placeholder "out"}/libexec/frr"
"--sysconfdir=/etc/frr"
"--sysconfdir=/etc"
"--with-clippy=${finalAttrs.clippy-helper}/bin/clippy"
# general options
(lib.strings.enableFeature snmpSupport "snmp")
(lib.strings.enableFeature rpkiSupport "rpki")
(lib.strings.enableFeature watchfrrSupport "watchfrr")
(lib.strings.enableFeature rtadvSupport "rtadv")
(lib.strings.enableFeature irdpSupport "irdp")
(lib.strings.enableFeature routeReplacementSupport "rr-semantics")
(lib.strings.enableFeature mgmtdSupport "mgmtd")
(lib.strings.enableFeature grpcSupport "grpc")
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "gerrit";
version = "3.12.2";
version = "3.12.3";
src = fetchurl {
url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
hash = "sha256-jQydsKixNKY0PYXysPckcxrpFhDBLQmfN+x/tlfGdEk=";
hash = "sha256-egPuxGfRk8uB+7hzdrrEOT9wfBxlkaSjRpw2z9RYXAI=";
};
buildCommand = ''
+3 -3
View File
@@ -14,16 +14,16 @@
buildGo125Module (finalAttrs: {
pname = "golangci-lint";
version = "2.6.0";
version = "2.6.1";
src = fetchFromGitHub {
owner = "golangci";
repo = "golangci-lint";
tag = "v${finalAttrs.version}";
hash = "sha256-lSOtFG760zkN0YYaSms42sv7OYMGymNHDVfstVau8iY=";
hash = "sha256-LpYg7zkbLlvOe9u0TyDXkd9VIPyTNGhoZIrRhdmndH4=";
};
vendorHash = "sha256-h0rAqxUJlPlCPGi0eNl8oMXicpauZZmCQzAsTDGwHc4=";
vendorHash = "sha256-8nwTMjn5OhFDK1Izv/yIIf14X5SijOYiXcXltIKNPJI=";
subPackages = [ "cmd/golangci-lint" ];
+1 -1
View File
@@ -12,7 +12,7 @@ let
in
stdenv.mkDerivation rec {
pname = "immich-cli";
version = "2.2.100";
version = "2.2.101";
inherit (immich) src pnpmDeps;
postPatch = ''
+1 -1
View File
@@ -55,7 +55,7 @@ buildGoModule rec {
];
passthru = {
updateScript = nix-update-script { };
updateScript = nix-update-script { extraArgs = [ "--use-github-releases" ]; };
tests.versionTest = testers.testVersion {
package = immich-go;
command = "immich-go --version";
+2 -2
View File
@@ -34,7 +34,7 @@
}:
let
pnpm = pnpm_10;
version = "2.2.2";
version = "2.2.3";
esbuild' = buildPackages.esbuild.override {
buildGoModule =
@@ -108,7 +108,7 @@ let
owner = "immich-app";
repo = "immich";
tag = "v${version}";
hash = "sha256-0ibXs4c61CEp6s/gOCsIj2A7VTnA+72jTMXoo4kkt74=";
hash = "sha256-OoToTRDPXWOa7d1j1xvkZt+vKWBX4eHDiIsFs3bIlvw=";
};
pnpmDeps = pnpm.fetchDeps {
+2 -2
View File
@@ -19,8 +19,8 @@
#
# Ensure you also check ../mattermostLatest/package.nix.
regex = "^v(10\\.11\\.[0-9]+)$";
version = "10.11.5";
srcHash = "sha256-X0YjyRrFSYI7A+VINLV3NwAmsxgTkdUdHChyl1L+iWY=";
version = "10.11.6";
srcHash = "sha256-JBZAFyjZOteDaCVktxXtdbimNrvCpUpgK45OuFCI5xQ=";
vendorHash = "sha256-Lsw/cvl98JdVmzWr85lAv/JMcTmZZZ4ALLunFLNcrro=";
npmDepsHash = "sha256-p9dq31qw0EZDQIl2ysKE38JgDyLA6XvSv+VtHuRh+8A=";
lockfileOverlay = ''
+2 -2
View File
@@ -6,7 +6,7 @@
}:
let
version = "1.0.2-20563267";
version = "1.0.2-20664049";
urlVersion = lib.replaceStrings [ "." ] [ "-" ] version;
in
@@ -16,7 +16,7 @@ stdenvNoCC.mkDerivation {
src = fetchzip {
url = "https://necessegame.com/content/server/${urlVersion}/necesse-server-linux64-${urlVersion}.zip";
hash = "sha256-oDd9ZRCEKHQDaCqrRFiNj8AhNZ+2ZRVdzlooE99Y+VA=";
hash = "sha256-VgTAFxdI4YnTG1oOwrQpqIfKO6cf7o3NmGjcp7QZFK4=";
};
# removing packaged jre since we use our own
+3 -3
View File
@@ -10,16 +10,16 @@
php.buildComposerProject2 (finalAttrs: {
pname = "phpunit";
version = "12.4.1";
version = "12.4.2";
src = fetchFromGitHub {
owner = "sebastianbergmann";
repo = "phpunit";
tag = finalAttrs.version;
hash = "sha256-QDZ5vwmBv+rfXzecg7gvrT7BRnRgIzmKkRpwTwxDQ5w=";
hash = "sha256-UXPFCnsUQhq3RS/MD9jfW0YKheHjzwQoV9TqLRi05nQ=";
};
vendorHash = "sha256-zG6Q7y7EBTyPYBvCWvehy0KaZ+utUyzveEAaqsedOgE=";
vendorHash = "sha256-Fsj+pu1MYuuIpGE0QC6lSPmPwYCpF1ID/HMoYLFxwFE=";
passthru = {
updateScript = nix-update-script { };
+4 -4
View File
@@ -19,16 +19,16 @@
}:
rustPlatform.buildRustPackage {
pname = "steel";
version = "0-unstable-2025-10-24";
version = "0-unstable-2025-11-04";
src = fetchFromGitHub {
owner = "mattwparas";
repo = "steel";
rev = "0b89c955668a48e8aab4344d5f7d3a44360ec73e";
hash = "sha256-hbjCJeWJi71mY+2oW8KOIuYppYL2YIhwImm8GFxD9O4=";
rev = "ee5c58b83ff46738e3fb9990138b88abe5286b07";
hash = "sha256-eFa3R7G9GkanWMA6g7miu983tyXQVmt69tyhaftEJOU=";
};
cargoHash = "sha256-CrmQhOfh7SQ5GvBywmYkfU6wMlgZq2x61+T+mIeQ7z4=";
cargoHash = "sha256-RCFLN0+59FV2fs0zGi1uuHt7B6DZUROFxisqoEQsT7U=";
nativeBuildInputs = [
curl
+2 -2
View File
@@ -9,11 +9,11 @@
stdenvNoCC.mkDerivation rec {
pname = "theme-obsidian2";
version = "2.24";
version = "2.25";
src = fetchurl {
url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
sha256 = "sha256-P+62cdYiCk8419S+u1w6EmzJL0rgHAh7G5eTuBOrAGY=";
sha256 = "sha256-Hajz2bFcsi+9kSjxuZ6Jav8t7S6trDUF5yJivw+Vypw=";
};
sourceRoot = ".";
@@ -0,0 +1,58 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
pydantic,
pytest-asyncio,
pytestCheckHook,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "actron-neo-api";
version = "0.1.84";
pyproject = true;
src = fetchFromGitHub {
owner = "kclif9";
repo = "actronneoapi";
tag = "v${version}";
hash = "sha256-ihIg264ZX0tCfRwVLkiq62ke2G125ObcrVabPCDrc4c=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
aiohttp
pydantic
];
pythonImportsCheck = [ "actron_neo_api" ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
disabledTests = [
# test hangs
"test_poll_for_token_pending"
# AttributeError: property 'authorization_header' of 'ActronAirOAuth2DeviceCodeAuth' object has no setter
"test_lazy_token_refres"
# ActronAirAuthError: Refresh token is required to refresh the access token
"test_get_user_info"
];
meta = {
changelog = "https://github.com/kclif9/actronneoapi/releases/tag/${src.tag}";
description = "Communicate with Actron Air systems via the Actron Neo API";
homepage = "https://github.com/kclif9/actronneoapi";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -0,0 +1,41 @@
{
buildPythonPackage,
click,
fetchFromGitHub,
lib,
poetry-core,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "aio-ownet";
version = "0.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "hacf-fr";
repo = "aio-ownet";
tag = "v${version}";
hash = "sha256-XaulcBrFLu8YsfaYQsZfUBHnw0H5qX6itdgsiW89Ca4=";
};
build-system = [ poetry-core ];
optional-dependencies = {
cli = [ click ];
};
pythonImportsCheck = [ "aio_ownet" ];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
changelog = "https://github.com/hacf-fr/aio-ownet/releases/tag/${src.tag}";
description = "Asynchronous OWFS (owserver network protocol) client library";
homepage = "https://github.com/hacf-fr/aio-ownet";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -10,19 +10,19 @@
poetry-core,
pytest-cov-stub,
pytestCheckHook,
yarl,
python-dateutil,
}:
buildPythonPackage rec {
pname = "aioamazondevices";
version = "6.4.6";
version = "6.5.6";
pyproject = true;
src = fetchFromGitHub {
owner = "chemelli74";
repo = "aioamazondevices";
tag = "v${version}";
hash = "sha256-EjgZ/zmUSCaLDUmijYMCXvwpl4dWfjmTdlO5VLuzIHg=";
hash = "sha256-OgcOsRKqSU3k4myfHmOYaXW259LDgYWj0gXPLwabVIM=";
};
build-system = [ poetry-core ];
@@ -33,7 +33,7 @@ buildPythonPackage rec {
colorlog
langcodes
orjson
yarl
python-dateutil
];
pythonImportsCheck = [ "aioamazondevices" ];
@@ -7,6 +7,7 @@
freezegun,
ical,
mashumaro,
orjson,
poetry-core,
poetry-dynamic-versioning,
pyjwt,
@@ -22,7 +23,7 @@
buildPythonPackage rec {
pname = "aioautomower";
version = "2.3.1";
version = "2.7.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -31,7 +32,7 @@ buildPythonPackage rec {
owner = "Thomas55555";
repo = "aioautomower";
tag = "v${version}";
hash = "sha256-M0BAErX5S3BjP+YSv+j2m453T4+U4uHV6N0kWmc42ls=";
hash = "sha256-qhjfnneLJjdDDP4XrecSI/psqEqKGP5ziaPd/iRiZfM=";
};
postPatch = ''
@@ -49,6 +50,7 @@ buildPythonPackage rec {
aiohttp
ical
mashumaro
orjson
pyjwt
python-dateutil
tzlocal
@@ -67,23 +69,17 @@ buildPythonPackage rec {
pythonImportsCheck = [ "aioautomower" ];
disabledTests = [
# File is missing
"test_standard_mower"
# Call no found
"test_post_commands"
# Timezone mismatches
"test_full_planner_event"
"test_sinlge_planner_event"
"test_set_datetime"
"test_message_event"
"test_async_get_messages"
];
meta = with lib; {
meta = {
description = "Module to communicate with the Automower Connect API";
homepage = "https://github.com/Thomas55555/aioautomower";
changelog = "https://github.com/Thomas55555/aioautomower/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "aiomealie";
version = "0.10.2";
version = "1.0.1";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "joostlek";
repo = "python-mealie";
tag = "v${version}";
hash = "sha256-VOUtSHxixGpfeP4G0puB1RPgaqvell1SBO7akEnLzrg=";
hash = "sha256-J0G0vRFkYZDDVBYxd4Dc/tSZJ991H1F2Acsew0zf9Oo=";
};
build-system = [ poetry-core ];
@@ -2,9 +2,11 @@
lib,
aiohttp,
beautifulsoup4,
colorlog,
buildPythonPackage,
colorlog,
cryptography,
fetchFromGitHub,
orjson,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
@@ -13,7 +15,7 @@
buildPythonPackage rec {
pname = "aiovodafone";
version = "1.2.1";
version = "3.0.0";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -22,7 +24,7 @@ buildPythonPackage rec {
owner = "chemelli74";
repo = "aiovodafone";
tag = "v${version}";
hash = "sha256-i4zsOHauKPq2b9LfWd4HYe04oOambbibHfNrJLiSSYw=";
hash = "sha256-JeMB7K2NURvMPgCZRNAFt9ThIu4LDq3WlmAXsgm1CKs=";
};
build-system = [ poetry-core ];
@@ -30,7 +32,9 @@ buildPythonPackage rec {
dependencies = [
aiohttp
beautifulsoup4
cryptography
colorlog
orjson
];
nativeCheckInputs = [
@@ -40,11 +44,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "aiovodafone" ];
meta = with lib; {
meta = {
description = "Library to control Vodafon Station";
homepage = "https://github.com/chemelli74/aiovodafone";
changelog = "https://github.com/chemelli74/aiovodafone/blob/${src.tag}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "airos";
version = "0.5.5";
version = "0.6.0";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "CoMPaTech";
repo = "python-airos";
tag = "v${version}";
hash = "sha256-AXzqm5UN+Z0nXqdhsmGuVfwGJuyZgR+imUzmiODnZqk=";
hash = "sha256-ako/4D1iKoKRcxxNV1CzUEqSwSEyo+Udf0z4j+mpVgA=";
};
build-system = [ setuptools ];
@@ -1,6 +1,5 @@
{
lib,
async-timeout,
buildPythonPackage,
click,
click-log,
@@ -16,14 +15,14 @@
buildPythonPackage rec {
pname = "bellows";
version = "0.46.1";
version = "0.47.2";
pyproject = true;
src = fetchFromGitHub {
owner = "zigpy";
repo = "bellows";
tag = version;
hash = "sha256-YQt9imL9poGLrkVj9LmR+XPUufRMOgVhAr+Bw+/VdI0=";
hash = "sha256-1gWmXrRCYmU0VemhW5TCn1/rnOmz07q8bQ6W3a2mXro=";
};
postPatch = ''
@@ -39,8 +38,7 @@ buildPythonPackage rec {
click-log
voluptuous
zigpy
]
++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
];
nativeCheckInputs = [
pytestCheckHook
@@ -2,7 +2,6 @@
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch2,
aiofiles,
aiohttp,
pytest-asyncio,
@@ -17,7 +16,7 @@
buildPythonPackage rec {
pname = "blinkpy";
version = "0.23.0";
version = "0.24.1";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -26,21 +25,13 @@ buildPythonPackage rec {
owner = "fronzbot";
repo = "blinkpy";
tag = "v${version}";
hash = "sha256-MWXOxE0nxBFhkAWjy7qFPhv4AO6VjGf+fAiyaWXeiX8=";
hash = "sha256-UjkVpXqGOOwtpBslQB61osaQvkuvD4A+xeUrMpyWetg=";
};
patches = [
(fetchpatch2 {
# Fix tests with aiohttp 3.10+
url = "https://github.com/fronzbot/blinkpy/commit/e2c747b5ad295424b08ff4fb03204129155666fc.patch";
hash = "sha256-FapgAZcKBWqtAPjRl2uOFgnYPoWq6UU88XGLO7oCmDI=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "wheel~=0.40.0"' "" \
--replace "setuptools~=68.0" "setuptools"
--replace-fail "wheel~=0.40.0" wheel \
--replace-fail "setuptools>=68,<81" setuptools
'';
nativeBuildInputs = [ setuptools ];
@@ -69,11 +60,11 @@ buildPythonPackage rec {
"blinkpy.sync_module"
];
meta = with lib; {
meta = {
description = "Python library for the Blink Camera system";
homepage = "https://github.com/fronzbot/blinkpy";
changelog = "https://github.com/fronzbot/blinkpy/blob/${src.rev}/CHANGES.rst";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
changelog = "https://github.com/fronzbot/blinkpy/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
};
}
@@ -10,12 +10,13 @@
buildPythonPackage {
pname = "clx-sdk-xms";
version = "0-unstable-2017-01-23";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "clxcommunications";
repo = "sdk-xms-python";
# https://github.com/clxcommunications/sdk-xms-python/issues/4
rev = "8d629cd7bcaf91eaafee265a825e3c52191f1425";
hash = "sha256-qMR9OT+QAKZGwDuoZVAtfKD3PQB7rEU/iTRjgACVGBs=";
};
@@ -15,13 +15,14 @@
pytestCheckHook,
pythonOlder,
rustPlatform,
syrupy,
testfixtures,
xz,
}:
buildPythonPackage rec {
pname = "deebot-client";
version = "15.1.0";
version = "16.3.0";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -30,12 +31,12 @@ buildPythonPackage rec {
owner = "DeebotUniverse";
repo = "client.py";
tag = version;
hash = "sha256-ey7xr9ejDFwfSNwhNBmI2/oJ6zoeAmyTsByxLQ3MQe4=";
hash = "sha256-FjUHYG0AkZ/AS1jZhPc28f8rnjuWIyRpumnRnDaoRqY=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-28Rkm5doYRtrH+Rc64gYxzNwVjBaGzLTynej8OwBqVg=";
hash = "sha256-jAycxAxSSWwDNhtdvSCLujMsa7dMQ1lFLtMtVsKHdvk=";
};
pythonRelaxDeps = [
@@ -66,6 +67,7 @@ buildPythonPackage rec {
pytest-asyncio
pytest-codspeed
pytestCheckHook
syrupy
testfixtures
];
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "garminconnect";
version = "0.2.30";
version = "0.2.31";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "cyberjunky";
repo = "python-garminconnect";
tag = version;
hash = "sha256-JCcQl7awYUnRWWVoKgirgn494HM9uXqT69f3XauTG5E=";
hash = "sha256-yK4p1zb3OLTpDrtVz0bA/jlhDV3AFpltN3CTDBcSTPU=";
};
pythonRelaxDeps = [
@@ -9,6 +9,7 @@
cryptography,
fetchFromGitHub,
freezegun,
josepy,
pycognito,
pyjwt,
pytest-aiohttp,
@@ -20,13 +21,15 @@
setuptools,
snitun,
syrupy,
voluptuous,
webrtc-models,
xmltodict,
yarl,
}:
buildPythonPackage rec {
pname = "hass-nabucasa";
version = "1.1.1";
version = "1.5.1";
pyproject = true;
disabled = pythonOlder "3.13";
@@ -35,7 +38,7 @@ buildPythonPackage rec {
owner = "nabucasa";
repo = "hass-nabucasa";
tag = version;
hash = "sha256-4wqlV3stqbraiDBp/g5XNMiUR8SsmGggqXlq6MXXgbM=";
hash = "sha256-BYRVr8YWYG+6vmCFCEJH0v2s+EpefDxmcBMHkXHRCrA=";
};
postPatch = ''
@@ -58,11 +61,14 @@ buildPythonPackage rec {
attrs
ciso8601
cryptography
josepy
pycognito
pyjwt
sentence-stream
snitun
voluptuous
webrtc-models
yarl
];
nativeCheckInputs = [
@@ -75,11 +81,6 @@ buildPythonPackage rec {
xmltodict
];
disabledTests = [
# mock time 10800s (3h) vs 43200s (12h)
"test_subscription_reconnection_handler_renews_and_starts"
];
pythonImportsCheck = [ "hass_nabucasa" ];
meta = with lib; {
@@ -16,7 +16,7 @@
let
pname = "hassil";
version = "3.2.0";
version = "3.4.0";
in
buildPythonPackage rec {
inherit pname version;
@@ -26,7 +26,7 @@ buildPythonPackage rec {
owner = "home-assistant";
repo = "hassil";
tag = "v${version}";
hash = "sha256-X+VOcgOFcdb29VfJCfD1xBEqY/1qbfwViS/N9PsT2y8=";
hash = "sha256-rroljEJ0xXW15iKmW6C64+h8epNB6XJzKtylA/wKyWQ=";
};
build-system = [ setuptools ];
@@ -13,13 +13,13 @@
buildPythonPackage rec {
pname = "home-connect-async";
version = "0.8.2";
version = "0.8.3";
pyproject = true;
src = fetchPypi {
pname = "home_connect_async";
inherit version;
hash = "sha256-npVMEiwclKr9HR2M03GNkyJULeLEE9BAnIw8Zoy98nQ=";
hash = "sha256-G+mHXNbqU0pgqpvGfKmn6CrwZOhRG76m57eHimgN17s=";
};
build-system = [
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "librehardwaremonitor-api";
version = "1.4.0";
version = "1.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sab44";
repo = "librehardwaremonitor-api";
tag = "v${version}";
hash = "sha256-yYJOizO6blfwRBWD9oFnaein7DK1F8Kl744ErehXU0Q=";
hash = "sha256-LWh0kZp+8OUfBohQMLFXI/kkHsVuJt99YqwSGeq4EvA=";
};
build-system = [ setuptools ];
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "llm-fragments-pypi";
version = "0.1.1";
version = "0.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "samueldg";
repo = "llm-fragments-pypi";
tag = version;
hash = "sha256-1XqAmuZ1WMHD6JbLbLsK9K4Uf3FvvKJD4mn1G2J/3C8=";
hash = "sha256-6gG7oPughxbpG0ZgKGniTfS9pJAcmXL7unru5kE2bEY=";
};
build-system = [ hatchling ];
@@ -0,0 +1,47 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitLab,
hatchling,
lib,
pydantic,
pytest-aioresponses,
pytest-asyncio,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "lunatone-rest-api-client";
version = "0.5.3";
pyproject = true;
src = fetchFromGitLab {
owner = "lunatone-public";
repo = "lunatone-rest-api-client";
tag = "v${version}";
hash = "sha256-pxoD4EAyBmNmTXrhXa+zpnkwrsC+9mervbXzgptSFVo=";
};
build-system = [ hatchling ];
dependencies = [
aiohttp
pydantic
];
pythonImportsCheck = [ "lunatone_rest_api_client" ];
nativeCheckInputs = [
pytest-aioresponses
pytest-asyncio
pytestCheckHook
];
meta = {
changelog = "https://gitlab.com/lunatone-public/lunatone-rest-api-client/-/blob/${src.tag}/CHANGELOG.md";
description = "Client library for accessing the Lunatone REST API";
homepage = "https://gitlab.com/lunatone-public/lunatone-rest-api-client";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -0,0 +1,49 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
pytest-asyncio,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "meteo-lt-pkg";
version = "0.2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "Brunas";
repo = "meteo_lt-pkg";
tag = "v${version}";
hash = "sha256-OjIBgIOSJ65ryIF4D/UUUa1Oq0sPkKnaQEJeviimqhE=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
];
pythonImportsCheck = [ "meteo_lt" ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
disabledTests = [
# tests contact api.meteo.lt
"test_get_forecast"
"test_get_nearest_place"
];
meta = {
changelog = "https://github.com/Brunas/meteo_lt-pkg/blob/${src.tag}/CHANGELOG.md";
description = "Meteo.Lt weather forecast package";
homepage = "https://github.com/Brunas/meteo_lt-pkg";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -16,14 +16,14 @@
buildPythonPackage rec {
pname = "midea-local";
version = "6.4.0";
version = "6.5.0";
pyproject = true;
src = fetchFromGitHub {
owner = "midea-lan";
repo = "midea-local";
tag = "v${version}";
hash = "sha256-jeQ5PXkKxVz041VJ58lJVpqIoj1Y054VADFtnutddg4=";
hash = "sha256-l5wV6W0CR3Jlir1DEpuh7/I8hGnH5+yrq0JjKcFh4sk=";
};
build-system = [ setuptools ];
@@ -15,14 +15,14 @@
buildPythonPackage rec {
pname = "opower";
version = "0.15.8";
version = "0.15.9";
pyproject = true;
src = fetchFromGitHub {
owner = "tronikos";
repo = "opower";
tag = "v${version}";
hash = "sha256-JauglgXrzfznyst0UdG8KyAXyzjnUkK7TJVdGhp0PVk=";
hash = "sha256-Hqn43KFmte3/zn+f35cxNSLjQ3f7ySPQSVWwMCeQ2Go=";
};
build-system = [ setuptools ];
@@ -1,41 +0,0 @@
{
lib,
buildPythonPackage,
fetchPypi,
setuptools,
requests,
standard-telnetlib,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "plumlightpad";
version = "0.0.11";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-5J+kk/fn45v/1WIsBuq6o7hivXkCaJ1Of7BLRf10rCk=";
};
build-system = [ setuptools ];
dependencies = [
requests
standard-telnetlib
];
nativeCheckInputs = [ pytestCheckHook ];
# Package has no tests
doCheck = false;
pythonImportsCheck = [ "plumlightpad" ];
meta = {
description = "A python package that interacts with the Plum Lightpad";
homepage = "https://github.com/heathbar/plum-lightpad-python";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.jamiemagee ];
};
}
@@ -4,52 +4,37 @@
fetchFromGitHub,
setuptools,
aiohttp,
requests,
requests-futures,
pytest-asyncio,
pytestCheckHook,
mock,
}:
buildPythonPackage rec {
pname = "py-melissa-climate";
version = "2.1.4";
version = "3.0.2";
pyproject = true;
src = fetchFromGitHub {
owner = "kennedyshead";
repo = "py-melissa-climate";
tag = version;
hash = "sha256-zYr+nKdO+lCLLYGSvY16MUs8TxbWcyaoQk9cwNQ704Y=";
tag = "v${version}";
hash = "sha256-VSKSa7K2fF6NMLN39HzkqK7/9vGHmmmPFw6mIiJNZ84=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail "setup_requires=['setuptools-markdown']," ""
'';
build-system = [ setuptools ];
dependencies = [
aiohttp
requests
requests-futures
];
nativeCheckInputs = [
mock
pytest-asyncio
pytestCheckHook
];
disabledTests = [
# Disable failing tests due to upstream bugs
"test_have_connection"
"test_send"
"test_send_ok"
];
pythonImportsCheck = [ "melissa" ];
meta = {
changelog = "https://github.com/kennedyshead/py-melissa-climate/releases/tag/${src.tag}";
description = "API wrapper for Melissa Climate";
homepage = "https://github.com/kennedyshead/py-melissa-climate";
license = lib.licenses.mit;
@@ -0,0 +1,53 @@
{
aiohttp,
aresponses,
buildPythonPackage,
fetchFromGitHub,
lib,
mashumaro,
orjson,
poetry-core,
pytest-cov-stub,
pytestCheckHook,
syrupy,
yarl,
}:
buildPythonPackage rec {
pname = "pyfirefly";
version = "0.1.8";
pyproject = true;
src = fetchFromGitHub {
owner = "erwindouna";
repo = "pyfirefly";
tag = "v${version}";
hash = "sha256-b4np7JlDCbrrMo6TGE5yL6Xg41ocGoJQY8BMH/hZ9Ls=";
};
build-system = [ poetry-core ];
dependencies = [
aiohttp
mashumaro
orjson
yarl
];
pythonImportsCheck = [ "pyfirefly" ];
nativeCheckInputs = [
aresponses
pytest-cov-stub
pytestCheckHook
syrupy
];
meta = {
changelog = "https://github.com/erwindouna/pyfirefly/releases/tag/${src.tag}";
description = "Asynchronous Python client for the Firefly III API";
homepage = "https://github.com/erwindouna/pyfirefly";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -0,0 +1,40 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
python-dotenv,
setuptools,
}:
buildPythonPackage rec {
pname = "pynintendoparental";
version = "1.1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "pantherale0";
repo = "pynintendoparental";
tag = version;
hash = "sha256-mH34BcbK3qyB2sAmVyAQz6GhI+xWAdRHagZzLVI9gr8=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
];
pythonImportsCheck = [ "pynintendoparental" ];
# test.py connects to the actual API
doCheck = false;
meta = {
changelog = "https://github.com/pantherale0/pynintendoparental/releases/tag/${src.tag}";
description = "Python module to interact with Nintendo Parental Controls";
homepage = "https://github.com/pantherale0/pynintendoparental";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -1,33 +0,0 @@
{
lib,
buildPythonPackage,
fetchPypi,
}:
buildPythonPackage rec {
pname = "pyownet";
version = "0.10.0.post1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "4f2fa4471c2f806b35090bdc6c092305c6eded3ff3736f8b586d35bdb157de62";
};
postPatch = ''
sed -i '/use_2to3/d' setup.py
'';
# tests access network
doCheck = false;
pythonImportsCheck = [ "pyownet.protocol" ];
meta = with lib; {
description = "Python OWFS client library (owserver protocol)";
homepage = "https://github.com/miccoli/pyownet";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
}
@@ -1,40 +1,56 @@
{
lib,
aiohttp,
aioresponses,
attrs,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
jmespath,
pythonOlder,
pytest-asyncio,
pytest-cov-stub,
pytestCheckHook,
uv-build,
}:
buildPythonPackage rec {
pname = "pysma";
version = "0.7.5";
format = "setuptools";
version = "1.0.3";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-zlCGEcG5tmgEXhSMDLKj0/imT1iHBqlp1O1QhmPrJcA=";
src = fetchFromGitHub {
owner = "kellerza";
repo = "pysma";
tag = "v${version}";
hash = "sha256-T9QBIuKgbKmMUN2G+sZRW4DtgIk3H9rYMTxLtkXfEBI=";
};
propagatedBuildInputs = [
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv-build>=0.9,<0.10" uv-build
'';
build-system = [ uv-build ];
dependencies = [
aiohttp
attrs
jmespath
];
# pypi does not contain tests and GitHub archive not available
doCheck = false;
nativeCheckInputs = [
aioresponses
pytest-asyncio
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [ "pysma" ];
meta = with lib; {
meta = {
changelog = "https://github.com/kellerza/pysma/blob/${src.tag}/CHANGELOG.md";
description = "Python library for interacting with SMA Solar's WebConnect";
homepage = "https://github.com/kellerza/pysma";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -0,0 +1,48 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
wheel,
cryptography,
paho-mqtt,
psutil,
pytestCheckHook,
pytest-asyncio,
pytest-cov,
}:
buildPythonPackage rec {
pname = "pysrdaligateway";
version = "0.15.1";
pyproject = true;
src = fetchFromGitHub {
owner = "maginawin";
repo = "PySrDaliGateway";
tag = "v${version}";
hash = "sha256-qPZxcGDSToFkkXBJKxo9OkcTBr4TZ9cFrcQwBTwKfy8=";
};
build-system = [ setuptools ];
dependencies = [
cryptography
paho-mqtt
psutil
];
pythonImportsCheck = [ "PySrDaliGateway" ];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
changelog = "https://github.com/maginawin/PySrDaliGateway/releases/tag/${src.tag}";
description = "Python library for Sunricher DALI Gateway (EDA)";
homepage = "https://github.com/maginawin/PySrDaliGateway";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -0,0 +1,59 @@
{
lib,
buildPythonPackage,
fetchpatch,
fetchPypi,
poetry-core,
aioresponses,
pytest,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "pytest-aioresponses";
version = "0.3.0";
pyproject = true;
# no tags on GitHub
src = fetchPypi {
pname = "pytest_aioresponses";
inherit version;
hash = "sha256-VnezLfoaNpCLNHUktYZ6qzWsHFzh1JcCRNb2YAm8p7Y=";
};
patches = [
# https://github.com/pheanex/pytest-aioresponses/pull/5
(fetchpatch {
name = "use-poetry-core.patch";
url = "https://github.com/pheanex/pytest-aioresponses/commit/05595c1b73a9d9b01179bd434fb7cc57230c9251.patch";
hash = "sha256-CejYyzAYwsueI0k9O4fcTGC0O8dz0vgE057IrvC5YRo=";
})
];
build-system = [ poetry-core ];
dependencies = [
aioresponses
];
buildInputs = [
pytest
];
pythonImportsCheck = [ "pytest_aioresponses" ];
nativeCheckInputs = [
pytestCheckHook
];
# test_pytest_aioresponses.py isn't distributed on PyPI
doCheck = false;
meta = {
changelog = "https://github.com/pheanex/pytest-aioresponses/blob/main/Changelog";
description = "Py.test integration for aioresponses";
homepage = "https://github.com/pheanex/pytest-aioresponses";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -19,14 +19,14 @@
buildPythonPackage rec {
pname = "python-bsblan";
version = "2.2.5";
version = "3.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "liudger";
repo = "python-bsblan";
tag = "v${version}";
hash = "sha256-kPkKgjze3ohaIaDax3h66JWw5tY+3S0N+lPqXSFFcRY=";
hash = "sha256-OIaUfrQMdFvDnONjpLRigzbHw6ZS3MA05BGatv63td4=";
};
postPatch = ''
@@ -0,0 +1,50 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
pytest-aiohttp,
pytest-asyncio,
pytestCheckHook,
requests,
responses,
setuptools,
}:
buildPythonPackage rec {
pname = "python-citybikes";
version = "0.3.3";
pyproject = true;
src = fetchFromGitHub {
owner = "eskerda";
repo = "python-citybikes";
tag = version;
hash = "sha256-it/QCUwNc6g88IrtMTS8wr/t4Apb2ovSheufOnu4fCM=";
};
build-system = [
setuptools
];
dependencies = [
aiohttp
requests
];
pythonImportsCheck = [ "citybikes" ];
nativeCheckInputs = [
pytest-aiohttp
pytest-asyncio
pytestCheckHook
responses
];
meta = {
description = "Client interface for the Citybikes API";
homepage = "https://github.com/eskerda/python-citybikes";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -7,70 +7,45 @@
buildPythonPackage,
click,
construct,
dacite,
fetchFromGitHub,
fetchpatch,
freezegun,
hatchling,
paho-mqtt,
poetry-core,
pycryptodome,
pycryptodomex,
pyrate-limiter,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
vacuum-map-parser-roborock,
pyshark,
pyyaml,
click-shell,
syrupy,
}:
buildPythonPackage rec {
pname = "python-roborock";
version = "2.50.2";
version = "3.7.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Python-roborock";
repo = "python-roborock";
tag = "v${version}";
hash = "sha256-66kSNkivq6BHnqIqx1INtdoysBJfCqV76yIAJiHmfxQ=";
hash = "sha256-KgrpfcGaq84VWlcGvKMjJfz4bEkC9l1waj1ZucQa7DA=";
};
patches = [
# https://github.com/Python-roborock/python-roborock/pull/527
(fetchpatch {
name = "replace async-timeout with asyncio.timeout.patch";
url = "https://github.com/Python-roborock/python-roborock/commit/f376027f5933e163441cf1815b820056731a3632.patch";
excludes = [ "poetry.lock" ];
hash = "sha256-53xsQ3yxh9CilC9hNS31rDXZVFG+mMhe7ffOb4L6bUE=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "poetry-core==1.8.0" "poetry-core"
'';
pythonRelaxDeps = [ "pycryptodome" ];
build-system = [ poetry-core ];
build-system = [ hatchling ];
dependencies = [
aiohttp
aiomqtt
click
construct
dacite
paho-mqtt
pycryptodome
pyrate-limiter
vacuum-map-parser-roborock
pyyaml
pyshark
click-shell
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ];
@@ -85,12 +60,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "roborock" ];
meta = with lib; {
meta = {
description = "Python library & console tool for controlling Roborock vacuum";
homepage = "https://github.com/Python-roborock/python-roborock";
changelog = "https://github.com/Python-roborock/python-roborock/blob/${src.tag}/CHANGELOG.md";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fab ];
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "roborock";
};
}
@@ -6,7 +6,6 @@
poetry-core,
pytestCheckHook,
pytest-asyncio,
pythonOlder,
}:
buildPythonPackage rec {
@@ -14,8 +13,6 @@ buildPythonPackage rec {
version = "3.0.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "ludeeus";
repo = "pytraccar";
@@ -23,12 +20,9 @@ buildPythonPackage rec {
hash = "sha256-DtxZCvLuvQpbu/1lIXz2BVbACt5Q1N2txVMyqwd4d9A=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [ aiohttp ];
# https://github.com/ludeeus/pytraccar/issues/31
doCheck = lib.versionOlder aiohttp.version "3.9.0";
dependencies = [ aiohttp ];
nativeCheckInputs = [
pytestCheckHook
@@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "pyvesync";
version = "3.1.2";
version = "3.1.4";
pyproject = true;
src = fetchFromGitHub {
owner = "webdjoe";
repo = "pyvesync";
tag = version;
hash = "sha256-SZ1ZL79f1FHTnNEU9oew8JcWA20NphIX4fXr3NS7THU=";
hash = "sha256-l+b53B8Bdd/WnM2Oe9srST2T2KXaQfXtfc5+BwNte90=";
};
build-system = [ setuptools ];
@@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "renault-api";
version = "0.4.1";
version = "0.5.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "hacf-fr";
repo = "renault-api";
tag = "v${version}";
hash = "sha256-jnmfCYFtlfnFRMrNHfoiXgL8bael7IKmhuZCj+AOuz8=";
hash = "sha256-0fV7nPerG2b37KmLaDlsBnmZSHBItQbx++nxobvLCRg=";
};
build-system = [ poetry-core ];
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "sentence-stream";
version = "1.2.0";
version = "1.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "OHF-Voice";
repo = "sentence-stream";
tag = "v${version}";
hash = "sha256-xGxgGOl8PM5Nc7ApeiRKdaKeoxsc/a7oBF+Ld+vtYDo=";
hash = "sha256-KCKOiY2x+gj02PR0ps2e5Ei6o17tk5ujgCTr3/fkV0Y=";
};
build-system = [
@@ -28,10 +28,6 @@ buildPythonPackage rec {
regex
];
pythonRelaxDeps = [
"regex"
];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
@@ -42,7 +38,7 @@ buildPythonPackage rec {
];
meta = {
description = "A small sentence splitter for text streams";
description = "Small sentence splitter for text streams";
homepage = "https://github.com/OHF-Voice/sentence-stream";
changelog = "https://github.com/OHF-Voice/sentence-stream/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
@@ -0,0 +1,41 @@
{
aiohttp,
buildPythonPackage,
fetchFromGitHub,
lib,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "solaredge-web";
version = "0.0.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Solarlibs";
repo = "solaredge-web";
tag = "v${version}";
hash = "sha256-Vf/f5NDmjsKY8F5//8uAk+dJEaku94yjNaD2XyX7Vuk=";
};
build-system = [ setuptools ];
dependencies = [
aiohttp
];
pythonImportsCheck = [ "solaredge_web" ];
nativeCheckInputs = [
pytestCheckHook
];
meta = {
changelog = "https://github.com/Solarlibs/solaredge-web/releases/tag/${src.tag}";
description = "Library for fetching SolarEdge energy data for each inverter/string/module via the web API";
homepage = "https://github.com/Solarlibs/solaredge-web";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.dotlambda ];
};
}
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "tinytuya";
version = "1.17.2";
version = "1.17.4";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "jasonacox";
repo = "tinytuya";
tag = "v${version}";
hash = "sha256-x6ZfpT3ucby95uthHX4KLLZNLWxyh6+ERDd5jb7p09g=";
hash = "sha256-ojwopholSQPND246PJMmEFSdzyXEZjAIgzpIRfS3VBw=";
};
build-system = [ setuptools ];
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "zha-quirks";
version = "0.0.146";
version = "0.0.148";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zha-device-handlers";
tag = version;
hash = "sha256-eXT0intSWAYQ/DlIEIZDbv805aQCLXYXpvhWjnd3EVA=";
hash = "sha256-A2+pBLPexQLMDE/feQ7mQ1bbzGBAXs/5GktOVn2D2JM=";
};
postPatch = ''
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "zha";
version = "0.0.73";
version = "0.0.77";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zha";
tag = version;
hash = "sha256-ryriM4bVML81xJQYlL46rhlsc/WQh0T5LC+WB28T6AU=";
hash = "sha256-OtwfSt9KUs4oOCwnKygq/hDOXOhzhT3+KxxY/M9KAdU=";
};
postPatch = ''
@@ -2,24 +2,23 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pyserial,
pyserial-asyncio,
pytest-asyncio,
pytestCheckHook,
setuptools,
voluptuous,
zigpy,
}:
buildPythonPackage rec {
pname = "zigpy-deconz";
version = "0.25.2";
version = "0.25.5";
pyproject = true;
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy-deconz";
tag = version;
hash = "sha256-9wsdL2mtT6Q6+4Z6f+Aoae7d0x7EDqkZ5n2O3Ml4PbA=";
hash = "sha256-kwQF6RY6Fxba44wa3q4Hx4MRAbWl3Ho7WYvR7jRfrW8=";
};
postPatch = ''
@@ -28,11 +27,10 @@ buildPythonPackage rec {
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
pyserial
pyserial-asyncio
dependencies = [
voluptuous
zigpy
];
@@ -2,40 +2,33 @@
lib,
buildPythonPackage,
fetchFromGitHub,
pyserial,
pyserial-asyncio,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
zigpy,
}:
buildPythonPackage rec {
pname = "zigpy-xbee";
version = "0.21.0";
version = "0.21.1";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy-xbee";
tag = version;
hash = "sha256-Ep7pP2vcH9YpSrGPVDi3nc+WkQgBVS+NLmoQU0o0aQQ=";
hash = "sha256-ALwhl9WUDkv0POufF/G/rZrn+ITbMdh6y86lShy6ZTg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
--replace-fail ', "setuptools-git-versioning<2"' "" \
--replace-fail 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools ];
propagatedBuildInputs = [
pyserial
pyserial-asyncio
dependencies = [
zigpy
];
@@ -44,11 +37,6 @@ buildPythonPackage rec {
pytestCheckHook
];
disabledTests = [
# fixed in https://github.com/zigpy/zigpy-xbee/commit/f85233fc28ae01c08267965e99a29e43b00e1561
"test_shutdown"
];
meta = with lib; {
changelog = "https://github.com/zigpy/zigpy-xbee/releases/tag/${version}";
description = "Library which communicates with XBee radios for zigpy";
@@ -33,6 +33,12 @@ buildPythonPackage rec {
excludes = [ "setup.cfg" ];
hash = "sha256-aC0+FbbtuHDW3ApJDnTG3TUeNWhzecEYVuiSOik03uU=";
})
(fetchpatch {
# https://github.com/kardia-as/zigpy-zboss/pull/67
name = "replace-pyserial-asyncio-with-pyserial-asyncio-fast.patch";
url = "https://github.com/kardia-as/zigpy-zboss/commit/d44ceb537dc16ce020f8c60a0ff35e88672f3455.patch";
hash = "sha256-aXWRtBLDr9NLIMNK/xtsYuy/hEB2zHU3YYcRKbguTTo=";
})
];
pythonRemoveDeps = [ "async_timeout" ];
@@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "zigpy-zigate";
version = "0.13.3";
version = "0.13.4";
pyproject = true;
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy-zigate";
tag = version;
hash = "sha256-reOt0bPPkKDKeu8CESJtLDEmpkOmgopXk65BqBlBIhY=";
hash = "sha256-pVDqb2/7Pe9zvhNNTVQfl5EphEjOPdJwvCIoTdZm7S0=";
};
postPatch = ''
@@ -46,11 +46,6 @@ buildPythonPackage rec {
pythonImportsCheck = [ "zigpy_zigate" ];
disabledTestPaths = [
# Fails in sandbox
"tests/test_application.py "
];
meta = with lib; {
description = "Library which communicates with ZiGate radios for zigpy";
homepage = "https://github.com/zigpy/zigpy-zigate";
@@ -19,14 +19,14 @@
buildPythonPackage rec {
pname = "zigpy-znp";
version = "0.14.1";
version = "0.14.2";
pyproject = true;
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy-znp";
tag = "v${version}";
hash = "sha256-V662zDUBMbr+cARxrwt8196Ml4zlGEAudR3BtvY96HM=";
hash = "sha256-B4AyCLuhKUdQ0nzwFy5xWXpzR31R50lcC5EJMIJfDKE=";
};
postPatch = ''
@@ -13,7 +13,7 @@
freezegun,
frozendict,
jsonschema,
pyserial-asyncio,
pyserial-asyncio-fast,
pytest-asyncio_0,
pytest-timeout,
pytestCheckHook,
@@ -25,14 +25,14 @@
buildPythonPackage rec {
pname = "zigpy";
version = "0.83.0";
version = "0.86.0";
pyproject = true;
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy";
tag = version;
hash = "sha256-rgri4aga8qTlcURypCHY1YjClz5lpQpwxd3cAG2VoOo=";
hash = "sha256-PROJKC8ZxAZ8zZR4if33553qtp7i9y58LPr1d1gCXVQ=";
};
postPatch = ''
@@ -51,7 +51,7 @@ buildPythonPackage rec {
cryptography
frozendict
jsonschema
pyserial-asyncio
pyserial-asyncio-fast
typing-extensions
voluptuous
]
@@ -2,11 +2,11 @@
"6.12": {
"patch": {
"extra": "-hardened1",
"name": "linux-hardened-v6.12.50-hardened1.patch",
"sha256": "0bzq364d6i7wis9sdljjkzmbvjnv45hmyqikmxagps2rdh57916p",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.12.50-hardened1/linux-hardened-v6.12.50-hardened1.patch"
"name": "linux-hardened-v6.12.56-hardened1.patch",
"sha256": "1s6z7ypkrvd0da5k8wjyidbsi33mgsrj7813nsblrfcs50f65wi4",
"url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.12.56-hardened1/linux-hardened-v6.12.56-hardened1.patch"
},
"sha256": "19bjzhxasj4r6m1lhsa486a96axfigbm06kqa2lwa7y2s5sbsdf4",
"version": "6.12.50"
"sha256": "15pclwn3nbwccdfwcqd3lkmdxwpjkmadhj63acqbzxsjycm2nhsm",
"version": "6.12.56"
}
}
@@ -2,7 +2,7 @@
# Do not edit!
{
version = "2025.10.4";
version = "2025.11.0";
components = {
"3_day_blinds" =
ps: with ps; [
@@ -56,6 +56,10 @@
"actiontec" =
ps: with ps; [
];
"actron_air" =
ps: with ps; [
actron-neo-api
];
"adax" =
ps: with ps; [
adax
@@ -907,6 +911,7 @@
];
"citybikes" =
ps: with ps; [
python-citybikes
];
"clementine" =
ps: with ps; [
@@ -1463,6 +1468,7 @@
"elevenlabs" =
ps: with ps; [
elevenlabs
sentence-stream
];
"elgato" =
ps: with ps; [
@@ -1542,9 +1548,6 @@
ps: with ps; [
openwebifpy
];
"enmax" =
ps: with ps; [
];
"enocean" =
ps: with ps; [
enocean
@@ -1758,6 +1761,9 @@
psutil-home-assistant
sqlalchemy
];
"fing" =
ps: with ps; [
]; # missing inputs: fing_agent_api
"fints" =
ps: with ps; [
fints
@@ -1765,6 +1771,10 @@
"fire_tv" =
ps: with ps; [
];
"firefly_iii" =
ps: with ps; [
pyfirefly
];
"fireservicerota" =
ps: with ps; [
pyfireservicerota
@@ -2375,14 +2385,18 @@
"homeassistant_green" =
ps: with ps; [
aiohasupervisor
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
universal-silabs-flasher
];
"homeassistant_hardware" =
ps: with ps; [
aiohasupervisor
aiousbwatcher
ha-silabs-firmware-client
pyserial
universal-silabs-flasher
];
"homeassistant_sky_connect" =
@@ -2397,8 +2411,10 @@
"homeassistant_yellow" =
ps: with ps; [
aiohasupervisor
aiousbwatcher
ha-silabs-firmware-client
psutil-home-assistant
pyserial
universal-silabs-flasher
];
"homee" =
@@ -2709,6 +2725,11 @@
"indianamichiganpower" =
ps: with ps; [
];
"inels" =
ps: with ps; [
aiohasupervisor
paho-mqtt
]; # missing inputs: elkoep-aio-mqtt
"influxdb" =
ps: with ps; [
influxdb
@@ -3426,6 +3447,10 @@
ps: with ps; [
luftdaten
];
"lunatone" =
ps: with ps; [
lunatone-rest-api-client
];
"lupusec" =
ps: with ps; [
lupupy
@@ -3620,6 +3645,10 @@
ps: with ps; [
meteofrance-api
];
"meteo_lt" =
ps: with ps; [
meteo-lt-pkg
];
"meteoalarm" =
ps: with ps; [
meteoalertapi
@@ -4052,6 +4081,10 @@
ps: with ps; [
pynina
];
"nintendo_parental_controls" =
ps: with ps; [
pynintendoparental
];
"nissan_leaf" =
ps: with ps; [
pycarwings2
@@ -4223,7 +4256,7 @@
];
"onewire" =
ps: with ps; [
pyownet
aio-ownet
];
"onkyo" =
ps: with ps; [
@@ -4287,6 +4320,10 @@
ps: with ps; [
openhomedevice
];
"openrgb" =
ps: with ps; [
openrgb-python
];
"opensensemap" =
ps: with ps; [
opensensemap-api
@@ -4582,7 +4619,6 @@
];
"plum_lightpad" =
ps: with ps; [
plumlightpad
];
"pocketcasts" =
ps: with ps; [
@@ -5632,6 +5668,10 @@
"solaredge" =
ps: with ps; [
aiosolaredge
fnv-hash-fast
psutil-home-assistant
solaredge-web
sqlalchemy
stringcase
];
"solaredge_local" =
@@ -5798,6 +5838,10 @@
"sun" =
ps: with ps; [
];
"sunricher_dali" =
ps: with ps; [
pysrdaligateway
];
"sunweg" =
ps: with ps; [
];
@@ -6583,10 +6627,6 @@
"volvooncall" =
ps: with ps; [
];
"vultr" =
ps: with ps; [
vultr
];
"w800rf32" =
ps: with ps; [
pyw800rf32
@@ -6617,10 +6657,6 @@
ps: with ps; [
watergate-local-api
];
"watson_iot" =
ps: with ps; [
ibmiotf
];
"watttime" =
ps: with ps; [
aiowatttime
@@ -7007,6 +7043,7 @@
"acaia"
"accuweather"
"acmeda"
"actron_air"
"adax"
"adguard"
"advantage_air"
@@ -7246,6 +7283,7 @@
"filesize"
"filter"
"fints"
"firefly_iii"
"fireservicerota"
"firmata"
"fitbit"
@@ -7475,6 +7513,7 @@
"loqed"
"lovelace"
"luftdaten"
"lunatone"
"lupusec"
"lutron"
"lutron_caseta"
@@ -7504,6 +7543,7 @@
"met"
"met_eireann"
"meteo_france"
"meteo_lt"
"meteoclimatic"
"metoffice"
"mfi"
@@ -7573,6 +7613,7 @@
"nightscout"
"niko_home_control"
"nina"
"nintendo_parental_controls"
"nmap_tracker"
"nmbs"
"no_ip"
@@ -7614,6 +7655,7 @@
"opengarage"
"openhardwaremonitor"
"openhome"
"openrgb"
"opensky"
"opentherm_gw"
"openuv"
@@ -7831,6 +7873,7 @@
"subaru"
"suez_water"
"sun"
"sunricher_dali"
"sunweg"
"surepetcare"
"swiss_public_transport"
@@ -7950,7 +7993,6 @@
"volumio"
"volvo"
"volvooncall"
"vultr"
"wake_on_lan"
"wake_word"
"wallbox"
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "jwillemsen";
domain = "daikin_onecta";
version = "4.2.8";
version = "4.2.9";
src = fetchFromGitHub {
owner = "jwillemsen";
repo = "daikin_onecta";
tag = "v${version}";
hash = "sha256-ozOJQDoE/t2FhnsVCnP+WCrFr/l19+onr488JN2fSE0=";
hash = "sha256-bV+4nTRhtqSVBdaG3rCtIdTYhM4pqcQCtUQwsUhgcq0=";
};
meta = {
@@ -4,6 +4,7 @@
buildHomeAssistantComponent,
# dependencies
aiomqtt,
colorlog,
loguru,
websocket-client,
@@ -18,16 +19,17 @@
buildHomeAssistantComponent rec {
owner = "danielcherubini";
domain = "elegoo_printer";
version = "2.3.5";
version = "2.4.2";
src = fetchFromGitHub {
owner = "danielcherubini";
repo = "elegoo-homeassistant";
tag = "v${version}";
hash = "sha256-Ekt19lfn0DdedMFhJDDUkqsv7vjS96+lAhWveag6EeE=";
hash = "sha256-z55599eTJy5oQeE+BD0AYXtLTKoeKZzvNDurE0/oPYQ=";
};
dependencies = [
aiomqtt
colorlog
loguru
websocket-client
@@ -18,13 +18,13 @@
buildHomeAssistantComponent rec {
owner = "blakeblackshear";
domain = "frigate";
version = "5.10.0";
version = "5.11.0";
src = fetchFromGitHub {
owner = "blakeblackshear";
repo = "frigate-hass-integration";
tag = "v${version}";
hash = "sha256-rhYShAb251LfcrBjarcle041AWVSEi0wqc9/W1SlgUo=";
hash = "sha256-cXjf5e4gbkvRS43xnpmL1lSaSvhts4eMetEqTP/RCOo=";
};
dependencies = [ hass-web-proxy-lib ];
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "bm1549";
domain = "frigidaire";
version = "0.1.2";
version = "0.1.5";
src = fetchFromGitHub {
inherit owner;
repo = "home-assistant-frigidaire";
tag = version;
hash = "sha256-7SyOsB16P0O0RHEUXy79cqil+QFO2PilyWWlpv428g0=";
hash = "sha256-b8/szaZGiM1/LZFJK0gi6oStCzXcH1BN5FqjRJBY7cA=";
};
dependencies = [ frigidaire ];
@@ -9,13 +9,13 @@
buildHomeAssistantComponent rec {
owner = "cyberjunky";
domain = "garmin_connect";
version = "0.2.30";
version = "0.2.37";
src = fetchFromGitHub {
owner = "cyberjunky";
repo = "home-assistant-garmin_connect";
tag = version;
hash = "sha256-Gxz0mKVgs2o7IlhGJkz4JlKRb448IRFqK87Kn+Gebkk=";
hash = "sha256-d6RbDplrdqvFGSDcTgoYzYLSHDYdXG3/XvFxj8IfSbY=";
};
dependencies = [
@@ -24,6 +24,7 @@ buildHomeAssistantComponent rec {
];
meta = with lib; {
changelog = "https://github.com/cyberjunky/home-assistant-garmin_connect/releases/tag/${src.tag}";
description = "Garmin Connect integration allows you to expose data from Garmin Connect to Home Assistant";
homepage = "https://github.com/cyberjunky/home-assistant-garmin_connect";
maintainers = with maintainers; [
@@ -8,18 +8,19 @@
buildHomeAssistantComponent rec {
owner = "ekutner";
domain = "home_connect_alt";
version = "1.3.0-b1";
version = "1.3.2";
src = fetchFromGitHub {
owner = "ekutner";
repo = "home-connect-hass";
tag = version;
hash = "sha256-jWrVHwMdzjG0gHWl1NS6WAzdmlmS20BUmh6HzplsGgw=";
hash = "sha256-t5Af58HgYVMZki/93t63X2JPXDJm7PPt84yGj7MJKkE=";
};
dependencies = [ home-connect-async ];
meta = with lib; {
changelog = "https://github.com/ekutner/home-connect-hass/releases/tag/${src.tag}";
description = "Alternative (and improved) Home Connect integration for Home Assistant";
homepage = "https://github.com/ekutner/home-connect-hass";
maintainers = with maintainers; [ kranzes ];
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "wuwentao";
domain = "midea_ac_lan";
version = "0.6.9";
version = "0.6.10";
src = fetchFromGitHub {
inherit owner;
repo = domain;
tag = "v${version}";
hash = "sha256-pPPJFs4earRbh6ovR57k9xgZtrYN0L26eupOoFuBVz8=";
hash = "sha256-xpa5xxqVEWxO4xa7ppFig09nDGfOoXpS9DDmjGU/zbc=";
};
dependencies = [ midea-local ];
@@ -11,20 +11,26 @@
paho-mqtt,
}:
let
version = "2.3.2";
version = "3.0.2";
in
buildHomeAssistantComponent {
owner = "IATkachenko";
domain = "sleep_as_android";
domain = "sleep_as_android_mqtt";
inherit version;
src = fetchFromGitHub {
owner = "IATkachenko";
repo = "HA-SleepAsAndroid";
tag = "v${version}";
hash = "sha256-aJKjHZcRdmiXJdtWRY4fv5oxCHTDIVpvZEwhIE9ISv8=";
hash = "sha256-vJAi63RMF7jdmLUZNmnSqNxbiJi52/PgmTQm0KB3ZP8=";
};
postPatch = ''
# Fix incomplete rename of package name
substituteInPlace tests/unit/test_instance.py \
--replace-fail "sleep_as_android." "sleep_as_android_mqtt."
'';
dependencies = [
pyhaversion
];
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "pnbruckner";
domain = "sun2";
version = "3.4.2";
version = "3.4.3";
src = fetchFromGitHub {
inherit owner;
repo = "ha-sun2";
tag = version;
hash = "sha256-gorjykAEQGglH7nyAHMZDeSEERPuZINHTN3IiH3RKsQ=";
hash = "sha256-UATxuKTusDkKLWwJq2CupPcF/TIKAmE5VPo3054cwKc=";
};
meta = rec {
@@ -11,13 +11,13 @@
buildHomeAssistantComponent rec {
owner = "make-all";
domain = "tuya_local";
version = "2025.7.1";
version = "2025.10.1";
src = fetchFromGitHub {
inherit owner;
repo = "tuya-local";
tag = version;
hash = "sha256-RIvtz6f3Jj4INvL0JdL+EsFUoLoG9vQNn5iPq2nF26I=";
hash = "sha256-Sqk6FBaEDp9KdcpKzWMeF6baqk7atbCtSRKTsQogwfo=";
};
dependencies = [
@@ -11,13 +11,13 @@
buildHomeAssistantComponent rec {
owner = "al-one";
domain = "xiaomi_miot";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "al-one";
repo = "hass-xiaomi-miot";
rev = "v${version}";
hash = "sha256-nTxi8bKelHbhs1ivmr+LGHLMrnlRUQYfy+ARHdeVM0Q=";
hash = "sha256-0B+rG2h2OMb363t0529/XjqZ9ORaT7XXk4qVyEAfNx8=";
};
dependencies = [
@@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "bubble-card";
version = "3.0.3";
version = "3.0.4";
src = fetchFromGitHub {
owner = "Clooos";
repo = "Bubble-Card";
rev = "v${version}";
hash = "sha256-soLeHWDp72C5KzjnkdPVneJrShFVcOHvvVyLPMVpJM0=";
hash = "sha256-444QWl3i1kYkdkUrhDi+BxN9IB6JttHtX8fn23uPcBE=";
};
npmDepsHash = "sha256-NSHsw/+dmdc2+yo4/NgT0YMMrCuL8JjRR6MSJ5xQTiE=";
@@ -9,18 +9,18 @@
}:
stdenvNoCC.mkDerivation rec {
pname = "clock-weather-card";
version = "2.9.0";
version = "2.9.1";
src = fetchFromGitHub {
owner = "pkissling";
repo = "clock-weather-card";
tag = "v${version}";
hash = "sha256-cLqHVBjsSq3t7ft9Ap6kjNSgM87+ftqlF5ZfcJKAAzQ=";
hash = "sha256-5FHGFuvMYi40+6C9NDzrOsp2gIrIgtaA8qHM+oNIilg=";
};
offlineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
hash = "sha256-zaKrvsT1Lgcyk4a9vO97j9yHkaD+5zbnsM5+GHxb4uk=";
hash = "sha256-DhOQG9+0YOOVv3Y1qnZPuR4ZQEdT9NLIcdiBnplSBvg=";
};
nativeBuildInputs = [
@@ -8,19 +8,19 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "custom-sidebar";
version = "10.5.2";
version = "10.7.0";
src = fetchFromGitHub {
owner = "elchininet";
repo = "custom-sidebar";
tag = "v${finalAttrs.version}";
hash = "sha256-C3zjl4KP2l56Hn7MJjoB8D6KkJ3Ef6KpVZWWdDS5Hds=";
hash = "sha256-aV4dMt79t9ZZm+Z08odSONf/ghow4U+/aryk2+GJZvw=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-FOaR+B8UammcStvNFo7PR++VCPzY+aXvWeSRXnoPkWM=";
hash = "sha256-gfjRgq75hKxgfOn0wnWIzcFcdWVe7PZ4z8YHxLTCsjo=";
};
nativeBuildInputs = [
@@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "swipe-navigation";
version = "1.15.6";
version = "1.15.7";
src = fetchFromGitHub {
owner = "zanna-37";
repo = "hass-swipe-navigation";
tag = "v${version}";
hash = "sha256-4DiZ52YFgyddD299rAMzBbmFNyv0SHEFK5H7kWRdWlw=";
hash = "sha256-43Vns6RcN+QhJn5vFXtmtl0jkKqyFb0wuAZJbdg3VEo=";
};
npmDepsHash = "sha256-uRH3OcPK0iWru4ULZq2NwzbWNsGl8+wFP3ZxeFzr2BM=";
@@ -6,13 +6,13 @@
buildNpmPackage rec {
pname = "versatile-thermostat-ui-card";
version = "1.1.3";
version = "1.1.4";
src = fetchFromGitHub {
owner = "jmcollin78";
repo = "versatile-thermostat-ui-card";
rev = "${version}";
hash = "sha256-yPp478uXiRWDH4DP/d0Mloie7nPY1hWLt8X1vLhysvA=";
hash = "sha256-4v1Tl3GQagQd1H+CFBG+OuRl2zfz5vvyWRy7oBSpxfM=";
};
npmFlags = [ "--legacy-peer-deps" ];
+5 -38
View File
@@ -259,37 +259,6 @@ let
doCheck = false;
});
python-telegram-bot = super.python-telegram-bot.overridePythonAttrs (oldAttrs: rec {
version = "21.5";
src = fetchFromGitHub {
inherit (oldAttrs.src) owner repo;
tag = version;
hash = "sha256-i1YEcN615xeI4HcygXV9kzuXpT2yDSnlNU6bZqu1dPM=";
};
});
pytraccar = super.pytraccar.overridePythonAttrs (oldAttrs: rec {
version = "2.1.1";
src = fetchFromGitHub {
inherit (oldAttrs.src) owner repo;
tag = version;
hash = "sha256-WTRqYw66iD4bbb1aWJfBI67+DtE1FE4oiuUKpfVqypE=";
};
});
# Pinned due to API changes ~1.0
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
src = fetchFromGitHub {
owner = "spry-group";
repo = "python-vultr";
rev = version;
hash = "sha256-sHCZ8Csxs5rwg1ZG++hP3MfK7ldeAdqm5ta9tEXeW+I=";
};
});
wolf-comm = super.wolf-comm.overridePythonAttrs rec {
version = "0.0.23";
src = fetchFromGitHub {
@@ -330,7 +299,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2025.10.4";
hassVersion = "2025.11.0";
in
python.pkgs.buildPythonApplication rec {
@@ -351,13 +320,13 @@ python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
tag = version;
hash = "sha256-CaS/37Pastpoeb6fXLiChVcQXNqVJMaXV04HGnNFlL0=";
hash = "sha256-+syn/y2ukZKsnCniZxodRWVcCE3AcvUKt80L2XslKKI=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-Ue1Aat8aSEXHUSIl2ji1cQaZEnVRgY7+PBHB9mQBJ6I=";
hash = "sha256-JSWr+yGvpXYc6Bw3B+xVLpYokVM11dsJZBWYy+W4bH4=";
};
build-system = with python.pkgs; [
@@ -471,7 +440,6 @@ python.pkgs.buildPythonApplication rec {
pytest-asyncio
pytest-aiohttp
pytest-freezer
pytest-mock
pytest-socket
pytest-timeout
pytest-unordered
@@ -480,11 +448,10 @@ python.pkgs.buildPythonApplication rec {
requests-mock
respx
syrupy
tomli
# Sneakily imported in tests/conftest.py
paho-mqtt
# Used in tests/non_packaged_scripts/test_alexa_locales.py
beautifulsoup4
# Used in tests/scripts/test_check_config.py
colorlog
]
++ lib.concatMap (component: getPackages component python.pkgs) [
# some components are needed even if tests in tests/components are disabled
+2 -2
View File
@@ -8,7 +8,7 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
version = "20251001.4";
version = "20251105.0";
format = "wheel";
src = fetchPypi {
@@ -16,7 +16,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-yrGIgx8VgCi4G+xWFjy37lI4i1ohPV1bttJfejnkkXA=";
hash = "sha256-sQp23ibdVQHEuP016pA1E1xxXB275YNPvDqEFfI15nk=";
};
# there is nothing to strip in this package
+2 -2
View File
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "home-assistant-intents";
version = "2025.10.1";
version = "2025.10.28";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
repo = "intents-package";
tag = version;
fetchSubmodules = true;
hash = "sha256-xYmPbiDDnznm9fl8rtnkMAswGAX+3iWwticqaOzF9Jk=";
hash = "sha256-Svnw9Jd0E4pMFfa/Do7YsFzdXLzsGmhu8amo+zYDvus=";
};
build-system = [
+2 -2
View File
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2025.10.4";
version = "2025.11.0";
pyproject = true;
disabled = python.version != home-assistant.python.version;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
tag = version;
hash = "sha256-1ZV9lgueBKALUuvnHVGSb2C24auljdI07KkbLsaEe54=";
hash = "sha256-/A/25x0FMu4MXMHhOZ1MF9Qpw+UgA2OUc/HZaJm9bsQ=";
};
build-system = [
+2 -47
View File
@@ -18,14 +18,9 @@ let
homeassistant_hardware = getComponentDeps "otbr" ++ getComponentDeps "zha";
homeassistant_sky_connect = getComponentDeps "zha";
homeassistant_yellow = getComponentDeps "zha";
husqvarna_automower_ble = getComponentDeps "gardena_bluetooth";
lovelace = [
pychromecast
];
matrix = [
pydantic
];
mopeka = getComponentDeps "switchbot";
onboarding = [
pymetno
radios
@@ -44,7 +39,6 @@ let
system_log = [
isal
];
tesla_fleet = getComponentDeps "teslemetry";
xiaomi_miio = [
arrow
];
@@ -57,34 +51,12 @@ let
};
extraDisabledTestPaths = {
backup = [
# outdated snapshot
"tests/components/backup/test_sensors.py::test_sensors"
];
bosch_alarm = [
# outdated snapshots
"tests/components/bosch_alarm/test_binary_sensor.py::test_binary_sensor[None-solution_3000]"
"tests/components/bosch_alarm/test_binary_sensor.py::test_binary_sensor[None-amax_3000]"
"tests/components/bosch_alarm/test_binary_sensor.py::test_binary_sensor[None-b5512]"
];
bmw_connected_drive = [
# outdated snapshot
"tests/components/bmw_connected_drive/test_binary_sensor.py::test_entity_state_attrs"
];
dnsip = [
# Tries to resolve DNS entries
"tests/components/dnsip/test_config_flow.py::test_options_flow"
];
jellyfin = [
# AssertionError: assert 'audio/x-flac' == 'audio/flac'
"tests/components/jellyfin/test_media_source.py::test_resolve"
"tests/components/jellyfin/test_media_source.py::test_audio_codec_resolve"
"tests/components/jellyfin/test_media_source.py::test_music_library"
];
matter = [
# outdated snapshot in eve_weather_sensor variant
"tests/components/matter/test_number.py::test_numbers"
];
minecraft_server = [
# FileNotFoundError: [Errno 2] No such file or directory: '/etc/resolv.conf'
"tests/components/minecraft_server/test_binary_sensor.py"
@@ -104,22 +76,17 @@ let
"tests/components/nzbget/test_init.py::test_async_setup_raises_entry_not_ready"
];
openai_conversation = [
# outdated snapshot
"tests/components/openai_conversation/test_conversation.py::test_function_call"
# Pydantic validation error
"tests/components/openai_conversation/test_conversation.py"
"tests/components/openai_conversation/test_ai_task.py"
# TypeError: object ImagesResponse can't be used in 'await' expression
"tests/components/openai_conversation/test_init.py::test_generate_image_service"
"tests/components/openai_conversation/test_init.py::test_generate_image_service_error"
];
overseerr = [
# imports broken future module
"tests/components/overseerr/test_event.py"
];
technove = [
youtube = [
# outdated snapshot
"tests/components/technove/test_switch.py::test_switches"
"tests/components/youtube/test_sensor.py::test_sensor"
];
};
@@ -128,10 +95,6 @@ let
# intent fixture mismatch
"test_error_no_device_on_floor"
];
forecast_solar = [
# language fixture mismatch
"test_enabling_disable_by_default"
];
sensor = [
# Failed: Translation not found for sensor
"test_validate_unit_change_convertible"
@@ -147,14 +110,6 @@ let
# tries to retrieve file from github
"test_non_text_stdout_capture"
];
smartthings = [
# outdated snapshots
"test_all_entities"
];
websocket_api = [
# AssertionError: assert 'unknown_error' == 'template_error'
"test_render_template_with_timeout"
];
zeroconf = [
# multicast socket bind, not possible in the sandbox
"test_subscribe_discovery"
+87 -70
View File
@@ -43,24 +43,24 @@ let
in
{
repeatedOverrides-pname = {
expr = repeatedOverrides.pname == "a-better-hello-with-blackjack";
expected = true;
expr = repeatedOverrides.pname;
expected = "a-better-hello-with-blackjack";
};
repeatedOverrides-entangled-pname = {
expr = repeatedOverrides.entangled.pname == "a-better-figlet-with-blackjack";
expected = true;
expr = repeatedOverrides.entangled.pname;
expected = "a-better-figlet-with-blackjack";
};
overriding-using-only-attrset = {
expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname == "hello-overriden";
expected = true;
expr = (pkgs.hello.overrideAttrs { pname = "hello-overriden"; }).pname;
expected = "hello-overriden";
};
overriding-using-only-attrset-no-final-attrs = {
name = "overriding-using-only-attrset-no-final-attrs";
expr =
((stdenvNoCC.mkDerivation { pname = "hello-no-final-attrs"; }).overrideAttrs {
pname = "hello-no-final-attrs-overridden";
}).pname == "hello-no-final-attrs-overridden";
expected = true;
}).pname;
expected = "hello-no-final-attrs-overridden";
};
};
@@ -118,16 +118,16 @@ let
expected = true;
};
extendMkDerivation-helloLocal-plain-equivalence = {
expr = helloLocal.drvPath == helloLocalPlain.drvPath;
expected = true;
expr = helloLocal.drvPath;
expected = helloLocalPlain.drvPath;
};
extendMkDerivation-helloLocal-finalAttrs = {
expr = helloLocal.bar == "ab";
expected = true;
expr = helloLocal.bar;
expected = "ab";
};
extendMkDerivation-helloLocal-specialArg = {
expr = hiLocal.greeting == "Hi!";
expected = true;
expr = hiLocal.greeting;
expected = "Hi!";
};
};
@@ -152,27 +152,35 @@ let
in
{
hash-outputHash-equivalence = {
expr = ruamel_0_17_21-src.outputHash == ruamel_0_17_21-hash;
expected = true;
expr = ruamel_0_17_21-src.outputHash;
expected = ruamel_0_17_21-hash;
};
hash-overridability-outputHash = {
expr = ruamel_0_17_21-src-by-overriding.outputHash == ruamel_0_17_21-hash;
expected = true;
expr = ruamel_0_17_21-src-by-overriding.outputHash;
expected = ruamel_0_17_21-hash;
};
hash-overridability-drvPath = {
expr =
lib.isString ruamel_0_17_21-src-by-overriding.drvPath
&& ruamel_0_17_21-src-by-overriding.drvPath == ruamel_0_17_21-src.drvPath;
expected = true;
expr = [
(lib.isString ruamel_0_17_21-src-by-overriding.drvPath)
ruamel_0_17_21-src-by-overriding.drvPath
];
expected = [
true
ruamel_0_17_21-src.drvPath
];
};
hash-overridability-outPath = {
expr =
lib.isString ruamel_0_17_21-src-by-overriding.outPath
&& ruamel_0_17_21-src-by-overriding.outPath == ruamel_0_17_21-src.outPath;
expected = true;
expr = [
(lib.isString ruamel_0_17_21-src-by-overriding.outPath)
ruamel_0_17_21-src-by-overriding.outPath
];
expected = [
true
ruamel_0_17_21-src.outPath
];
};
};
@@ -249,44 +257,32 @@ let
pet-vendored = pet-foo.overrideAttrs { vendorHash = null; };
in
{
buildGoModule-overrideAttrs = {
expr =
lib.all
(
attrPath:
let
attrPathPretty = lib.concatStringsSep "." attrPath;
valueNative = lib.getAttrFromPath attrPath pet_0_4_0;
valueOverridden = lib.getAttrFromPath attrPath pet_0_4_0-overridden;
in
lib.warnIfNot (valueNative == valueOverridden)
"pet_0_4_0.${attrPathPretty} (${valueNative}) does not equal pet_0_4_0-overridden.${attrPathPretty} (${valueOverridden})"
true
)
[
[ "drvPath" ]
[ "name" ]
[ "pname" ]
[ "version" ]
[ "vendorHash" ]
[
"goModules"
"drvPath"
]
[
"goModules"
"name"
]
[
"goModules"
"outputHash"
]
];
expected = true;
};
buildGoModule-overrideAttrs =
let
getComparingAttrs = p: {
inherit (p)
drvPath
name
pname
version
vendorHash
;
goModules = {
inherit (p.goModules)
drvPath
name
outPath
;
};
};
in
{
expr = getComparingAttrs pet_0_4_0-overridden;
expected = getComparingAttrs pet_0_4_0;
};
buildGoModule-goModules-overrideAttrs = {
expr = pet-foo.goModules.FOO == "foo";
expected = true;
expr = pet-foo.goModules.FOO;
expected = "foo";
};
buildGoModule-goModules-overrideAttrs-vendored = {
expr = lib.isString pet-vendored.drvPath;
@@ -309,14 +305,35 @@ let
in
stdenvNoCC.mkDerivation {
stdenvNoCC.mkDerivation (finalAttrs: {
__structuredAttrs = true;
name = "test-overriding";
passthru = { inherit tests; };
passthru = {
inherit tests;
failures = lib.runTests (finalAttrs.passthru.tests // { tests = lib.attrNames tests; });
};
testResults = lib.mapAttrs (testName: test: test.expr == test.expected) finalAttrs.passthru.tests;
buildCommand = ''
touch $out
for testName in "''${!testResults[@]}"; do
if [[ -n "''${testResults[$testName]}" ]]; then
echo "$testName success"
else
echo "$testName fail"
fi
done
''
+ lib.concatMapAttrsStringSep "\n" (
name: t:
"([[ ${lib.boolToString t.expr} == ${lib.boolToString t.expected} ]] && echo '${name} success') || (echo '${name} fail' && exit 1)"
) tests;
}
+ lib.optionalString (lib.any (v: !v) (lib.attrValues finalAttrs.testResults)) ''
{
echo "ERROR: tests.overriding: Encountering failed tests."
for testName in "''${!testResults[@]}"; do
if [[ -z "''${testResults[$testName]}" ]]; then
echo "- $testName"
fi
done
echo "To inspect the expected and actual result, "
echo ' evaluate `tests.overriding.tests.''${testName}`.'
} >&2
exit 1
'';
})
+2
View File
@@ -284,6 +284,7 @@ mapAliases {
pdfminer = throw "'pdfminer' has been renamed to/replaced by 'pdfminer-six'"; # Converted to throw 2025-10-29
pep257 = throw "'pep257' has been renamed to/replaced by 'pydocstyle'"; # Converted to throw 2025-10-29
percol = throw "percol has been removed because it hasn't been updated since 2019"; # added 2025-05-25
plumlightpad = throw "plumlightpad has been removed because the API was shut down"; # added 2025-11-04
Polygon3 = throw "'Polygon3' has been renamed to/replaced by 'polygon3'"; # Converted to throw 2025-10-29
posix_ipc = throw "'posix_ipc' has been renamed to/replaced by 'posix-ipc'"; # Converted to throw 2025-10-29
postgrest-py = postgrest; # added 2025-08-29
@@ -320,6 +321,7 @@ mapAliases {
pymelcloud = throw "'pymelcloud' has been renamed to/replaced by 'python-melcloud'"; # Converted to throw 2025-10-29
PyMVGLive = throw "'PyMVGLive' has been renamed to/replaced by 'pymvglive'"; # Converted to throw 2025-10-29
pymyq = throw "'pymyq' has been renamed to/replaced by 'python-myq'"; # Converted to throw 2025-10-29
pyownet = throw "pyownet was removed because Home Assistant switched to aio-ownet"; # added 2025-10-31
pypcap = throw "pypcap has been removed because it is broken and unmaintained upstream."; # added 2025-06-18
pyqldb = throw "pyqldb has been removed, because the underlying service is reaching end of support"; # added 2025-07-30
pyqt5_sip = throw "'pyqt5_sip' has been renamed to/replaced by 'pyqt5-sip'"; # Converted to throw 2025-10-29
+27 -4
View File
@@ -59,6 +59,8 @@ self: super: with self; {
actdiag = callPackage ../development/python-modules/actdiag { };
actron-neo-api = callPackage ../development/python-modules/actron-neo-api { };
acunetix = callPackage ../development/python-modules/acunetix { };
adafruit-board-toolkit = callPackage ../development/python-modules/adafruit-board-toolkit { };
@@ -178,6 +180,8 @@ self: super: with self; {
aio-georss-gdacs = callPackage ../development/python-modules/aio-georss-gdacs { };
aio-ownet = callPackage ../development/python-modules/aio-ownet { };
aio-pika = callPackage ../development/python-modules/aio-pika { };
aioacaia = callPackage ../development/python-modules/aioacaia { };
@@ -2725,6 +2729,13 @@ self: super: with self; {
clikit = callPackage ../development/python-modules/clikit { };
clingo = toPythonModule (
pkgs.clingo.override {
inherit python;
withPython = true;
}
);
clint = callPackage ../development/python-modules/clint { };
clintermission = callPackage ../development/python-modules/clintermission { };
@@ -8929,6 +8940,8 @@ self: super: with self; {
lunarcalendar = callPackage ../development/python-modules/lunarcalendar { };
lunatone-rest-api-client = callPackage ../development/python-modules/lunatone-rest-api-client { };
lupa = callPackage ../development/python-modules/lupa { };
lupupy = callPackage ../development/python-modules/lupupy { };
@@ -9335,6 +9348,8 @@ self: super: with self; {
metawear = callPackage ../development/python-modules/metawear { };
meteo-lt-pkg = callPackage ../development/python-modules/meteo-lt-pkg { };
meteoalertapi = callPackage ../development/python-modules/meteoalertapi { };
meteocalc = callPackage ../development/python-modules/meteocalc { };
@@ -12069,8 +12084,6 @@ self: super: with self; {
plumbum = callPackage ../development/python-modules/plumbum { };
plumlightpad = callPackage ../development/python-modules/plumlightpad { };
pluthon = callPackage ../development/python-modules/pluthon { };
plux = callPackage ../development/python-modules/plux { };
@@ -13122,6 +13135,8 @@ self: super: with self; {
pyfiglet = callPackage ../development/python-modules/pyfiglet { };
pyfirefly = callPackage ../development/python-modules/pyfirefly { };
pyfireservicerota = callPackage ../development/python-modules/pyfireservicerota { };
pyflakes = callPackage ../development/python-modules/pyflakes { };
@@ -13717,6 +13732,8 @@ self: super: with self; {
pynina = callPackage ../development/python-modules/pynina { };
pynintendoparental = callPackage ../development/python-modules/pynintendoparental { };
pynipap = callPackage ../development/python-modules/pynipap { };
pynisher = callPackage ../development/python-modules/pynisher { };
@@ -13839,8 +13856,6 @@ self: super: with self; {
pyowm = callPackage ../development/python-modules/pyowm { };
pyownet = callPackage ../development/python-modules/pyownet { };
pyoxigraph = callPackage ../development/python-modules/pyoxigraph { };
pypager = callPackage ../development/python-modules/pypager { };
@@ -14433,6 +14448,8 @@ self: super: with self; {
pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
pysrdaligateway = callPackage ../development/python-modules/pysrdaligateway { };
pysrim = callPackage ../development/python-modules/pysrim { };
pysrt = callPackage ../development/python-modules/pysrt { };
@@ -14518,6 +14535,8 @@ self: super: with self; {
pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
pytest-aioresponses = callPackage ../development/python-modules/pytest-aioresponses { };
pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
@@ -14866,6 +14885,8 @@ self: super: with self; {
python-cinderclient = callPackage ../development/python-modules/python-cinderclient { };
python-citybikes = callPackage ../development/python-modules/python-citybikes { };
python-clementine-remote = callPackage ../development/python-modules/python-clementine-remote { };
python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
@@ -17254,6 +17275,8 @@ self: super: with self; {
solaredge-local = callPackage ../development/python-modules/solaredge-local { };
solaredge-web = callPackage ../development/python-modules/solaredge-web { };
solarlog-cli = callPackage ../development/python-modules/solarlog-cli { };
solax = callPackage ../development/python-modules/solax { };