Today, Twitter is excited to announce participation in the first major release of the Pants open source project: 1.0.0, an open source build tool for monorepo-style source repositories. After more than five years of development, this significant milestone has greatly improved the project, and we invite you to test out this new and improved experience. Pants 1.0.0 provides a better user experience with:
Pants at Twitter
Before 2010, Twitter experienced a growing codebase that existing open source tools like ant and maven were unable to scale up to. In 2010, former Twitter engineer John Sirois began to develop Pants in order to address those scalability problems. Pants was open-sourced in 2012 under the Apache 2.0 license.
Currently, Twitter uses Pants in its internal monorepo for building and testing internal code. Twitter remains committed to developing Pants and will continue to work with the community to improve performance, enhance support for mobile development, and solidify Pants as a best-in-class build tool.
In addition to having a distributed cache, great subtarget incremental build performance, and support for a diverse set of languages, Pants also integrates well with Twitter developers’ workflow. Many developers at Twitter use IntelliJ and the IntelliJ Pants plugin imports Pants projects in a way IntelliJ understands and also provides compile/test assistance based on IntelliJ’s understanding of the project structure.
Why we use Pants
There are several monorepo-style tools available today, including Buck, Bazel, and more. When Pants was first developed, these tools were still closed source. Because there were no other tools available that fit Twitter’s needs, we wrote our own.
Today, Pants is an excellent choice for a monorepo-style build tool. We have a great open source community with an active Slack channel and mailing list, that includes participants across several companies. Pants also scales favorably when compared to other tools for larger targets because of its support for partial-target incremental builds for the JVM, which can make Pants significantly easier to adopt when compared to tools with strict requirements on target size.
The development continues
We’re dedicated to continually enhancing the Pants user experience, performance and build reproducibility. To learn more and get involved, join the conversation.
Pants documentation: http://www.pantsbuild.org/
Github repo: https://github.com/pantsbuild/pants