hacs/integration

Requirement from github not honored

Closed this issue ยท 3 comments

System Health details

System Information

version core-2025.9.4
installation_type Home Assistant OS
dev false
hassio true
docker true
container_arch aarch64
user root
virtualenv false
python_version 3.13.7
os_name Linux
os_version 6.12.34-haos-raspi
arch aarch64
timezone Europe/Stockholm
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 4879
Installed Version 2.0.5
Stage running
Available Repositories 2258
Downloaded Repositories 16
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 16.2
update_channel stable
supervisor_version supervisor-2025.09.0
agent_version 1.7.2
docker_version 28.3.3
disk_total 457.7 GB
disk_used 7.3 GB
nameservers 192.168.1.1
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization
board rpi5-64
supervisor_api ok
version_api ok
installed_addons Zigbee2MQTT (2.6.1-1), File editor (5.8.0), Advanced SSH & Web Terminal (21.0.3), Mosquitto broker (6.5.2)
Dashboards
dashboards 2
resources 11
views 4
mode storage
Network Configuration
adapters lo (disabled), end0 (enabled, default, auto), docker0 (disabled), hassio (disabled), vetha5af865 (disabled), veth7c75a6c (disabled), vethc8cd522 (disabled), veth122fd7a (disabled), vethd1eb690 (disabled), veth0b5a87c (disabled), veth5ec2784 (disabled), veth9fde129 (disabled), vethc349263 (disabled)
ipv4_addresses lo (127.0.0.1/8), end0 (192.168.1.76/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), vetha5af865 (), veth7c75a6c (), vethc8cd522 (), veth122fd7a (), vethd1eb690 (), veth0b5a87c (), veth5ec2784 (), veth9fde129 (), vethc349263 ()
ipv6_addresses lo (::1/128), end0 (fe80::affe:48e1:a7f0:9dc5/64), docker0 (fe80::68c7:f8ff:feb9:6674/64), hassio (fe80::c03a:70ff:feef:aa3a/64), vetha5af865 (fe80::284f:f0ff:fead:6cd0/64), veth7c75a6c (fe80::e051:d4ff:fee9:9d4b/64), vethc8cd522 (fe80::b8eb:fbff:fefc:ee6a/64), veth122fd7a (fe80::4cb2:dff:fe1d:b590/64), vethd1eb690 (fe80::40d2:15ff:fe22:d6c4/64), veth0b5a87c (fe80::73:4aff:fe41:5ff2/64), veth5ec2784 (fe80::ec11:d4ff:feb1:4b58/64), veth9fde129 (fe80::c0e2:d6ff:feda:29a0/64), vethc349263 (fe80::1cb3:89ff:fef4:ce66/64)
announce_addresses 192.168.1.76, fe80::affe:48e1:a7f0:9dc5
Recorder
oldest_recorder_run September 17, 2025 at 3:53 PM
current_recorder_run September 28, 2025 at 1:00 PM
estimated_db_size 33.02 MiB
database_engine sqlite
database_version 3.48.0

Checklist

  • I'm running the newest version of HACS https://github.com/hacs/integration/releases/latest
  • I have enabled debug logging for my installation.
  • I have filled out the issue template to the best of my ability.
  • I have read https://hacs.xyz/docs/help/issues/
  • This issue is related to the backend (integration part) of HACS.
  • This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • This is a bug and not a feature request.
  • This issue is not a duplicate issue of currently open or issues pending release.

Describe the issue

I have an integration with a requirements to an io package. I don't want to create a new release in the io package for testing and instead want to rely on a hash, tag or just the main branch. However, with the service to manual update it does not seem to honor to download latest version of of the requirements. It updates the integration but not requirement packages. There is no other integration that uses the package either.

I have tested:

  • Using a tag, main branch, commit hash
  • Creating a separate branch and installed it
  • Changing version in the integration in an attempt to make it update the io package

Not sure if relevant but latest release uses a pipy version of the requirement package but for testing I want to use github repo so users to test it for me dont need to manually download python package.

Image

Integration: https://github.com/FredrikM97/hass-surepetcare
Io package: https://github.com/FredrikM97/py-surepetcare

Reproduction steps

  1. Dowload latest version
  2. Use service to update to a branch, hash, tag which uses a git repo instead of pypi package
  3. Watch it fail as dependencies not found

Debug logs

Logger: homeassistant.config_entries
Source: config_entries.py:751
First occurred: 1:01:02 PM (1 occurrence)
Last logged: 1:01:02 PM

Error setting up entry SurePetCare Devices for surepetcare
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 751, in __async_setup_with_context
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/surepetcare/__init__.py", line 124, in async_setup_entry
    await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 2571, in async_forward_entry_setups
    await integration.async_get_platforms(platforms)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1173, in async_get_platforms
    import_future.result()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1173, in async_get_platforms
    import_future.result()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1173, in async_get_platforms
    import_future.result()
    ~~~~~~~~~~~~~~~~~~~~^^
  [Previous line repeated 4 more times]
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1161, in async_get_platforms
    platforms.update(self._load_platforms(platform_names))
                     ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1086, in _load_platforms
    platform_name: self._load_platform(platform_name)
                   ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1260, in _load_platform
    cache[full_name] = self._import_platform(platform_name)
                       ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/loader.py", line 1292, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/util/loop.py", line 201, in protected_loop_func
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/config/custom_components/surepetcare/select.py", line 6, in <module>
    from surepcio.enums import (
    ...<8 lines>...
    )
ImportError: cannot import name 'BowlTypeOptions' from 'surepcio.enums' (/usr/local/lib/python3.13/site-packages/surepcio/enums.py)

Diagnostics dump

config_entry-hacs-01J3QMWKPY21EAJN6CBNR4XVQS-1.json

logs.txt

Make sure you have read the issue guidelines and that you filled out the entire template.

If you have an issue identical to this, do not add comments like "same here", "i have this too", instead add a ๐Ÿ‘ reaction to the issue description. Thanks! ๐Ÿ‘

HACS only download the integration.
Installation of requirements all are handled by Home Assistant.

Thanks that guided me in right direction:

This was valid
"requirements": [
"git+https://github.com/FredrikM97/py-surepetcare.git@main#egg=py-surepetcare"
]
Creating an issue for HA. Appreciate the help!