Global options
Options to control the overall behavior of Pants.
Backend: pants.core
Config section: [GLOBAL]
Basic options
level
-l=<LogLevel>, --level=<LogLevel>
PANTS_LEVEL
trace, debug, info, warn, error
default:
info
Set the logging level.
colors
--[no-]colors
PANTS_COLORS
False
Whether Pants should use colors in output or not. This may also impact whether some tools Pants run use color.
spec_files
--spec-files="['<str>', '<str>', ...]"
PANTS_SPEC_FILES
[]
Read additional specs (target addresses, files, and/or globs), one per line,from these files.
dynamic_ui
--[no-]dynamic-ui
PANTS_DYNAMIC_UI
True
Display a dynamically-updating console UI as Pants runs. This is true by default if Pants detects a TTY and there is no 'CI' environment variable indicating that Pants is running in a continuous integration environment.
tag
--tag="[[+-]tag1,tag2,..., [+-]tag1,tag2,..., ...]"
PANTS_TAG
[]
Include only targets with these tags (optional '+' prefix) or without these tags ('-' prefix). See https://www.pantsbuild.org/v2.2/docs/advanced-target-selection.
exclude_target_regexp
--exclude-target-regexp="[<regexp>, <regexp>, ...]"
PANTS_EXCLUDE_TARGET_REGEXP
[]
Exclude targets that match these regexes. This does not impact file arguments.
loop
--[no-]loop
PANTS_LOOP
False
Run goals continuously as file changes are detected. Alpha feature.
Advanced options
backend_packages
--backend-packages="['<str>', '<str>', ...]"
PANTS_BACKEND_PACKAGES
[]
Register functionality from these backends.
The backend packages must be present on the PYTHONPATH, typically because they are in the Pants core dist, in a plugin dist, or available as sources in the repo.
plugins
--plugins="['<str>', '<str>', ...]"
PANTS_PLUGINS
[]
Allow backends to be loaded from these plugins (usually released through PyPI). The default backends for each plugin will be loaded automatically. Other backends in a plugin can be loaded by listing them in backend_packages
in the [GLOBAL]
scope.
plugins_force_resolve
--[no-]plugins-force-resolve
PANTS_PLUGINS_FORCE_RESOLVE
False
Re-resolve plugins, even if previously resolved.
plugin_cache_dir
--plugin-cache-dir=<str>
PANTS_PLUGIN_CACHE_DIR
$XDG_CACHE_HOME/pants/plugins
Cache resolved plugin requirements here.
show_log_target
--[no-]show-log-target
PANTS_SHOW_LOG_TARGET
False
Display the target where a log message originates in that log message's output. This can be helpful when paired with --log-levels-by-target.
log_levels_by_target
--log-levels-by-target="{'key1': val1, 'key2': val2, ...}"
PANTS_LOG_LEVELS_BY_TARGET
{}
Set a more specific logging level for one or more logging targets. The names of logging targets are specified in log strings when the --show-log-target option is set. The logging levels are one of: "error", "warn", "info", "debug", "trace". All logging targets not specified here use the global log level set with --level. For example, you can set --log-levels-by-target='{"workunit_store": "info", "pants.engine.rules": "warn"}'
.
log_show_rust_3rdparty
--[no-]log-show-rust-3rdparty
PANTS_LOG_SHOW_RUST_3RDPARTY
False
Whether to show/hide logging done by 3rdparty Rust crates used by the Pants engine.
ignore_pants_warnings
--ignore-pants-warnings="['<str>', '<str>', ...]"
PANTS_IGNORE_PANTS_WARNINGS
[]
Regexps matching warning strings to ignore, e.g. ["DEPRECATED: the option --my-opt
will be removed"]. The regex patterns will be matched from the start of the warning string, and are case-insensitive.
pants_version
--pants-version=<str>
PANTS_VERSION
2.2.4
Use this Pants version. Note that Pants only uses this to verify that you are using the requested version, as Pants cannot dynamically change the version it is using once the program is already running.
If you use the ./pants
script from https://www.pantsbuild.org/v2.2/docs/installation, however, changing the value in your pants.toml
will cause the new version to be installed and run automatically.
Run ./pants --version
to check what is being used.
pants_bin_name
--pants-bin-name=<str>
PANTS_BIN_NAME
./pants
The name of the script or binary used to invoke Pants. Useful when printing help messages.
pants_workdir
--pants-workdir=<dir>
PANTS_WORKDIR
<buildroot>/.pants.d
Write intermediate logs and output files to this dir.
pants_physical_workdir_base
--pants-physical-workdir-base=<dir>
PANTS_PHYSICAL_WORKDIR_BASE
None
When set, a base directory in which to store --pants-workdir
contents. If this option is a set, the workdir will be created as symlink into a per-workspace subdirectory.
pants_supportdir
--pants-supportdir=<dir>
PANTS_SUPPORTDIR
<buildroot>/build-support
Unused. Will be deprecated in 2.2.0.
pants_distdir
--pants-distdir=<dir>
PANTS_DISTDIR
<buildroot>/dist
Write end products, such as the results of ./pants package
, to this dir.
pants_subprocessdir
--pants-subprocessdir=<str>
PANTS_SUBPROCESSDIR
<buildroot>/.pids
The directory to use for tracking subprocess metadata. This should live outside of the dir used by pants_workdir
to allow for tracking subprocesses that outlive the workdir data.
pants_config_files
--pants-config-files="['<str>', '<str>', ...]"
PANTS_CONFIG_FILES
["/tmp/tmp.MpwSc5OGVo/pants.toml"]
Paths to Pants config files. This may only be set through the environment variable PANTS_CONFIG_FILES
and the command line argument --pants-config-files
; it will be ignored if in a config file like pants.toml
.
pantsrc
--[no-]pantsrc
PANTS_PANTSRC
True
Use pantsrc files located at the paths specified in the global option pantsrc_files
.
pantsrc_files
--pantsrc-files="[<path>, <path>, ...]"
PANTS_PANTSRC_FILES
[ "/etc/pantsrc", "~/.pants.rc" ]
Override config with values from these files, using syntax matching that of --pants-config-files
.
pythonpath
--pythonpath="['<str>', '<str>', ...]"
PANTS_PYTHONPATH
[]
Add these directories to PYTHONPATH to search for plugins. This does not impact the PYTHONPATH used by Pants when running your Python code.
verify_config
--[no-]verify-config
PANTS_VERIFY_CONFIG
True
Verify that all config file values correspond to known options.
pants_ignore
--pants-ignore="['<str>', '<str>', ...]"
PANTS_IGNORE
[ ".*/", "/dist/" ]
Paths to ignore for all filesystem operations performed by pants (e.g. BUILD file scanning, glob matching, etc). Patterns use the gitignore syntax (https://git-scm.com/docs/gitignore). The pants_distdir
and pants_workdir
locations are automatically ignored. pants_ignore
can be used in tandem with pants_ignore_use_gitignore
; any rules specified here are applied after rules specified in a .gitignore file.
pants_ignore_use_gitignore
--[no-]pants-ignore-use-gitignore
PANTS_IGNORE_USE_GITIGNORE
True
Make use of a root .gitignore file when determining whether to ignore filesystem operations performed by Pants. If used together with --pants-ignore
, any exclude/include patterns specified there apply after .gitignore rules.
logdir
-d=<dir>, --logdir=<dir>
PANTS_LOGDIR
None
Write logs to files under this directory.
pantsd
--[no-]pantsd
PANTS_PANTSD
True
Enables use of the Pants daemon (pantsd). pantsd can significantly improve runtime performance by lowering per-run startup cost, and by memoizing filesystem operations and rule execution.
concurrent
--[no-]concurrent
PANTS_CONCURRENT
False
Enable concurrent runs of Pants. Without this enabled, Pants will start up all concurrent invocations (e.g. in other terminals) without pantsd. Enabling this option requires parallel Pants invocations to block on the first
pantsd_timeout_when_multiple_invocations
--pantsd-timeout-when-multiple-invocations=<float>
PANTS_PANTSD_TIMEOUT_WHEN_MULTIPLE_INVOCATIONS
60.0
The maximum amount of time to wait for the invocation to start until raising a timeout exception. Because pantsd currently does not support parallel runs, any prior running Pants command must be finished for the current one to start. To never timeout, use the value -1.
pantsd_max_memory_usage
--pantsd-max-memory-usage=<int>
PANTS_PANTSD_MAX_MEMORY_USAGE
1073741824
The maximum memory usage of a pantsd process (in bytes). There is at most one pantsd process per workspace.
print_stacktrace
--[no-]print-stacktrace
PANTS_PRINT_STACKTRACE
False
Print the full exception stack trace for any errors.
native_engine_visualize_to
--native-engine-visualize-to=<dir_option>
PANTS_NATIVE_ENGINE_VISUALIZE_TO
None
A directory to write execution and rule graphs to as dot
files. The contents of the directory will be overwritten if any filenames collide.
pantsd_pailgun_port
--pantsd-pailgun-port=<int>
PANTS_PANTSD_PAILGUN_PORT
0
The port to bind the Pants nailgun server to. Defaults to a random port.
pantsd_invalidation_globs
--pantsd-invalidation-globs="['<str>', '<str>', ...]"
PANTS_PANTSD_INVALIDATION_GLOBS
[]
Filesystem events matching any of these globs will trigger a daemon restart. Pants's own code, plugins, and --pants-config-files
are inherently invalidated.
rule_threads_core
--rule-threads-core=<int>
PANTS_RULE_THREADS_CORE
32
The number of threads to keep active and ready to execute @rule
logic (see also: --rule-threads-max
). Values less than 2 are not currently supported. This value is independent of the number of processes that may be spawned in parallel locally (controlled by --process-execution-local-parallelism
).
rule_threads_max
--rule-threads-max=<int>
PANTS_RULE_THREADS_MAX
None
The maximum number of threads to use to execute @rule
logic. Defaults to a small multiple of --rule-threads-core
.
local_store_dir
--local-store-dir=<str>
PANTS_LOCAL_STORE_DIR
$XDG_CACHE_HOME/pants/lmdb_store
Directory to use for the local file store, which stores the results of subprocesses run by Pants. The path may be absolute or relative. If the directory is within the build root, be sure to include it in --pants-ignore
.
named_caches_dir
--named-caches-dir=<str>
PANTS_NAMED_CACHES_DIR
$XDG_CACHE_HOME/pants/named_caches
Directory to use for named global caches for tools and processes with trusted, concurrency-safe caches. The path may be absolute or relative. If the directory is within the build root, be sure to include it in --pants-ignore
.
local_execution_root_dir
--local-execution-root-dir=<str>
PANTS_LOCAL_EXECUTION_ROOT_DIR
/tmp
Directory to use for local process execution sandboxing. The path may be absolute or relative. If the directory is within the build root, be sure to include it in --pants-ignore
.
process_execution_use_local_cache
--[no-]process-execution-use-local-cache
PANTS_PROCESS_EXECUTION_USE_LOCAL_CACHE
True
Whether to keep process executions in a local cache persisted to disk.
process_execution_cleanup_local_dirs
--[no-]process-execution-cleanup-local-dirs
PANTS_PROCESS_EXECUTION_CLEANUP_LOCAL_DIRS
True
Whether or not to cleanup directories used for local process execution (primarily useful for e.g. debugging).
ca_certs_path
--ca-certs-path=<str>
PANTS_CA_CERTS_PATH
None
Path to a file containing PEM-format CA certificates used for verifying secure connections when downloading files required by a build.
process_execution_local_parallelism
--process-execution-local-parallelism=<int>
PANTS_PROCESS_EXECUTION_LOCAL_PARALLELISM
64
Number of concurrent processes that may be executed locally.
process_execution_remote_parallelism
--process-execution-remote-parallelism=<int>
PANTS_PROCESS_EXECUTION_REMOTE_PARALLELISM
128
Number of concurrent processes that may be executed remotely.
process_execution_cache_namespace
--process-execution-cache-namespace=<str>
PANTS_PROCESS_EXECUTION_CACHE_NAMESPACE
None
The cache namespace for process execution. Change this value to invalidate every artifact's execution, or to prevent process cache entries from being (re)used for different usecases or users.
process_execution_speculation_delay
--process-execution-speculation-delay=<float>
PANTS_PROCESS_EXECUTION_SPECULATION_DELAY
1.0
Number of seconds to wait before speculating a second request for a slow process. see --process-execution-speculation-strategy
process_execution_speculation_strategy
--process-execution-speculation-strategy=<str>
PANTS_PROCESS_EXECUTION_SPECULATION_STRATEGY
remote_first, local_first, none
default:
none
Speculate a second request for an underlying process if the first one does not complete within --process-execution-speculation-delay
seconds.
local_first
(default): Try to run the process locally first, and fall back to remote execution if available.
remote_first
: Run the process on the remote execution backend if available, and fall back to the local host if remote calls take longer than the speculation timeout.
none
: Do not speculate about long running processes.
process_execution_local_enable_nailgun
--[no-]process-execution-local-enable-nailgun
PANTS_PROCESS_EXECUTION_LOCAL_ENABLE_NAILGUN
False
Whether or not to use nailgun to run the requests that are marked as nailgunnable.
remote_execution
--[no-]remote-execution
PANTS_REMOTE_EXECUTION
False
Enables remote workers for increased parallelism. (Alpha)
remote_cache_read
--[no-]remote-cache-read
PANTS_REMOTE_CACHE_READ
False
Whether to enable reading from a remote cache
remote_cache_write
--[no-]remote-cache-write
PANTS_REMOTE_CACHE_WRITE
False
Whether to enable writing results to a remote cache
remote_store_server
--remote-store-server="['<str>', '<str>', ...]"
PANTS_REMOTE_STORE_SERVER
[]
host:port of grpc server to use as remote execution file store.
remote_store_thread_count
--remote-store-thread-count=<int>
PANTS_REMOTE_STORE_THREAD_COUNT
1
Thread count to use for the pool that interacts with the remote file store.
remote_execution_server
--remote-execution-server=<str>
PANTS_REMOTE_EXECUTION_SERVER
None
host:port of grpc server to use as remote execution scheduler.
remote_store_chunk_bytes
--remote-store-chunk-bytes=<int>
PANTS_REMOTE_STORE_CHUNK_BYTES
1048576
Size in bytes of chunks transferred to/from the remote file store.
remote_store_chunk_upload_timeout_seconds
--remote-store-chunk-upload-timeout-seconds=<int>
PANTS_REMOTE_STORE_CHUNK_UPLOAD_TIMEOUT_SECONDS
60
Timeout (in seconds) for uploads of individual chunks to the remote file store.
remote_store_rpc_retries
--remote-store-rpc-retries=<int>
PANTS_REMOTE_STORE_RPC_RETRIES
2
Number of times to retry any RPC to the remote store before giving up.
remote_store_connection_limit
--remote-store-connection-limit=<int>
PANTS_REMOTE_STORE_CONNECTION_LIMIT
5
Number of remote stores to concurrently allow connections to.
remote_store_initial_timeout
--remote-store-initial-timeout=<int>
PANTS_REMOTE_STORE_INITIAL_TIMEOUT
10
Initial timeout (in milliseconds) when there is a failure in accessing a remote store.
remote_store_timeout_multiplier
--remote-store-timeout-multiplier=<float>
PANTS_REMOTE_STORE_TIMEOUT_MULTIPLIER
2.0
Multiplier used to increase the timeout (starting with value of --remote-store-initial-timeout) between retry attempts in accessing a remote store.
remote_store_maximum_timeout
--remote-store-maximum-timeout=<int>
PANTS_REMOTE_STORE_MAXIMUM_TIMEOUT
10
Maximum timeout (in millseconds) to allow between retry attempts in accessing a remote store.
remote_instance_name
--remote-instance-name=<str>
PANTS_REMOTE_INSTANCE_NAME
None
Name of the remote execution instance to use. Used for routing within --remote-execution-server and --remote-store-server.
remote_ca_certs_path
--remote-ca-certs-path=<str>
PANTS_REMOTE_CA_CERTS_PATH
None
Path to a PEM file containing CA certificates used for verifying secure connections to --remote-execution-server and --remote-store-server. If not specified, TLS will not be used.
remote_oauth_bearer_token_path
--remote-oauth-bearer-token-path=<str>
PANTS_REMOTE_OAUTH_BEARER_TOKEN_PATH
None
Path to a file containing an oauth token to use for grpc connections to --remote-execution-server and --remote-store-server. If not specified, no authorization will be performed.
remote_execution_extra_platform_properties
--remote-execution-extra-platform-properties="['<str>', '<str>', ...]"
PANTS_REMOTE_EXECUTION_EXTRA_PLATFORM_PROPERTIES
[]
Platform properties to set on remote execution requests. Format: property=value. Multiple values should be specified as multiple occurrences of this flag. Pants itself may add additional platform properties.
remote_execution_headers
--remote-execution-headers="{'key1': val1, 'key2': val2, ...}"
PANTS_REMOTE_EXECUTION_HEADERS
{}
Headers to set on remote execution requests. Format: header=value. Pants itself may add additional headers.
remote_execution_overall_deadline_secs
--remote-execution-overall-deadline-secs=<int>
PANTS_REMOTE_EXECUTION_OVERALL_DEADLINE_SECS
3600
Overall timeout in seconds for each remote execution request from time of submission
files_not_found_behavior
--files-not-found-behavior=<FilesNotFoundBehavior>
PANTS_FILES_NOT_FOUND_BEHAVIOR
warn, error
default:
warn
What to do when files and globs specified in BUILD files, such as in the sources
field, cannot be found. This happens when the files do not exist on your machine or when they are ignored by the --pants-ignore
option.
owners_not_found_behavior
--owners-not-found-behavior=<OwnersNotFoundBehavior>
PANTS_OWNERS_NOT_FOUND_BEHAVIOR
ignore, warn, error
default:
error
What to do when file arguments do not have any owning target. This happens when there are no targets whose sources
fields include the file argument.
build_patterns
--build-patterns="['<str>', '<str>', ...]"
PANTS_BUILD_PATTERNS
[ "BUILD", "BUILD.*" ]
The naming scheme for BUILD files, i.e. where you define targets. This only sets the naming scheme, not the directory paths to look for. To add ignorepatterns, use the option --build-ignore
.
build_ignore
--build-ignore="['<str>', '<str>', ...]"
PANTS_BUILD_IGNORE
[]
Paths to ignore when identifying BUILD files. This does not affect any other filesystem operations; use --pants-ignore
for that instead. Patterns use the gitignore pattern syntax (https://git-scm.com/docs/gitignore).
build_file_prelude_globs
--build-file-prelude-globs="['<str>', '<str>', ...]"
PANTS_BUILD_FILE_PRELUDE_GLOBS
[]
Python files to evaluate and whose symbols should be exposed to all BUILD files. See https://www.pantsbuild.org/v2.2/docs/macros.
subproject_roots
--subproject-roots="['<str>', '<str>', ...]"
PANTS_SUBPROJECT_ROOTS
[]
Paths that correspond with build roots for any subproject that this project depends on.
loop_max
--loop-max=<int>
PANTS_LOOP_MAX
4294967296
The maximum number of times to loop when --loop
is specified.
streaming_workunits_report_interval
--streaming-workunits-report-interval=<float>
PANTS_STREAMING_WORKUNITS_REPORT_INTERVAL
1.0
Interval in seconds between when streaming workunit event receivers will be polled.
Deprecated options
pants_bootstrapdir
--pants-bootstrapdir=<dir>
PANTS_BOOTSTRAPDIR
None
Unused.
pants_configdir
--pants-configdir=<dir>
PANTS_CONFIGDIR
None
Unused.
pantsd_pailgun_quit_timeout
--pantsd-pailgun-quit-timeout=<float>
PANTS_PANTSD_PAILGUN_QUIT_TIMEOUT
5.0
The length of time (in seconds) to wait for further output after sending a signal to the remote pantsd process before killing it.
streaming_workunits_handlers
--streaming-workunits-handlers="['<str>', '<str>', ...]"
PANTS_STREAMING_WORKUNITS_HANDLERS
[]
Use this option to name Subsystems which will receive streaming workunit events. For instance, --streaming-workunits-handlers="['pants.reporting.workunit.Workunits']"
will register a Subsystem called Workunits defined in the module "pants.reporting.workunit".