In order to reduce the complexity and number of branches in
apple/llvm-project , we propose to remove the distinction between branches with and without swift-lldb content. Doing so will cut the number of branches and automergers in half. The distinction was originally introduced to make sure merge conflicts in LLDB wouldn’t block LLVM development, but data form the past year has shown it is not as big of a concern as originally thought.
The core idea of this proposal consists of folding the branches with a
swift/ prefix into their non-swift counterpart and dropping the
apple/ prefix. The
apple/main branch will be renamed to
next to align with Swift’s
next branch and avoid confusion with Swift’s
main branch. Please see the graph below for what this will look like.
Note that there won’t be a
swift/main branch anymore. Swift's main branch will be aligned directly with the
stable/YYYYMMDD branch. Rather than having to remember which branches are aligned between the llvm-project and swift repository, we want to rely on automation such as
update-checkout (and a new script to open a Github PR in the browser) to know which branch to work on. We realize this might be a disruptive change but after long consideration we believe relying on automation here is the right trade-off.
Barring any major objections form the community we plan to enact these changes on July 21st. We will merge the branches, rename them and update the CI configuration as well as the documentation.