/focus

Primary LanguageRustApache License 2.0Apache-2.0

Focused Development

focus is a tool to manage Git sparse checkouts derived from the Bazel build graph.

Installation

focus is written in Rust and supports macOS and Linux. Git v2.35+ and Bazel need to be installed in the PATH env.

MacOS Prerequisites

Install Bazel

Install git > 2.35

WARN: If you run a cargo test you may run out of file descriptors. On MacOS you will need to use ulimit -n X to set a large file limit for the current shell.

TODO: Find instructions for increasing fd limit permanently.

Linux Prerequisites

TODO: Install Prerequisites for Linux

Common

Install Rust, then install focus with

$ cargo install --locked --git https://github.com/twitter/focus

Usage

If you are the repository administrator, first configure focus for your repo using the Administration instructions.

For end-users, see Usage for instructions on how to use focus to manage your sparse checkouts.

For new or curious users, see Bazel Tutorial for instructions on how to try focus on the bazel repository itself.

Design

See various design documents at https://github.com/twitter/focus/tree/main/focus/doc. Focus was presented at Git Merge 2022; see the slides here.