Pants 1.0 Release
Posted May 1, 2016
The Pants project is proud to announce the 1.0 release of the Pants Build System. Pants is a build system for software projects in a variety of languages. Although in use for years in production environments at Twitter, Foursquare, and Square, we have now packaged the tool in such a way to make it easier to install, configure and customize. You can try installing it today with a single command.
Pants is designed to work well with a large repository consisting of many smaller projects that share many library dependencies (also known as a monorepo).
Today Pants ships with support for working with:
Official plugins additionally support:
Major features of Pants include:
- Consistent reproducible builds
- Fingerprinting based on file contents, not filesystem timestamps
- A coherent, consistent build cache
- Support for a distributed build cache using REST servers or NFS
- Integration with IDEs such as IntelliJ
- Incremental build support, including optimizations for fast Scala builds
- A modular extension system based on Python
- Support for bundled python applications using PEX
- Integration with external python and JVM artifact repositories using PEX and Ivy
- Bootstraps from a single install script
Although Pants has a long track record in the build environment of some companies, the 1.0 release represents a milestone where we believe the tool is ready for general use. Pants releases are now distributed through PYPI, the public Python module repository. Installation is simple and bootstraps all the tools you need. A powerful, modular options system allows you to control many aspects of Pants' execution. Integration with Python and JVM repositories is robust and mature.
Although Pants ships with enough functionality out of the box to power builds for a large enterprise, you may want to develop your own features. The Pants 1.0 release branch will maintain a stable set of interfaces for module developers and command line use. Like Pants itself, pluggable third party modules can be shared through PYPI. Non breaking improvements will be accepted into the 1.0 release branch. Additional features are already in the works and planned for future releases.
About the Pants OSS Project
The Pants open source project is inspired by the Google internal build system known as Blaze, now available as the Bazel open source project. It is used today to support monorepo style development in many organizations. The tool was born as an internal project at Twitter in 2010, and was distributed alongside the twitter-commons library. In 2012, Foursquare picked up the tool and helped lead Pants development. In 2014, Pants became a standalone open source project on github with intense collaboration from developers at Twitter, Foursquare, and Square and other companies. Today Pants is supported by a thriving open source community with contributions from over 100 authors. To learn how you can join this community, see the Pants build website.