Skip to content

custom component git repo in manifest.json requirements not being honoured/formatting change issue #149833

Description

@andyb2000

The problem

In a custom component that I maintain (It overrides official integration husqvarna_automower_ble to support the more up to date library/bleeding edge developments) I've struggled with the maintainers methodology for using external python libraries loading via manifest.json

In my repo I use hassfest/validate and often found that the working representation in manifest.json requirements (Working as in, HASS loads the custom github repo python library correctly) failed hassfest validation. This also mirrored what was in your documentation for integrations at:
https://developers.home-assistant.io/docs/creating_integration_manifest/#requirements

According to this, I should be using the following:

"requirements": ["AutoMower-BLE@git+https://github.com/alistair23/AutoMower-BLE.git@main"],

in manifest.json. However, by using this, HASS will not pull the external library in at all, failing when the custom component tries to initialise, the library simply isn't there:

2025-08-01 19:16:43.732 ERROR (MainThread) [homeassistant.config_entries] Error occurred loading flow for integration husqvarna_automower_ble: No module named 'automower_ble'
  File "/config/custom_components/husqvarna_automower_ble/__init__.py", line 9, in <module>
    from automower_ble.mower import Mower
ModuleNotFoundError: No module named 'automower_ble'

I have used several different methods by trial and error and found the following works:

"requirements": ["automower_ble @ git+https://github.com/alistair23/AutoMower-BLE.git@main"],

(Again, works means that at HASS startup, the external library is retrieved from the current 'main' branch of the github repo).

I therefore think there is a mismatch between the documented correct method (And the method that hassfest uses for validation) and the python validated method of importing requirements from github repo.

In the past I've pushed a change to the home-assistant documentation on the creating_integration_manifest/#requirements
However I see this has been reverted due to this PR from another user - https://github.com/home-assistant/developers.home-assistant/pull/2528/files
As opposed to my original correction back in November 2024:
home-assistant/developers.home-assistant#2438

Can this be confirmed/investigated as to the correct published method, to sync hassfest to correctly validate and documentation corrected?

What version of Home Assistant Core has the issue?

core-2025.7.3

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

husqvarna_automower_ble

Link to integration documentation on our website

https://developers.home-assistant.io/docs/creating_integration_manifest/#requirements

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

Integration husqvarna_automower_ble - /github/workspace/custom_components/husqvarna_automower_ble:
Error: R] [REQUIREMENTS] Requirement "automower_ble @ git+https://github.com/alistair23/AutoMower-BLE.git@main" contains a space
Warning: G] [MANIFEST] Domain collides with built-in core integration

Error: Process completed with exit code 1.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions