package
14.6.0+incompatible
Repository: https://github.com/thought-machine/please.git
Documentation: pkg.go.dev

# README

This directory holds the source code for Please itself (as opposed to the various tools it invokes which are in the tools directory, or built-in rules or tests etc).

A quick overview of the structure here:

  • build: Logic for actually building targets & managing incrementality
  • cache: The various cache implementations
  • clean: Logic for plz clean
  • cli: Support package for flags, logging, etc.
  • core: Central package with core data structures
  • export: Implementation of plz export
  • follow: Implementation of plz follow
  • fs: Filesystem operations
  • gc: Implementation of plz gc (garbage collection)
  • hashes: Implementation of plz hash (mostly hash updating)
  • ide: Implementation of plz ide
  • output: Logic for printing to terminal & showing interactive output
  • parse: Logic for parsing BUILD files
  • parse/asp: Lower-level parser implementation
  • plz: High-level logic to orchestrate a build
  • process: Subprocess control & monitoring
  • query: Implementation of the various plz query subcommands
  • remote: Higher-level interface to the remote execution API
  • run: Implementation of plz run
  • scm: Code for talking to the source control system (i.e. git)
  • test: Logic for testing targets, reading results & coverage
  • tool: Implementation of plz tool
  • update: Self-updating logic
  • utils: Utilities & poor code organisation :)
  • watch: Implementation of plz watch
  • worker: Code for handling background worker processes

# Packages

Package build houses the core functionality for actually building targets.
No description provided by the author
No description provided by the author
Package cli contains helper functions related to flag parsing and logging.
No description provided by the author
Package export handles exporting parts of the repo to other directories.
Package follow implements remote connections to other plz processes.
Package fs provides various filesystem helpers.
Package gc implements "garbage collection" logic for Please, which is an attempt to identify targets in the repo that are no longer needed.
No description provided by the author
Package help prints help messages about parts of plz.
No description provided by the author
No description provided by the author
Package parse implements parsing of the BUILD files via an embedded Python interpreter.
No description provided by the author
Package process implements generic subprocess management functions.
Package query implements a simple query language for Please.
Package remote provides our interface to the Google remote execution APIs (https://github.com/bazelbuild/remote-apis) which Please can use to distribute work to remote servers.
Package run implements the "plz run" command.
Package scm abstracts operations on various tools like git Currently, only git is supported.
No description provided by the author
Package tool implements running Please's sub-tools (via "plz tool jarcat" etc).
Package update contains code for Please auto-updating itself.
Package utils contains various utility functions and whatnot.
Package watch provides a filesystem watcher that is used to rebuild affected targets.
Package worker implements functions for communicating with subordinate worker processes.

# Functions

Please starts & runs the main build process through to its completion.

# Type aliases

ConfigOverrides are used to implement completion on the -o flag.