diff --git a/docs/TODO.md b/docs/TODO.md new file mode 100644 index 0000000..82b046d --- /dev/null +++ b/docs/TODO.md @@ -0,0 +1,73 @@ +# Zero-OS Builder – Persistent TODO + +This canonical checklist is the single source of truth for ongoing work. It mirrors the live task tracker but is versioned in-repo for review and PRs. Jump-points reference exact functions and files for quick triage. + +## High-level + +- [x] Regenerate repository function index: [scripts/functionlist.md](scripts/functionlist.md) +- [x] Refresh NOTES with jump-points and roadmap: [docs/NOTES.md](docs/NOTES.md) +- [x] Extend RFS design with RESP/DB-style backend: [docs/rfs-flists.md](docs/rfs-flists.md) +- [x] Make Rust components Git fetch non-destructive: [bash.components_download_git()](scripts/lib/components.sh:72) +- [ ] Update zinit config for "zosception" workflow: [config/zinit/](config/zinit/) +- [ ] Add zosstorage to the initramfs (package/build/install + zinit unit) +- [ ] Validate via minimal rebuild and boot tests; refine depmod/udev docs +- [ ] Commit and push documentation and configuration updates (post-zosception/zosstorage) + +## Zosception (zinit service graph and ordering) + +- [ ] Define service graph changes and ordering constraints + - Reference current triggers: + - Early coldplug: [config/zinit/udev-trigger.yaml](config/zinit/udev-trigger.yaml) + - Network readiness: [config/zinit/network.yaml](config/zinit/network.yaml) + - Post-mount coldplug: [config/zinit/udev-rfs.yaml](config/zinit/udev-rfs.yaml) +- [ ] Add/update units under [config/zinit/](config/zinit/) with proper after/needs/wants +- [ ] Validate with stage runner and logs + - Stage runner: [bash.stage_run()](scripts/lib/stages.sh:99) + - Main flow: [bash.main_build_process()](scripts/build.sh:214) + +## ZOS Storage in initramfs + +- [ ] Decide delivery mechanism: + - [ ] APK via [config/packages.list](config/packages.list) + - [ ] Source build via [bash.components_parse_sources_conf()](scripts/lib/components.sh:13) with a new build function +- [ ] Copy/install into initramfs + - Components copy: [bash.initramfs_copy_components()](scripts/lib/initramfs.sh:102) + - Zinit setup: [bash.initramfs_setup_zinit()](scripts/lib/initramfs.sh:13) +- [ ] Create zinit unit(s) for zosstorage startup and ordering + - Place after network and before RFS if it provides storage used by rfs +- [ ] Add smoke command to confirm presence in image (e.g., which/--version) during [bash.initramfs_validate()](scripts/lib/initramfs.sh:820) + +## RFS backends — implementation follow-up (beyond design) + +- [ ] RESP uploader shim for packers (non-breaking) + - Packers entrypoints: [scripts/rfs/pack-modules.sh](scripts/rfs/pack-modules.sh), [scripts/rfs/pack-firmware.sh](scripts/rfs/pack-firmware.sh) + - Config loader: [bash.rfs_common_load_rfs_s3_config()](scripts/rfs/common.sh:82) → extend to parse RESP_* (non-breaking) + - Store URI builder (S3 exists): [bash.rfs_common_build_s3_store_uri()](scripts/rfs/common.sh:137) + - Manifest patching remains: + - Stores table: [bash.rfs_common_patch_flist_stores()](scripts/rfs/common.sh:385) + - route.url: [bash.rfs_common_patch_flist_route_url()](scripts/rfs/common.sh:494) +- [ ] Connectivity checks and retries for RESP path +- [ ] Local cache for pack-time (optional) + +## Validation and boot tests + +- [ ] Minimal rebuild after zinit/units/edit + - Helper: [scripts/rebuild-after-zinit.sh](scripts/rebuild-after-zinit.sh) +- [ ] Validate contents before CPIO + - Create: [bash.initramfs_create_cpio()](scripts/lib/initramfs.sh:691) + - Validate: [bash.initramfs_validate()](scripts/lib/initramfs.sh:820) +- [ ] QEMU / cloud-hypervisor smoke tests + - Test suite: [bash.testing_run_all()](scripts/lib/testing.sh:299) +- [ ] Kernel embed path and versioning sanity + - Embed config: [bash.kernel_modify_config_for_initramfs()](scripts/lib/kernel.sh:130) + - Full version logic: [bash.kernel_get_full_version()](scripts/lib/kernel.sh:14) + +## Operational conventions (keep) + +- [ ] Diagnostics-first changes; add logs before fixes +- [ ] Absolute path normalization respected + - Normalization: [scripts/lib/common.sh](scripts/lib/common.sh:244) + +Notes +- Keep this file in sync with the live tracker. Reference it in PR descriptions. +- Use the clickable references above for rapid navigation. \ No newline at end of file