81 lines
6.5 KiB
Markdown
81 lines
6.5 KiB
Markdown
# Roadmap and current status
|
||
|
||
Development reference and historical context. For current operating instructions, use the [user manual](../README.md). Acceptance applies only to the source and artifacts identified in each record.
|
||
|
||
|
||
[Documentation index](README.md) · [Master plan](master-plan.md) · [M0 evidence](m0-validation.md)
|
||
|
||
**M0–M12 software acceptance is complete. Physical Pi testing is deferred.**
|
||
The user has additionally authorized [Dasung base integration](dasung.md): an
|
||
imported daemon, ARM package, mandatory base selection, and s6 service sources.
|
||
M2 starts it under native s6 in a booted ARM virtual machine.
|
||
This is a sequence of acceptance milestones, not a release-date schedule.
|
||
The user authorized continued implementation through M12, deferring physical Pi
|
||
testing. Work proceeds in order with software/VM evidence recorded in the
|
||
[implementation ledger](implementation-status.md).
|
||
|
||
Current development additionally implements [workstation software cartridges
|
||
and QEMU hotplug tooling](workstation.md). Its [acceptance record](workstation-validation.md)
|
||
is separate from the frozen 0.1.0 artifacts below.
|
||
|
||
## Milestones and acceptance boundaries
|
||
|
||
| Milestone | Status | Deliverable and acceptance |
|
||
| --- | --- | --- |
|
||
| **M0 — Build host** | **Verified** | On x86_64 Arch, bootstrap the pinned Void build environment, cross-build an aarch64 glibc package, and build/inspect a static-musl Rust executable. See the recorded skips below. |
|
||
| **M1 — Base rootfs** | **Implemented** | `fds-base`, `fds-base-files`, and `out/rootfs-aarch64.tar` with glibc, GNU tools, XBPS and Dasung; no BusyBox, systemd, runit or musl runtime package. [Usage](rootfs.md) · [Evidence](m1-validation.md). |
|
||
| **M2 — Native s6** | **Verified in ARM VM** | Native s6 PID 1, read-only root, eudev/getty/Dasung supervision, test-service control, and orderly power-off. [Usage](init.md) · [Evidence](m2-validation.md). |
|
||
| M3 — FDS tooling foundations | Verified | Add shared Rust code and CLI/stage0 skeletons; verify static-musl AArch64 artifacts without a glibc runtime dependency. |
|
||
| M4 — Pi boot | Software verified; hardware deferred | Kernel/initramfs/SYSTEM/boot-volume builds and nine VM boot cases passed. The ordinary-user prompt follows in M5; physical NVMe/RP1/display acceptance is deferred. [Evidence](m4-validation.md). |
|
||
| M5 — Fast console | Software verified; physical timing deferred | Ordinary-user console, boot tracing and regression checks passed. [Evidence](m5-validation.md). Physical performance targets remain unmeasured. |
|
||
| M6 — Cartridge daemon | Software verified; physical calibration deferred | Handle events, configured 12-bay topology, metadata, mounting, and eject; virtual hotplug checks passed. Twelve-device stress follows in M11 and physical calibration remains deferred. |
|
||
| M7 — DATA integration | Software verified; physical media behavior deferred | Integrate data/home mounts and safe eject; leave the filesystem clean after sustained writes and ejection. |
|
||
| M8 — WindowMaker | Software verified; physical display deferred | Xorg/WindowMaker, grayscale theme, ENVIRONMENT activation, managed PROGRAMs and Ethernet passed virtual display/network tests. [Usage](desktop.md) · [Evidence](m8-validation.md). |
|
||
| M9 — Media tools | Software verified; physical media behavior deferred | ARM image creation, protected and confirmed writes, readback verification, and boot of a newly written SYSTEM passed. [Usage](media-tools.md) · [Evidence](m9-validation.md). |
|
||
| M10 — Shutdown | Software verified; physical timing/durability deferred | Ordered native halt/reboot, busy refusal, persistent DATA faults and independent filesystem checks passed. [Usage](power.md) · [Evidence](m10-validation.md). |
|
||
| M11 — Hardware stress | Software verified; physical tests deferred | Twelve-device cold/hotplug and I/O stress, native reboot/halt, readiness independence and six media failure cases passed. [Usage](stress-testing.md) · [Evidence](m11-validation.md). |
|
||
| M12 — Production hardening | Software verified; hardware deferred | Signed local FDS/OS 0.1.0, exact frozen inputs, two matching offline builds, recovery/internal settings, documentation and reversible EEPROM previews. [Final evidence](m12-validation.md#final-local-release-acceptance). |
|
||
|
||
Detailed requirements remain in sections 53–65 of the [master plan](master-plan.md).
|
||
The ledger distinguishes implemented software, remaining work, and tests that
|
||
still require physical hardware.
|
||
|
||
## What M0 completion means
|
||
|
||
The initial validation successfully ran `make bootstrap`, `make smoke-test`, and
|
||
`make check`. It produced and inspected an actual ARM glibc GNU hello package and
|
||
an actual static-musl ARM Rust executable. It also checked failure cases for ELF
|
||
validation, source pin drift, modified upstream files, and overlay conflicts.
|
||
|
||
It did **not** run the ARM program in QEMU, boot a Pi, test a physical bay map, or
|
||
measure boot/shutdown performance. QEMU was absent and was explicitly reported
|
||
as an optional skip. The later snapshot and offline-build work belongs to M12.
|
||
See [M0 validation](m0-validation.md) for the exact environment, outputs, and hashes.
|
||
|
||
## From native init to cartridge boot
|
||
|
||
M1 changes the output from isolated test artifacts to a base operating-system
|
||
filesystem. Its first result is a rootfs archive with an explicit package set
|
||
and exclusions. That archive alone will not establish native init or Pi boot;
|
||
those are M2 and M4 acceptance boundaries.
|
||
|
||
M2 now boots that filesystem with a generic ARM kernel and exercises native
|
||
s6 supervision. `make init-test` automates the acceptance test; `make vm` opens
|
||
a temporary development shell. Neither supplies a Pi boot image or measures
|
||
physical boot performance. M3 adds verified FDS Rust foundations;
|
||
[tooling usage](tooling.md) explains its commands. M4's [boot guide](boot.md)
|
||
covers the Pi kernel, initramfs, SYSTEM image, boot volume, and full stage0 tests.
|
||
|
||
## Find the current command interface
|
||
|
||
The master plan includes a design directory sketch as well as runtime commands.
|
||
The checkout now implements the complete build interface, cartridge inspection
|
||
and media management, and native power-off/reboot. A few script locations and
|
||
configuration formats differ from the original sketch; the
|
||
[implementation ledger](implementation-status.md#interface-and-policy-decisions)
|
||
maps those entries to the actual interfaces. Use [Development](development.md)
|
||
for targeted rebuilds and the project overview for the complete build/VM path.
|
||
|
||
Use `make help` to inspect the current build entry points. Follow
|
||
[Your first build](getting-started.md) for the complete usable workflow today.
|