Pants v2: The ergonomic build system

Welcome to the Pants v2 documentation hub!

Pants v2 is a fast, scalable, user-friendly build system for growing codebases. It's currently focused on Python, with support for other languages coming soon.

Here you'll find guides to help you get started with Pants v2, comprehensive documentation on how to configure, run and customize Pants v2, and information on how to get help from the Pants community.

Get Started

shellcheck

A linter for shell scripts.

Config section: [shellcheck]

Basic options

skip

--[no-]shellcheck-skip
PANTS_SHELLCHECK_SKIP
default: False

Don't use Shellcheck when running `./pants lint`.


args

--shellcheck-args="[<shell_str>, <shell_str>, ...]"
PANTS_SHELLCHECK_ARGS
default: []

Arguments to pass directly to Shellcheck, e.g. `--shellcheck-args='-e SC20529'`.'


Advanced options

version

--shellcheck-version=<str>
PANTS_SHELLCHECK_VERSION
default: v0.7.1

Use this version of shellcheck.


known_versions

--shellcheck-known-versions="['<str>', '<str>', ...]"
PANTS_SHELLCHECK_KNOWN_VERSIONS
default:
[
  "v0.7.1|darwin|b080c3b659f7286e27004aa33759664d91e15ef2498ac709a452445d47e3ac23|1348272",
  "v0.7.1|linux|64f17152d96d7ec261ad3086ed42d18232fcb65148b44571b564d688269d36c8|1443836"
]

Known versions to verify downloads against.

Each element is a pipe-separated string of version|platform|sha256|length, where:

  • version is the version string
  • platform is one of [darwin,linux],
  • sha256 is the 64-character hex representation of the expected sha256
    digest of the download file, as emitted by shasum -a 256
  • length is the expected length of the download file in bytes, as emmitted by
    wc -c

E.g., 3.1.2|darwin|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813.

Values are space-stripped, so pipes can be indented for readability if necessary.


url_template

--shellcheck-url-template=<str>
PANTS_SHELLCHECK_URL_TEMPLATE
default: https://github.com/koalaman/shellcheck/releases/download/{version}/shellcheck-{version}.{platform}.x86\_64.tar.xz

URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a file:// URL.

Use {version} to have the value from --version substituted, and {platform} to have a value from --url-platform-mapping substituted in, depending on the current platform. For example, https://github.com/.../protoc-{version}-{platform}.zip.


url_platform_mapping

--shellcheck-url-platform-mapping="{'key1': val1, 'key2': val2, ...}"
PANTS_SHELLCHECK_URL_PLATFORM_MAPPING
default:
{
  "darwin": "darwin",
  "linux": "linux"
}

A dictionary mapping platforms to strings to be used when generating the URL to download the tool.

In --url-template, anytime the {platform} string is used, Pants will determine the current platform, and substitute {platform} with the respective value from your dictionary.

For example, if you define {&quot;darwin&quot;: &quot;apple-darwin&quot;, &quot;linux&quot;: &quot;unknown-linux&quot;}, and run Pants on Linux, then {platform}` will be substituted in the --url-template option with unknown-linux.


config_discovery

--[no-]shellcheck-config-discovery
PANTS_SHELLCHECK_CONFIG_DISCOVERY
default: True

If true, Pants will include all relevant `.shellcheckrc` and `shellcheckrc` files during runs. See https://www.mankier.com/1/shellcheck#RC_Files for where these can be located.


Deprecated options

None

Updated 15 days ago


shellcheck


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.