Allow staging part of a source
- 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/493)
In GitLab by [[Gitlab user @tlater]](https://gitlab.com/tlater) on Jul 23, 2018, 13:54
## Background
[//]: # (Provide a background or the root/source that justifies this task or action.)
Sometimes projects are structured in a way that necessitates singling out a subdirectory before building the project. This happens quite frequently in projects that are an amalgamate of various plugins or themes.
Currently, to build one of these from any source besides `tar`, `local` or `zip`, we need to prefix `configure-commands` with the relevant commands to move this around - be that `mv`-ing, `cp`-ing, `cd`-ing or suchlike.
This can be annoying for elements that would otherwise not have to depend on an element that contains these binaries (this is fairly common for themes).
## Task description
[//]: # (Short summary of the action to be executed)
To mitigate this, we could make the `base-dir` API from our `zip`/`git` global (and perhaps rename it).
## Acceptance Criteria
We should have a way to stage only part of a source in all source plugins.
[//]: # (Acceptance criteria should follow the S.M.A.R.T. principle https://en.wikipedia.org/wiki/SMART_criteria )
----
Contributor guide
Research direction
Start by reading the existing base-dir API in the zip and git source plugins, then compare how the other source plugins stage content. The work is complete when every source plugin can stage only a selected subdirectory, as described in the acceptance criteria.
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
- 42/100