ha(HACS): комплект файлов для Custom Repositories

- info.md (страница HACS), LICENSE (MIT), codeowners @petr.polezhaev
- brand: icon/icon@2x/logo + dark-варианты (сгенерированные плейсхолдеры
  с силуэтом кондиционера)
- .github/workflows/validate-hacs.yaml и hassfest.yaml (включатся на GitHub)
- pyproject: license=MIT, license-files; MANIFEST: LICENSE в sdist
- README/RELEASE_HA: HACS работает только с публичным GitHub-зеркалом
  (Custom Repositories), точные команды mirror и настройки GitHub
This commit is contained in:
2026-09-29 15:40:23 +03:00
parent 1fc845d7f5
commit 34cdb7fef8
15 changed files with 139 additions and 15 deletions
+29 -10
View File
@@ -39,25 +39,44 @@ twine upload dist/manylinux/* dist/*.tar.gz
repair` внутри, но текущий `bdist_wheel`-хук отдаёт тег
`py3-none-<plat>`, поэтому проверяйте итоговые теги вручную.
## 2. GitHub-зеркало и HACS
## 2. GitHub-зеркало и Custom Repositories
HACS устанавливает интеграции только с публичных **GitHub**-репозиториев
(GitLab/Gitea не поддерживаются). Шаги:
(GitLab/Gitea не поддерживаются: https://hacs.xyz/docs/faq/other_git_providers/).
Публикация в default-репозиторий HACS не требуется — достаточно Custom
Repositories, но хостинг обязан быть GitHub.
* создать GitHub-зеркало (push mirror) и убедиться, что оно содержит
`custom_components/fglair/`, `hacs.json`, тег релиза;
* заполнить `codeowners` в `custom_components/fglair/manifest.json`
(GitHub-хендлы; сейчас пустой список);
```sh
# один раз: зеркало и перенос веток/тегов
git remote add github git@github.com:<owner>/fgl-aircon.git
git push --mirror github
```
После зеркала:
* заполнить в настройках GitHub: Description, Topics
(`home-assistant`, `hacs`, `fujitsu`, `air-conditioner`), включить Issues
(эти пункты проверяет HACS Action; файлами они не настраиваются);
* проверить `codeowners` в `custom_components/fglair/manifest.json` —
сейчас `@petr.polezhaev`; для GitHub Action/HACS это должен быть реальный
GitHub-логин;
* проверить `documentation`/`issue_tracker` в манифесте;
* обновить `version` манифеста под номер тега (сейчас `0.1.0`, pyfglair —
`1.0.0`; синхронизируйте по вкусу — компонент и пакет версионируются
отдельно);
`1.0.0`; компонент и пакет версионируются отдельно);
* заменить заглушки `custom_components/fglair/screenshots/step-N.png`
реальными скриншотами (описания «что должно быть видно» — в README);
* заменить заглушки `custom_components/fglair/brand/{icon,logo}.png`
фирменными ассетами;
* заменить заглушки `custom_components/fglair/brand/*.png` фирменными
ассетами (сейчас — сгенерированные плейсхолдеры: icon/icon@2x/logo и
тёмные варианты);
* создать git-тег (semver) в GitHub-зеркале — HACS покажет версию.
Файлы, которые HACS/hassfest проверяют у интеграции: `hacs.json`,
`custom_components/fglair/manifest.json` (domain/documentation/
issue_tracker/codeowners/name/version), `custom_components/fglair/brand/icon.png`,
README/info.md, OSI-лицензия (`LICENSE`, MIT). Всё это в репозитории есть;
workflow `.github/workflows/{validate-hacs,hassfest}.yaml` включатся на
GitHub.
## 3. Приёмка на живом стенде
* `tests/acceptance/test_esphome_ha.py quick` — матрица изменений (HA;