Pants is a scalable software build system. Pants orchestrates the various tools and steps that process your source code into deployable software: code generation, compilation/type checking, testing, linting, formatting, packaging and more.
Pants is useful for repos of all sizes, but is particularly relevant if you want to scale your codebase without breaking it up into multiple disconnected repos. Pants allows you to have a monorepo: a codebase containing multiple projects—often using multiple programming languages and frameworks—in a single unified repository.
Pants is designed for fast, consistent builds. Some noteworthy features include:
- Dependency modeling with minimal boilerplate.
- Fine-grained invalidation.
- Shared result caching.
- Concurrent execution.
- Remote execution.
- Unified interface for multiple tools and languages.
- Extensibility and customizability via a plugin API.
See here for details about the Pants engine.
Pants 1.x vs. 2.x
This documentation is for Pants v2, which is a ground-up redesign of Pants based on lessons from the past 10 years of development. See here for Pants v1 documentation, which includes support for Node, Go, Java, and Scala.
Updated 16 days ago