Files
TerminalBasic/openspec/changes/phase-6-06-gitea-actions-und-releases/verification.md
Chili Palmer 6e742d96b1
Some checks failed
Release-Build und Pflichtabnahme / checks (push) Successful in 5m58s
Release-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-apple-darwin) (push) Successful in 3m36s
Release-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-unknown-linux-gnu) (push) Successful in 3m27s
Release-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, x86_64-unknown-linux-gnu) (push) Successful in 3m33s
Release-Build und Pflichtabnahme / build (messense/cargo-xwin@sha256:4696dd4e79edf8569fa99c4b06bd99273e0501c7adc983aa61d57945f795bef0, x86_64-pc-windows-msvc) (push) Successful in 6m14s
Release-Build und Pflichtabnahme / stage (push) Failing after 1m16s
Release 1.0.0: Builds ausschließlich für Release-Tags
2026-09-08 06:48:14 +02:00

172 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Verifizierung: phase-6-06-gitea-actions-und-releases
Stand 07.09.2026. In Actions geprüfter Implementierungsstand:
`dec067dfec0c97918f92f00d0b2729238f494c6a` (Lauf auf `ci/phase-6-06`).
Change 05 wurde zuvor synchronisiert, auf Benutzeranweisung archiviert und
mit `7965647` auf origin/main bestätigt.
## Ergebnis vor der Tag-Umstellung (07.09.2026)
| Dimension | Stand |
|---|---|
| Vollständigkeit | 7/11 Aufgaben abgeschlossen; vier Aufgaben mit noch fehlenden Ziel-/Rechtenachweisen offen |
| Korrektheit | Actions-Lauf 5 mit Pflichtabnahme und vier Paketjobs grün; Originalpakete auf Linux arm64 und macOS arm64 erfolgreich ausgeführt; Paket-/Release-Regressionen grün |
| Kohärenz | Bestehende Exportvalidierung, Vorlagenpfade, TBL-/Native-/PTY-Prüfungen wiederverwendet; keine neue Produktabhängigkeit |
Keine aktuell bekannte unbehobene lokale Codeabweichung. Der Change ist
wegen der unten benannten fehlenden externen Nachweise **nicht vollständig
verifiziert oder archivierungsbereit**. Der tatsächliche Actions-Build ist
jetzt nachgewiesen; fehlende echte Zielabnahmen bleiben davon getrennt.
## Umsetzung und Szenarioabdeckung
- `.gitea/workflows/build.yml`: Push/interner PR, vier Targets auf
`linux-arm64`, gepinnte Images/Action-Commits, getrennte Grundabnahme und
Paketartefakte. Fremde PRs laufen nicht auf dem persönlichen Runner.
- `.gitea/scripts/build.py`, `bootstrap.sh`, `rust-toolchain.toml`: feste
Toolchain, SDK-/CRT-Versionen und Inhaltsprüfung, statische Windows-CRT,
glibc-Buildbaseline 2.28, macOS-Deployment 11.0. Das sind Buildvorgaben,
keine nachgewiesenen minimalen OS-Versionen.
- `distribution.py`: richtige `.7z`-/`.tar.gz`-Formate, vollständige Inhalte,
0755 für Unix-Executables, Dateiprüfsummen, Versions-/Target-/Revision-
Manifest. Entpacken lehnt fremde Pfade, Links und unvollständige Archive ab.
`tb-template --inspect` verwendet den vorhandenen nativen Formatparser.
- `target-check`: Programme aus frisch entpackten Paketen starten; EXE-Export
ohne expliziten Vorlagenpfad, native Parität, identische portable.tbl,
quellfreie Verbraucher, leerer PATH ohne Compiler/Linker, Unix-PTY; Windows
verlangt zusätzlich das explizite Konsolentestexecutable. Manuelle
Emulatorfolgen bleiben getrennt und revisions-/paketgebunden.
- `release.py`, `publish.py`, `publish.yml`: Tag-/Commitbindung, vollständige
Pflichtassets, Entwurfsstatus, Zurücklesen mit Bytevergleich, keine Ersetzung
existierender abweichender Assets oder veröffentlichter Releases. Fehlende,
falsche oder unvollständige Ziel-/Terminal-/Grundnachweise verhindern den
letzten `draft=false`-Aufruf. Nachweise stammen aus einem Origin-Commit.
- `acceptance.py`: bestehende Fremdprogramm-/Inventar-/Workspace-/Clippy-/
Format-/Compile-/VM-Prüfung sowie explizite native IDE-Abnahme. Fehlende
Konfiguration, ignorierte Pflichtläufe und Fehler werden nicht grün.
- `docs/distribution.md`, `INSTALL.txt`: Aufrufe, Paketlayout, Rechte,
Systemgrenzen, manuelle Nachweisform und Freigabefolge.
## Gefundene und behobene Befunde
1. Die neuen Paketprüfungen verwendeten zunächst `tbc --help`, obwohl die
CLI diesen Aufruf nicht unterstützt. Prüfung/Installation verwenden jetzt
echte Compiler-/Exportbefehle; keine zusätzliche CLI-Funktion nötig.
2. Ein flaches tbrt neben tb/tbc erfüllte die bestehenden automatischen
Suchpfade nicht. Archive enthalten nun `runtimes/<Target>/tbrt[.exe]`
samt Metadaten. Der ausdrückliche Test ohne `--template` besteht.
3. Alte Abnahmeskripte setzten das Entwicklerwerkzeug tb-template voraus.
Sie verwenden vorhandene Paketmetadaten; der bisherige Entwicklerpfad
bleibt für nicht paketierte Builds verfügbar.
4. Die native IDE-Pflichtprobe erhielt zunächst den falschen Runtime-Basispfad.
`acceptance.py` legt die Vorlage im geforderten Target-Unterverzeichnis ab;
der vollständige Abnahmelauf besteht nach der Korrektur.
5. Der vorhandene cargo-xwin-Stand akzeptiert den VS-Kanal nur numerisch;
CRT-Auswahl benutzt die Manifest-ID `14.44.17.14`, nicht die Dateiversion.
Mit Kanal 17 und den tatsächlichen IDs bestehen Build und .7z-Prüfung.
Zusätzlich verhindert der SDK-Inhaltspin eine stille Änderung unter
unveränderten Versionsbezeichnungen.
6. Den Cross-Images fehlt Node für checkout und Artefakt-Actions. Beide
Workflows installieren vor checkout Node 22.22.0 mit SHA-256-Prüfung.
Checkout und Fehlerartefakt-Upload sind damit im echten Lauf erfolgreich.
7. Der Fremdprogrammtest verwendete zwei unterschiedliche temporäre Pfade.
Linux zeigt den kurzen CURDIR$-Pfad im Titel, wodurch der vollständige
Bildschirmvergleich fehlschlug. Beide Läufe verwenden jetzt denselben
jeweils frisch entpackten Pfad; alle Vergleiche bleiben unverändert.
Lokaler Test mit TMPDIR=/tmp und der echte Linux-Actions-Test bestehen.
## Nachweise
- Vier Targets auf dem tatsächlichen Linux-aarch64-Gitea-Host gebaut;
PE/amd64/Console, Mach-O/arm64 und beide ELF-Maschinen geprüft.
- Echte entpackte Linux-arm64-Paketprüfung auf Linux 6.8.0-139/glibc 2.41.
- Das auf Linux cross-kompilierte macOS-Paket auf macOS 26.6.2/arm64 gestartet:
Standard-Vorlagenpfad, native Fälle, TBL, IDE-Shell/Abbruch/Wiederherstellung
bestanden. Die Programme wurden dabei nicht lokal erneut gebaut.
- Fünf automatisierte Paket-/Release-Regressionen: vollständiger Satz,
fehlende/falsche Nachweise, Korruption, falsche Revision, schmutzige Quellen,
Archiv-Traversierung, fehlender Upload, sichere Wiederholung, Schutz bereits
veröffentlichter Releases. Keine öffentlichen Testreleases erzeugt.
- Zusätzlich echte negative Artefaktproben: Mach-O als Linux deklariert und
verändertes Executable innerhalb eines Archivs werden abgelehnt.
- Lokaler vollständiger Pflichtlauf mit fixiertem Fremdbestand einschließlich
Benchmarks und expliziter nativer IDE-Probe bestanden. Exporttests, Clippy,
Format, YAML-Parsing und OpenSpec-Validierung bestanden.
Die früheren lokal orchestrierten Testpakete tragen den uncommitteten
Diffstand im Manifest. Die vier aktuellen Actions-Pakete dagegen tragen
`dec067d` und `source_dirty=false`. Ihre Archive wurden aus dem Gitea-
Artefaktspeicher geladen und gegen die hochgeladenen SHA-Dateien geprüft.
`evidence/actions-run-5/` enthält Joblogs, Manifest-/Paketprüfsummen und
die tatsächlichen entpackten macOS-/Linux-arm64-Prüfergebnisse.
Linux arm64 läuft zusätzlich direkt auf dem Host mit glibc 2.39; macOS
auf 26.6.2/arm64. Windows-PE und Linux-amd64-ELF sind formatgeprüft,
aber auf ihren Zielen nicht ausgeführt.
Die Cross-Linker melden eine ignorierte alte Linux-Linkeroptimierung bzw.
fehlende Microsoft-CRT-PDBs (Windows). Alle Release-Builds sind erfolgreich;
die Meldungen bleiben in den unveränderten Rohlogs sichtbar.
## Offene externe Befunde (Stand des Laufs 5)
- **1.1:** Runner `gitea-arm64-01`, Label `linux-arm64`, Linux-aarch64-Host,
fixierte Tools und SDKs sind durch den erfolgreichen Actions-Lauf belegt.
Für Windows und Linux amd64 sind weiterhin konkrete echte Prüfsysteme
zuzuordnen; vier native Buildrunner sind nicht erforderlich.
- **3.4:** Der vollständige Actions-Lauf und die verfügbaren paketgebundenen
Prüfergebnisse sind für 07 abgelegt. Die Übergabe aller vorgeschriebenen
Zielnachweise bleibt bis zu den fehlenden Prüfungen aus 2.3 unvollständig.
- **2.3:** Windows-Ausführung bleibt entsprechend Benutzerentscheidung offen;
Linux amd64 und die vollständigen manuellen Emulatorfolgen sind ebenfalls
nicht belegt. Cross-Build, lokale Mocktests und gemeinsame ANSI-Technik
ersetzen diese Prüfungen nicht.
- **3.1:** Der getrennte Releasezugang `TB_RELEASE_TOKEN` ist noch nicht
eingerichtet/verifiziert. Es wurde kein persönlicher Git-Zugang als
dauerhaftes Release-Secret übernommen. Die Referenzvariable für den
vorhandenen fixierten Fremdbestand wurde am Repository eingerichtet.
Die verbleibenden Ziel-/Rechtebefunde lassen sich nicht durch Abhaken von
Aufgaben schließen. Die fehlenden Paket-/Zielnachweise ergänzen und
kontrollierte Entwurfs-/Rechte-
prüfung durchführen. Bis dahin keine Freigabe und keine Behauptung „0 Befunde“.
## Origin-Anbindung
[Actions-Lauf 5](https://git.rfc1437.de/hugo/TerminalBasic/actions/runs/5)
(API-ID 546) für `dec067dfec0c97918f92f00d0b2729238f494c6a` ist abgeschlossen
mit `success`: Prüfjob 901 sowie Paketjobs 902905 erfolgreich. Der
Release-Schritt ist bei diesem Branch-Push erwartungsgemäß `skipped`.
Damit sind Push-Anbindung, echte Pflichtabnahme, vier Zielarchive und Upload
belegt. Der frühere fehlerhafte Lauf 3 zeigte den korrekten Fehlerstatus;
Lauf 4 führte die fehlgeschlagene Pflichtabnahme samt Protokoll-Upload aus.
Es wurde kein PR eröffnet und kein Release erzeugt; der PR-Pfad benötigt
keine Release-Secrets. Eine tatsächliche Release-Rechteprüfung fehlt weiter.
Der Implementierungsstand wird samt Bericht und Nachweisen per Fast-forward
auf `main` übernommen. Weitere Arbeit und Pushes erfolgen direkt auf `main`;
der nur für die CI-Erprobung angelegte Branch wird anschließend entfernt.
Rohbelege werden bytegetreu aufbewahrt; `.gitattributes` nimmt ausschließlich
Nachweisdateien von Quelltext-Whitespace-Regeln aus. Patch-Kontext und
Tool-Ausgaben dürfen ihre ursprünglichen Leerzeichen behalten.
## Anpassung 08.09.2026: Release 1.0.0 und ausschließlich Tag-Builds
Benutzerentscheidung: keine Commit-/PR-CI; Artefakte nur für Releases.
`build.yml` besitzt nur einen Tag-Push-Trigger. Vor jedem Cargo-Build prüft
`release_version` exakt vX.Y.Z und der Prüfjob die Übereinstimmung mit der
Workspace-Version. Die Matrix hängt vom erfolgreichen Prüfjob ab.
Workspace und Lockfile stehen auf 1.0.0. Ein versionsabhängig fest auf 0.1.0
kodierter Exporttest verwendet jetzt CARGO_PKG_VERSION.
Der Upload nutzt standardmäßig den repositorygebundenen Gitea-Jobtoken;
TB_RELEASE_TOKEN ist optional. Dessen konkrete Releaseberechtigung bleibt
bis zum tatsächlichen Upload zu prüfen. Die fehlenden Zielabnahmen werden
weder durch die Version 1.0.0 noch den Tag-Build als bestanden ausgegeben.
Der historische Stand 7/11 bezieht sich auf den früheren Branch-Workflow;
für den neuen Tagpfad ist 1.3 erneut offen (aktuell 6/11).
Lokale Prüfung vor dem Tag: Workspace 638 bestanden, 0 Fehler,
3 ausdrücklich ignorierte Sonderprüfungen; Exporttests 3/3, Python-
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.