apache / apache/buildstream

Formalise the pushing of failed sources

Open
#1,225 4 comments 0 reactions 0 assignees View on GitHub
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/1225)
In GitLab by [[Gitlab user @tpollard]](https://gitlab.com/tpollard) on Dec 2, 2019, 12:17

## Background

As highlighted in this MR https://gitlab.com/BuildStream/buildstream/merge_requests/1741 a current bst build execution will not push sources (by default) if the build queue failed. This behaviour is achieved by the ordering of the source push queue being after the build queue, but there's no explicit conditional in the source push logic that stops failed build sources being pushed. Adding in logic to enforce the behaviour brings up questions about how we handle sources, especially what the default behaviour should be during a build, and how a future source push command would operate with the given build status of sources. For instance, if a buildstep failed due to a temporary issue (say OOM, or network issues) it's probably wrong to presume that we shouldn't be pushing the source. There's the plausibility of pushing source as soon as it's cached locally instead of waiting for a build to complete as the operations can somewhat be independent, unlike pushing built artifacts.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the linked GitLab MR 1741 and the source push logic around the build and source push queues. Clarify the intended default behavior for failed or independently cached sources and how a future source push command should use build status. Done requires an agreed design for these cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.