CI/CD Featured Better CI/CD caching with Pants Pants is designed to utilize fine-grained caching to speed up builds. Users are often interested in how this interacts with CI providers' own caching features, which are necessary since CI jobs typically run in fresh containers, with no direct access to previous state. In particular, we get questions about how
Language Support > JVM Featured Pants 2.12: Improved performance for common cases, IDE support for Java and Scala We're pleased to announce Pants 2.12.0 [https://www.pantsbuild.org/v2.12/docs], the latest release of Pants: the scalable and ergonomic build system. To update, set pants_version = "2.12.0" in your pants.toml. See upgrade tips [https://www.pantsbuild.org/docs/upgrade-tips] for more information.
Under The Hood How we streamlined Apple M1 Support with self-hosted Github Actions runners We ended up setting up a self-hosted GitHub Actions runner, on a hosted Mac M1. Getting the machine itself up and running was easy, thanks to MacStadium's simple, effective UX. But setting up the GHA runner on it was a little trickier, for a couple of reasons...
Concepts Multiple lockfiles in Python repos Rather than forcing global or per-project lockfiles, Pants uses a hybrid approach...This allows a repo to operate with the minimum number of lockfiles required to support their conflicting library versions, without necessarily going to the costly extreme of per-project lockfiles.
Release Announcements Featured Pants 2.11 adds Go Protobuf codegen, Pex lockfiles for Python, and parametrization We're pleased to announce Pants 2.11.0, the latest release of Pantsbuild, the scalable and ergonomic build system. To update, set pants_version = "2.11.0" in your pants.toml. See upgrade tips [https://www.pantsbuild.org/docs/upgrade-tips], including the update-build-files goal to automate some of the upgrade.
Under The Hood Talk Notes: PyCon US 2022 – Hermetic Environments in Pantsbuild On Sunday 1 May 2022, Pants Maintainer, Christopher Neugebauer gave a talk about Pantsbuild's hermetic environments. Here are some useful resources: * Example Python repo [https://github.com/pantsbuild/example-python] — the codebase where you can run the demos from the start of the talk. * Stu Hood – Faster incremental builds with Speculation
Release Announcements Featured Pants 2.10 adds multiple Python lockfile support, PyOxidizer, Thrift codegen, and better linter parallelization We're pleased to announce Pants 2.10.0, the latest release of Pantsbuild, the scalable and ergonomic build system. To update, set pants_version = "2.10.0" in your pants.toml. See upgrade tips [https://www.pantsbuild.org/docs/upgrade-tips], including the update-build-files goal to automate some of the upgrade.
Community The 2022 annual community survey is a wrap, and the results are in! We recently conducted our annual survey [https://groups.google.com/g/pants-devel/c/UFt3Os--6ps/m/FCjGTnlRBQAJ] of the Pants community. The purpose, as usual, was to inform the project roadmap for the year. The survey proceeded in two phases: First, we gathered all the potential projects and needs from the
Concepts Effective monorepos with Pants Working effectively in a monorepo requires appropriate tooling. While Pants can be a really useful system in repos of all sizes and architectures, it has some features that make it particularly appealing in a monorepo setting…
Concepts The monorepo approach to code management If you’re responsible for your organization’s codebase architecture, then at some point you have to make some emphatic choices about how to manage this growth in a scalable way. There are two common architectural alternatives to choose from...
Codegen Pants 2.10 adds Apache Thrift support for Python Pants's codegen support solves one of the biggest problems with code generation: how to make sure that local developers, CI, and production are using the same generated code?
Community > Meet the Team Meet our newest Maintainer: Alexey Tereshenkov This month, the Pants core maintainers voted to invite Alexey Tereshenkov to become a Maintainer. This is a trusted role earned through demonstrating a long-term interest in Pants, by people who make regular contributions for some time and who plan to continue to do so. Maintainers conduct code reviews of
Language Support > Python Packaging Python with the PyOxidizer Pants Plugin Alliterations aside, this post discusses the new PyOxidizer integration coming in Pants 2.10 for packaging Python applications.
Language Support > Python Choosing a Python interpreter for a Pants project Choosing a compatible Python interpreter carefully is important not only for developers, but for the Pants repository administrators as well. Developers using Pants build system in their project may see various errors and have different behaviors depending on the Python interpreter...
Community > Meet the Team Meet our newest Maintainer: Joshua Cannon The Pants Maintainers [https://www.pantsbuild.org/docs/maintainers] are a group of people with an ongoing commitment to Pants, who help manage and steer the project. Maintainers are a subgroup within the wider Contributor [https://www.pantsbuild.org/docs/the-pants-community#contributors] population. I'm very pleased to introduce the latest
Language Support > JVM Featured Pants 2.9: Alpha support for Java and Scala, improvements for Docker and Go, and more We're pleased to announce [Pants 2.9.0](https://www.pantsbuild.org/v2.9/docs), the latest release of Pants: the scalable and ergonomic build system!
Community You can call us Pantsbuild (or Pants, whichever you prefer) As more and more people start using and discovering Pants, we’ve discovered that it’s difficult to talk about the tool without introducing it as The Pants Build System, which isn’t very snappy or easy to remember. Especially in titles of posts or in tweets without that much
Getting Started Updating Pants BUILD files programmatically Introduction Working with a monorepository implies dealing with build metadata files that provide information about the source code and how it should be built. Pants build system uses BUILD files which are valid Python files and are evaluated using a Python interpreter as a list of statements. When adding support
Community Happy new year! Hi Pants community, 2021 was another massive year for the project, even as the pandemic continued to disrupt our lives in so many challenging ways. We grew our Python user base significantly, engaged in critical developer relations [https://www.pantsbuild.org/docs/media] efforts, gained new community members, including several
Getting Started Docs improvements We've added a spate of new pages in recent months, plus Eric Arellano just completed a thorough audit of the docs which resulted in overhauling several pages. So if you haven't checked all of these out docs pages recently, give 'em a read or re-visit: Overhauled Getting Started * Key concepts
Language Support > JVM Automatically unlocking concurrent builds and fine-grained caching on the JVM with dependency inference We’ve been busy working on JVM support for the open source Pants Build system, starting with support for Java and Scala. We’re excited about the progress we’ve made with Java support, and we want to share with you some of the more exciting work we’ve done.
Getting Started Featured Pants vs. Bazel: Why Pants may be the right choice for your team Many considerations go into evaluating and adopting a new build system: performance, scalability language and framework support, ease of adoption and use, extensibility, compatibility with existing practices, and more.…
Release Announcements Featured Pants 2.8 adds Autoflake & Pyupgrade, Docker publishing, Golang, and Google Cloud Functions Pants 2.8 adds Autoflake & Pyupgrade, Docker publishing, Golang, PEP 517 publishing, and Google Cloud Functions
Release Announcements Pants 2.8 adds experimental Golang support Why Pants for Golang? A consistent interface for all languages & tools, integration with Git + advanced project introspection, and remote caching and execution. All with minimal boilerplate.
Language Support > Python Pants supports PEP 517 > TL;DR The upcoming Pants 2.8 release has greatly improved support [https://www.pantsbuild.org/v2.8/docs/python-distributions] for packaging Python distributions (sdists and wheels), including native extensions, by leveraging PEP 517. Pants has industry-leading support for Python builds - covering steps such as resolving 3rd-party dependencies, running