• DocumentCode
    3694205
  • Title

    Forked and integrated variants in an open-source firmware project

  • Author

    Ştefan Stănciulescu;Sandro Schulze;Andrzej Wąsowski

  • Author_Institution
    IT University of Copenhagen, Denmark
  • fYear
    2015
  • Firstpage
    151
  • Lastpage
    160
  • Abstract
    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.
  • Keywords
    "Cloning","Printers","Control systems","Three-dimensional displays","Computer architecture","Context","Maintenance engineering"
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Evolution (ICSME), 2015 IEEE International Conference on
  • Type

    conf

  • DOI
    10.1109/ICSM.2015.7332461
  • Filename
    7332461