homeassistant doesn't populate any more deps directory for missing python package. #1243

Open
opened 2023-03-07 19:37:24 +01:00 by zentoo · 11 comments

Usually to find wrong or missing python dependencies of homeassistant I delete homeassistant deps directory right before to start a new homeassistant version.

Today after a whole system update so including homeassistant overlay I've been surprised to do not see usual missing python dependencies been populated while homeassistant was starting.
In homeassistant server log I can see ERROR messages related to several missing python packages like this one:

2023-03-07 15:44:49.418 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package devolo-plc-api==1.2.0: error: externally-managed-environment

× This environment is externally managed
╰─>
    The system-wide Python installation in Gentoo should be maintained
    using the system package manager (e.g. emerge).

    If the package in question is not packaged for Gentoo, please
    consider installing it inside a virtual environment, e.g.:

    python -m venv /path/to/venv
    . /path/to/venv/bin/activate
    pip install mypackage

    To exit the virtual environment, run:

    deactivate

    The virtual environment is not deleted, and can be re-entered by
    re-sourcing the activate file.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

I got the same message related to these packages:

ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package devolo-plc-api==1.2.0: error: externally-managed-environment
ERROR (SyncWorker_2) [homeassistant.util.package] Unable to install package mutagen==1.46.0: error: externally-managed-environment
ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexapi==4.13.2: error: externally-managed-environment
ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexauth==0.0.6: error: externally-managed-environment
ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexwebsocket==0.0.13: error: externally-managed-environment
ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pyipp==0.12.1: error: externally-managed-environment
ERROR (SyncWorker_2) [homeassistant.util.package] Unable to install package PyXiaomiGateway==0.14.3: error: externally-managed-environment
ERROR (SyncWorker_0) [homeassistant.util.package] Unable to install package pyipp==0.12.1: error: externally-managed-environment

I join full related homeassistant log that covers its.

I've solved most of them by installing manually related packages but there is still ERROR messages related to pyipp-0.12.1 even if I've installed it.

I need to track down which homeassistant USE flags need these dependencies in order to open separate tickets.

It will be really problematic that homeassistant can't any more install needed python dependencies by itself because that will prevent to add new integration from homeassistant interface easily. That will make mandatory to re-emerge homeassistant with correct USE flags or dependencies in order to add a new integration.

Usually to find wrong or missing python dependencies of homeassistant I delete homeassistant deps directory right before to start a new homeassistant version. Today after a whole system update so including homeassistant overlay I've been surprised to do not see usual missing python dependencies been populated while homeassistant was starting. In homeassistant server log I can see ERROR messages related to several missing python packages like this one: ``` 2023-03-07 15:44:49.418 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package devolo-plc-api==1.2.0: error: externally-managed-environment × This environment is externally managed ╰─> The system-wide Python installation in Gentoo should be maintained using the system package manager (e.g. emerge). If the package in question is not packaged for Gentoo, please consider installing it inside a virtual environment, e.g.: python -m venv /path/to/venv . /path/to/venv/bin/activate pip install mypackage To exit the virtual environment, run: deactivate The virtual environment is not deleted, and can be re-entered by re-sourcing the activate file. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. ``` I got the same message related to these packages: ``` ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package devolo-plc-api==1.2.0: error: externally-managed-environment ERROR (SyncWorker_2) [homeassistant.util.package] Unable to install package mutagen==1.46.0: error: externally-managed-environment ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexapi==4.13.2: error: externally-managed-environment ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexauth==0.0.6: error: externally-managed-environment ERROR (SyncWorker_6) [homeassistant.util.package] Unable to install package plexwebsocket==0.0.13: error: externally-managed-environment ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package pyipp==0.12.1: error: externally-managed-environment ERROR (SyncWorker_2) [homeassistant.util.package] Unable to install package PyXiaomiGateway==0.14.3: error: externally-managed-environment ERROR (SyncWorker_0) [homeassistant.util.package] Unable to install package pyipp==0.12.1: error: externally-managed-environment ``` I join full related homeassistant log that covers its. I've solved most of them by installing manually related packages but there is still ERROR messages related to pyipp-0.12.1 even if I've installed it. I need to track down which homeassistant USE flags need these dependencies in order to open separate tickets. It will be really problematic that homeassistant can't any more install needed python dependencies by itself because that will prevent to add new integration from homeassistant interface easily. That will make mandatory to re-emerge homeassistant with correct USE flags or dependencies in order to add a new integration.
Author

Full homeassistant server related log.

Full homeassistant server related log.
Author

