Please quickstart

System requirements

Please supports Linux, macOS and FreeBSD at the moment. The included build rules require core utils and aim to be portable between recent distributions of these platforms.

Installing

curl https://get.please.build | bash

This will download and install the latest version of Please on your system.
It also adds itself to your PATH; you may need to source ~/.bashrc or source ~/.zshrc after install to get that updated.

If you're using Homebrew, you can install using that:

    
    
    brew tap thought-machine/please
    brew install please
    
  

Finally, if you'd prefer more manual installation, grab a tarball off our releases page and extract it yourself; it normally lives in ~/.please but you can put it where you want.

See here for information if you'd like to verify signatures of the download before running.

When you run plz init, Please will create a pleasew script in the repository root which can subsequently be used to download and run please.

Shell completion

Please comes with a completion script for Bash and zsh built-in.

You can produce it by running plz --completion_script. This is handy to add to your .bashrc or .zshrc, for example:

    
    
    source <(plz --completion_script)
    
  

The script will complete subcommands and flags but most relevantly can also complete build labels by reading BUILD files for you.

BUILD file Language Protocol Server

Please ships with a language server for build files. It follows the language server protocol from VS Code.

To use LPS, simply download the language server protocol plugin for your favourite editor, and run the binary with the command plz tool lps.

Currently LPS supports auto-completion (this works with build labels too!), hover, goto definition, diagnostics, signature help, auto-formatting and references.

Getting started

Run plz init at the root of your repo to create the .plzconfig file. There are many options that can be configured in this file but you can worry about them later - the defaults should be fine to begin with.

Once you have your .plzconfig, you can run plz init plugin [plugin] which will pull in a plugin for you with language-specific build rules. See plugins for more information on how to do this and what plugins are available.

More info

If you want more information on Please, you can raise issues on Github or catch us on Gitter to ask questions.