Dear devel, Our builds are nothing more than specially-formatted Unix filesystems.
Q: What useful purpose is served by regenerating these filesystems from scratch every time we want to change them? A: We maintain an explanation of where the filesystem came from encoded in the recipe used to create it. It seems to me that version control systems and shells are the best tools yet invented for comprehending filesystems and for changing them in controlled ways. Could we actually build our disk images from authoritative copies of our filesystem tree which are wholly maintained in a version-controlled repository (along with export scripts, tests, source materials, release notes, defect markers, and other miscellanea)? Benefits: We might * achieve a long-sought "interactive" (as opposed to "batch-processing") build maintenance style. * be able to Patch The Build simply by emailing the build-maintenance list with our proposed change. * be able to insist on public review of changes to the build * maintain confidence in our ability to comprehend and incorporate changes made by third parties to the build * reduce the need learn RPM packaging techniques in order to contribute to the build production process * achieve better "blame" support since we would know whose changes _actually_ broke the build. * be able to more easily bisect a build stream looking for the change that introduced a bug * ease the process of contributing and maintaining test cases and test scripts, automated or not Caveats: We would need to: * improve our testing process to detect and cope with conflicting changes to generated files like package databases * provide root access on some Linux host(s) (or take great care with fakeroot / qemu configuration) to allow others to work on the filesystem without screwing up file ownership and permissions * work hard to ensure a consistently high level of quality in our release branches by refusing to accept patches with inadequate provenance or which bundle unrelated changes. Thoughts? Michael _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel