Five years in the making, Twitter has released the milestone version 1.0 of their Pants build tool. Occupying a similar space as popular build systems like Maven, Gradle, and Ant, Pants distinguishes itself with support for languages such as C/C++, Java, Python, and Scala. Twitter cites the need for scalability as the driving force behind Pants.
Some of the features introduced in this release include:
- An easier installation process (more details below).
- A redefined, consistent deprecation policy.
Twitter initiated the development of Pants when they discovered the build tools they were using at the time couldn’t scale to their growth they were experiencing. After two years of internally developing Pants for their own use, Twitter contributed Pants to the open source community.
Pants addresses the challenges of maintaining code in a single, large repository (also known as a “monorepo”). Performance of a complex build can quickly degrade if the version control system and build tool aren’t scalable to meet growth. Pants can build a large monorepo, by employing features such as fine-grained dependency management, concurrent task execution, and incremental compilation. Many other popular build systems weren’t designed for this purpose.
Pants can be integrated into existing Java projects, because it recognizes standard source and testing directory naming conventions such as Gradle’s src/main/java and src/test/java. For developers interested in migrating from Maven to Pants, there are instructions on their website. IntelliJ IDEA users will appreciate the Pants plug-in for the popular IDE.
Pants can be installed in the root folder of any new or existing project as follows:
curl -L -O https://pantsbuild.github.io/setup/pants && chmod +x pants && touch pants.ini
This installation automatically establishes a local executable of Pants with the appropriate permissions and creates an empty pants.ini file ready for editing.
Despite the fact that there is no support for Windows OS, the Pants community is committed to supporting developers using Linux and Mac OS X getting started with Pants. There are several ways that developers can contribute to the project or request help, namely:
- pants-devel mailing list
- Slack (#general)
- StackOverflow (#pants)
- Github issue tracker