I think this issue is related to >=dev-python/setuptools-66 versions.

I think this issue is related to >=dev-python/setuptools-66 versions.
Owner

please try dev-python/pyipp-0.12.1-r1

please try dev-python/pyipp-0.12.1-r1
Author

For pyipp , it's ok with dev-python/pyipp-0.12.1-r1 (related ticket closed).

But this issue is a global issue: homeassistant can't install by itself python packages in "dep" directory anymore so it means it's impossible to add new integrations from frontend anymore.
It's only possible to add integration by first adding related USE flag to homeassistant ebuild if specific integration USE flag exist.

So IMHO it's a critical issue.

For example, for testing purpose, I have tried to install the "alarm decoder" integration from frontend:

image

"deps" directory is not populated with needed packages and I got the following in homeassistant log:


2023-03-10 17:12:09.196 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment

× This environment is externally managed
╰─>
    The system-wide Python installation in Gentoo should be maintained
    using the system package manager (e.g. emerge).

    If the package in question is not packaged for Gentoo, please
    consider installing it inside a virtual environment, e.g.:

    python -m venv /path/to/venv
    . /path/to/venv/bin/activate
    pip install mypackage

    To exit the virtual environment, run:

    deactivate

    The virtual environment is not deleted, and can be re-entered by
    re-sourcing the activate file.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
2023-03-10 17:12:10.117 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment

× This environment is externally managed
╰─>
    The system-wide Python installation in Gentoo should be maintained
    using the system package manager (e.g. emerge).

    If the package in question is not packaged for Gentoo, please
    consider installing it inside a virtual environment, e.g.:

    python -m venv /path/to/venv
    . /path/to/venv/bin/activate
    pip install mypackage

    To exit the virtual environment, run:

    deactivate

    The virtual environment is not deleted, and can be re-entered by
    re-sourcing the activate file.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
2023-03-10 17:12:11.029 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment

× This environment is externally managed
╰─>
    The system-wide Python installation in Gentoo should be maintained
    using the system package manager (e.g. emerge).

    If the package in question is not packaged for Gentoo, please
    consider installing it inside a virtual environment, e.g.:

    python -m venv /path/to/venv
    . /path/to/venv/bin/activate
    pip install mypackage

    To exit the virtual environment, run:

    deactivate

    The virtual environment is not deleted, and can be re-entered by
    re-sourcing the activate file.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
For pyipp , it's ok with dev-python/pyipp-0.12.1-r1 (related ticket closed). But this issue is a global issue: homeassistant can't install by itself python packages in "dep" directory anymore so it means it's impossible to add new integrations from frontend anymore. It's only possible to add integration by first adding related USE flag to homeassistant ebuild if specific integration USE flag exist. So IMHO it's a critical issue. For example, for testing purpose, I have tried to install the "alarm decoder" integration from frontend: ![image](/attachments/007cc931-ac39-482a-a3c0-2a99fd561264) "deps" directory is not populated with needed packages and I got the following in homeassistant log: ``` 2023-03-10 17:12:09.196 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment × This environment is externally managed ╰─> The system-wide Python installation in Gentoo should be maintained using the system package manager (e.g. emerge). If the package in question is not packaged for Gentoo, please consider installing it inside a virtual environment, e.g.: python -m venv /path/to/venv . /path/to/venv/bin/activate pip install mypackage To exit the virtual environment, run: deactivate The virtual environment is not deleted, and can be re-entered by re-sourcing the activate file. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. 2023-03-10 17:12:10.117 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment × This environment is externally managed ╰─> The system-wide Python installation in Gentoo should be maintained using the system package manager (e.g. emerge). If the package in question is not packaged for Gentoo, please consider installing it inside a virtual environment, e.g.: python -m venv /path/to/venv . /path/to/venv/bin/activate pip install mypackage To exit the virtual environment, run: deactivate The virtual environment is not deleted, and can be re-entered by re-sourcing the activate file. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. 2023-03-10 17:12:11.029 ERROR (SyncWorker_8) [homeassistant.util.package] Unable to install package adext==0.4.2: error: externally-managed-environment × This environment is externally managed ╰─> The system-wide Python installation in Gentoo should be maintained using the system package manager (e.g. emerge). If the package in question is not packaged for Gentoo, please consider installing it inside a virtual environment, e.g.: python -m venv /path/to/venv . /path/to/venv/bin/activate pip install mypackage To exit the virtual environment, run: deactivate The virtual environment is not deleted, and can be re-entered by re-sourcing the activate file. note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. ```
Owner

