Release-Tags nach Paketbuild direkt veröffentlichen
This commit is contained in:
1 parent
5a1a284505
commit
ccc372778c
19 files changed
+278
-387
No files matched your search
@@ -13,21 +13,21 @@ Origin ist `https://git.rfc1437.de/hugo/TerminalBasic.git`; die read-only Versio
|
||||
1. `.gitea/workflows/` nutzt den vorhandenen Linux-arm64-Runner für alle vier Build-/Paketziele. Vorhandene Workflowmuster der anderen Origin-Projekte wiederverwenden: cargo-zigbuild für Linux amd64 und macOS arm64, cargo-xwin für Windows amd64/MSVC; Linux arm64 nativ oder mit derselben festgelegten Linux-Zielbaseline. Container/Tools und benötigte SDKs/Sysroots reproduzierbar pinnen; konkrete Rust-/OS-/glibc-Versionen mit TerminalBasic prüfen. Das Runnerlabel `linux-arm64` bei Anbindung bestätigen. Vier native Buildrunner sind nicht erforderlich. `build-runtime.py` erzeugt Vorlagenmetadaten mit dem Hostwerkzeug für das jeweilige Target; fremde Executables werden auf dem Buildhost nicht nativ ausgeführt.
|
||||
2. Wiederverwendbare Repository-Skripte erledigen Build, Tests, Paketierung und Prüfung auch lokal. Source-Checkout vom Gitea-Origin, alle zusätzlichen Actions nur über explizite Gitea-URLs und feste Revisionen, soweit überhaupt nötig; keine implizite fremde Action-Auflösung. Rust und benötigte Systemwerkzeuge versioniert bereitstellen. Server-/Runner-Kompatibilität praktisch prüfen, statt lediglich YAML zu validieren.
|
||||
3. Matrixprodukte: `terminalbasic-<version>-windows-amd64.7z`, `terminalbasic-<version>-macos-arm64.tar.gz`, `terminalbasic-<version>-linux-amd64.tar.gz`, `terminalbasic-<version>-linux-arm64.tar.gz`. Windows enthält `tb.exe`/`tbc.exe`/`tbrt.exe`, übrige `tb`/`tbc`/`tbrt`; tbrt ist die native Exportvorlage unter `runtimes/<Target-Triple>/`, dazu deren Metadaten, Lizenz, Kurzinstallation. Das vorhandene CLI-/IDE-Suchschema bleibt erhalten. Archive dürfen keine Buildverzeichnis-/Quellbaumabhängigkeiten haben. Exportierte Anwenderprogramme bleiben normale native Einzelartefakte; die Archivformate betreffen die Distribution.
|
||||
4. Der Linux-Buildhost erzeugt/prüft Windows-Archive mit 7-Zip und Unix-Archive mit tar+gzip unter Erhalt der Executable-Bits. Inhalts-/Formatprüfungen laufen dort; tatsächliche Start-/Exportprüfungen verwenden neu entpackte Pakete auf passenden Zielsystemen aus 05, automatisiert oder dokumentiert manuell. Externe Nachweise müssen an Revision und exakte Paketprüfsumme gebunden und vor Freigabe geprüft sein. Ein gemeinsames TBL-Testartefakt wird einmal erzeugt und mit nachgewiesen identischen Bytes auf allen vier Zielsystemen verwendet. Separate BASIC-Verbraucher werden mit den entpackten TB-Tools verknüpft, als TBC ausgeführt und mit tbrt als EXE exportiert. Library-Quellen sind dabei nicht verfügbar. Erzeugung/Linken werden in einer Umgebung ohne erreichbaren C-/Rust-Compiler oder nativen Linker geprüft; Systemhilfen zur EXE-Finalisierung dürfen verfügbar bleiben. Fertige EXEs laufen anschließend ohne externe TBL/TBC oder TB-Installation.
|
||||
5. `cargo test --locked --workspace`, Clippy und Formatprüfung zentral auf dem Linux-arm64-Host; zielabhängige Rust-Testprogramme bei Bedarf cross-kompilieren und auf passenden Prüfsystemen ausführen. Native Tests aus 02/03/04 und automatisierbare Plattformtests aus 05 auf ihren tatsächlichen Zielen ausführen. Buildstatus und Ausführungsnachweise getrennt ausweisen; macOS-EXE-Finalisierung mit codesign erfolgt auf macOS. Den fixierten Fremdprogrammbestand ausdrücklich im erforderlichen Abnahmelauf bereitstellen. Compile-/VM-Messungen auf dokumentiertem Referenzrunner statt instabiler Debug-Zeitlimits in allen Jobs.
|
||||
6. Gitea-Release erst nach allen Pflichtjobs, zugeordneten echten Zielnachweisen und Vollständigkeits-/Prüfsummenprüfung freigeben. Upload zunächst zu einem als Entwurf erkennbaren Release oder gleichwertigem nicht freigegebenen Staging; anschließend atomare Freigabe im Rahmen der verfügbaren API. Keine Commit-/PR-Jobs. Der Release-Upload nutzt den repositorygebundenen Gitea-Jobtoken; ein explizites TB_RELEASE_TOKEN-Secret kann ihn bei Bedarf ersetzen. Keine persönlichen Zugangswerte werden committed. Tests erzeugen keine öffentlichen Testreleases.
|
||||
4. Der Linux-Buildhost prüft Archivinhalt, PE/ELF/Mach-O-Format, Architektur, Version, Metadaten, Executable-Rechte und SHA-256. Echte Ziel-/Terminalprüfungen gehören zur Entwicklung vor dem Release-Tag; die vorhandenen lokalen Werkzeuge bleiben verfügbar. Cross-Builds werden nicht als echte Zielausführung ausgegeben. Ein Nachweis-Commit ist nicht erforderlich.
|
||||
5. Der Tag ist die Freigabeentscheidung des Benutzers nach dessen Tests. Der Release-Workflow startet keine erneute Pflichtabnahme, Fremdprogramm-, Inventar-, Benchmark- oder Terminalnachweisprüfung. Die bestehenden Cargo- und lokalen Abnahmeskripte bleiben unabhängig vom Release verwendbar.
|
||||
6. Nach erfolgreichen vier Buildjobs lädt derselbe Workflow vier Archive und vier SHA-256-Dateien hoch. Während des Uploads bleibt der Release ein Entwurf; nach vollständiger API-Dateiliste und passenden Größen wird er sofort veröffentlicht. Kein manueller Publish-Workflow, Nachweis-Gate oder Release-Asset-Download. Wiederholungen ergänzen fehlende Dateien, ersetzen aber keine vorhandenen Assets oder veröffentlichten Releases. Der repositorygebundene Jobtoken genügt; TB_RELEASE_TOKEN bleibt optional. Tests erzeugen keine öffentlichen Releases.
|
||||
7. README-/PLAN-/Releasehinweise nennen die tatsächlich gemessenen minimalen OS-/Systembibliotheksversionen. Developer-ID-/öffentliche Vertrauenssignatur ist kein Ersatz für lokale Ausführbarkeit; wenn entsprechende Identitäten nicht konfiguriert sind, deren Download-/Vertrauensgrenzen ehrlich dokumentieren. Mac-Artefakte müssen trotzdem lokal korrekt finalisiert und startbar sein.
|
||||
|
||||
## Risks / Trade-offs
|
||||
|
||||
- Cross-Toolchain/SDK fehlt oder ist inkompatibel → Buildbootstrap korrigieren und echte Vierzielpakete nachweisen. Fehlende Zielausführung auf Prüfsystemen sperrt weiterhin Abschluss/Release; erfolgreiche Cross-Builds allein reichen nicht.
|
||||
- Cross-Toolchain/SDK fehlt oder ist inkompatibel → Buildbootstrap korrigieren und echte Vierzielpakete nachweisen. Zielausführung bleibt eine getrennte Entwicklungsprüfung und keine automatisierte Releasebedingung.
|
||||
- Vorlagen passen nicht zum Tool → Manifest-/Prüfsummen-/Versionscheck und Export aus entpacktem Paket.
|
||||
- Plattformwerkzeuge variieren → Buildhost prüft Archiv-/Cross-Werkzeuge, Prüfsysteme prüfen benötigte Signierwerkzeuge; keine stillen Ersatzformate.
|
||||
- Fehler beim Upload → vollständige Pflichtasset-Liste vor Freigabe prüfen; bestehende vollständige Releases nicht beschädigen.
|
||||
|
||||
## Migration Plan
|
||||
|
||||
Lokale Skripte zuerst lauffähig machen, dann Gitea-Runner und Workflows anbinden. Nur neue Tags im Format vX.Y.Z starten Build, Pflichtabnahme und Paketupload; keine Branch-/PR- oder manuellen Buildtrigger. Der Prüfjob lehnt ungültige Tags und Abweichungen von Cargo.toml vor dem Cargo-Build ab; die Zielmatrix hängt von diesem Job ab. Bisherige lokale Cargo-Nutzung erhalten. Rollback über vorheriges vollständiges Release und Rücknahme der Workflowänderung; keine Server-/Runnerinstallation durch bloße Proposal-Erstellung.
|
||||
Lokale Skripte zuerst lauffähig machen, dann Gitea-Runner und Workflows anbinden. Nur neue Tags im Format vX.Y.Z starten Build, Paketupload und direkte Veröffentlichung; keine Branch-/PR- oder manuellen Buildtrigger. Der Prüfjob lehnt ungültige Tags und Abweichungen von Cargo.toml vor dem Cargo-Build ab; die Zielmatrix hängt von diesem Job ab. Bisherige lokale Cargo-Nutzung erhalten. Rollback über vorheriges vollständiges Release und Rücknahme der Workflowänderung; keine Server-/Runnerinstallation durch bloße Proposal-Erstellung.
|
||||
|
||||
## Konkretisierung während der Umsetzung
|
||||
|
||||
@@ -39,13 +39,12 @@ Lokale Skripte zuerst lauffähig machen, dann Gitea-Runner und Workflows anbinde
|
||||
- `tb-template --inspect` nutzt den vorhandenen PE/ELF/Mach-O-Parser auch
|
||||
für tb/tbc. Build und Paketprüfung laufen auf dem Host ohne fremde Programme
|
||||
auszuführen. Die Anwenderpakete benötigen tb-template nicht.
|
||||
- Taglauf erzeugt erst nach Build/Grundabnahme einen überprüften Entwurf.
|
||||
`v1.0.0` bezeichnet die erste Releaseversion. Normale Commits/PRs erzeugen
|
||||
- Benutzerentscheidung 11.09.2026: Das Tag bestätigt die vorherigen Tests.
|
||||
Nach erfolgreichem Vierzielbau werden acht Pflichtassets hochgeladen und
|
||||
im selben Workflow direkt veröffentlicht. Normale Commits/PRs erzeugen
|
||||
keine Jobs oder Artefakte; lokale Entwicklungsprüfungen bleiben verfügbar.
|
||||
Originalpakete werden auf separaten Systemen geprüft. Ein manueller Workflow
|
||||
auf main bindet deren Nachweise aus einem Origin-Commit an Tag, Revision und
|
||||
Paket-SHA-256 und gibt erst dann denselben Entwurf frei; kein erneuter Bau.
|
||||
- Die Benutzerentscheidung aus 05, Windows-Ausführung vorerst offen zu lassen,
|
||||
bleibt erhalten. Sie macht Windows-Builds zulässig, aber keinen Release mit
|
||||
fehlender Windows-Abnahme erfolgreich. Fehlende Nachweise werden nicht auf
|
||||
Basis der gemeinsamen ANSI-Technik von macOS/Linux pauschal abgehakt.
|
||||
- Alle manuellen Freigabe- und Nachweiswege aus dem Releasepfad entfallen.
|
||||
Die Uploadkontrolle verwendet ausschließlich API-Dateiliste und Größen,
|
||||
nachdem lokale Archiv-/Revisions-/Prüfsummenprüfungen bestanden sind.
|
||||
- Zurückgestellte Linux-/Windows-Ausführung und vollständige Terminalfolgen
|
||||
bleiben spätere Entwicklungsarbeit in 07, ohne den Release zu blockieren.
|
||||
@@ -1,6 +1,6 @@
|
||||
## Why
|
||||
|
||||
Die vorhandenen Workflows am Gitea-Origin werden auf ausschließliche Release-Builds umgestellt. Für eine vollständige Phase 6 müssen die vier vereinbarten Zielartefakte in Gitea Actions gebaut, auf ihren Zielsystemen geprüft und als nutzbare Release-Pakete ausgeliefert werden.
|
||||
Die vorhandenen Workflows am Gitea-Origin werden auf ausschließliche Release-Builds umgestellt. Für eine vollständige Phase 6 müssen die vier vereinbarten Zielartefakte in Gitea Actions gebaut, als nutzbare Release-Pakete direkt veröffentlicht werden.
|
||||
|
||||
## What Changes
|
||||
|
||||
@@ -8,8 +8,8 @@ Die vorhandenen Workflows am Gitea-Origin werden auf ausschließliche Release-Bu
|
||||
- Auf dem vorhandenen Linux-arm64-Gitea-Runner Terminalanwendungen für Windows amd64 (cargo-xwin), macOS arm64 und Linux amd64 (cargo-zigbuild) sowie Linux arm64 bauen; keine zusätzlichen Zielplattformen und kein Mirror.
|
||||
- Windows als `.7z`, macOS und beide Linux-Ziele als `.tar.gz` mit `tb`, `tbc` und der nativen `tbrt`-Vorlage samt Metadaten paketieren.
|
||||
- Entpackte Pakete einschließlich `tbc link`, nativer Exporte und separater BASIC-Verbraucher von `.tbl` prüfen, Prüfsummen und nachvollziehbare Buildmetadaten liefern.
|
||||
- Echte Zielausführung aus 05 getrennt vom Cross-Bau einbinden, automatisiert oder als revisions-/paketprüfsummengebundenen Nachweis von separaten Prüfsystemen. Vier native Buildrunner werden nicht vorausgesetzt.
|
||||
- Releases erst nach vollständigen erforderlichen Prüfungen veröffentlichen; fehlende Zielnachweise oder Assets dürfen keinen grünen vollständigen Release ergeben.
|
||||
- Lokale Testwerkzeuge für die Entwicklung erhalten. Der Benutzer testet vor dem Tag; zusätzliche Ziel-/Terminalnachweise und Nachweis-Commits sind keine Releasebedingung.
|
||||
- Nach erfolgreichen vier Builds und vollständigem Upload im selben Workflow direkt veröffentlichen. Manuellen Publish-Workflow, erneute Pflichtabnahme, Nachweis-Gate und Release-Asset-Downloads entfernen; fehlgeschlagene Builds oder Uploads verhindern die Veröffentlichung.
|
||||
|
||||
## Capabilities
|
||||
|
||||
|
||||
+15
-6
@@ -5,7 +5,7 @@ Liefert geprüfte Terminal-Basic-Programme und Exportvorlagen für die vier fest
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Vier verbindliche Buildziele
|
||||
Gitea Actions am bestehenden Origin SHALL Terminalanwendungen für Windows amd64, macOS arm64, Linux amd64 und Linux arm64 aus derselben Revision auf dem vorhandenen Linux-arm64-Runner bauen und paketieren. Cross-Kompilierung SHALL für fremde Ziele verwendet werden; vier native Buildrunner MUST NOT vorausgesetzt werden. Buildprüfungen und echte Zielausführung SHALL getrennt nachvollziehbar sein. Fehlende Build- oder Ausführungsnachweise, fehlgeschlagene Tests oder fehlende Artefakte eines Pflichtziels MUST einen vollständigen erfolgreichen Release verhindern. Build, Pflichtabnahme und Paketartefakte SHALL ausschließlich durch den Push eines neuen Release-Tags im exakten Format `vX.Y.Z` ausgelöst werden; X, Y und Z SHALL nichtnegative Dezimalzahlen ohne führende Nullen sein. Der Tag SHALL der Workspace-Version entsprechen. Normale Branch-Commits und Pull Requests MUST NOT Actions-Builds oder Paketartefakte auslösen. Lokale Entwicklungsprüfungen SHALL weiterhin verfügbar sein.
|
||||
Gitea Actions am bestehenden Origin SHALL Terminalanwendungen für Windows amd64, macOS arm64, Linux amd64 und Linux arm64 aus derselben Revision auf dem vorhandenen Linux-arm64-Runner bauen und paketieren. Cross-Kompilierung SHALL für fremde Ziele verwendet werden; vier native Buildrunner MUST NOT vorausgesetzt werden. Buildprüfungen und echte Zielausführung SHALL getrennt nachvollziehbar sein. Fehlgeschlagene Builds oder fehlende Artefakte eines Pflichtziels MUST eine Veröffentlichung verhindern. Build, Paketierung und Veröffentlichung SHALL ausschließlich durch den Push eines neuen Release-Tags im exakten Format `vX.Y.Z` ausgelöst werden; X, Y und Z SHALL nichtnegative Dezimalzahlen ohne führende Nullen sein. Der Tag SHALL der Workspace-Version entsprechen. Normale Branch-Commits und Pull Requests MUST NOT Actions-Builds oder Paketartefakte auslösen. Lokale Entwicklungsprüfungen SHALL weiterhin verfügbar sein.
|
||||
|
||||
#### Scenario: Ein Ziel fehlt
|
||||
- **WHEN** drei Zieljobs erfolgreich sind und der vierte fehlt oder fehlschlägt
|
||||
@@ -17,7 +17,7 @@ Gitea Actions am bestehenden Origin SHALL Terminalanwendungen für Windows amd64
|
||||
|
||||
#### Scenario: Neuer passender Release-Tag
|
||||
- **WHEN** v1.0.0 auf eine Revision mit Workspace-Version 1.0.0 gepusht wird
|
||||
- **THEN** laufen Pflichtabnahme und anschließend die vier Paketbuilds für diese Revision
|
||||
- **THEN** laufen nach der Versionsvorprüfung die vier Paketbuilds für diese Revision und der vollständige Upload wird direkt veröffentlicht
|
||||
|
||||
#### Scenario: Ungültiger oder unpassender Tag
|
||||
- **WHEN** ein Tag vom Format vX.Y.Z oder von der Workspace-Version abweicht
|
||||
@@ -30,16 +30,25 @@ Windows SHALL als `.7z` ausgeliefert werden; macOS und beide Linux-Architekturen
|
||||
- **WHEN** ein Zielarchiv in ein sauberes Verzeichnis entpackt wird
|
||||
- **THEN** starten IDE und Compiler als native Terminalanwendungen und ein Beispielprojekt kann mit den mitgelieferten Vorlagen exportiert und nativ verwendet werden
|
||||
|
||||
### Requirement: Tatsächliche Artefaktprüfung
|
||||
Der Actions-Releasepfad SHALL tatsächliche Prüfungen der fertig gepackten und erneut entpackten Artefakte auf dem jeweiligen Ziel verlangen. Diese SHALL als automatisierte Zielprüfungen oder dokumentierte manuelle Nachweise von separaten Prüfsystemen aus Change 05 eingebunden und vor Freigabe an die geprüfte Revision und exakte Paketprüfsumme gebunden werden. Fehlende oder nicht passende Nachweise MUST die Freigabe verhindern. Native Executables SHALL ohne TB-Installation und Quellen laufen, Library-Ausgaben SHALL mit separaten BASIC-Verbrauchern über `tbc link` ohne Library-Quellen funktionieren. Dieselbe TBL-Probe SHALL mit identischen Bytes auf allen vier Zielen verknüpft und ausgeführt werden. Library-Bau und Link-/EXE-Export SHALL mit den entpackten Tools ohne C-/Rust-Compiler oder nativen Linker beim Anwender geprüft werden; dokumentierte Systemhilfen zur EXE-Finalisierung dürfen vorhanden sein. Ein erfolgreiches Cargo-Kompilieren oder korrekt benannter Archivname MUST NOT diese Prüfung ersetzen.
|
||||
### Requirement: Lokale Paketprüfung und vorherige Entwicklungstests
|
||||
Der Release-Build SHALL Archivinhalt, Format, Zielarchitektur, Version, Revision und SHA-256 vor dem Upload lokal prüfen. Das Setzen des Release-Tags SHALL die Freigabeentscheidung des Benutzers nach dessen Entwicklungstests sein. Der Releasepfad MUST NOT eine erneute Pflichtabnahme, Ziel-/Terminalberichte, manuelle JSON-Nachweise oder einen zusätzlichen Nachweis-Commit verlangen. Vorhandene lokale Testwerkzeuge SHALL unabhängig vom Release verwendbar bleiben.
|
||||
|
||||
#### Scenario: Falsches Binary im richtigen Archiv
|
||||
- **WHEN** ein Windows-amd64-Archiv versehentlich ein Binary eines anderen Ziels enthält
|
||||
- **THEN** scheitert die Format-/Startprüfung vor der Veröffentlichung
|
||||
- **THEN** scheitert die Formatprüfung vor der Veröffentlichung
|
||||
|
||||
#### Scenario: Tag ohne zusätzliche Nachweise
|
||||
- **WHEN** ein gültiger Tag gesetzt wurde und alle vier Builds sowie der vollständige Upload erfolgreich sind, ohne dass zusätzliche Nachweisdateien vorliegen
|
||||
- **THEN** veröffentlicht derselbe Workflow den Release automatisch und verlangt keinen manuellen Publish-Schritt
|
||||
|
||||
### Requirement: Nachvollziehbare Veröffentlichung
|
||||
Releaseartefakte SHALL Version/Tag, Commit, Toolchain, Buildhost, Ziel, Integritätsprüfsumme und zugehörige Prüfergebnisse nachvollziehbar machen. Nur der freigegebene Tag-/Releasepfad SHALL Veröffentlichungsrechte verwenden; Normale Commits und PRs SHALL keine Actions-Jobs starten. Der repositorygebundene Gitea-Jobtoken SHALL für Releasezugriffe nutzbar sein; ein getrenntes Secret SHALL optional bleiben. Wiederholte fehlgeschlagene Veröffentlichungen SHALL keinen bestehenden vollständigen Release stillschweigend durch unvollständige Assets ersetzen.
|
||||
Releaseartefakte SHALL Version/Tag, Commit, Toolchain, Buildhost, Ziel, Integritätsprüfsumme nachvollziehbar machen. Nur der freigegebene Tag-/Releasepfad SHALL Veröffentlichungsrechte verwenden; Normale Commits und PRs SHALL keine Actions-Jobs starten. Der repositorygebundene Gitea-Jobtoken SHALL für Releasezugriffe nutzbar sein; ein getrenntes Secret SHALL optional bleiben. Vier Archive und vier zugehörige SHA-256-Dateien SHALL die Pflichtassets bilden. Ein Entwurf SHALL ausschließlich den laufenden Upload vor Teilveröffentlichung schützen und nach dessen erfolgreicher Kontrolle im selben Job automatisch freigegeben werden. Wiederholte fehlgeschlagene Veröffentlichungen SHALL keinen bestehenden vollständigen Release stillschweigend durch unvollständige Assets ersetzen.
|
||||
|
||||
#### Scenario: Paket beschädigt oder Upload unvollständig
|
||||
- **WHEN** ein Archiv nach dem Bau verändert wird oder ein Pflichtasset nicht hochgeladen werden kann
|
||||
- **THEN** verhindert die Integritäts-/Vollständigkeitsprüfung die Freigabe und nennt das betroffene Asset
|
||||
|
||||
#### Scenario: Uploadkontrolle ohne erneuten Download
|
||||
- **WHEN** der Releasejob die lokal auf Integrität geprüften Pakete hochgeladen hat
|
||||
- **THEN** prüft er über die Release-API die vollständige Pflichtasset-Liste und die Dateigrößen, ohne Asset-Inhalte erneut herunterzuladen
|
||||
- **AND** ergänzt ein wiederholter Release-Aufruf nur fehlende Dateien; vorhandene Assets werden nicht ersetzt und abweichende Größen führen zum Fehler
|
||||
@@ -1,34 +1,26 @@
|
||||
## 1. Gitea und Runner
|
||||
|
||||
- [ ] 1.1 Vorhandenen Linux-arm64-Gitea-Runner und tatsächliches Label bestätigen; Cross-Buildumgebungen mit cargo-zigbuild, cargo-xwin und benötigten SDKs/Sysroots reproduzierbar festlegen. Ein Gitea-Prüfjob muss den Buildhost nachweisen; separate echte Prüfsysteme aus 05 zuordnen, ohne vier native Buildrunner vorauszusetzen.
|
||||
- [x] 1.1 Vorhandenen Linux-arm64-Gitea-Runner und tatsächliches Label bestätigen; Cross-Buildumgebungen mit cargo-zigbuild, cargo-xwin und benötigten SDKs/Sysroots reproduzierbar festlegen. Den Buildhost bestätigen, ohne vier native Buildrunner vorauszusetzen.
|
||||
- [x] 1.2 Repositorylokale Build-/Testaufrufe und feste Toolchain-/Systemvoraussetzungen bereitstellen; alle vier Ziele müssen auf Linux arm64 mit --locked baubar sein. Zentrale Workspace-Regressionen und getrennte Aufrufe für echte Zielprüfungen bereitstellen; fremde Executables nicht als nativ auf dem Buildhost getestet ausweisen.
|
||||
- [ ] 1.3 Workflow ausschließlich für neue Release-Tags vX.Y.Z anbinden; normale Commits/PRs dürfen keine Jobs oder Artefakte starten. Tagformat und Workspace-Version vor Cargo prüfen; tatsächlichen Taglauf mit vier Zielergebnissen und Fehlerstatus nachweisen.
|
||||
- [x] 1.3 Workflow ausschließlich für neue Release-Tags vX.Y.Z anbinden; normale Commits/PRs dürfen keine Jobs oder Artefakte starten. Tagformat und Workspace-Version vor Cargo prüfen; tatsächlichen Taglauf mit vier Zielergebnissen und Fehlerstatus nachweisen.
|
||||
|
||||
## 2. Artefakte und Pakete
|
||||
|
||||
- [x] 2.1 IDE, CLI und native `tbrt`-Exportvorlage je Ziel in Gitea Actions bauen; Format-/Architektur-/Versionsprüfungen müssen Windows amd64, macOS arm64 und beide Linux-Architekturen eindeutig bestätigen.
|
||||
- [x] 2.2 Windows-Paket als .7z und macOS-/Linux-Pakete als .tar.gz erzeugen; Archivtests müssen Dateinamen, Paketinhalt, Executable-Rechte und notwendige Begleitdateien prüfen.
|
||||
- [ ] 2.3 Jedes fertige Paket auf dem tatsächlichen Ziel neu entpacken und die enthaltenen Programme starten; automatisierte oder dokumentiert manuelle Nachweise aus separaten Prüfsystemen an Revision und Paketprüfsumme binden; `tbc link` und EXE-/TBL-Beispiele müssen mit separaten BASIC-Verbrauchern ohne Library-Quellen/Entwicklungscheckout sowie ohne erreichbaren C-/Rust-Compiler oder nativen Linker funktionieren.
|
||||
- [x] 2.3 Vorhandene lokale Ziel-/Export-/Library-Prüfwerkzeuge für die Entwicklung erhalten; ihre Berichte sind keine Voraussetzung der Veröffentlichung. Linux-/Windows-Ausführung und vollständige Terminalfolgen bleiben auf Benutzerentscheidung zurückgestellt.
|
||||
- [x] 2.4 Einmal erzeugte TBL-Probe mit identischen Bytes an alle vier Zielprüfungen verteilen sowie Artefaktmanifest und Prüfsummen erzeugen; absichtlich beschädigte oder vertauschte Zielartefakte müssen die Prüfung scheitern lassen.
|
||||
|
||||
## 3. Releasepfad
|
||||
|
||||
- [ ] 3.1 Taggebundenen Gitea-Releasepfad mit vollständiger Pflichtasset-Liste und getrennten Rechten einrichten; fehlgeschlagene/fehlende Zielbuilds oder zugeordnete echte Paket-/Zielprüfungen müssen die Freigabe verhindern.
|
||||
- [x] 3.2 Upload zunächst als nicht freigegebenen Stand prüfen und erst vollständig freigeben; ein simulierter fehlender Upload darf keinen vollständigen bestehenden Release überschreiben.
|
||||
- [x] 3.3 Fremdprogramm-, Inventar-, native und automatisierte Plattformnachweise sowie Referenzbenchmarks in den erforderlichen Abnahmelauf integrieren; ignorierte Pflichtfälle müssen als fehlend sichtbar bleiben.
|
||||
- [ ] 3.4 Einen tatsächlichen vollständigen Gitea-Lauf mit vier Paketartefakten nachweisen; Run-/Commit-/Buildhost-/Targetdaten und paketprüfsummengebundene entpackte Prüfergebnisse an 07 übergeben, bevor der Change als fertig gilt.
|
||||
- [x] 3.1 Nach erfolgreichen vier Builds und vollständigem Upload direkt im selben Workflow veröffentlichen; ein gültiges Tag bestätigt die vorherigen Benutzertests. Jobtoken verwenden, keine manuelle Freigabe oder zusätzlichen Nachweis-Commits verlangen.
|
||||
- [x] 3.2 Upload vorübergehend als Entwurf führen, per API-Dateiliste und Größen ohne erneuten Asset-Download prüfen und danach automatisch veröffentlichen; ein simulierter fehlender Upload darf keinen vollständigen bestehenden Release überschreiben.
|
||||
- [x] 3.3 Manuellen Publish-Workflow, Nachweis-Gate, Asset-Downloadpfade und erneute Pflichtabnahme aus dem Release-Build entfernen; lokale Testwerkzeuge erhalten.
|
||||
- [ ] 3.4 Einen tatsächlichen Taglauf mit vier Paketbuilds und automatischer Veröffentlichung des vollständigen Releases bestätigen; Run-/Commit-/Targetdaten an 07 übergeben.
|
||||
|
||||
Stand 07.09.2026: 7/11 Aufgaben abgeschlossen. Actions-Lauf 5 (API 546,
|
||||
Revision dec067dfec0c97918f92f00d0b2729238f494c6a) besteht mit Pflichtabnahme
|
||||
und allen vier Paketjobs. Originalpakete auf macOS arm64 und Linux arm64
|
||||
entpackt und erfolgreich geprüft. 1.1 bleibt nur hinsichtlich der noch nicht
|
||||
zugeordneten Windows-/Linux-amd64-Prüfsysteme offen; Buildhost, Label und
|
||||
Cross-Umgebungen sind jetzt durch Actions nachgewiesen. 2.3 und 3.4 bleiben
|
||||
wegen der fehlenden weiteren Ziel-/Terminalnachweise offen, 3.1 wegen des
|
||||
tatsächlichen Rechteprüfung des Gitea-Jobtokens (optionales Release-Secret). Die vorhandenen
|
||||
Run-/Paket-/Prüfbelege sind für 07 unter evidence/actions-run-5/ abgelegt.
|
||||
Details: verification.md.
|
||||
|
||||
Änderung 08.09.2026: Release 1.0.0 vorbereiten; ausschließlich Tag-Builds.
|
||||
1.3 wird für den neuen Tagpfad erneut geöffnet (6/11 abgeschlossen), bis der
|
||||
tatsächliche v1.0.0-Lauf vorliegt. Frühere Branch-Läufe bleiben historische Belege.
|
||||
Entscheidung 11.09.2026: Der Release-Tag ist die Freigabe nach vorherigen
|
||||
Benutzertests. Die bisher verlangten externen Nachweis-Commits und manuelle
|
||||
Freigabe entfallen. Die lokalen Testwerkzeuge bleiben erhalten. Lauf 7
|
||||
belegt die vier Tagbuilds; die direkte Veröffentlichung nach der Umstellung
|
||||
ist noch in einem neuen Taglauf zu bestätigen. Historische Protokolle sind
|
||||
weiter unter evidence/ und in verification.md abgelegt.
|
||||
@@ -1,3 +1,32 @@
|
||||
## Aktueller Stand 11.09.2026: direkte Tagveröffentlichung
|
||||
|
||||
Die frühere Freigabearchitektur in den folgenden historischen Abschnitten
|
||||
ist durch die Benutzerentscheidung ersetzt: Tag → Versionsvorprüfung → vier
|
||||
Builds/Pakete → Upload → automatische Veröffentlichung im selben Job.
|
||||
`publish.yml`, `publish.py`, das Nachweis-Gate und alle Release-Asset-Downloads
|
||||
sind entfernt. Die Pflichtabnahme läuft nicht mehr im Release-Workflow;
|
||||
lokale Testwerkzeuge bleiben verfügbar. Acht Pflichtassets (vier Archive
|
||||
und vier SHA-256-Dateien) genügen. Während des Uploads schützt ein temporärer
|
||||
Entwurf vor Teilveröffentlichung. Lokale Integritätsprüfungen und die
|
||||
API-Kontrolle von Dateiliste und Größen bleiben erhalten.
|
||||
|
||||
Die vorherigen offenen Secret-/Download-/Nachweisbedingungen des
|
||||
Releasepfads entfallen. Aufgabe 3.4 bleibt nur für einen tatsächlichen
|
||||
Taglauf der neuen direkten Veröffentlichung offen. Der vorhandene Tag
|
||||
v1.0.0 und sein historischer Lauf 7 enthalten noch den alten Workflow.
|
||||
Historische Nachweise werden dadurch nicht als neue Läufe ausgegeben.
|
||||
|
||||
Lokale Verifizierung der Umstellung: fünf Python-Regressionstests bestanden
|
||||
(direkte Freigabe ohne Nachweise/Downloads, fehlgeschlagener Upload mit
|
||||
Wiederholung, Schutz veröffentlichter Releases, fehlende/falsche Größen,
|
||||
lokal beschädigte/falsche Pakete und Tagformat). Workflow-YAML geprüft:
|
||||
ausschließlich Tag-Push, Versionsvorprüfung vor vier Builds, Releasejob
|
||||
abhängig von allen Builds. Die tatsächliche eingebettete Versionsvorprüfung
|
||||
akzeptiert v1.0.0 und lehnt unpassende/ungültige Tags ab. Beide betroffenen
|
||||
Changes und alle 30 Hauptspecs validiert; `git diff --check` bestanden.
|
||||
Keine Produktcodeänderungen oder neuen Builds erforderlich für diese
|
||||
Workflow-/Releasepfadänderung; kein Tag oder Release wurde verändert.
|
||||
|
||||
# Verifizierung: phase-6-06-gitea-actions-und-releases
|
||||
|
||||
Stand 07.09.2026. In Actions geprüfter Implementierungsstand:
|
||||
@@ -169,3 +198,33 @@ Releaseprüfungen 6/6, YAML-Trigger und Versionsvorprüfung einschließlich
|
||||
Negativfällen, Format und OpenSpec 30/30 bestanden. Der vollständige
|
||||
Release-Pflichtlauf einschließlich der erforderlichen ignorierten Fälle
|
||||
folgt im neuen Taglauf.
|
||||
|
||||
## Stage-Korrektur 11.09.2026
|
||||
|
||||
[Taglauf 7](https://git.rfc1437.de/hugo/TerminalBasic/actions/runs/7)
|
||||
(API 548, Revision `6e742d96b1dfcb3c517998eee5ae825fe748ceb0`):
|
||||
Pflichtabnahme 913 und alle vier Paketjobs 914–917 erfolgreich. Stage 918
|
||||
hat alle neun Pflichtassets in Draft 10 hochgeladen und ist anschließend
|
||||
in `verify_uploads` → `Gitea.download` mit HTTP 404 gescheitert. Gitea 1.25.4
|
||||
erteilt dem Jobtoken die Repository-Rechte in der API, aber nicht auf dem
|
||||
Web-Downloadpfad des privaten Repositorys. Ein persönlicher Token konnte
|
||||
alle neun Dateien lesen; die vier Archivprüfsummen und die Grundabnahme
|
||||
für die Tagrevision stimmen. Kein Token wurde als Secret hinterlegt.
|
||||
|
||||
Benutzerentscheidung: den erneuten Download zur Uploadkontrolle entfernen.
|
||||
Stage prüft weiter lokal Archive, Revision und SHA-256 vor dem Upload.
|
||||
Die Uploadkontrolle und Wiederholung prüfen API-Dateiliste und Dateigrößen;
|
||||
vorhandene Assets werden nicht ersetzt. Es findet dabei keine erneute
|
||||
Byte-/SHA-Prüfung der serverseitigen Inhalte statt.
|
||||
|
||||
Verifizierung: sechs Python-Regressionstests bestanden. Der erweiterte
|
||||
Wiederholungstest verbietet jeden Asset-Download, bestätigt unveränderte
|
||||
vorhandene Uploads und lehnt abweichende Größen ab. Die neue Funktion
|
||||
`verify_uploads` wurde zusätzlich lesend gegen Draft 10 ausgeführt: alle
|
||||
neun Größen korrekt, Asset-Downloads ausdrücklich im Testaufruf gesperrt,
|
||||
keine Release-Mutation. Der historische Actions-Lauf bleibt fehlgeschlagen;
|
||||
sein Tag enthält noch den alten Code. Tag und Freigabestatus bleiben erhalten.
|
||||
|
||||
Abgrenzung: `publish.yml` lädt weiterhin die Originalpakete für `dist.gate`.
|
||||
Der Jobtoken-Zugriff auf diesen separaten Download bleibt offen; die lokale
|
||||
Stage-Korrektur ist kein Nachweis eines erfolgreichen manuellen Publish.
|
||||
@@ -25,3 +25,10 @@ README nennt derzeit noch „Projektrahmen“, die Korpus-README enthält frühe
|
||||
## Migration Plan
|
||||
|
||||
Dokumente schrittweise mit jeweiligen Fachfeatures aktualisieren, hier endgültig abgleichen. PLAN-Checkboxen erst nach vollständiger Abnahme setzen. Releasekorrekturen führen zu neuem nachvollziehbarem Artefaktstand; vorhandene Releases bleiben referenzierbar.
|
||||
|
||||
Releaseentscheidung 11.09.2026: Das Setzen eines Release-Tags bestätigt die
|
||||
vorherigen Benutzertests. Change 06 veröffentlicht nach Build und Upload
|
||||
direkt. Die Entwicklungs-/Dokumentationsarbeiten dieses Changes sind keine
|
||||
zusätzliche Releasefreigabe; Nachweis-Commits und manuelle Publish-Schritte
|
||||
entfallen. Zurückgestellte Linux-/Windows- und vollständige Terminalprüfungen
|
||||
bleiben gesondert sichtbar und blockieren keine Veröffentlichung.
|
||||
@@ -22,3 +22,10 @@ Keine. Bestehende Sprach-/Inventarverträge werden erneut geprüft, nicht abgesc
|
||||
## Impact
|
||||
|
||||
PLAN.md, README.md, docs, examples und Help-Katalog sowie Abschlussnachweise. Keine vorgezogenen Stufe-2-Spracherweiterungen. Abhängigkeiten: alle Changes 01–06 einschließlich 05a mit synchronisierten Specs und tatsächlichen Prüfergebnissen; abgeschlossene Aufgabenlisten allein genügen nicht.
|
||||
|
||||
Releaseentscheidung 11.09.2026: Das Setzen eines Release-Tags bestätigt die
|
||||
vorherigen Benutzertests. Change 06 veröffentlicht nach Build und Upload
|
||||
direkt. Die Entwicklungs-/Dokumentationsarbeiten dieses Changes sind keine
|
||||
zusätzliche Releasefreigabe; Nachweis-Commits und manuelle Publish-Schritte
|
||||
entfallen. Zurückgestellte Linux-/Windows- und vollständige Terminalprüfungen
|
||||
bleiben gesondert sichtbar und blockieren keine Veröffentlichung.
|
||||
+2
@@ -2,6 +2,8 @@
|
||||
|
||||
Schließt Phase 6 ausschließlich anhand aktueller, nachvollziehbarer Dokumentation, vollständiger Inventarprüfungen und tatsächlich nutzbarer Releaseartefakte ab.
|
||||
|
||||
Die Phasenabnahme ist von der Releaseveröffentlichung getrennt. Ein Release-Tag bestätigt die vorherigen Benutzertests; zusätzliche Abnahmeberichte oder Nachweis-Commits MUST NOT die direkte Veröffentlichung aus Change 06 blockieren.
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Dokumentation des ausgelieferten Verhaltens
|
||||
|
||||
@@ -21,3 +21,10 @@
|
||||
unvollständige Matrixaufgaben einschließlich der restlichen 05a-Nachweise
|
||||
bleiben für 2.2–2.4 und 3.1 nachzuweisen. Der erfolgreiche Benutzer-Farbtest
|
||||
bestätigt die RGB-/Fensterflächenkorrektur, nicht die vollständige Plattformmatrix.
|
||||
|
||||
Releaseentscheidung 11.09.2026: Das Setzen eines Release-Tags bestätigt die
|
||||
vorherigen Benutzertests. Change 06 veröffentlicht nach Build und Upload
|
||||
direkt. Die Entwicklungs-/Dokumentationsarbeiten dieses Changes sind keine
|
||||
zusätzliche Releasefreigabe; Nachweis-Commits und manuelle Publish-Schritte
|
||||
entfallen. Zurückgestellte Linux-/Windows- und vollständige Terminalprüfungen
|
||||
bleiben gesondert sichtbar und blockieren keine Veröffentlichung.
|
||||
Reference in new issue
Block a user