apache / apache/buildstream

Allow staging part of a source

Open
#493 4 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.