What version of dev-python/pip does run on your box?
Could you try to use 22.3.1?

What version of `dev-python/pip` does run on your box? Could you try to use `22.3.1`?
Owner

can reproduce this with pip-23.0.1, we will have to patch something like https://github.com/pypa/pip/pull/11780 into core's installer.

can reproduce this with pip-23.0.1, we will have to patch something like https://github.com/pypa/pip/pull/11780 into core's installer.
Owner

if

-rw-r--r-- 1 root root 513 Feb  1 08:39 /usr/lib/python/EXTERNALLY-MANAGED
lrwxrwxrwx 1 root root  28 Feb 27 14:28 /usr/lib/python3.10/EXTERNALLY-MANAGED -> ../python/EXTERNALLY-MANAGED

are removed it should return to the old behavior.

We have to check that in detail, not sure if pip still uses user's venv.
Check at least where the first package goes to!

if ``` -rw-r--r-- 1 root root 513 Feb 1 08:39 /usr/lib/python/EXTERNALLY-MANAGED lrwxrwxrwx 1 root root 28 Feb 27 14:28 /usr/lib/python3.10/EXTERNALLY-MANAGED -> ../python/EXTERNALLY-MANAGED ``` are removed it should return to the old behavior. We have to check that in detail, not sure if pip still uses user's venv. Check at least where the first package goes to!
onkelbeh added the
Bug
label 2023-03-10 21:46:53 +01:00
Author

What version of dev-python/pip does run on your box?
Could you try to use 22.3.1?

I'm using ~amd64 dev-python/pip-23.0.1

> What version of `dev-python/pip` does run on your box? > Could you try to use `22.3.1`? I'm using ~amd64 dev-python/pip-23.0.1
Author

if

-rw-r--r-- 1 root root 513 Feb  1 08:39 /usr/lib/python/EXTERNALLY-MANAGED
lrwxrwxrwx 1 root root  28 Feb 27 14:28 /usr/lib/python3.10/EXTERNALLY-MANAGED -> ../python/EXTERNALLY-MANAGED

are removed it should return to the old behavior.

We have to check that in detail, not sure if pip still uses user's venv.
Check at least where the first package goes to!

Ho I see so it's managed on gentoo side.

Notes:

  • /usr/lib/python/EXTERNALLY-MANAGED file is the only content of dev-python/gentoo-common that is a dependency of dev-lang/python:*
  • /usr/lib/python3.10/EXTERNALLY-MANAGED link is coming from dev-lang/python/python:*

After several tests I confirm that both file from dev-python/gentoo-common and link from dev-lang/python:* need to be deleted in order that homeassistant can populate deps directory and use it.

In fact, if only EXTERNALLY-MANAGED file from dev-python/gentoo-common is deleted homeassistant can populate deps directory but can't use it and show this message:

image

> if > ``` > -rw-r--r-- 1 root root 513 Feb 1 08:39 /usr/lib/python/EXTERNALLY-MANAGED > lrwxrwxrwx 1 root root 28 Feb 27 14:28 /usr/lib/python3.10/EXTERNALLY-MANAGED -> ../python/EXTERNALLY-MANAGED > ``` > are removed it should return to the old behavior. > > We have to check that in detail, not sure if pip still uses user's venv. > Check at least where the first package goes to! Ho I see so it's managed on gentoo side. Notes: - `/usr/lib/python/EXTERNALLY-MANAGED` file is the only content of `dev-python/gentoo-common` that is a dependency of `dev-lang/python:*` - `/usr/lib/python3.10/EXTERNALLY-MANAGED` link is coming from ` dev-lang/python/python:*` After several tests I confirm that both file from `dev-python/gentoo-common` and link from `dev-lang/python:*` need to be deleted in order that homeassistant can populate `deps` directory and use it. In fact, if only `EXTERNALLY-MANAGED` file from `dev-python/gentoo-common` is deleted homeassistant can populate `deps` directory but can't use it and show this message: ![image](/attachments/fabc92a1-d0c6-47dd-97c7-ec1a950e2a23)
Author

If you need to do similar tests, I advise you to try alarm decoder integration from frontend because it installs only two python dependencies in deps directory and since you can't validate the integration configuration (no connection) you can't really add it. So with this integration you can't pollute your homeassistant configuration but only populate deps directory.

I can't see an easy way to bypass this issue without forking dev-lang/python:* ebuilds in order to remove the dev-python/gentoo-common dependency and remove the link creation.

