2014
DOI: 10.1145/2714064.2660239
|View full text |Cite
|
Sign up to set email alerts
|

Automated migration of build scripts using dynamic analysis and search-based refactoring

Abstract: The efficiency of a build system is an important factor for developer productivity. As a result, developer teams have been increasingly adopting new build systems that allow higher build parallelization. However, migrating the existing legacy build scripts to new build systems is a tedious and error-prone process. Unfortunately, there is insufficient support for automated migration of build scripts, making the migration more problematic.We propose the first dynamic approach for automated migration of build scr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
11
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 19 publications
(11 citation statements)
references
References 58 publications
0
11
0
Order By: Relevance
“…In contrast to test execution, build script task execution typically produces side effects in the form of new files, e.g., files with object code in ELF format. Modern build systems such as Bazel [5] and CloudMake [21,27] can use other ways than timestamps to find modified files, e.g., comparing cryptographic hashes of files across revisions. Recent alternative build systems that aim to replace make include Tup [54] and Shake [43]; the former uses an explicit persisted dependency graph.…”
Section: Build Systemsmentioning
confidence: 99%
“…In contrast to test execution, build script task execution typically produces side effects in the form of new files, e.g., files with object code in ELF format. Modern build systems such as Bazel [5] and CloudMake [21,27] can use other ways than timestamps to find modified files, e.g., comparing cryptographic hashes of files across revisions. Recent alternative build systems that aim to replace make include Tup [54] and Shake [43]; the former uses an explicit persisted dependency graph.…”
Section: Build Systemsmentioning
confidence: 99%
“…Most analysis approaches are dynamic and actually execute the build to extract information. For example, van der Burg et al [43] dynamically detect which files are included in a build to check license compatibility, Metamorphosis [26] dynamically analyzes build system to migrate them, Dietrich [24] analyzes Kbuild based systems dynamically to derive presence conditions for source files, and our prior work, MkFault [21], combines runtime information with some structural analysis to localize build faults. However, dynamic approaches can only analyze one configuration at a time.…”
Section: Related Workmentioning
confidence: 99%
“…ElectricTest's technique for dependency detection is more related to work in Makefile (build) parallelization, such as EMake [33] or Metamorphisis [19]. These systems observe filesystem reads and writes for each step of the build process to detect dependencies between steps and infer which steps can be paralleled.…”
Section: Related Workmentioning
confidence: 99%