From df4d6e21a1ca5d841b858375844a2f203b260244 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 13 Apr 2023 22:38:51 +0200 Subject: [PATCH 1/5] home-assistant: Handle illegal version specifiers more gracefully Our own package versions may not be parseable by the packaging package, so be more forgiving, when it isn't. Also strip conditions from upstreams version constraints. --- .../home-assistant/parse-requirements.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py index 43e21dcfd922..ef65e795ed34 100755 --- a/pkgs/servers/home-assistant/parse-requirements.py +++ b/pkgs/servers/home-assistant/parse-requirements.py @@ -29,6 +29,7 @@ from typing import Any, Dict, List, Optional, Set from urllib.request import urlopen from packaging import version as Version +from packaging.version import InvalidVersion from rich.console import Console from rich.table import Table @@ -197,6 +198,8 @@ def main() -> None: # Therefore, if there's a "#" in the line, only take the part after it req = req[req.find("#") + 1 :] name, required_version = req.split("==", maxsplit=1) + # Strip conditions off version constraints e.g. "1.0; python<3.11" + required_version = required_version.split(";").pop(0) # Split package name and extra requires extras = [] if name.endswith("]"): @@ -206,11 +209,20 @@ def main() -> None: if attr_path: if our_version := get_pkg_version(attr_path, packages): attr_name = attr_path.split(".")[-1] - if Version.parse(our_version) < Version.parse(required_version): - outdated[attr_name] = { - 'wanted': required_version, - 'current': our_version - } + attr_outdated = False + try: + Version.parse(our_version) + except InvalidVersion: + print(f"Attribute {attr_name} has invalid version specifier {our_version}", file=sys.stderr) + attr_outdated = True + else: + attr_outdated = Version.parse(our_version) < Version.parse(required_version) + finally: + if attr_outdated: + outdated[attr_name] = { + 'wanted': required_version, + 'current': our_version + } if attr_path is not None: # Add attribute path without "python3Packages." prefix pname = attr_path[len(PKG_SET + "."):] From 470e6c86ab00ffe39232c3151631d71ad57d2001 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 13 Apr 2023 21:34:47 +0200 Subject: [PATCH 2/5] python310Packages.aiolifx: 0.8.9 -> 0.8.10 Changelog: https://github.com/frawau/aiolifx/releases/tag/0.8.10 --- pkgs/development/python-modules/aiolifx/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix index 4c5ea7191940..46e7f7fb98b2 100644 --- a/pkgs/development/python-modules/aiolifx/default.nix +++ b/pkgs/development/python-modules/aiolifx/default.nix @@ -1,4 +1,5 @@ { lib +, async-timeout , fetchPypi , buildPythonPackage , pythonOlder @@ -8,17 +9,18 @@ buildPythonPackage rec { pname = "aiolifx"; - version = "0.8.9"; + version = "0.8.10"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-Ih82dNDZd3sbGHhxDTtzJQXkjn6Pgefb0S24gttiOO8="; + hash = "sha256-NiNKFrWxpGkwbb7tFEDD5jZ6ETW20BBIqrdjCsL/DkY="; }; propagatedBuildInputs = [ + async-timeout bitstring ifaddr ]; @@ -33,6 +35,7 @@ buildPythonPackage rec { meta = with lib; { description = "Module for local communication with LIFX devices over a LAN"; homepage = "https://github.com/frawau/aiolifx"; + changelog = "https://github.com/frawau/aiolifx/releases/tag/${version}"; license = licenses.mit; maintainers = with maintainers; [ netixx ]; }; From 61f8e09ed6bffad4b491c3f79ea6c07f8b561161 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Mon, 10 Apr 2023 21:52:02 +0200 Subject: [PATCH 3/5] python310Packages.python-homewizard-energy: 1.8.0 -> 2.0.1 Diff: https://github.com/DCSBL/python-homewizard-energy/compare/refs/tags/v1.8.0...v2.0.1 Changelog: https://github.com/DCSBL/python-homewizard-energy/releases/tag/v2.0.1 --- .../python-modules/python-homewizard-energy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix index b7eaa9f3e6ce..c327257e0a92 100644 --- a/pkgs/development/python-modules/python-homewizard-energy/default.nix +++ b/pkgs/development/python-modules/python-homewizard-energy/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "python-homewizard-energy"; - version = "1.8.0"; + version = "2.0.1"; format = "pyproject"; disabled = pythonOlder "3.9"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "DCSBL"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-ab+Fa7Dc2mHGy5C5PfoBfXIb/eugCyGrWjTYlJmTQE0="; + hash = "sha256-s3FNRpMZC/MG3s+ZDHgdsIT2AhvBDmGvJfutUPzY4wE="; }; nativeBuildInputs = [ From 2654955bc42d0117f2930171ea8fe7073ac467d1 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 13 Apr 2023 23:14:15 +0200 Subject: [PATCH 4/5] home-assistant: 2023.4.3 -> 2023.4.4 https://github.com/home-assistant/core/releases/tag/2023.4.4 --- pkgs/servers/home-assistant/component-packages.nix | 2 +- pkgs/servers/home-assistant/default.nix | 6 +++--- pkgs/servers/home-assistant/frontend.nix | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 3c37cf8fc834..4229be461393 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2023.4.3"; + version = "2023.4.4"; components = { "3_day_blinds" = ps: with ps; [ ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 5bfba55fc56f..c0f1e4c79742 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -310,7 +310,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run parse-requirements.py after updating - hassVersion = "2023.4.3"; + hassVersion = "2023.4.4"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -326,7 +326,7 @@ in python.pkgs.buildPythonApplication rec { # Primary source is the pypi sdist, because it contains translations src = fetchPypi { inherit pname version; - hash = "sha256-L99fwGHjSHaE4ba9zA5wL0Zd7kTZsZLefjLMrvOgymw="; + hash = "sha256-96Fjf8FOXxpdt+7QC54Q1UzyhkRFZm11xsNXUkg/D+U="; }; # Secondary source is git for tests @@ -334,7 +334,7 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-X7qZfehUSOOlW5d6pZDLnx7Qs+U+kw/6Cs6oiJle5qY="; + hash = "sha256-ATchEqxVkzUDdRbVxW5YRS9T8WgIGPcdlsjCXXxeWoU="; }; nativeBuildInputs = with python3.pkgs; [ diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index c69997f97dbe..34db1be39d26 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -4,7 +4,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 = "20230411.0"; + version = "20230411.1"; format = "wheel"; src = fetchPypi { @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-OCNOIFB4BmpEviOiXz39wE8cJ/gcVOOCYF5r8ZiG6o0="; + hash = "sha256-SV1SglO9XqkxfUD/jUyFgdJIWgKgnPNNQR94MHTYew0="; }; # there is nothing to strip in this package From d41528331437e2799eb229c51e51ff5d476a4e18 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 14 Apr 2023 13:47:04 +0200 Subject: [PATCH 5/5] python310Packages.homeassistant-stubs: 2023.4.2 -> 2023.4.4 https://github.com/KapJI/homeassistant-stubs/releases/tag/2023.4.4 --- pkgs/servers/home-assistant/stubs.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix index 1dca06b1043b..d3cfede1b6b4 100644 --- a/pkgs/servers/home-assistant/stubs.nix +++ b/pkgs/servers/home-assistant/stubs.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "homeassistant-stubs"; - version = "2023.4.2"; + version = "2023.4.4"; format = "pyproject"; disabled = python.version != home-assistant.python.version; @@ -17,7 +17,7 @@ buildPythonPackage rec { owner = "KapJI"; repo = "homeassistant-stubs"; rev = "refs/tags/${version}"; - hash = "sha256-FzcgGyYtmU8owlvUfP/D+Y6m5QwOWj4njoLTZX6skLE="; + hash = "sha256-ycyRLt8L3OnfnT1ZoO5wJAhJljnXClh1V343rPVeZHU="; }; nativeBuildInputs = [