If you need to do similar tests, I advise you to try `alarm decoder` integration from frontend because it installs only two python dependencies in `deps` directory and since you can't validate the integration configuration (no connection) you can't really add it. So with this integration you can't pollute your homeassistant configuration but only populate `deps` directory. I can't see an easy way to bypass this issue without forking `dev-lang/python:*` ebuilds in order to remove the `dev-python/gentoo-common` dependency and remove the link creation.

This is intentional from the pip developers. They want people to use venv even for user installed packages if this file exist.
See https://github.com/pypa/pip/issues/11776

So 3 solutions I've seen:

  • remove the 2 files (EXTERNALLY_MANAGED)
  • create a ~/.config/pip/pip.conf (home of your homeassistant user)
  • use a virtualenv (maybe the most futur proof? and it should be equivalent if the venv is installed as "deps")
This is intentional from the pip developers. They want people to use venv even for user installed packages if this file exist. See https://github.com/pypa/pip/issues/11776 So 3 solutions I've seen: - remove the 2 files (EXTERNALLY_MANAGED) - create a ~/.config/pip/pip.conf (home of your homeassistant user) - use a virtualenv (maybe the most futur proof? and it should be equivalent if the venv is installed as "deps")
Sign in to join this conversation.
No Label
Bug
Bump/Update
Cleanup
Dupe
Enhancement
File Collision
Forked
help wanted
Integration: accuweather
Integration: acmeda
Integration: acomax
Integration: adax
Integration: adguard
Integration: aemet
Integration: aep_ohio
Integration: aep_texas
Integration: airq
Integration: airthings
Integration: airthings_ble
Integration: airtouch5
Integration: airzone
Integration: airzone_cloud
Integration: amazon_polly
Integration: amberelectric
Integration: ambient_station
Integration: analytics_insights
Integration: anel_pwrctrl
Integration: aosmith
Integration: apache_kafka
Integration: apcupsd
Integration: appalachianpower
Integration: apprise
Integration: aprilaire
Integration: asuswrt
Integration: august
Integration: aws
Integration: axis
Integration: backup
Integration: bang_olufsen
Integration: blebox
Integration: blink
Integration: bluetooth
Integration: blue_current
Integration: bmw_connected_drive
Integration: bosch_shc
Integration: bring
Integration: brother
Integration: brottsplatskartan
Integration: bsblan
Integration: bthome
Integration: caldav
Integration: cast
Integration: ccm15
Integration: cloud
Integration: cloudflare
Integration: co2signal
Integration: coautilities
Integration: comelit
Integration: conversation
Integration: debugpy
Integration: deconz
Integration: deluge
Integration: denonavr
Integration: devialet
Integration: devolo_home_control
Integration: dhcp
Integration: discord
Integration: discovergy
Integration: dlna_dmr
Integration: dlna_dms
Integration: doods
Integration: drop_connect
Integration: dsmr
Integration: duotecno
Integration: duquesne_light
Integration: dwd_weather_warnings
Integration: easyenergy
Integration: ecobee
Integration: ecoforest
Integration: ecovacs
Integration: ecowitt
Integration: elgato
Integration: elvia
Integration: energyzero
Integration: enigma2
Integration: enphase_envoy
Integration: epion
Integration: esphome
Integration: evohome
Integration: flexit_bacnet
Integration: flipr
Integration: foscam
Integration: fritzbox
Integration: fronius
Integration: frontend
Integration: fujitsu_anywair
Integration: garages_amsterdam
Integration: gardena_bluetooth
Integration: gdacs
Integration: generic
Integration: geonetnz_quakes
Integration: geonetnz_volcano
Integration: geo_json_events
Integration: geo_rss_events
Integration: gios
Integration: glances
Integration: goodwe
Integration: google
Integration: google_generative_ai_conversation
Integration: govee_ble
Integration: govee_light_local
Integration: hive
Integration: hko
Integration: holiday
Integration: homekit_controller
Integration: homematicip_cloud
Integration: homewizard
Integration: honeywell
Integration: hp_ilo
Integration: html5
Integration: http
Integration: hue
Integration: hunterdouglas_powerview
Integration: husqvarna_automower
Integration: huum
Integration: hydrawise
Integration: iammeter
Integration: ibeacon
Integration: idasen_desk
Integration: ign_sismologia
Integration: image_upload
Integration: indianamichiganpower
Integration: insteon
Integration: ipp
Integration: islamic_prayer_times
Integration: justnimbus
Integration: jvc_projector
Integration: kef
Integration: kentuckypower
Integration: keymitt_ble
Integration: knx
Integration: kostal_plenticore
Integration: krispol
Integration: lamarzocco
Integration: ld2410_ble
Integration: leaone
Integration: led_ble
Integration: life360
Integration: lifx
Integration: linear_garage_door
Integration: litejet
Integration: local_calendar
Integration: local_todo
Integration: loqed
Integration: luci
Integration: lupusec
Integration: lutron
Integration: lutron_caseta
Integration: madeco
Integration: matrix
Integration: matter
Integration: melcloud
Integration: meteoclimatic
Integration: meteo_france
Integration: metoffice
Integration: microbees
Integration: mill
Integration: minecraft_server
Integration: modbus
Integration: mopeka
Integration: motionmount
Integration: motion_blinds
Integration: myuplink
Integration: nam
Integration: netatmo
Integration: nexia
Integration: nextbus
Integration: nextcloud
Integration: nextdns
Integration: nibe_heatpump
Integration: nmap_tracker
Integration: notion
Integration: nsw_rural_fire_service_feed
Integration: nuki
Integration: numato
Integration: nws
Integration: openai_conversation
Integration: openerz
Integration: open_meteo
Integration: opower
Integration: orvibo
Integration: osoenergy
Integration: otbr
Integration: ourgroceries
Integration: overkiz
Integration: p1_monitor
Integration: pegel_online
Integration: permobil
Integration: plex
Integration: plugwise
Integration: powerwall
Integration: private_ble_device
Integration: proxy
Integration: prusalink
Integration: psoklahoma
Integration: pure_energie
Integration: pvoutput
Integration: qingping
Integration: qld_bushfire
Integration: qrcode
Integration: rabbitair
Integration: rachio
Integration: radio_browser
Integration: rainbird
Integration: rainforest_raven
Integration: rainmachine
Integration: rdw
Integration: recorder
Integration: refoss
Integration: renault
Integration: renson
Integration: reolink
Integration: rflink
Integration: rfxtrx
Integration: ridwell
Integration: ring
Integration: risco
Integration: roborock
Integration: roku
Integration: romy
Integration: roomba
Integration: roon
Integration: route53
Integration: rova
Integration: samsam
Integration: samsungtv
Integration: schlage
Integration: scl
Integration: screenlogic
Integration: sensibo
Integration: sensorpush
Integration: sentry
Integration: seven_segments
Integration: sfr_box
Integration: shelly
Integration: sighthound
Integration: signal_messenger
Integration: simplisafe
Integration: sleepiq
Integration: smarttub
Integration: snmp
Integration: songpal
Integration: sonos
Integration: sql
Integration: squeezebox
Integration: ssdp
Integration: subaru
Integration: suez_water
Integration: sunweg
Integration: surepetcare
Integration: swepco
Integration: swiss_public_transport
Integration: switchbot
Integration: switchbot_cloud
Integration: switcher_kis
Integration: system_bridge
Integration: tado
Integration: tailwind
Integration: tankerkoenig
Integration: tasmota
Integration: technove
Integration: tedee
Integration: temper
Integration: tensorflow
Integration: teslemetry
Integration: tessie
Integration: thermobeacon
Integration: thermopro
Integration: thread
Integration: tolo
Integration: tplink
Integration: tplink_omada
Integration: tplink_tapo
Integration: traccar
Integration: traccar_server
Integration: trafikverket_camera
Integration: trafikverket_ferry
Integration: trafikverket_train
Integration: trafikverket_weatherstation
Integration: transmission
Integration: tuya
Integration: twentemilieu
Integration: unifi
Integration: unifiprotect
Integration: unifi_direct
Integration: upnp
Integration: usgs_earthquakes_feed
Integration: v2c
Integration: vallox
Integration: valve
Integration: velbus
Integration: velux
Integration: vicare
Integration: vodafone_station
Integration: vulcan
Integration: wallbox
Integration: waqi
Integration: weatherflow_cloud
Integration: weatherkit
Integration: webmin
Integration: webostv
Integration: wemo
Integration: withings
Integration: wolflink
Integration: workday
Integration: wyoming
Integration: xiaomi_ble
Integration: yalexs_ble
Integration: yeelight
Integration: yolink
Integration: zamg
Integration: zeroconf
Integration: zha
Integration: zhong_hong
Integration: zondergas
Integration: zoneminder
Integration: zwave_js
invalid
New Integration
Python 3.10
Python 3.11
question
requirement
Requirement vanished
slot-conflict
Source Incomplete
SrcDir ${S} mismatch
TopLevelViolation
Update required
virtual
wontfix
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: onkelbeh/HomeAssistantRepository#1243
No description provided.