• Corpus ID: 62392198

Studying the Evolution of Build Systems

  title={Studying the Evolution of Build Systems},
  author={Shane McIntosh},
As a software project ages, its source code is improved by refining existing features, adding new ones, and fixing bugs. Software developers can attest that such changes often require accompanying changes to the infrastructure that converts source code into executable software packages, i.e., the build system. Intuition suggests that these build system changes slow down development progress by diverting developer focus away from making improvements to the source code. While source code… 
Build system issues in multilanguage software
A qualitative study on a set of five multilanguages open source software packages found that there are commonalities among build problems that can be systematically addressed, and one such finding is that multilanguage packages avoid certain build problems by supporting compilation-free extension.


An empirical study of build maintenance effort
Analysis of the version histories of one proprietary and nine open source projects of different sizes and domain to analyze the overhead that build maintenance imposes on developers indicates that, despite the difference in scale, the build system churn rate is comparable to that of the source code.
The evolution of ANT build systems
This paper studies the evolution of ANT build systems from two perspectives: a static perspective, where the build system specifications are examined using software metrics adopted from the source code domain; and a dynamic perspective where representative sample build runs are conducted and their output logs are analyzed.
The Evolution of the Linux Build System
This paper takes a look at the phenomenon of evolutionary changes on the software's build system in the Linux kernel from its inception up until present day by analysing the kernel's build traces with MAKAO, the re(verse)-engineering framework for build systems.
Evolution and growth in large libre software projects
It is observed in the studied sample that super-linearity occurs only exceptionally, that many of the systems follow a linear growth pattern and that smooth growth is not that common, which differ from the ones found generally in classical software evolution studies.
Design recovery and maintenance of build systems
The design and implementation of a re(verse)-engineering framework for build systems named MAKAO is presented, which makes the build's dependency graph available in a tangible way and enables powerful querying of all build-related data.
Evolution in open source software: a case study
  • M. GodfreyQ. Tu
  • Computer Science
    Proceedings 2000 International Conference on Software Maintenance
  • 2000
The authors explore the evolution of the Linux kernel both at the system level and within the major subsystems, and they discuss why they think Linux continues to exhibit such strong growth.
Language-specific make technology for the Java programming language
A make technology for the Java programming language is described, based on smart dependency checking, that guarantees consistency of the project code, and at the same time reduces the number of source code recompilations to the minimum.
Using Decision Trees to Predict the Certification Result of a Build
  • A. HassanKe Zhang
  • Computer Science
    21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06)
  • 2006
This study shows that using a combination of project attributes (such as the number of modified subsystems in a build and certification results of previous builds), this paper can correctly predict 69% of the time that a build will fail certification.
Integrating Software Construction and Software Deployment
This paper describes a build manager called Maak that can handle deployment through a sufficiently general module system that transparently turns into a binary distribution, removing the dichotomy between these two modes of deployment.