Create a bazel build element

Open
#30 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

Start with the linked GitLab issue and its Background and Task description. Map the existing BuildStream element entry points before designing sandboxed Bazel execution, recursive dependency handling, WORKSPACE generation, persistent cache mounting, and target-platform toolchain generation; done means these requirements are supported together.

Written by the indexing model from the issue text.

Description

enhancement

See original issue on GitLab
In GitLab by [Gitlab user @edbaunton] on Jul 30, 2018, 16:20

Background

Create an element that provides support for building with bazel.

Specifically, a bst would declare itself of kind bazel and BuildStream would take care of generating the WORKSPACE file by recursively scanning the dependencies of the element being built.

Task description

  • bazel would be executed inside the sandbox (not using a host tool)
  • The workspace file would identify the built sources to consume with new_local_repository rules; if it encounters a dependency of type bazel it would stage the sources rather than the binaries and consume the BUILD file to leverage bazel.
  • bazel would need access to a persistent disk cache (use _set_mount_source?) between BuildStream runs so as to take advantage of its built in caching. The bazel server will actually be torn down between runs but it is said to serialize its state between runs so the startup time will no be prohibitive.
  • Toolchain generation: we need to generate correct toolchain for the target platform and have that be considered as part of the key for the element.
Dominant language
Python
Stars
8
Forks
16
Avg merge
36m
Merged PRs (30d)
2

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/buildstream-plugins

All issues in apache/buildstream-plugins

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.