Forked and integrated variants in an open-source firmware project

Forked and integrated variants in an open-source firmware project
复制标题

开源固件项目中的分叉和集成变体

DOI:
--
复制
发表时间:
2015
期刊:
IEEE International Conference on Software Maintenance and Evolution
影响因子:
--
通讯作者:
A. Wąsowski
A. Wąsowski
中科院分区:
--
文献类型:
--
作者:
Stefan Stanciulescu;Sandro Schulze;A. Wąsowski

文献摘要

被引文献

相似文献

据报道,代码克隆的规模既有小的(代码片段),也有大的(整个项目)的。由于有了更好的工具来维护分叉的项目变体,大克隆或分叉正在作为一种重用机制得到普及,下文中的分布式版本控制系统和交互式源代码管理平台,如Github。我们以Marlin为例研究了分叉的优缺点,Marlin是一款用于3D打印机的开源固件。我们发现,克隆的许多问题和优势确实转化为分叉。有趣的是,Marlin社区同时使用分叉和集成的可变性管理(条件编译)来创建变体和特性。因此,研究它增加了我们对整合和基于克隆的变异管理之间的选择的理解。它还允许我们观察管理源代码成熟的机制,特别是何时、为什么以及如何将特性实现从分支迁移到主集成平台。我们相信,这种理解最终将有助于混合基于克隆和集成变体管理的工具的开发,结合两者的优势。
Code cloning has been reported both on small (code fragments) and large (entire projects) scale. Cloning-in-the-large, or forking, is gaining ground as a reuse mechanism thanks to availability of better tools for maintaining forked project variants, hereunder distributed version control systems and interactive source management platforms such as Github. We study advantages and disadvantages of forking using the case of Marlin, an open source firmware for 3D printers. We find that many problems and advantages of cloning do translate to forking. Interestingly, the Marlin community uses both forking and integrated variability management (conditional compilation) to create variants and features. Thus, studying it increases our understanding of the choice between integrated and clone-based variant management. It also allows us to observe mechanisms governing source code maturation, in particular when, why and how feature implementations are migrated from forks to the main integrated platform. We believe that this understanding will ultimately help development of tools mixing clone-based and integrated variant management, combining the advantages of both.