  Software evolves with changes to its codebase over time. Internally, software
changes in response to decisions to include some code change into the codebase
and discard others. Explaining the mechanism of software evolution, this paper
presents a theory of software change. Our theory is grounded in multiple
evidence sources (e.g., GitHub documentation and relevant scientific
literature) relating to the pull-based development model in GitHub. The
resulting theory explains the influence of project-related core concepts (e.g.,
people and governance) as well as its ecosystem on the decision of software
change.
