system: validate development environment overlay

This commit is contained in:
2026-04-05 11:56:06 +02:00
parent 4975084baa
commit 9e9a0b59fc
10 changed files with 612 additions and 36 deletions

View File

@@ -34,6 +34,10 @@ Fruix currently has:
- `fruix system status`
- `fruix system switch`
- `fruix system rollback`
- a validated separate in-system development environment overlay via:
- `/run/current-system/development-profile`
- `/run/current-development`
- `/usr/local/bin/fruix-development-environment`
Validated boot modes still are:
@@ -46,44 +50,37 @@ The validated Phase 18 installation work currently uses:
## Latest completed achievement
### 2026-04-04 — Phase 19.3 completed
### 2026-04-05 — Phase 20.1 completed
Fruix now has a validated installed-system operator workflow for switching to a staged candidate generation and rolling back to the recorded previous generation.
Fruix now has a validated real-VM path where a booted Fruix-managed FreeBSD system exposes a separate development environment for native base work without collapsing the runtime/development split.
Highlights:
- installed systems now ship an in-guest Fruix deployment helper at:
- `/usr/local/bin/fruix`
- validated in-guest command surface:
- `fruix system status`
- `fruix system switch /frx/store/...-fruix-system-...`
- `fruix system rollback`
- switching now records explicit rollback state under:
- `/var/lib/fruix/system/rollback`
- `/var/lib/fruix/system/rollback-generation`
- switching now records explicit rollback GC roots under:
- `/frx/var/fruix/gcroots/rollback-system`
- the validated installed-system workflow now supports:
- stage candidate closure in `/frx/store`
- switch to generation 2
- reboot into the candidate
- rollback to generation 1
- reboot into the restored current system
- operating-system declarations now support:
- `#:development-packages`
- system closures can now carry a separate development profile at:
- `/run/current-system/development-profile`
- `/run/current-development`
- opt-in systems now ship an in-guest helper at:
- `/usr/local/bin/fruix-development-environment`
- the validated Phase 20.1 guest path exposes:
- native headers
- `usr/share/mk` for `bsd.*.mk`
- Clang toolchain commands such as `cc`, `c++`, `ar`, `ranlib`, and `nm`
- the validated guest workflow now supports:
- `eval "$(/usr/local/bin/fruix-development-environment)"`
- direct compilation with the Fruix-provided toolchain
- a simple `bsd.prog.mk` build on the running Fruix guest
Validation:
- `PASS phase19-installed-system-rollback-qemu`
- regression re-checks:
- `PASS phase19-generation-layout-qemu`
- `PASS phase18-installer-iso`
- `PASS phase20-development-environment-xcpng`
Reports:
- `docs/system-deployment-workflow.md`
- `docs/GUIX_DIFFERENCES.md`
- `docs/reports/phase19-deployment-workflow-freebsd.md`
- `docs/reports/phase19-generation-layout-freebsd.md`
- `docs/reports/phase19-installed-system-rollback-freebsd.md`
- `docs/reports/phase20-development-environment-freebsd.md`
## Recent major milestones
@@ -109,6 +106,6 @@ Reports:
Per `docs/PLAN_4.md`, the next planned step is:
- **Phase 20.1** — validate a Fruix-managed development environment for native FreeBSD base work
- **Phase 20.2** — run host-initiated native base builds inside a Fruix-managed environment
Phase 19.3 is now complete: Fruix validates installed-system generation switching and rollback through the intended operator-facing workflow.
Phase 20.1 is now complete: Fruix validates a separate in-system development environment for native FreeBSD base work on the approved real XCP-ng path.