Abstract:
Build systems are used in every nontrivial software project. They contain knowledge of how software is built and provide tools to get it built as fast as possible. While ...Show MoreMetadata
Abstract:
Build systems are used in every nontrivial software project. They contain knowledge of how software is built and provide tools to get it built as fast as possible. While being central to day-to-day productivity, they sometimes fail to deliver their promise of being correct, efficient, and tailored. This situation gets aggravated with huge code bases and fast-paced continuous-integration pipelines. This article surveys state-of-the-art techniques and algorithms that relegate the occasional inconsistent build, slow execution times, and boilerplate makefiles to another age. This article is part of a special issue on release engineering.
Published in: IEEE Software ( Volume: 35, Issue: 2, March/April 2018)