Phase 6: Gitea-Cross-Builds, Paketprüfung und gesperrten Releasepfad implementieren
Some checks failed
Vierziel-Build und Pflichtabnahme / checks (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-apple-darwin) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-unknown-linux-gnu) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, x86_64-unknown-linux-gnu) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (messense/cargo-xwin@sha256:4696dd4e79edf8569fa99c4b06bd99273e0501c7adc983aa61d57945f795bef0, x86_64-pc-windows-msvc) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / stage (push) Has been cancelled
Some checks failed
Vierziel-Build und Pflichtabnahme / checks (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-apple-darwin) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, aarch64-unknown-linux-gnu) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (ghcr.io/rust-cross/cargo-zigbuild@sha256:82af75c41958c2af2787e8bedd912da7678a9438937e223e9d83d006d747b38b, x86_64-unknown-linux-gnu) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / build (messense/cargo-xwin@sha256:4696dd4e79edf8569fa99c4b06bd99273e0501c7adc983aa61d57945f795bef0, x86_64-pc-windows-msvc) (push) Has been cancelled
Vierziel-Build und Pflichtabnahme / stage (push) Has been cancelled
This commit is contained in:
@@ -12,7 +12,7 @@ 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, dazu deren Metadaten, Lizenz, Kurzinstallation. Archive dürfen keine Buildverzeichnis-/Quellbaumabhängigkeiten haben. Exportierte Anwenderprogramme bleiben normale native Einzelartefakte; die Archivformate betreffen die Distribution.
|
||||
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. PR-Jobs ohne Veröffentlichungsrechte und ohne Release-Secrets; fremder PR-Code darf nicht mit solchen Rechten auf persönlichen Runnern laufen. Zugangswerte werden als Gitea-Secrets konfiguriert, nicht committed. Tests erzeugen keine öffentlichen Testreleases.
|
||||
@@ -28,3 +28,20 @@ Origin ist `https://git.rfc1437.de/hugo/TerminalBasic.git`; die read-only Versio
|
||||
## Migration Plan
|
||||
|
||||
Lokale Skripte zuerst lauffähig machen, dann Gitea-Runner und Workflows anbinden. PR-/Push-Lauf ohne Veröffentlichung prüfen; kontrollierter Tag-/Release-Lauf nach erfolgreicher Matrix. 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
|
||||
|
||||
- Rust 1.97.1, vorhandene Cross-Images per Digest, 7-Zip 25.01 per SHA-256.
|
||||
SDK-/CRT-Versionen und ein Hash ihrer exakten Header-/Library-Bytes sind
|
||||
für Windows fixiert; macOS-SDK/Zig stammen aus dem gepinnten Image.
|
||||
- `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.
|
||||
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.
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
Checking tb-frontend v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-frontend)
|
||||
Checking tb-runtime v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-runtime)
|
||||
Checking tb-ui v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-ui)
|
||||
Checking tb-vm v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-vm)
|
||||
Checking tb-export v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-export)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.74s
|
||||
@@ -0,0 +1,3 @@
|
||||
PASS {'shell_exit': 7}
|
||||
PASS {'abort': True}
|
||||
PASS {'file_shell': True}
|
||||
@@ -0,0 +1 @@
|
||||
{"target": "aarch64-apple-darwin", "tbl_sha256": "5d25c2f8c95ae535e55a6c84c1ddd0d964358863f4f3c780c50ac4a2eb3594df", "native_execution": true, "source_free": true, "run_reset": true, "output": " 1 \n 7 3 9 1 \nTB \n"}
|
||||
@@ -0,0 +1,13 @@
|
||||
PASS native console
|
||||
PASS native restart
|
||||
PASS native stop
|
||||
PASS native error
|
||||
PASS native project
|
||||
PASS native form
|
||||
PASS native external
|
||||
PASS PTY Eingabe, Abbruch und Wiederherstellung (CLI/native)
|
||||
PASS Exportabbruch SIGINT/SIGTERM, Original und Bereinigung
|
||||
PASS corrupted length
|
||||
PASS corrupted version
|
||||
PASS corrupted truncated
|
||||
Native Abnahme bestanden: aarch64-apple-darwin
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"target": "aarch64-apple-darwin",
|
||||
"revision": "796564795a6607651c366c6b0de74560af55e71a",
|
||||
"package": "terminalbasic-0.1.0-macos-arm64.tar.gz",
|
||||
"package_sha256": "369882d9962f0264f41a7dfc0e352acb826c43d84a3c8babd028636a24aeaf4d",
|
||||
"tbl_sha256": "5d25c2f8c95ae535e55a6c84c1ddd0d964358863f4f3c780c50ac4a2eb3594df",
|
||||
"host": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
|
||||
"automated_passed": true,
|
||||
"manual_terminal_passed": false,
|
||||
"checks": {
|
||||
"default-template": "passed",
|
||||
"native": "passed",
|
||||
"library": "passed",
|
||||
"ide-pty": "passed"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,270 @@
|
||||
info: syncing channel updates for '1.97.1-aarch64-unknown-linux-gnu'
|
||||
info: latest update on 2026-07-16, rust version 1.97.1 (8bab26f4f 2026-07-14)
|
||||
info: downloading component 'cargo'
|
||||
info: downloading component 'clippy'
|
||||
info: downloading component 'rust-std'
|
||||
info: downloading component 'rustc'
|
||||
info: downloading component 'rustfmt'
|
||||
info: installing component 'cargo'
|
||||
info: installing component 'clippy'
|
||||
info: installing component 'rust-std'
|
||||
info: installing component 'rustc'
|
||||
info: installing component 'rustfmt'
|
||||
|
||||
1.97.1-aarch64-unknown-linux-gnu installed - rustc 1.97.1 (8bab26f4f 2026-07-14)
|
||||
|
||||
info: default toolchain set to '1.97.1-aarch64-unknown-linux-gnu'
|
||||
info: checking for self-update
|
||||
info: downloading self-update
|
||||
/tmp/tb-7zip.tar.xz: OK
|
||||
rustc 1.97.1 (8bab26f4f 2026-07-14)
|
||||
|
||||
7-Zip (z) 25.01 (arm64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
|
||||
64-bit arm_v:8-A locale=C.UTF-8 Threads:4 OPEN_MAX:1024, ASM
|
||||
|
||||
+ rustup target add aarch64-unknown-linux-gnu
|
||||
info: component rust-std is up to date
|
||||
+ cargo zigbuild --locked --release --target aarch64-unknown-linux-gnu.2.28 -p tb-ide -p tb-cli -p tb-runner --bins
|
||||
Updating crates.io index
|
||||
Downloading crates ...
|
||||
Downloaded bitflags v1.3.2
|
||||
Downloaded cassowary v0.3.0
|
||||
Downloaded anyhow v1.0.104
|
||||
Downloaded bitflags v2.13.1
|
||||
Downloaded equivalent v1.0.2
|
||||
Downloaded allocator-api2 v0.2.21
|
||||
Downloaded cfg-if v1.0.4
|
||||
Downloaded darling_core v0.24.1
|
||||
Downloaded indoc v2.0.7
|
||||
Downloaded scopeguard v1.2.0
|
||||
Downloaded defmt v1.1.1
|
||||
Downloaded either v1.18.0
|
||||
Downloaded signal-hook-mio v0.2.5
|
||||
Downloaded compact_str v0.8.2
|
||||
Downloaded static_assertions v1.1.0
|
||||
Downloaded strsim v0.11.1
|
||||
Downloaded unicode-ident v1.0.24
|
||||
Downloaded jiff-core v0.1.0
|
||||
Downloaded syn v2.0.119
|
||||
Downloaded defmt-macros v1.1.1
|
||||
Downloaded defmt-parser v1.0.0
|
||||
Downloaded foldhash v0.1.5
|
||||
Downloaded parking_lot v0.12.5
|
||||
Downloaded rustix v0.38.44
|
||||
Downloaded darling_macro v0.24.1
|
||||
Downloaded thiserror v2.0.20
|
||||
Downloaded unicase v2.9.0
|
||||
Downloaded itoa v1.0.18
|
||||
Downloaded paste v1.0.15
|
||||
Downloaded serde_core v1.0.229
|
||||
Downloaded quote v1.0.47
|
||||
Downloaded mio v1.2.2
|
||||
Downloaded ryu v1.0.23
|
||||
Downloaded strum_macros v0.26.4
|
||||
Downloaded jiff-static v0.2.35
|
||||
Downloaded unicode-width v0.1.14
|
||||
Downloaded log v0.4.34
|
||||
Downloaded signal-hook v0.3.18
|
||||
Downloaded crossterm v0.28.1
|
||||
Downloaded hashbrown v0.15.5
|
||||
Downloaded strum v0.26.3
|
||||
Downloaded itertools v0.13.0
|
||||
Downloaded heck v0.5.0
|
||||
Downloaded redb v4.2.0
|
||||
Downloaded syn v3.0.4
|
||||
Downloaded jiff v0.2.35
|
||||
Downloaded castaway v0.2.4
|
||||
Downloaded rustversion v1.0.23
|
||||
Downloaded instability v0.3.13
|
||||
Downloaded errno v0.3.14
|
||||
Downloaded lru v0.12.5
|
||||
Downloaded smallvec v1.15.2
|
||||
Downloaded parking_lot_core v0.9.12
|
||||
Downloaded proc-macro2 v1.0.107
|
||||
Downloaded ident_case v1.0.1
|
||||
Downloaded thiserror-impl v2.0.20
|
||||
Downloaded unicode-segmentation v1.13.3
|
||||
Downloaded unicode-truncate v1.1.0
|
||||
Downloaded darling v0.24.1
|
||||
Downloaded pulldown-cmark v0.13.4
|
||||
Downloaded unicode-width v0.2.0
|
||||
Downloaded memchr v2.8.3
|
||||
Downloaded linux-raw-sys v0.4.15
|
||||
Downloaded signal-hook-registry v1.4.8
|
||||
Downloaded ratatui v0.29.0
|
||||
Downloaded libc v0.2.189
|
||||
Downloaded lock_api v0.4.14
|
||||
warning: linker stderr: ignoring deprecated linker optimization setting '1'
|
||||
|
|
||||
= note: `#[warn(linker_messages)]` on by default
|
||||
|
||||
warning: `tb-cli` (bin "tbc") generated 1 warning
|
||||
warning: `tb-runner` (bin "tbrt") generated 1 warning (1 duplicate)
|
||||
warning: `tb-ide` (bin "tb") generated 1 warning (1 duplicate)
|
||||
Finished `release` profile [optimized] target(s) in 1.55s
|
||||
+ cargo build --locked --release -p tb-export --bin tb-template
|
||||
Finished `release` profile [optimized] target(s) in 0.04s
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tb aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tbc aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tbrt aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-3ccs00ug/tbrt aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-27ro6ib_/tb aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-27ro6ib_/tbc aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-27ro6ib_/tbrt aarch64-unknown-linux-gnu
|
||||
/work/dist/terminalbasic-0.1.0-linux-arm64.tar.gz
|
||||
+ /tmp/tb-unpacked-c072ix0x/tb --help
|
||||
+ /usr/bin/python3 /work/tests/support/native-abnahme.py --bin-dir /tmp/tb-unpacked-c072ix0x --target aarch64-unknown-linux-gnu
|
||||
+ /usr/bin/python3 /work/tests/support/library-abnahme.py --bin-dir /tmp/tb-unpacked-c072ix0x
|
||||
+ /usr/bin/python3 /work/tests/support/ide-execution-pty.py --binary /tmp/tb-unpacked-c072ix0x/tb
|
||||
+ rustup target add x86_64-unknown-linux-gnu
|
||||
info: downloading component rust-std
|
||||
+ cargo zigbuild --locked --release --target x86_64-unknown-linux-gnu.2.28 -p tb-ide -p tb-cli -p tb-runner --bins
|
||||
Compiling libc v0.2.189
|
||||
Compiling syn v3.0.4
|
||||
Compiling rustversion v1.0.23
|
||||
Compiling log v0.4.34
|
||||
Compiling errno v0.3.14
|
||||
Compiling ident_case v1.0.1
|
||||
Compiling signal-hook v0.3.18
|
||||
Compiling cfg-if v1.0.4
|
||||
Compiling strsim v0.11.1
|
||||
Compiling parking_lot_core v0.9.12
|
||||
Compiling darling_core v0.24.1
|
||||
Compiling signal-hook-registry v1.4.8
|
||||
Compiling scopeguard v1.2.0
|
||||
Compiling smallvec v1.15.2
|
||||
Compiling bitflags v2.13.1
|
||||
Compiling rustix v0.38.44
|
||||
Compiling thiserror v2.0.20
|
||||
Compiling lock_api v0.4.14
|
||||
Compiling darling_macro v0.24.1
|
||||
Compiling thiserror-impl v2.0.20
|
||||
Compiling mio v1.2.2
|
||||
Compiling syn v2.0.119
|
||||
Compiling allocator-api2 v0.2.21
|
||||
Compiling either v1.18.0
|
||||
Compiling instability v0.3.13
|
||||
Compiling equivalent v1.0.2
|
||||
Compiling paste v1.0.15
|
||||
Compiling foldhash v0.1.5
|
||||
Compiling heck v0.5.0
|
||||
Compiling linux-raw-sys v0.4.15
|
||||
Compiling strum_macros v0.26.4
|
||||
Compiling hashbrown v0.15.5
|
||||
Compiling itertools v0.13.0
|
||||
Compiling redb v4.2.0
|
||||
Compiling signal-hook-mio v0.2.5
|
||||
Compiling darling v0.24.1
|
||||
Compiling parking_lot v0.12.5
|
||||
Compiling castaway v0.2.4
|
||||
Compiling itoa v1.0.18
|
||||
Compiling ryu v1.0.23
|
||||
Compiling unicode-width v0.2.0
|
||||
Compiling static_assertions v1.1.0
|
||||
Compiling unicode-segmentation v1.13.3
|
||||
Compiling indoc v2.0.7
|
||||
Compiling jiff-core v0.1.0
|
||||
Compiling unicode-width v0.1.14
|
||||
Compiling unicode-truncate v1.1.0
|
||||
Compiling jiff v0.2.35
|
||||
Compiling compact_str v0.8.2
|
||||
Compiling crossterm v0.28.1
|
||||
Compiling strum v0.26.3
|
||||
Compiling lru v0.12.5
|
||||
Compiling cassowary v0.3.0
|
||||
Compiling ratatui v0.29.0
|
||||
Compiling tb-runtime v0.1.0 (/work/crates/tb-runtime)
|
||||
Compiling tb-frontend v0.1.0 (/work/crates/tb-frontend)
|
||||
Compiling anyhow v1.0.104
|
||||
Compiling tb-ui v0.1.0 (/work/crates/tb-ui)
|
||||
Compiling tb-vm v0.1.0 (/work/crates/tb-vm)
|
||||
Compiling tb-export v0.1.0 (/work/crates/tb-export)
|
||||
Compiling pulldown-cmark v0.13.4
|
||||
Compiling memchr v2.8.3
|
||||
Compiling unicase v2.9.0
|
||||
Compiling tb-runner v0.1.0 (/work/crates/tb-runner)
|
||||
Compiling tb-ide v0.1.0 (/work/crates/tb-ide)
|
||||
warning: linker stderr: ignoring deprecated linker optimization setting '1'
|
||||
|
|
||||
= note: `#[warn(linker_messages)]` on by default
|
||||
|
||||
warning: `tb-runner` (bin "tbrt") generated 1 warning
|
||||
Compiling tb-cli v0.1.0 (/work/crates/tb-cli)
|
||||
warning: `tb-ide` (bin "tb") generated 1 warning (1 duplicate)
|
||||
warning: `tb-cli` (bin "tbc") generated 1 warning (1 duplicate)
|
||||
Finished `release` profile [optimized] target(s) in 2m 23s
|
||||
+ cargo build --locked --release -p tb-export --bin tb-template
|
||||
Finished `release` profile [optimized] target(s) in 0.06s
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tb x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tbc x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tbrt x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-3e1u_9my/tbrt x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-lwy0qi08/tb x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-lwy0qi08/tbc x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-lwy0qi08/tbrt x86_64-unknown-linux-gnu
|
||||
/work/dist/terminalbasic-0.1.0-linux-amd64.tar.gz
|
||||
+ rustup target add aarch64-apple-darwin
|
||||
info: downloading component rust-std
|
||||
+ cargo zigbuild --locked --release --target aarch64-apple-darwin -p tb-ide -p tb-cli -p tb-runner --bins
|
||||
Compiling libc v0.2.189
|
||||
Compiling log v0.4.34
|
||||
Compiling cfg-if v1.0.4
|
||||
Compiling signal-hook v0.3.18
|
||||
Compiling parking_lot_core v0.9.12
|
||||
Compiling smallvec v1.15.2
|
||||
Compiling bitflags v2.13.1
|
||||
Compiling scopeguard v1.2.0
|
||||
Compiling lock_api v0.4.14
|
||||
Compiling rustix v0.38.44
|
||||
Compiling thiserror v2.0.20
|
||||
Compiling equivalent v1.0.2
|
||||
Compiling allocator-api2 v0.2.21
|
||||
Compiling errno v0.3.14
|
||||
Compiling signal-hook-registry v1.4.8
|
||||
Compiling mio v1.2.2
|
||||
Compiling foldhash v0.1.5
|
||||
Compiling either v1.18.0
|
||||
Compiling itertools v0.13.0
|
||||
Compiling signal-hook-mio v0.2.5
|
||||
Compiling hashbrown v0.15.5
|
||||
Compiling redb v4.2.0
|
||||
Compiling parking_lot v0.12.5
|
||||
Compiling castaway v0.2.4
|
||||
Compiling ryu v1.0.23
|
||||
Compiling static_assertions v1.1.0
|
||||
Compiling unicode-width v0.2.0
|
||||
Compiling unicode-segmentation v1.13.3
|
||||
Compiling unicode-width v0.1.14
|
||||
Compiling itoa v1.0.18
|
||||
Compiling jiff-core v0.1.0
|
||||
Compiling unicode-truncate v1.1.0
|
||||
Compiling compact_str v0.8.2
|
||||
Compiling jiff v0.2.35
|
||||
Compiling crossterm v0.28.1
|
||||
Compiling strum v0.26.3
|
||||
Compiling lru v0.12.5
|
||||
Compiling cassowary v0.3.0
|
||||
Compiling ratatui v0.29.0
|
||||
Compiling tb-runtime v0.1.0 (/work/crates/tb-runtime)
|
||||
Compiling tb-frontend v0.1.0 (/work/crates/tb-frontend)
|
||||
Compiling anyhow v1.0.104
|
||||
Compiling tb-ui v0.1.0 (/work/crates/tb-ui)
|
||||
Compiling tb-vm v0.1.0 (/work/crates/tb-vm)
|
||||
Compiling tb-export v0.1.0 (/work/crates/tb-export)
|
||||
Compiling pulldown-cmark v0.13.4
|
||||
Compiling unicase v2.9.0
|
||||
Compiling memchr v2.8.3
|
||||
Compiling tb-runner v0.1.0 (/work/crates/tb-runner)
|
||||
Compiling tb-ide v0.1.0 (/work/crates/tb-ide)
|
||||
Compiling tb-cli v0.1.0 (/work/crates/tb-cli)
|
||||
Finished `release` profile [optimized] target(s) in 2m 16s
|
||||
+ cargo build --locked --release -p tb-export --bin tb-template
|
||||
Finished `release` profile [optimized] target(s) in 0.06s
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tb aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tbc aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tbrt aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-ymsier7a/tbrt aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-e391lcwl/tb aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-e391lcwl/tbc aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-e391lcwl/tbrt aarch64-apple-darwin
|
||||
/work/dist/terminalbasic-0.1.0-macos-arm64.tar.gz
|
||||
@@ -0,0 +1,279 @@
|
||||
info: syncing channel updates for '1.97.1-aarch64-unknown-linux-gnu'
|
||||
info: latest update on 2026-07-16, rust version 1.97.1 (8bab26f4f 2026-07-14)
|
||||
info: component 'clippy' for target 'aarch64-unknown-linux-gnu' is up to date
|
||||
info: component 'rustfmt' for target 'aarch64-unknown-linux-gnu' is up to date
|
||||
|
||||
1.97.1-aarch64-unknown-linux-gnu unchanged - rustc 1.97.1 (8bab26f4f 2026-07-14)
|
||||
|
||||
info: checking for self-update
|
||||
info: downloading self-update
|
||||
/tmp/tb-7zip.tar.xz: OK
|
||||
rustc 1.97.1 (8bab26f4f 2026-07-14)
|
||||
|
||||
7-Zip (z) 25.01 (arm64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
|
||||
64-bit arm_v:8-A locale=C.UTF-8 Threads:4 OPEN_MAX:1024, ASM
|
||||
|
||||
+ rustup target add x86_64-pc-windows-msvc
|
||||
info: component rust-std for target x86_64-pc-windows-msvc is up to date
|
||||
+ cargo xwin build --locked --release --target x86_64-pc-windows-msvc -p tb-ide -p tb-cli -p tb-runner --bins
|
||||
Updating crates.io index
|
||||
Downloading crates ...
|
||||
Downloaded indoc v2.0.7
|
||||
Downloaded bitflags v2.13.1
|
||||
Downloaded heck v0.5.0
|
||||
Downloaded paste v1.0.15
|
||||
Downloaded bitflags v1.3.2
|
||||
Downloaded strum_macros v0.26.4
|
||||
Downloaded anyhow v1.0.104
|
||||
Downloaded syn v3.0.4
|
||||
Downloaded allocator-api2 v0.2.21
|
||||
Downloaded cassowary v0.3.0
|
||||
Downloaded windows-sys v0.59.0
|
||||
Downloaded unicode-segmentation v1.13.3
|
||||
Downloaded defmt-parser v1.0.0
|
||||
Downloaded parking_lot v0.12.5
|
||||
Downloaded thiserror v2.0.20
|
||||
Downloaded thiserror-impl v2.0.20
|
||||
Downloaded castaway v0.2.4
|
||||
Downloaded jiff-tzdb v0.1.8
|
||||
Downloaded static_assertions v1.1.0
|
||||
Downloaded windows-link v0.2.1
|
||||
Downloaded darling_macro v0.24.1
|
||||
Downloaded errno v0.3.14
|
||||
Downloaded defmt-macros v1.1.1
|
||||
Downloaded jiff-static v0.2.35
|
||||
Downloaded cfg-if v1.0.4
|
||||
Downloaded log v0.4.34
|
||||
Downloaded lru v0.12.5
|
||||
Downloaded serde_core v1.0.229
|
||||
Downloaded rustversion v1.0.23
|
||||
Downloaded unicode-truncate v1.1.0
|
||||
Downloaded signal-hook v0.3.18
|
||||
Downloaded signal-hook-mio v0.2.5
|
||||
Downloaded unicase v2.9.0
|
||||
Downloaded scopeguard v1.2.0
|
||||
Downloaded windows-targets v0.52.6
|
||||
Downloaded defmt v1.1.1
|
||||
Downloaded ident_case v1.0.1
|
||||
Downloaded jiff-tzdb-platform v0.1.3
|
||||
Downloaded quote v1.0.47
|
||||
Downloaded strsim v0.11.1
|
||||
Downloaded strum v0.26.3
|
||||
Downloaded itoa v1.0.18
|
||||
Downloaded equivalent v1.0.2
|
||||
Downloaded instability v0.3.13
|
||||
Downloaded foldhash v0.1.5
|
||||
Downloaded smallvec v1.15.2
|
||||
Downloaded crossterm_winapi v0.9.1
|
||||
Downloaded signal-hook-registry v1.4.8
|
||||
Downloaded either v1.18.0
|
||||
Downloaded parking_lot_core v0.9.12
|
||||
Downloaded ryu v1.0.23
|
||||
Downloaded compact_str v0.8.2
|
||||
Downloaded darling_core v0.24.1
|
||||
Downloaded lock_api v0.4.14
|
||||
Downloaded proc-macro2 v1.0.107
|
||||
Downloaded unicode-ident v1.0.24
|
||||
Downloaded darling v0.24.1
|
||||
Downloaded memchr v2.8.3
|
||||
Downloaded mio v1.2.2
|
||||
Downloaded crossterm v0.28.1
|
||||
Downloaded jiff-core v0.1.0
|
||||
Downloaded itertools v0.13.0
|
||||
Downloaded hashbrown v0.15.5
|
||||
Downloaded pulldown-cmark v0.13.4
|
||||
Downloaded unicode-width v0.2.0
|
||||
Downloaded redb v4.2.0
|
||||
Downloaded unicode-width v0.1.14
|
||||
Downloaded rustix v0.38.44
|
||||
Downloaded syn v2.0.119
|
||||
Downloaded ratatui v0.29.0
|
||||
Downloaded jiff v0.2.35
|
||||
Downloaded libc v0.2.189
|
||||
Downloaded windows_x86_64_msvc v0.52.6
|
||||
Downloaded winapi v0.3.9
|
||||
Downloaded linux-raw-sys v0.4.15
|
||||
Downloaded windows-sys v0.61.2
|
||||
warning: linker stderr: lld-link: Cannot use debug info for 'libcmt.lib(std_type_info_static.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(fltused.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(tlssup.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(delete_scalar_size.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(gs_cookie.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(guard_support.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(delete_scalar.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(initializers.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(utility_desktop.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(gshandler.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(gs_report.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(throw.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(riscchandler.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(risctrnsctrl.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(ehhelpers.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(cpu_disp.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(pesect.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(jbcxrval.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(per_thread_data.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(ehstate.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(frame.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(wcschr.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(winapi_downlevel.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(std_exception.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(std_type_info.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(gshandlerseh.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(undname.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(purevirt.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(locks.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(purevirt_data.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(strrchr.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(jmpuwind.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(exe_main.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(loadcfg.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(utility.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(gs_support.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(matherr.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(argv_mode.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(commit_mode.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(file_mode.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(new_mode.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(thread_locale.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(tncleanup.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(env_mode.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(invalid_parameter_handler.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(denormal_control.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(default_local_stdio_options.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(matherr_detection.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(dyn_tls_init.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(dyn_tls_dtor.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(initsect.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(softmemtag.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(initialization.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libcmt.lib(ucrt_detection.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libcmt.amd64.pdb': No such file or directory
|
||||
|
||||
lld-link: Cannot use debug info for 'libvcruntime.lib(strchr.obj)' [LNK4099]
|
||||
>>> failed to load reference 'D:\a\_work\1\s\binaries\amd64ret\lib\amd64\libvcruntime.amd64.pdb': No such file or directory
|
||||
|
|
||||
= note: `#[warn(linker_messages)]` on by default
|
||||
|
||||
warning: `tb-runner` (bin "tbrt") generated 1 warning
|
||||
warning: `tb-ide` (bin "tb") generated 1 warning (1 duplicate)
|
||||
warning: `tb-cli` (bin "tbc") generated 1 warning (1 duplicate)
|
||||
Finished `release` profile [optimized] target(s) in 1.75s
|
||||
+ cargo build --locked --release -p tb-export --bin tb-template
|
||||
Finished `release` profile [optimized] target(s) in 0.04s
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-pc-windows-msvc/release/tb.exe x86_64-pc-windows-msvc
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-pc-windows-msvc/release/tbc.exe x86_64-pc-windows-msvc
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-pc-windows-msvc/release/tbrt.exe x86_64-pc-windows-msvc
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-am6i0jvn/runtimes/x86_64-pc-windows-msvc/tbrt.exe x86_64-pc-windows-msvc
|
||||
+ /usr/local/bin/7zz a -t7z /work/dist-pinned/terminalbasic-0.1.0-windows-amd64.7z INSTALL.txt LICENSE manifest.json runtimes/x86_64-pc-windows-msvc/tbrt.exe runtimes/x86_64-pc-windows-msvc/tbrt.exe.meta tb.exe tbc.exe
|
||||
+ /usr/local/bin/7zz x -y -o/tmp/tb-package-5j84dd93 -- /work/dist-pinned/terminalbasic-0.1.0-windows-amd64.7z
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-5j84dd93/tb.exe x86_64-pc-windows-msvc
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-5j84dd93/tbc.exe x86_64-pc-windows-msvc
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-5j84dd93/runtimes/x86_64-pc-windows-msvc/tbrt.exe x86_64-pc-windows-msvc
|
||||
/work/dist-pinned/terminalbasic-0.1.0-windows-amd64.7z
|
||||
@@ -0,0 +1,24 @@
|
||||
Compiling tb-vm v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-vm)
|
||||
Compiling tb-export v0.1.0 (/Users/gb/Projects/TerminalBasic/crates/tb-export)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 3.69s
|
||||
Running unittests src/lib.rs (target/debug/deps/tb_export-25aa117d19f46d7a)
|
||||
|
||||
running 3 tests
|
||||
test tests::publication_preserves_originals_on_conflict_failure_race_and_cancel ... ok
|
||||
test tests::fehlgeschlagene_native_finalisierung_erhaelt_das_ziel ... ok
|
||||
test tests::targets_versions_integrity_and_payload_bounds_are_enforced ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running unittests src/bin/tb-template.rs (target/debug/deps/tb_template-ef8c38310b67cef7)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Doc-tests tb_export
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
".gitea/INSTALL.txt": "8dedd68d8c03e56a6f322bad6451a0403eca3abf2fffb3260dd07a8c6a5ba98f",
|
||||
".gitea/scripts/acceptance.py": "89d84d678095be7cd3ffb8bd8ea40cb2312f77f4776ecec4544bcc1cbc24b51a",
|
||||
".gitea/scripts/bootstrap.sh": "ac6d7d605fcb314c2a267fbe549ce54a5bce562d4c4a173f5e1f25eeeebba2a3",
|
||||
".gitea/scripts/build.py": "71f00d0fc41b998a168e7599b6c619ebfcc80f61695ff25d5c5233ee98111644",
|
||||
".gitea/scripts/distribution.py": "de9b1ec3cd189102952372937daa72e0566cb342286b7c3b2f8fd8a72ccb28f6",
|
||||
".gitea/scripts/publish.py": "e5598cd5399dca58c01a118d2ecf044126f0de5226be05d1e64edbc51c955804",
|
||||
".gitea/scripts/release.py": "fe0e3fc55e22de10bfc244623f0df3395cececc474834a844fe850bc70468c93",
|
||||
".gitea/scripts/test_distribution.py": "f09463bb8528dedc5df7dd98f85c4d04e2231a5821f528a6e32400231f4f5c4b",
|
||||
".gitea/workflows/build.yml": "60842092d3ce09dcf7e303a1186dfdd3f409a47c314c18bcde90eb644930322f",
|
||||
".gitea/workflows/publish.yml": "30dff7b2045b80d5961407bc501334c3c9fa154133fa3d8eb925e5e87d0d3592"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
PASS {'shell_exit': 7}
|
||||
PASS {'abort': True}
|
||||
PASS {'file_shell': True}
|
||||
@@ -0,0 +1 @@
|
||||
{"target": "aarch64-unknown-linux-gnu", "tbl_sha256": "5d25c2f8c95ae535e55a6c84c1ddd0d964358863f4f3c780c50ac4a2eb3594df", "native_execution": true, "source_free": true, "run_reset": true, "output": " 1 \n 7 3 9 1 \nTB \n"}
|
||||
@@ -0,0 +1,13 @@
|
||||
PASS native console
|
||||
PASS native restart
|
||||
PASS native stop
|
||||
PASS native error
|
||||
PASS native project
|
||||
PASS native form
|
||||
PASS native external
|
||||
PASS PTY Eingabe, Abbruch und Wiederherstellung (CLI/native)
|
||||
PASS Exportabbruch SIGINT/SIGTERM, Original und Bereinigung
|
||||
PASS corrupted length
|
||||
PASS corrupted version
|
||||
PASS corrupted truncated
|
||||
Native Abnahme bestanden: aarch64-unknown-linux-gnu
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"target": "aarch64-unknown-linux-gnu",
|
||||
"revision": "796564795a6607651c366c6b0de74560af55e71a",
|
||||
"package": "terminalbasic-0.1.0-linux-arm64.tar.gz",
|
||||
"package_sha256": "e1eff42146202fe4694b8812a17acfc9337a454a27c0ef36d53a3fc776088b81",
|
||||
"tbl_sha256": "5d25c2f8c95ae535e55a6c84c1ddd0d964358863f4f3c780c50ac4a2eb3594df",
|
||||
"host": "Linux-6.8.0-139-generic-aarch64-with-glibc2.41",
|
||||
"automated_passed": true,
|
||||
"manual_terminal_passed": false,
|
||||
"checks": {
|
||||
"default-template": "passed",
|
||||
"native": "passed",
|
||||
"library": "passed",
|
||||
"ide-pty": "passed"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"revision": "796564795a6607651c366c6b0de74560af55e71a",
|
||||
"passed": true,
|
||||
"buildhost": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
|
||||
"run_url": "local-verification",
|
||||
"foreign": true,
|
||||
"inventory": true,
|
||||
"workspace": true,
|
||||
"benchmarks": true,
|
||||
"native_ide": true,
|
||||
"log_sha256": "f3b51d1f0155b0d8f33435f23206073d2dd19c7bad56c23ac7e4c32abe50af30"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,12 @@
|
||||
Finished `release` profile [optimized] target(s) in 0.06s
|
||||
Finished `release` profile [optimized] target(s) in 0.01s
|
||||
Running `target/release/tb-template /private/var/folders/qv/bccsf2nd15lgm71zrpylrc_80000gn/T/tb-ci-runtime-w6n0ip1v/runtime/aarch64-apple-darwin/tbrt aarch64-apple-darwin`
|
||||
/private/var/folders/qv/bccsf2nd15lgm71zrpylrc_80000gn/T/tb-ci-runtime-w6n0ip1v/runtime/aarch64-apple-darwin
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
|
||||
Running unittests src/main.rs (target/debug/deps/tbc-a3652d07eb423d84)
|
||||
|
||||
running 1 test
|
||||
test ide_acceptance::real_native_ide_exports_and_source_free_cli_library_consumer ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.68s
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
- Validating...
|
||||
✓ spec/bytecode-kompilat
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/datei-eio
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[8]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ereignissteuerung
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[10]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/forms-dateiformat
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/forms-objektmodell
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/forms-steuerelemente
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-ausfuehrung
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-debugger
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-editor
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-formulardesigner
|
||||
✓ spec/ide-hilfe
|
||||
✓ spec/ide-native-exporte
|
||||
✓ spec/ide-oberflaeche
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[7]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[8]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-phasenabnahme
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/ide-projekte
|
||||
✓ spec/isam-datenbank
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[7]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/kompat-testkorpus
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[7]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[8]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/konsolen-basisbibliothek
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[8]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[9]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[10]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[11]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/laufzeitfehler
|
||||
✓ spec/native-executables
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/pcode-bibliotheken
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ change/phase-6-06-gitea-actions-und-releases
|
||||
✓ change/phase-6-07-dokumentation-und-phasenabnahme
|
||||
✓ spec/release-kompatibilitaet
|
||||
✓ spec/sprach-frontend
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[7]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[10]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[11]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[13]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/sprachinventar
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[2]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/terminal-plattformmatrix
|
||||
ℹ [INFO] requirements[1]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/textbildschirm
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[4]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[6]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[8]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[9]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[10]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/vm-ausfuehrung
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[3]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[5]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
ℹ [INFO] requirements[7]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
✓ spec/vm-fehlerbehandlung
|
||||
ℹ [INFO] requirements[0]: Requirement text is very long (>500 characters). Consider breaking it down.
|
||||
Totals: 30 passed, 0 failed (30 items)
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"terminalbasic-0.1.0-linux-amd64.tar.gz": "2ced064df0d1c8b041f23df1a668787d22933b2f6be646e01f73061cc20a4e04",
|
||||
"terminalbasic-0.1.0-linux-arm64.tar.gz": "e1eff42146202fe4694b8812a17acfc9337a454a27c0ef36d53a3fc776088b81",
|
||||
"terminalbasic-0.1.0-macos-arm64.tar.gz": "369882d9962f0264f41a7dfc0e352acb826c43d84a3c8babd028636a24aeaf4d",
|
||||
"terminalbasic-0.1.0-windows-amd64.7z": "8fb79b0e34f2a496a93e90f87c70d9bff2d5b38b77087a123518491d0964e092"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.017s
|
||||
|
||||
OK
|
||||
@@ -0,0 +1,30 @@
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tb aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tbc aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-unknown-linux-gnu/release/tbrt aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-o13p5pm9/runtimes/aarch64-unknown-linux-gnu/tbrt aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-g7jby_v7/tb aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-g7jby_v7/tbc aarch64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-g7jby_v7/runtimes/aarch64-unknown-linux-gnu/tbrt aarch64-unknown-linux-gnu
|
||||
/work/dist-final/terminalbasic-0.1.0-linux-arm64.tar.gz
|
||||
+ /tmp/tb-unpacked-akoqbup6/tb --help
|
||||
+ /tmp/tb-unpacked-akoqbup6/tbc build /tmp/tb-unpacked-akoqbup6/hello.bas --exe --target aarch64-unknown-linux-gnu -o /tmp/tb-unpacked-akoqbup6/hello
|
||||
/tmp/tb-unpacked-akoqbup6/hello
|
||||
+ /usr/bin/python3 /work/tests/support/native-abnahme.py --bin-dir /tmp/tb-unpacked-akoqbup6 --target aarch64-unknown-linux-gnu
|
||||
+ /usr/bin/python3 /work/tests/support/library-abnahme.py --bin-dir /tmp/tb-unpacked-akoqbup6
|
||||
+ /usr/bin/python3 /work/tests/support/ide-execution-pty.py --binary /tmp/tb-unpacked-akoqbup6/tb
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tb x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tbc x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /work/target/x86_64-unknown-linux-gnu/release/tbrt x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-lrb4e1pp/runtimes/x86_64-unknown-linux-gnu/tbrt x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-1agxs6xy/tb x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-1agxs6xy/tbc x86_64-unknown-linux-gnu
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-1agxs6xy/runtimes/x86_64-unknown-linux-gnu/tbrt x86_64-unknown-linux-gnu
|
||||
/work/dist-final/terminalbasic-0.1.0-linux-amd64.tar.gz
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tb aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tbc aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /work/target/aarch64-apple-darwin/release/tbrt aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template /tmp/tb-pack-dlq0c_7h/runtimes/aarch64-apple-darwin/tbrt aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-w9maj5ky/tb aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-w9maj5ky/tbc aarch64-apple-darwin
|
||||
+ /work/target/release/tb-template --inspect /tmp/tb-package-w9maj5ky/runtimes/aarch64-apple-darwin/tbrt aarch64-apple-darwin
|
||||
/work/dist-final/terminalbasic-0.1.0-macos-arm64.tar.gz
|
||||
@@ -0,0 +1,161 @@
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index b7141ea..15c6f97 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -1,3 +1,8 @@
|
||||
/target
|
||||
**/*.rs.bk
|
||||
*.pdb
|
||||
+/dist
|
||||
+/acceptance
|
||||
+/artifacts
|
||||
+/packages
|
||||
+**/__pycache__
|
||||
diff --git a/crates/tb-export/src/bin/tb-template.rs b/crates/tb-export/src/bin/tb-template.rs
|
||||
index 7776b1a..c1ed101 100644
|
||||
--- a/crates/tb-export/src/bin/tb-template.rs
|
||||
+++ b/crates/tb-export/src/bin/tb-template.rs
|
||||
@@ -1,10 +1,23 @@
|
||||
//! Builder-Hilfe: geprüfte Metadaten für eine frisch gebaute Runtime schreiben.
|
||||
fn main() -> anyhow::Result<()> {
|
||||
- let args: Vec<_> = std::env::args().skip(1).collect();
|
||||
+ let mut args: Vec<_> = std::env::args().skip(1).collect();
|
||||
+ let inspect = args.first().is_some_and(|s| s == "--inspect");
|
||||
+ if inspect {
|
||||
+ args.remove(0);
|
||||
+ }
|
||||
anyhow::ensure!(
|
||||
args.len() == 2,
|
||||
- "Aufruf: tb-template <tbrt-Pfad> <Target-Triple>"
|
||||
+ "Aufruf: tb-template [--inspect] <Executable-Pfad> <Target-Triple>"
|
||||
);
|
||||
+ if inspect {
|
||||
+ let found = tb_export::native_target(&std::fs::read(&args[0])?)?;
|
||||
+ anyhow::ensure!(
|
||||
+ found == tb_export::Target::parse(&args[1])?,
|
||||
+ "Executable hat falsches Ziel"
|
||||
+ );
|
||||
+ println!("{}", found.triple());
|
||||
+ return Ok(());
|
||||
+ }
|
||||
tb_export::prepare_template(
|
||||
std::path::Path::new(&args[0]),
|
||||
tb_export::Target::parse(&args[1])?,
|
||||
diff --git a/openspec/changes/phase-6-06-gitea-actions-und-releases/design.md b/openspec/changes/phase-6-06-gitea-actions-und-releases/design.md
|
||||
index 9ed6dd3..8134698 100644
|
||||
--- a/openspec/changes/phase-6-06-gitea-actions-und-releases/design.md
|
||||
+++ b/openspec/changes/phase-6-06-gitea-actions-und-releases/design.md
|
||||
@@ -12,7 +12,7 @@ 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, dazu deren Metadaten, Lizenz, Kurzinstallation. Archive dürfen keine Buildverzeichnis-/Quellbaumabhängigkeiten haben. Exportierte Anwenderprogramme bleiben normale native Einzelartefakte; die Archivformate betreffen die Distribution.
|
||||
+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. PR-Jobs ohne Veröffentlichungsrechte und ohne Release-Secrets; fremder PR-Code darf nicht mit solchen Rechten auf persönlichen Runnern laufen. Zugangswerte werden als Gitea-Secrets konfiguriert, nicht committed. Tests erzeugen keine öffentlichen Testreleases.
|
||||
@@ -28,3 +28,20 @@ Origin ist `https://git.rfc1437.de/hugo/TerminalBasic.git`; die read-only Versio
|
||||
## Migration Plan
|
||||
|
||||
Lokale Skripte zuerst lauffähig machen, dann Gitea-Runner und Workflows anbinden. PR-/Push-Lauf ohne Veröffentlichung prüfen; kontrollierter Tag-/Release-Lauf nach erfolgreicher Matrix. 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
|
||||
+
|
||||
+- Rust 1.97.1, vorhandene Cross-Images per Digest, 7-Zip 25.01 per SHA-256.
|
||||
+ SDK-/CRT-Versionen und ein Hash ihrer exakten Header-/Library-Bytes sind
|
||||
+ für Windows fixiert; macOS-SDK/Zig stammen aus dem gepinnten Image.
|
||||
+- `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.
|
||||
+ 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.
|
||||
diff --git a/openspec/changes/phase-6-06-gitea-actions-und-releases/tasks.md b/openspec/changes/phase-6-06-gitea-actions-und-releases/tasks.md
|
||||
index 3f1d0c2..a226e36 100644
|
||||
--- a/openspec/changes/phase-6-06-gitea-actions-und-releases/tasks.md
|
||||
+++ b/openspec/changes/phase-6-06-gitea-actions-und-releases/tasks.md
|
||||
@@ -1,19 +1,27 @@
|
||||
## 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.
|
||||
-- [ ] 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.
|
||||
+- [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 Push-/PR-Workflow unter .gitea/workflows anbinden; ein tatsächlicher Origin-Lauf muss vier Zielergebnisse und Fehlerstatus liefern, ohne Release-Secrets im PR-Pfad.
|
||||
|
||||
## 2. Artefakte und Pakete
|
||||
|
||||
- [ ] 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.
|
||||
-- [ ] 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.
|
||||
+- [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.
|
||||
-- [ ] 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.
|
||||
+- [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.
|
||||
-- [ ] 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.
|
||||
-- [ ] 3.3 Fremdprogramm-, Inventar-, native und automatisierte Plattformnachweise sowie Referenzbenchmarks in den erforderlichen Abnahmelauf integrieren; ignorierte Pflichtfälle müssen als fehlend sichtbar bleiben.
|
||||
+- [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.
|
||||
+
|
||||
+Stand 07.09.2026: Repository-Implementierung und lokale Prüfungen vorhanden.
|
||||
+Alle vier Ziele wurden in den fixierten Containern auf Linux arm64 gebaut;
|
||||
+Linux-arm64- und cross-kompilierte macOS-Pakete bestehen echte entpackte
|
||||
+Automatikprüfungen. Das ist noch kein Actions-Lauf. 1.1/1.3/2.1/3.4 bleiben
|
||||
+wegen des defekten gemeinsamen Runners offen; 2.3 wegen Windows/Linux-amd64
|
||||
+und den restlichen visuellen Zielnachweisen. 3.1 bleibt bis zur Einrichtung
|
||||
+des Releasezugangs und tatsächlichen Rechteprüfung offen. Details: verification.md.
|
||||
diff --git a/tests/support/library-abnahme.py b/tests/support/library-abnahme.py
|
||||
index c596219..003e064 100644
|
||||
--- a/tests/support/library-abnahme.py
|
||||
+++ b/tests/support/library-abnahme.py
|
||||
@@ -63,8 +63,15 @@ def main():
|
||||
library = root / 'library.tbl'
|
||||
shutil.copyfile(args.library, library)
|
||||
template = root / ('runtime' + suffix)
|
||||
- shutil.copy2(binaries / ('tbrt' + suffix), template)
|
||||
- run([template_tool, template, target], root, env)
|
||||
+ runtime = binaries / ('tbrt' + suffix)
|
||||
+ if not runtime.is_file():
|
||||
+ runtime = binaries / 'runtimes' / target / ('tbrt' + suffix)
|
||||
+ shutil.copy2(runtime, template)
|
||||
+ metadata = Path(str(runtime) + '.meta')
|
||||
+ if metadata.is_file():
|
||||
+ shutil.copyfile(metadata, Path(str(template) + '.meta'))
|
||||
+ else:
|
||||
+ run([template_tool, template, target], root, env)
|
||||
source = root / 'consumer.bas'
|
||||
source.write_text(SOURCE, encoding='utf-8')
|
||||
linked = root / 'consumer.tbc'
|
||||
diff --git a/tests/support/native-abnahme.py b/tests/support/native-abnahme.py
|
||||
index 78f4c2a..837d868 100644
|
||||
--- a/tests/support/native-abnahme.py
|
||||
+++ b/tests/support/native-abnahme.py
|
||||
@@ -76,13 +76,19 @@ def main():
|
||||
suffix = '.exe' if args.target == 'x86_64-pc-windows-msvc' else ''
|
||||
tbc = binaries / ('tbc' + suffix)
|
||||
rt = binaries / ('tbrt' + suffix)
|
||||
+ if not rt.is_file():
|
||||
+ rt = binaries / 'runtimes' / args.target / ('tbrt' + suffix)
|
||||
prepare = binaries / ('tb-template' + suffix)
|
||||
env = dict(os.environ, PATH='') # weder Cargo noch tbc/tbrt über PATH auflösbar
|
||||
with tempfile.TemporaryDirectory(prefix='tb-native-') as work:
|
||||
root = Path(work)
|
||||
template = root / ('runtime' + suffix)
|
||||
shutil.copy2(rt, template)
|
||||
- must(run([prepare, template, args.target], root))
|
||||
+ metadata = Path(str(rt) + '.meta')
|
||||
+ if metadata.is_file():
|
||||
+ shutil.copyfile(metadata, Path(str(template) + '.meta'))
|
||||
+ else:
|
||||
+ must(run([prepare, template, args.target], root))
|
||||
empty = run([template], root, env=env)
|
||||
assert empty.returncode == 1 and b'Nutzlast' in empty.stderr, empty
|
||||
cases = {
|
||||
@@ -1,19 +1,27 @@
|
||||
## 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.
|
||||
- [ ] 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.
|
||||
- [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 Push-/PR-Workflow unter .gitea/workflows anbinden; ein tatsächlicher Origin-Lauf muss vier Zielergebnisse und Fehlerstatus liefern, ohne Release-Secrets im PR-Pfad.
|
||||
|
||||
## 2. Artefakte und Pakete
|
||||
|
||||
- [ ] 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.
|
||||
- [ ] 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.
|
||||
- [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.
|
||||
- [ ] 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.
|
||||
- [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.
|
||||
- [ ] 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.
|
||||
- [ ] 3.3 Fremdprogramm-, Inventar-, native und automatisierte Plattformnachweise sowie Referenzbenchmarks in den erforderlichen Abnahmelauf integrieren; ignorierte Pflichtfälle müssen als fehlend sichtbar bleiben.
|
||||
- [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.
|
||||
|
||||
Stand 07.09.2026: Repository-Implementierung und lokale Prüfungen vorhanden.
|
||||
Alle vier Ziele wurden in den fixierten Containern auf Linux arm64 gebaut;
|
||||
Linux-arm64- und cross-kompilierte macOS-Pakete bestehen echte entpackte
|
||||
Automatikprüfungen. Das ist noch kein Actions-Lauf. 1.1/1.3/2.1/3.4 bleiben
|
||||
wegen des defekten gemeinsamen Runners offen; 2.3 wegen Windows/Linux-amd64
|
||||
und den restlichen visuellen Zielnachweisen. 3.1 bleibt bis zur Einrichtung
|
||||
des Releasezugangs und tatsächlichen Rechteprüfung offen. Details: verification.md.
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
# Verifizierung: phase-6-06-gitea-actions-und-releases
|
||||
|
||||
Stand 07.09.2026. Basis: `796564795a6607651c366c6b0de74560af55e71a`
|
||||
mit dem dokumentierten Change-06-Diff. Change 05 wurde zuvor synchronisiert,
|
||||
auf Benutzeranweisung archiviert und dieser Commit auf Origin bestätigt.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
| Dimension | Stand |
|
||||
|---|---|
|
||||
| Vollständigkeit | 5/11 Aufgaben abgeschlossen; sechs Aufgaben mit echten Origin-/Ziel-/Rechtenachweisen offen |
|
||||
| Korrektheit | Vier echte Cross-/Native-Builds auf Linux arm64; native Paketprüfungen auf Linux arm64 und macOS arm64 bestanden; lokale Pflichtabnahme und negative Paket-/Releaseprüfungen bestanden |
|
||||
| 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**. Vier lokal orchestrierte Container-
|
||||
builds auf dem Gitea-Host sind keine vier erfolgreichen Actions-Jobs.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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 gebauten Testpakete tragen den uncommitteten Diffstand im Manifest und
|
||||
sind absichtlich nicht releasefähig. Lokale Belege werden unter `evidence/`
|
||||
aufbewahrt; Paketprüfsummen und tatsächliche Hostdaten stehen in den Berichten.
|
||||
|
||||
## Offene externe Befunde
|
||||
|
||||
- **1.1/1.3/2.1/3.4:** Gitea 1.25.4, Actions am Repository aktiviert,
|
||||
registrierter Runner `gitea-arm64-01`, Label `linux-arm64` bestätigt.
|
||||
Der Runner ist in einer Neustartschleife: `rootlesskit ... /proc/self/exe:
|
||||
operation not permitted`. Eine Entscheidung zur Reparatur des gemeinsamen
|
||||
Runners wurde angefragt. Keine Docker-/AppArmor-Konfiguration verändert.
|
||||
Ein echter erfolgreicher Actions-Matrixlauf und dessen Rechteverhalten fehlen.
|
||||
- **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.
|
||||
|
||||
Diese Befunde lassen sich nicht durch Änderungen an Paketcode oder durch
|
||||
Abhaken von Aufgaben schließen. Nach Runner-Reparatur den Origin-Lauf ausführen,
|
||||
zugehörige Paket-/Zielnachweise ergänzen und kontrollierte Entwurfs-/Rechte-
|
||||
prüfung durchführen. Bis dahin keine Freigabe und keine Behauptung „0 Befunde“.
|
||||
Reference in New Issue
Block a user