build: prepare v1.62.0-rc.1

User-Visible: yes
Issue: #108
This commit is contained in:
Matysh
2026-08-13 00:35:24 +03:00
parent 31d81ad4ef
commit ce40c57a3b
14 changed files with 59 additions and 16 deletions
+6
View File
@@ -32,6 +32,12 @@ Baseline-Reviewed: <CI run or artifact reference>
Never invent a review reference merely to pass a gate. Baselines are accepted
only from the complete Linux CI artifact via `golden:accept -- --reviewed`.
## Prerelease naming
Use `beta.1` through `beta.9`, then continue the same version line with
`rc.1`. GitHub/HACS prerelease discovery orders `beta.10` behind `beta.9`, so
the publisher rejects beta numbers greater than nine before creating a tag.
Install dependencies once per clone; the `prepare` script activates the
repository hook automatically:
+1 -1
View File
@@ -45,7 +45,7 @@ PLAN_ORPHAN_TTL_S = 3600
SCHEDULED_GRACE_S = 30 * 24 * 3600
FILES_DIR = "houseplan/files"
CONF_ADMIN_ONLY = "admin_only"
VERSION = "1.62.0-beta.10"
VERSION = "1.62.0-rc.1"
# Portable backup format. This is deliberately independent from the Home
# Assistant Store version above: storage migrations and files exported by a
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -16,5 +16,5 @@
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
"requirements": [],
"single_config_entry": true,
"version": "1.62.0-beta.10"
"version": "1.62.0-rc.1"
}
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+6
View File
@@ -2,6 +2,12 @@
## Unreleased
## v1.62.0-rc.1 — 2026-08-13
- Republished the reviewed beta.10 candidate under an RC identifier so HACS
discovers it after beta.9; the application code and user-visible behaviour
are unchanged.
## v1.62.0-beta.10 — 2026-08-13
- Fixed composite device presentation and actions after the beta review:
+5
View File
@@ -8,6 +8,11 @@
## Unreleased
## v1.62.0-rc.1 — 2026-08-13
- Проверенный кандидат beta.10 переопубликован с RC-идентификатором, чтобы HACS
корректно видел его после beta.9; код приложения и поведение для пользователя не изменились.
## v1.62.0-beta.10 — 2026-08-13
- По результатам ревью беты исправлены отображение и действия составных
+5 -3
View File
@@ -1,16 +1,18 @@
<!-- release: v1.62.0-beta.10 -->
<!-- release: v1.62.0-rc.1 -->
## Основное
- Исправлены отображение и переключение составных устройств.
- Усилены проверки разделения комнат, Glow, подсказок и предпросмотра проёмов.
- RC-идентификатор обходит лексикографическую сортировку beta-версий в HACS.
- Мелкие исправления и улучшения.
## Highlights
- Fixed presentation and toggling for composite devices.
- Strengthened Split, Glow, contextual-help and opening-preview checks.
- RC naming avoids HACS's lexicographic beta-version ordering.
- Small fixes and improvements.
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.62.0-beta.10/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.62.0-beta.10/docs/CHANGELOG.md)
[Полный список изменений на русском](https://github.com/Matysh/houseplan-card/blob/v1.62.0-rc.1/docs/CHANGELOG.ru.md)
· [Full changelog in English](https://github.com/Matysh/houseplan-card/blob/v1.62.0-rc.1/docs/CHANGELOG.md)
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "houseplan-card",
"version": "1.62.0-beta.10",
"version": "1.62.0-rc.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "houseplan-card",
"version": "1.62.0-beta.10",
"version": "1.62.0-rc.1",
"license": "MIT",
"dependencies": {
"lit": "^3.1.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "houseplan-card",
"version": "1.62.0-beta.10",
"version": "1.62.0-rc.1",
"description": "Interactive house plan Lovelace card for Home Assistant",
"license": "MIT",
"type": "module",
+15
View File
@@ -60,6 +60,20 @@ export function parsePrereleaseArgs(args) {
};
}
/** GitHub's prerelease discovery order is lexicographic inside a beta line:
* beta.10 can be returned behind beta.9 and HACS will keep offering beta.9.
* Stop before any tag or release is created; after beta.9 the line continues
* as rc.1 (or on a new patch/minor version). */
export function assertHacsDiscoverableTag(tag) {
const beta = /^v\d+\.\d+\.\d+-beta\.([1-9]\d*)$/.exec(tag);
if (beta && Number(beta[1]) >= 10) {
throw new Error(
`${tag} is not HACS-discoverable after beta.9; use rc.1 or a new version line`,
);
}
return tag;
}
export function verifyReleaseProjection(release, { tag }) {
if (!release || release.tagName !== tag) throw new Error(`GitHub release ${tag} is missing`);
if (release.isDraft) throw new Error(`GitHub release ${tag} is still a draft`);
@@ -446,6 +460,7 @@ if (invokedDirectly) {
const main = async () => {
issues = parseIssueList(issueOption);
assertHacsDiscoverableTag(tag);
const contract = assertReleaseContract({ root, tag, repo, requirePrerelease: true });
run('gh', ['auth', 'status']);
const currentBranch = run('git', ['branch', '--show-current']).stdout;
+1 -1
View File
@@ -196,7 +196,7 @@ import {
} from './opening-placement';
import { safeStoredColor } from './color';
const CARD_VERSION = '1.62.0-beta.10';
const CARD_VERSION = '1.62.0-rc.1';
const DISPLAY_LABEL_KEYS: Record<DeviceDisplayMode, I18nKey> = {
badge: 'display.badge',
icon_ripple: 'display.icon_ripple',
+10 -1
View File
@@ -15,7 +15,7 @@ import {
versionFromTag,
} from '../scripts/release-contract.mjs';
import {
parseIssueList, parsePrereleaseArgs, prereleaseWorkflowSucceeded,
assertHacsDiscoverableTag, parseIssueList, parsePrereleaseArgs, prereleaseWorkflowSucceeded,
readZipEntries, verifyReleaseProjection,
} from '../scripts/release-prerelease.mjs';
@@ -47,6 +47,15 @@ test('release SemVer parser accepts prereleases and rejects unsafe tags', () =>
assert.throws(() => validateVersionSources('v1.2.3', { source: '1.2.3' }), /requires a prerelease/);
});
test('HACS prerelease naming switches from beta.9 to rc.1', () => {
assert.equal(assertHacsDiscoverableTag('v1.62.0-beta.9'), 'v1.62.0-beta.9');
assert.equal(assertHacsDiscoverableTag('v1.62.0-rc.1'), 'v1.62.0-rc.1');
assert.throws(
() => assertHacsDiscoverableTag('v1.62.0-beta.10'),
/not HACS-discoverable.*use rc\.1/,
);
});
test('version sources include every shipped authority and must match the tag', () => {
const sources = parseVersionSources({
packageJson: '{"version":"1.2.3-beta.4"}',