起因
目前我们都是在user/dadk
目录下放置用户程序的配置文件的。这导致了几个问题:
- 用户程序每更新一个版本,都需要提交一个新的commit到主仓库(尽管可以选择分支而不是revision,但是这样就导致发新版本的时候,还需要人工操作,固定revision)
- 没法很方便的配置“到底应该安装哪些用户程序到系统内”。
想法
因此我个人想法是,可以参照linux buildroot项目,我们也搞一个类似的,用于构建出完整可运行的DragonOS. 通过Kconfig的图形界面来配置安装选项。然后编写脚本,并与dadk相结合,从而实现个性化安装。
作用
除了上述的“个性化安装”以外,感觉这个项目还可以有别的用途:
- 方便进行自动化回归测试、集成测试:可以很方便的把测试程序的配置放进来,由CI/CD的系统每天晚上跑nightly的回归测试。
- 项目发布nightly版本,用户可以自由下载最新版的dragonos的镜像来体验
- 甚至方便我们做“系统安装镜像”之类的东西。
总之就是提升DragonOS构建的可配置程度。
问题
但是,这个感觉会有问题:
- 如何设计构建缓存的策略,毕竟全部重编需要很久,但是如果改了编译配置,那么又要让一些缓存失效,否则会导致奇奇怪怪的问题
讨论
欢迎大家在本帖下,一起讨论,提出自己的疑惑和建议,最终形成一套完整的方案。