Publish frontend 0.2.3 release notes
CI - Build & Verify / Build, Typecheck & Hygiene (push) Successful in 1m26s
CI - Build & Verify / Deploy to award.noveria.net (push) Failing after 11m22s

This commit is contained in:
AzuTear
2026-07-09 23:47:13 +02:00
parent 353eb97563
commit 23fddbd976
4 changed files with 69 additions and 8 deletions
@@ -13,7 +13,14 @@ const expandedVersions = ref<string[]>([releaseVersions[0]?.version ?? semanticV
const featureCount = computed(() => releaseNotes.filter((note) => note.type === 'feature').length)
const fixCount = computed(() => releaseNotes.filter((note) => note.type === 'fix').length)
const versionCount = computed(() => releaseVersions.length)
const currentRelease = computed(() => releaseVersions[0] ?? null)
const currentReleaseSummary = computed(() => releaseVersions[0]?.summary ?? 'Aktueller Feature-Release.')
const currentReleaseTypeLabel = computed(() => changeTypeLabel(currentRelease.value?.releaseType ?? 'feature'))
const currentReleaseTypeNote = computed(() =>
currentRelease.value
? `Aktueller Changelog-Eintrag fuer ${currentRelease.value.version}.`
: 'Aktueller Changelog-Eintrag.',
)
function versionFeatureCount(version: typeof releaseVersions[number]) {
return version.notes.filter((note) => note.type === 'feature').length
@@ -94,8 +101,8 @@ function changeTypeClasses(type: ReleaseChangeType) {
<div class="grid gap-3 p-5 md:grid-cols-3">
<div class="rounded-2xl border border-violet-100 bg-violet-50/55 px-4 py-3">
<p class="text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500">Release-Typ</p>
<strong class="mt-1 block text-lg text-violet-700">Feature</strong>
<p class="mt-1 text-xs leading-5 text-slate-600">Nach deiner Regel: 0.x.0.</p>
<strong class="mt-1 block text-lg text-violet-700">{{ currentReleaseTypeLabel }}</strong>
<p class="mt-1 text-xs leading-5 text-slate-600">{{ currentReleaseTypeNote }}</p>
</div>
<div class="rounded-2xl border border-emerald-100 bg-emerald-50/55 px-4 py-3">
<p class="text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-500">Neue Features</p>
@@ -223,7 +230,7 @@ function changeTypeClasses(type: ReleaseChangeType) {
<div class="flex items-start gap-3 rounded-2xl border border-violet-100 bg-violet-50/60 px-4 py-3 text-sm leading-6 text-violet-900">
<Info class="mt-0.5 h-4 w-4 shrink-0" />
<p>Diese Version ist als <strong>{{ semanticVersion }}</strong> gesetzt, weil der Schwerpunkt auf neuen Features und groesseren UX-Verbesserungen liegt. Die Pipeline darf Build-Metadaten ergaenzen, aber nicht selbst Major, Feature oder Fix entscheiden.</p>
<p>Die semantische Version <strong>{{ semanticVersion }}</strong> bleibt die Quelle fuer Release-Notes und Build-Metadaten. Die Pipeline darf nur die Build-Suffixe ergaenzen, aber nicht selbst den Changelog-Inhalt umdeuten.</p>
</div>
</div>
+56 -2
View File
@@ -21,9 +21,9 @@ export interface VersionRule {
description: string
}
export const semanticVersion = '0.1.0'
export const semanticVersion = '0.2.3'
export const buildVersion = import.meta.env.VITE_BUILD_VERSION?.trim() || semanticVersion
export const buildDateLabel = import.meta.env.VITE_BUILD_DATE?.trim() || '29.06.2026'
export const buildDateLabel = import.meta.env.VITE_BUILD_DATE?.trim() || '30.06.2026'
export const versionRules: VersionRule[] = [
{
@@ -49,6 +49,60 @@ export const releaseVersions: ReleaseVersionEntry[] = [
buildVersion,
buildDateLabel,
releaseType: 'feature',
summary: 'Demo-Update mit Sponsorensektion, Gewinnerarchiv, saubereren Public-Daten, robusterer Request-Validierung und klareren Admin-Hinweisen.',
notes: [
{
type: 'feature',
title: 'Sponsoren- und Share-Bereich fuer die Demo erweitert',
description: 'Die Landingpage und die Demo-Season enthalten jetzt Beispiel-Sponsoren sowie gepflegte Share-Links, damit die Live-Demo vorzeigbarer ist.',
},
{
type: 'feature',
title: 'Aktuelle Demo-Season wurde mit Tier-Kategorien und Kandidaten aufgefuellt',
description: 'Die laufende Demo nutzt jetzt ein volleres Voting-Dataset mit Hidden-, Rising- und Shining-Star-Unterkategorien statt nur flacher Platzhalter.',
},
{
type: 'feature',
title: 'Gewinnerarchiv 2025 wird robuster nachgezogen',
description: 'Das Archiv-Seed greift jetzt auch dann sauber, wenn bereits leere oder vorbereitete Season-Shells in der Datenbank existieren.',
},
{
type: 'fix',
title: 'Review-Queue und Kandidaten-Kategorien wieder korrekt',
description: 'Legacy-Kategorien blockieren nicht mehr die Nominierungs-Queue, Badge-Zaehler und Kandidaten-Dropdowns im Adminbereich.',
},
{
type: 'fix',
title: 'Landingpage-Demo-Texte wurden bereinigt',
description: 'Oeffentliche Kategorien zeigen keine Demo-Tier-Artefakte mehr, und die Live-Demo-Inhalte werden per Vorwaerts-Migration sauber nachgezogen.',
},
{
type: 'fix',
title: 'Hostbild faellt sauber auf das Default-Artwork zurueck',
description: 'Wenn in der Datenbank noch kein Hostbild hinterlegt ist, liefert der Public-Endpoint jetzt keinen 404 mehr, sondern ein nutzbares Fallback.',
},
{
type: 'fix',
title: 'Public- und Admin-Requests crashen bei kaputten Bodies nicht mehr',
description: 'Votes, Team-Login, Site-Settings und Bulk-Risk-Resolve liefern jetzt saubere 400-Fehler; Nominations und Clips validieren Pflichtfelder frueher.',
},
{
type: 'fix',
title: 'Owner-only Settings und Bulk-Risk-UX klarer kommuniziert',
description: 'Die Settings-Seiten erklaeren jetzt sichtbar, warum nur Owner oder Creator speichern duerfen, und der Risk-Bereich weist klarer auf Low-Severity-only Bulk hin.',
},
{
type: 'fix',
title: 'Login- und Admin-Polish aus dem Demo-Fix-Block integriert',
description: 'Pflicht-Passwortwechsel ist visuell als Warning markiert, der API-Disconnect-Toast ist weniger nervoes, und lange Admin-Seiten scrollen zuverlaessiger.',
},
],
},
{
version: '0.1.0',
buildVersion: '0.1.0',
buildDateLabel: '29.06.2026',
releaseType: 'feature',
summary: 'Feature-Release mit neuem Admin-Cockpit, Voting- und Gewinner-Workflows, Landingpage-Polish, Workflow-Regeln und robusterer Deploy-Basis.',
notes: [
{