Collapse buildrequests regardless of clean property #660
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With this PR, the
cleanandclean_objproperties are ignored when considering whether to collapse two buildrequests. The collapsed request will have that property if either of the original requests has.clean, respectivelyclean_obj, not being set never guaranteed pre-populated build guranteed anyway.Background:
cleanproperty is set in the Force Build dialog: "Clean source code and build directory". It is never set by LLVMPoller.clean_objproperty is set in the Force Build dialog: "Clean build directory", or when LLVMPoller adds a buildrequest for a new llvm-project commit that changes a CMake file or contains the string "Require[...]clean build" in the commit message.cleanoption. Instead, those builders enable the cleaning step independent of theclean/clean_objproperties inherited from the buildrequest.Two buildrequests were only collapsed when their properties are equal, including the
clean_objproperty. Since the value of the property changes dependending on whether a CMakeLists.txt file is touche, a typical sequence of buildrequests after collapsing becomesHence, slow builders with
collapseRequestsenabled in practice it still does two builds per CMakeLists.txt change. This may lead to high response latency during times of high commit volume or the slowest builders not being able to keep up at all.