pingcap / pingcap/tiflash

Docker for daily development

Open
#5,991 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/enhancement
Dominant language
C++
Stars
1k
Forks
423
Avg merge
1d 15h
Merged PRs (30d)
24

Description

Enhancement

Currently we have Docker image in release-centos7-llvm. It is used to build release distributions.

It can be used as the compiler toolchain in daily development, so that developers don't need to carefully configure compiler toolchains by their own.

We can make the following improvements to make it more developer friendly:

  1. Keep compile unit cache by default. Use different build directories for different build types.
  2. Keep Cargo cache and Rust toolchain cache, so that dependencies don't need to be downloaded again and again.
  3. Respond correctly to Ctrl+C.
  4. Optional: Shrink the image size for easier hub downloading.

By using the Docker as the daily development toolchain, it will be also easier to upgrade the LLVM toolchain, without worrying about different developers have different OS that may not be able to install the toolchain.

Related:

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.

Research direction

Start by inspecting the existing Docker image and toolchain described as release-centos7-llvm, then review related pull request #5344. The work is done when daily development preserves compile-unit, Cargo, and Rust toolchain caches, handles Ctrl+C correctly, and optionally reduces image size.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, docker, rust
Domain
build-system, developer-experience, devops, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.