Merge pull request #84724 from Mic92/home-assistant

home-assistant: 0.107.7 -> 0.108.2
This commit is contained in:
Jörg Thalheim 2020-04-10 13:50:40 +01:00 committed by GitHub
commit a11e417754
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 70 additions and 36 deletions

View File

@ -0,0 +1,46 @@
From 80f39643bb4d25f8ffcbd92804844961b303f4d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 9 Apr 2020 07:20:46 +0100
Subject: [PATCH] setup.py: relax dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
---
setup.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/setup.py b/setup.py
index f53af0ee1..ff4227487 100755
--- a/setup.py
+++ b/setup.py
@@ -32,10 +32,10 @@ PROJECT_URLS = {
PACKAGES = find_packages(exclude=["tests", "tests.*"])
REQUIRES = [
- "aiohttp==3.6.1",
+ "aiohttp>=3.6.1",
"astral==1.10.1",
"async_timeout==3.0.1",
- "attrs==19.3.0",
+ "attrs>=19.3.0",
"bcrypt==3.1.7",
"certifi>=2019.11.28",
"ciso8601==2.1.3",
@@ -47,9 +47,9 @@ REQUIRES = [
"pip>=8.0.3",
"python-slugify==4.0.0",
"pytz>=2019.03",
- "pyyaml==5.3.1",
- "requests==2.23.0",
- "ruamel.yaml==0.15.100",
+ "pyyaml>=5.2",
+ "requests>=2.22",
+ "ruamel.yaml>=0.15.100",
"voluptuous==0.11.7",
"voluptuous-serialize==2.3.0",
]
--
2.25.1

View File

@ -2,7 +2,7 @@
# Do not edit! # Do not edit!
{ {
version = "0.107.7"; version = "0.108.2";
components = { components = {
"abode" = ps: with ps; [ ]; # missing inputs: abodepy "abode" = ps: with ps; [ ]; # missing inputs: abodepy
"acer_projector" = ps: with ps; [ pyserial]; "acer_projector" = ps: with ps; [ pyserial];
@ -16,7 +16,6 @@
"aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
"alarm_control_panel" = ps: with ps; [ ]; "alarm_control_panel" = ps: with ps; [ ];
"alarmdecoder" = ps: with ps; [ alarmdecoder]; "alarmdecoder" = ps: with ps; [ alarmdecoder];
"alarmdotcom" = ps: with ps; [ ]; # missing inputs: pyalarmdotcom
"alert" = ps: with ps; [ ]; "alert" = ps: with ps; [ ];
"alexa" = ps: with ps; [ aiohttp-cors]; "alexa" = ps: with ps; [ aiohttp-cors];
"almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
@ -84,6 +83,7 @@
"bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez
"bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
"bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi
"bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
"bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
"bom" = ps: with ps; [ ]; # missing inputs: bomradarloop "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
"braviatv" = ps: with ps; [ bravia-tv getmac]; "braviatv" = ps: with ps; [ bravia-tv getmac];
@ -156,7 +156,7 @@
"dialogflow" = ps: with ps; [ aiohttp-cors]; "dialogflow" = ps: with ps; [ aiohttp-cors];
"digital_ocean" = ps: with ps; [ digital-ocean]; "digital_ocean" = ps: with ps; [ digital-ocean];
"digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
"directv" = ps: with ps; [ ]; # missing inputs: directpy "directv" = ps: with ps; [ ]; # missing inputs: directv
"discogs" = ps: with ps; [ discogs_client]; "discogs" = ps: with ps; [ discogs_client];
"discord" = ps: with ps; [ discordpy]; "discord" = ps: with ps; [ discordpy];
"discovery" = ps: with ps; [ netdisco]; "discovery" = ps: with ps; [ netdisco];
@ -372,6 +372,7 @@
"iota" = ps: with ps; [ ]; # missing inputs: pyota "iota" = ps: with ps; [ ]; # missing inputs: pyota
"iperf3" = ps: with ps; [ ]; # missing inputs: iperf3 "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
"ipma" = ps: with ps; [ ]; # missing inputs: pyipma "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
"ipp" = ps: with ps; [ ]; # missing inputs: pyipp
"iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia
"irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
"islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
@ -431,7 +432,7 @@
"london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
"loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
"lovelace" = ps: with ps; [ ]; "lovelace" = ps: with ps; [ ];
"luci" = ps: with ps; [ ]; # missing inputs: openwrt-luci-rpc "luci" = ps: with ps; [ openwrt-luci-rpc];
"luftdaten" = ps: with ps; [ luftdaten]; "luftdaten" = ps: with ps; [ luftdaten];
"lupusec" = ps: with ps; [ ]; # missing inputs: lupupy "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
"lutron" = ps: with ps; [ ]; # missing inputs: pylutron "lutron" = ps: with ps; [ ]; # missing inputs: pylutron
@ -470,7 +471,7 @@
"mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
"mill" = ps: with ps; [ ]; # missing inputs: millheater "mill" = ps: with ps; [ ]; # missing inputs: millheater
"min_max" = ps: with ps; [ ]; "min_max" = ps: with ps; [ ];
"minecraft_server" = ps: with ps; [ getmac]; # missing inputs: mcstatus "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus
"minio" = ps: with ps; [ minio]; "minio" = ps: with ps; [ minio];
"mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
"mjpeg" = ps: with ps; [ ]; "mjpeg" = ps: with ps; [ ];
@ -481,7 +482,6 @@
"mold_indicator" = ps: with ps; [ ]; "mold_indicator" = ps: with ps; [ ];
"monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
"moon" = ps: with ps; [ ]; "moon" = ps: with ps; [ ];
"mopar" = ps: with ps; [ ]; # missing inputs: motorparts
"mpchc" = ps: with ps; [ ]; "mpchc" = ps: with ps; [ ];
"mpd" = ps: with ps; [ mpd2]; "mpd" = ps: with ps; [ mpd2];
"mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt]; "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
@ -512,7 +512,9 @@
"netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
"netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio
"neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
"nexia" = ps: with ps; [ ]; # missing inputs: nexia
"nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
"nextcloud" = ps: with ps; [ ]; # missing inputs: nextcloudmonitor
"nfandroidtv" = ps: with ps; [ ]; "nfandroidtv" = ps: with ps; [ ];
"niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
"nilu" = ps: with ps; [ ]; # missing inputs: niluclient "nilu" = ps: with ps; [ ]; # missing inputs: niluclient
@ -588,6 +590,7 @@
"plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
"pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
"point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint
"powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
"prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py
"proliphix" = ps: with ps; [ ]; # missing inputs: proliphix "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
"prometheus" = ps: with ps; [ aiohttp-cors prometheus_client]; "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client];
@ -604,6 +607,7 @@
"pushover" = ps: with ps; [ pushover-complete]; "pushover" = ps: with ps; [ pushover-complete];
"pushsafer" = ps: with ps; [ ]; "pushsafer" = ps: with ps; [ ];
"pvoutput" = ps: with ps; [ ]; "pvoutput" = ps: with ps; [ ];
"pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
"pyload" = ps: with ps; [ ]; "pyload" = ps: with ps; [ ];
"python_script" = ps: with ps; [ restrictedpython]; "python_script" = ps: with ps; [ restrictedpython];
"qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
@ -660,6 +664,7 @@
"samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket] "samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
"satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
"scene" = ps: with ps; [ ]; "scene" = ps: with ps; [ ];
"schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
"scrape" = ps: with ps; [ beautifulsoup4]; "scrape" = ps: with ps; [ beautifulsoup4];
"script" = ps: with ps; [ ]; "script" = ps: with ps; [ ];
"scsgate" = ps: with ps; [ ]; # missing inputs: scsgate "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
@ -692,7 +697,7 @@
"sky_hub" = ps: with ps; [ ]; "sky_hub" = ps: with ps; [ ];
"skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL] "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
"skybell" = ps: with ps; [ ]; # missing inputs: skybellpy "skybell" = ps: with ps; [ ]; # missing inputs: skybellpy
"slack" = ps: with ps; [ ]; # missing inputs: slacker "slack" = ps: with ps; [ ]; # missing inputs: slackclient
"sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
"slide" = ps: with ps; [ ]; # missing inputs: goslide-api "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
"sma" = ps: with ps; [ ]; # missing inputs: pysma "sma" = ps: with ps; [ ]; # missing inputs: pysma

View File

@ -67,7 +67,7 @@ let
extraBuildInputs = extraPackages py.pkgs; extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating # Don't forget to run parse-requirements.py after updating
hassVersion = "0.107.7"; hassVersion = "0.108.2";
in with py.pkgs; buildPythonApplication rec { in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant"; pname = "homeassistant";
@ -76,7 +76,7 @@ in with py.pkgs; buildPythonApplication rec {
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
patches = [ patches = [
./relax-deps.patch ./0001-setup.py-relax-dependencies.patch
]; ];
inherit availableComponents; inherit availableComponents;
@ -86,7 +86,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant"; owner = "home-assistant";
repo = "home-assistant"; repo = "home-assistant";
rev = version; rev = version;
sha256 = "1sr7vzsd4hpaix37bb10vbnnqs1v8ll2wb8m713qrvcp3crs6snk"; sha256 = "0v4i1ak7pkpycas0mzdmxgc42xgfymwx2b0a2a4h13c4z46pbs2l";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -99,23 +99,16 @@ in with py.pkgs; buildPythonApplication rec {
] ++ componentBuildInputs ++ extraBuildInputs; ] ++ componentBuildInputs ++ extraBuildInputs;
checkInputs = [ checkInputs = [
asynctest pytest pytest-aiohttp requests-mock pydispatcher aiohue netdisco asynctest pytest pytest-aiohttp requests-mock hass-nabucasa netdisco pydispatcher
hass-nabucasa defusedxml zeroconf
]; ];
postPatch = ''
substituteInPlace setup.py \
--replace "aiohttp==3.6.1" "aiohttp" \
--replace "attrs==19.2.0" "attrs" \
--replace "ruamel.yaml==0.15.100" "ruamel.yaml"
'';
checkPhase = '' checkPhase = ''
# - components' dependencies are not included, so they cannot be tested # - components' dependencies are not included, so they cannot be tested
# - test_merge_id_schema requires pyqwikswitch # - test_merge_id_schema requires pyqwikswitch
# - test_loader.py tries to load not-packaged dependencies
# - unclear why test_merge fails: assert merge_log_err.call_count != 0 # - unclear why test_merge fails: assert merge_log_err.call_count != 0
# - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged # - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged
py.test --ignore tests/components -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge" py.test --ignore tests/components --ignore tests/test_loader.py -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
# Some basic components should be tested however # Some basic components should be tested however
py.test \ py.test \

View File

@ -4,11 +4,11 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here # 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 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend"; pname = "home-assistant-frontend";
version = "20200318.0"; version = "20200407.2";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "15by4wd3lpq1pd0hpx04v827i3xywsvxziqb1qrbsraxh1rvsbhz"; sha256 = "0krwn67bkybjb69daik6dki5hm36xs4nbfwqkh0q7ami1xr1f56d";
}; };
# no Python tests implemented # no Python tests implemented

View File

@ -36,7 +36,9 @@ PKG_PREFERENCES = {
# Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
"youtube-dl": "youtube-dl-light", "youtube-dl": "youtube-dl-light",
"tensorflow-bin": "tensorflow", "tensorflow-bin": "tensorflow",
"tensorflow-bin_2": "tensorflow",
"tensorflowWithoutCuda": "tensorflow", "tensorflowWithoutCuda": "tensorflow",
"tensorflow-build_2": "tensorflow",
} }
@ -79,7 +81,8 @@ def parse_components(version: str = "master"):
# Recursively get the requirements of a component and its dependencies # Recursively get the requirements of a component and its dependencies
def get_reqs(components, component): def get_reqs(components, component):
requirements = set(components[component]["requirements"]) requirements = set(components[component]["requirements"])
for dependency in components[component]["dependencies"]: deps = components[component].get("dependencies", [])
for dependency in deps:
requirements.update(get_reqs(components, dependency)) requirements.update(get_reqs(components, dependency))
return requirements return requirements

View File

@ -1,13 +0,0 @@
--- a/setup.py 2020-03-18 15:34:35.474693786 +0000
+++ b/setup.py 2020-03-18 15:49:07.185801916 +0000
@@ -47,8 +47,8 @@
"pip>=8.0.3",
"python-slugify==4.0.0",
"pytz>=2019.03",
- "pyyaml==5.3",
- "requests==2.23.0",
+ "pyyaml>=5.2",
+ "requests>=2.22.0",
"ruamel.yaml==0.15.100",
"voluptuous==0.11.7",
"voluptuous-serialize==2.3.0",