From 6d5c66a9d9db12ae588713de356c5e32240f02ac Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 14 Jul 2022 00:43:46 +0200 Subject: [PATCH 1/3] python3Packages.bellows: 0.31.0 -> 0.31.1 --- pkgs/development/python-modules/bellows/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix index d2ba3e77ee62..be8afd022a47 100644 --- a/pkgs/development/python-modules/bellows/default.nix +++ b/pkgs/development/python-modules/bellows/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "bellows"; - version = "0.31.0"; + version = "0.31.1"; format = "setuptools"; src = fetchFromGitHub { owner = "zigpy"; repo = "bellows"; rev = "refs/tags/${version}"; - sha256 = "sha256-8pw139TNY7LE7x13JfgxcUVWFIXVj4FiEvqdUh+xcl8="; + sha256 = "sha256-kjZL6N1VF3Rc26eB5fU1UEs9BEr4sfV4Hto6QdwqeqY="; }; propagatedBuildInputs = [ From 9e0e2fdad00642694b83c70e2148f5f13df236b5 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 14 Jul 2022 00:48:06 +0200 Subject: [PATCH 2/3] home-assistant: 2022.7.3 -> 2022.7.4 https://github.com/home-assistant/core/releases/tag/2022.7.4 --- .../home-assistant/component-packages.nix | 2 +- pkgs/servers/home-assistant/default.nix | 17 ++--------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 9a93117bd44f..71d8971ddc45 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 = "2022.7.3"; + version = "2022.7.4"; components = { "abode" = ps: with ps; [ abodepy diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 4fac9351727f..5dd4d60cbde7 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -85,19 +85,6 @@ let }); }) - # Pinned due to API changes in pyruckus>0.12 - (self: super: { - pyruckus = super.pyruckus.overridePythonAttrs (oldAttrs: rec { - version = "0.12"; - src = fetchFromGitHub { - owner = "gabe565"; - repo = "pyruckus"; - rev = version; - sha256 = "0ykv6r6blbj3fg9fplk9i7xclkv5d93rwvx0fm5s8ms9f2s9ih8z"; - }; - }); - }) - # Pinned due to API changes in 0.1.0 (mkOverride "poolsense" "0.0.8" "sha256-17MHrYRmqkH+1QLtgq2d6zaRtqvb9ju9dvPt9gB2xCc=") @@ -190,7 +177,7 @@ let extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs); # Don't forget to run parse-requirements.py after updating - hassVersion = "2022.7.3"; + hassVersion = "2022.7.4"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; @@ -208,7 +195,7 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = version; - hash = "sha256-e0vu3QUalFncWloNum92YLvMWkeuFF74vrNdfmsfEw0="; + hash = "sha256-TQsIChMoIlTd8+gN4bxiWFId6V2wB1j3XfhXYpYMw9M="; }; # leave this in, so users don't have to constantly update their downstream patch handling From 0ae92922a1c7a4bd709a9342f978013615c85661 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Thu, 14 Jul 2022 01:41:58 +0200 Subject: [PATCH 3/3] nixos/tests/home-assistant: improve reload/restart test cases Wait until home-assistant is fully reloaded or restarted to spot possible errors during startup. Swap out bluetooth_tracker for esphome, since the bluetooth tracker causes errors, when it does not find a bluetooth device. Drop mosquitto from the environment. It wasn't used since the 2022.3.0 release when MQTT stopped being configurable from the YAML config. --- nixos/tests/home-assistant.nix | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix index 59b82593abcd..0bbeffd18cf0 100644 --- a/nixos/tests/home-assistant.nix +++ b/nixos/tests/home-assistant.nix @@ -7,8 +7,6 @@ in { meta.maintainers = lib.teams.home-assistant.members; nodes.hass = { pkgs, ... }: { - environment.systemPackages = with pkgs; [ mosquitto ]; - services.postgresql = { enable = true; ensureDatabases = [ "hass" ]; @@ -108,9 +106,7 @@ in { # Cause a configuration change that requires a service restart as we added a new runtime dependency specialisation.newFeature = { inheritParentConfig = true; - configuration.services.home-assistant.config.device_tracker = [ - { platform = "bluetooth_tracker"; } - ]; + configuration.services.home-assistant.config.esphome = {}; }; }; @@ -119,6 +115,7 @@ in { in '' import re + import json start_all() @@ -131,7 +128,19 @@ in { assert match package = match.group('path') + + def get_journal_cursor(host) -> str: + exit, out = host.execute("journalctl -u home-assistant.service -n1 -o json-pretty --output-fields=__CURSOR") + assert exit == 0 + return json.loads(out)["__CURSOR"] + + + def wait_for_homeassistant(host, cursor): + host.wait_until_succeeds(f"journalctl --after-cursor='{cursor}' -u home-assistant.service | grep -q 'Home Assistant initialized in'") + + hass.wait_for_unit("home-assistant.service") + cursor = get_journal_cursor(hass) with subtest("Check that YAML configuration file is in place"): hass.succeed("test -L ${configDir}/configuration.yaml") @@ -148,7 +157,7 @@ in { hass.succeed(f"grep -q 'wake_on_lan' {package}/extra_components") with subtest("Check that Home Assistant's web interface and API can be reached"): - hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'Home Assistant initialized in'") + wait_for_homeassistant(hass, cursor) hass.wait_for_open_port(8123) hass.succeed("curl --fail http://localhost:8123/lovelace") @@ -162,15 +171,19 @@ in { with subtest("Check service reloads when configuration changes"): # store the old pid of the process pid = hass.succeed("systemctl show --property=MainPID home-assistant.service") + cursor = get_journal_cursor(hass) hass.succeed("${system}/specialisation/differentName/bin/switch-to-configuration test") new_pid = hass.succeed("systemctl show --property=MainPID home-assistant.service") assert pid == new_pid, "The PID of the process should not change between process reloads" + wait_for_homeassistant(hass, cursor) with subtest("check service restarts when package changes"): pid = new_pid + cursor = get_journal_cursor(hass) hass.succeed("${system}/specialisation/newFeature/bin/switch-to-configuration test") new_pid = hass.succeed("systemctl show --property=MainPID home-assistant.service") assert pid != new_pid, "The PID of the process shoudl change when the HA binary changes" + wait_for_homeassistant(hass, cursor) with subtest("Check that no errors were logged"): output_log = hass.succeed("cat ${configDir}/home-assistant.log")