Modifications to open-source software (OSS) are often provided in the form of
"patch stacks" - sets of changes (patches) that modify a given body of source
code. Maintaining patch stacks over extended periods of time is problematic
when the underlying base project changes frequently. This necessitates a
continuous and engineering-intensive adaptation of the stack. Nonetheless,
long-term maintenance is an important problem for changes that are not
integrated into projects, for instance when they are controversial or only of
value to a limited group of users.
We present and implement a methodology to systematically examine the temporal
evolution of patch stacks, track non-functional properties like integrability
and maintainability, and estimate the eventual economic and engineering effort
required to successfully develop and maintain patch stacks.
Our results provide a basis for quantitative research on patch stacks,
including statistical analyses and other methods that lead to actionable advice
on the construction and long-term maintenance of custom extensions to OSS