Allow incremental builds when retrying builds
- Dominant language
- Python
- Stars
- 140
- Forks
- 45
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 6
Description
[See original issue on GitLab](https://gitlab.com/BuildStream/buildstream/-/issues/433)
In GitLab by [[Gitlab user @TheRealMichaelCatanzaro]](https://gitlab.com/TheRealMichaelCatanzaro) on Jun 20, 2018, 15:46
## Background
When a build fails due to a random problem and the only solution is to Retry, I believe BuildStream currently starts over from the beginning. This makes it very frustrating to build WebKit, where we expect the compiler or linker to crash a couple times due to toolchain issues. E.g. last night I hit a linker bug an hour into building WebKit for the GNOME 3.29.3 release, and when I told buildstream to retry the build, I believe it started over from scratch. I was trying to build hundreds of modules, and losing an hour was a significant loss. Under JHBuild, I would just restart the build and it would continue without problems from where it left off. One time in the past, I hit random toolchain bugs three or four builds in a row, which was probably about when I stopped using BuildStream for daily development. The exact bugs do not matter... the fact is that our build toolchain (compiler and linker) are simply not as reliable as we would like, and there are going to be problems outside our control that will occasionally (or even often) necessitate performing an incremental rebuild.
## Task description
Add ability to retry a build without restarting the build from scratch
## Acceptance Criteria
Should be possible to retry a build without restarting the build from scratch
Contributor guide
Research direction
Start by tracing BuildStream's build and retry entry points; the issue does not name specific files or tests. Determine where a retry discards prior progress, then verify that retrying after a failed build preserves completed work instead of restarting from scratch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100