diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2023-11-25 16:32:41 +0100 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2023-12-06 03:55:33 +0100 |
commit | 01616e5331d2790127aa2e61c126fff9467889f2 (patch) | |
tree | e00117db74b6800f478e9404bb036d970d641b25 /pkgs/servers/home-assistant/custom-components | |
parent | 8c87a98ce1e8850faee64a0a540acff233b66bd2 (diff) | |
download | nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar.gz nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar.bz2 nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar.lz nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar.xz nixlib-01616e5331d2790127aa2e61c126fff9467889f2.tar.zst nixlib-01616e5331d2790127aa2e61c126fff9467889f2.zip |
buildHomeAssistantComponent: migrate from pname to owner/domain
Also make the attribute name to match the domain name. This is more in line with the home-assistant custom component ecosystem and allows additional validation between the derivation and the manifest. Also, at a later time, this will enable us to check for domain conflicts at eval time.
Diffstat (limited to 'pkgs/servers/home-assistant/custom-components')
-rw-r--r-- | pkgs/servers/home-assistant/custom-components/README.md | 30 | ||||
-rw-r--r-- | pkgs/servers/home-assistant/custom-components/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix (renamed from pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix) | 3 |
3 files changed, 26 insertions, 9 deletions
diff --git a/pkgs/servers/home-assistant/custom-components/README.md b/pkgs/servers/home-assistant/custom-components/README.md index a7244b25c173..d7137e5c62f7 100644 --- a/pkgs/servers/home-assistant/custom-components/README.md +++ b/pkgs/servers/home-assistant/custom-components/README.md @@ -25,7 +25,7 @@ versions into the Python environment. }: buildHomeAssistantComponent { - # pname, version + # owner, domain, version src = fetchFromGithub { # owner, repo, rev, hash @@ -40,18 +40,34 @@ buildHomeAssistantComponent { } } -## Package name normalization +## Package attribute -Apply the same normalization rules as defined for python packages in -[PEP503](https://peps.python.org/pep-0503/#normalized-names). -The name should be lowercased and dots, underlines or multiple -dashes should all be replaced by a single dash. +The attribute name must reflect the domain as seen in the +`manifest.json`, which in turn will match the python module name below +in the `custom_components/` directory. + +**Example:** + +The project [mweinelt/ha-prometheus-sensor](https://github.com/mweinelt/ha-prometheus-sensor/blob/1.0.0/custom_components/prometheus_sensor/manifest.json#L2) +would receive the attribute name `"prometheus_sensor"`, because both +domain in the `manifest.json` as well as the module name are +`prometheus_sensor`. + +## Package name + +The `pname` attribute is a composition of both `owner` and `domain`. + +Don't set `pname`, set `owner and `domain` instead. + +Exposing the `domain` attribute separately allows checking for +conflicting components at eval time. ## Manifest check The `buildHomeAssistantComponent` builder uses a hook to check whether the dependencies specified in the `manifest.json` are present and -inside the specified version range. +inside the specified version range. It also makes sure derivation +and manifest agree about the domain name. There shouldn't be a need to disable this hook, but you can set `dontCheckManifest` to `true` in the derivation to achieve that. diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix index 4a96b305964a..15bd721c72e8 100644 --- a/pkgs/servers/home-assistant/custom-components/default.nix +++ b/pkgs/servers/home-assistant/custom-components/default.nix @@ -2,5 +2,5 @@ }: { - prometheus-sensor = callPackage ./prometheus-sensor {}; + prometheus_sensor = callPackage ./prometheus_sensor {}; } diff --git a/pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix index 07bcd9abec1c..2368d85552b2 100644 --- a/pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix +++ b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix @@ -4,7 +4,8 @@ }: buildHomeAssistantComponent rec { - pname = "prometheus-sensor"; + owner = "mweinelt"; + domain = "prometheus_sensor"; version = "1.0.0"; src = fetchFromGitHub { |