Initial configuration
Creating the initial pants.toml
config file.
Pants has a robust options system, allowing you to configure hundreds of options. Every Pants option can be set via a command-line flag, an environment variable, or, most commonly, a config file.
The options system is described in detail here. This page will set up your initial Pants config file.
Creating the config file
Pants configuration lives in a file called pants.toml
in the root of the repo. This file uses the TOML format.
If you haven't yet, create a pants.toml
file:
[GLOBAL]
pants_version = "$PANTS_VERSION"
where $PANTS_VERSION
is the version of Pants you want to pin your repo to. When you'd like to upgrade Pants, edit pants_version
and the ./pants
script will self-update on the next run.
Configuring source roots
Some project layouts use top-level folders for namespace purposes, but have the code live underneath. However, the code's imports will ignore these top-level folders, thanks to mechanisms like the $PYTHONPATH
, the JVM classpath, and the $GOROOT
. For example, to import the file src/my_project/app.py
, many projects use import my_project.app
, rather than import src.my_project.app
. Source roots are how Pants understands these imports.
By default, Pants recognizes having no source root, or having src
, src/python
, or src/py
as source roots. If your project has a different structure, see Source roots for how to configure them, and for examples of different project structures with Pants.
Enabling Backends
Most Pants functionality is provided via pluggable backends. You enable a backend by listing it under the backend_packages
config key in pants.toml
.
For example, to enable Python support:
[GLOBAL]
...
backend_packages = ["pants.backend.python"]