Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[*.py]
indent_size = 4

[*.md]
trim_trailing_whitespace = false
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @NikaSir
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
__pycache__/
*.py[cod]
.venv/
.pytest_cache/
.DS_Store
4 changes: 2 additions & 2 deletions .nikas-repository-contract-source.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"canonical_repository": "NikaSir/ha-contract-generated-ui",
"canonical_path": "docs/NIKAS_REPOSITORY_CONTRACT.md",
"local_path": "NIKAS_REPOSITORY_CONTRACT.md",
"sha256": "ea0f62f74e6880bc5d9de2199232a5e4c561ef4ba6c2d12039affed2e78f5dcc",
"canonical_revision": "78150ef18514ace061ba60fbd509e05f4810ba05"
"sha256": "106f5fa7b799dcca09357055610b7b7736cdd6a4dd19886c9d6e15db16841b05",
"canonical_revision": "0cf8e7c19f2db1b0eccbbf30465f167c15858c24"
}
7 changes: 7 additions & 0 deletions BETA_RELEASE_ADOPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Beta release adoption record

The accepted adoption record is maintained in the canonical knowledge base:
[BETA_RELEASE_ADOPTION.md at 0cf8e7c](https://github.com/NikaSir/ha-contract-generated-ui/blob/0cf8e7c19f2db1b0eccbbf30465f167c15858c24/docs/BETA_RELEASE_ADOPTION.md).

It distinguishes the approved beta direction from delivery mechanisms already implemented.
This compatibility link accompanies the repository-contract mirror pinned to the same revision.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Changelog

## 2026-09-14

- Added repository ownership, weekly GitHub Actions dependency updates and editor/cache defaults.
- Documented publication of this standards repository and the scoped exception for release-driven HACS integrations.
- Refreshed the repository-contract mirror from its reviewed canonical commit.
- Aligned the recommended merge settings with the squash-only fleet profile.

Earlier changes remain available in the reviewed Git history; this maintenance entry does not introduce a product version or Release.
6 changes: 6 additions & 0 deletions NIKAS_HACS_PUBLICATION_CONTRACT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# HACS publication contract

The publication contract is maintained at
[docs/NIKAS_HACS_PUBLICATION_CONTRACT.md](docs/NIKAS_HACS_PUBLICATION_CONTRACT.md).

This compatibility link keeps references from the root repository-contract mirror usable.
18 changes: 15 additions & 3 deletions NIKAS_REPOSITORY_CONTRACT.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,21 @@ a document or CI file does not itself configure GitHub branch protection;
settings need separate readback verification. Do not remove an existing required
check to make a migration mergeable.

NikaS publication remains reviewed commits/PRs and `main` through HACS where
applicable. GitHub Releases and automatic release tags are not created. Existing
historical publication objects are not deleted as part of tooling adoption.
NikaS accepted code remains traceable through reviewed commits/PRs and `main`.
The main-only delivery model creates no GitHub Releases or automatic tags.
Release-driven HACS integrations follow the
[HACS Publication Contract](NIKAS_HACS_PUBLICATION_CONTRACT.md): they may publish
matching Releases manually or with declared automation. A Release is not proof
that the user has installed or accepted the version. Existing publication
objects and the previous stable version remain available for rollback.

The factual profile records the channel implemented at `source_revision`:
`github_releases` declares release publication; `automatic_tags` separately
declares repository automation that creates release/tag objects. Manual release
publication does not require an automatic workflow. Recognized release/tag
mutations in workflows still fail inspection when automation is not declared.
Approved channel transitions are tracked separately until implemented; see the
[beta adoption record](BETA_RELEASE_ADOPTION.md).

## 10. Adoption sequence and completion

Expand Down
14 changes: 10 additions & 4 deletions REPOSITORY_STANDARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Recommended repository settings:

- Enable **Squash merging**.
- Disable ordinary merge commits unless a project has a documented reason to keep them.
- Rebase merging may remain disabled for a simpler, single-history policy.
- Disable rebase merging for the common squash-only profile.
- Automatically delete head branches after merge.

The squash commit title should describe the delivered change, not the internal iteration history.
Expand Down Expand Up @@ -68,13 +68,19 @@ Every maintained project repository should have:
- `.gitignore`
- `docs/RELEASES.md`

An existing workflow with an equivalent role may keep its filename (for example,
`validate.yml` or `standards-checks.yml`). Preserve its required check names;
do not create a duplicate workflow only to match the example path above.

Home Assistant repositories add HACS, Hassfest and artifact validation only when the real `custom_components/<domain>/` implementation is present.

## Publication

- Automatic release tags are neither created nor required. Any existing historical tag remains immutable and is not an update channel.
- NikaS panel and integration changes are delivered through committed, reviewed branches and pull requests.
- GitHub Releases are not created for this workflow.
- Reviewed branches, pull requests and `main` remain the source of accepted code.
- The default main-only workflow creates neither GitHub Releases nor automatic release tags. It applies only where the project's documented delivery channel supports that model.
- **HACS exception:** repositories whose HACS delivery depends on release versions follow the [NikaS HACS Publication Contract](docs/NIKAS_HACS_PUBLICATION_CONTRACT.md). Matching Releases/tags are permitted and required for that channel. A merge alone does not prove that a version was delivered.
- Each integration records its actual channel, release automation and any beta/stable acceptance process in `docs/RELEASES.md`. An approved transition is recorded separately from automation already implemented and delivery verified on the target installation.
- Existing published Releases/tags and the previous stable version remain available for traceability and rollback.
- Built/versioned artifacts remain traceable to their source commit and are validated before merge.
- Existing project version lineage is preserved during GitHub migration.
- A migration/bootstrap commit is not itself a functional product publication.
Expand Down
21 changes: 21 additions & 0 deletions docs/RELEASES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Standards publication policy

This repository publishes shared contribution defaults and reviewed mirrors of
NikaS contracts. Its publication record is the protected `main` branch and merged
pull requests. It does not produce an installable Home Assistant integration or
publish GitHub Releases or automatic release tags.

Before merging, the required `validate` job checks the UI-standard mirror and
the revision-pinned repository contract. A mirror update must identify its
reviewed canonical commit and update its digest together with the document.
Adding a standard here does not configure another repository's GitHub settings
or certify its runtime behavior.

The [repository standard](../REPOSITORY_STANDARD.md) defines the default profile.
The [HACS publication contract](NIKAS_HACS_PUBLICATION_CONTRACT.md) applies to
consumer integrations with a release-driven update channel. Their Releases,
beta/stable decisions and user acceptance belong to those projects; this
repository's own main-only policy does not prohibit them.

Changes are recorded in [CHANGELOG.md](../CHANGELOG.md). Rollback uses a reviewed
revert; published history and historical tags remain intact.
Loading