Pants 2.21.0 is released!
![](/assets/images/splash-9c743c6afd057dc6797e10c6ecfd834b.jpeg)
Photo by Joshua Kettle / Unsplash
We are pleased to announce Pants 2.21.0, the latest release of Pantsbuild, the scalable and ergonomic build system. To update, set pants_version = "2.21.0"
in your pants.toml
. If you're not using Pants yet, get started now.
Highlights in 2.21 include:
- ๐งช All backends now support
[test].attempts_default
- โก Pants internal manipulation of Python dependencies by way of Pex is now substantially faster in many cases.
- ๐ The
__defaults__
symbol will now set default values for generated targets too. For instance,__defaults__({python_source: dict(skip_black=True)})
will now apply to thepython_source
targets generated by a python_sources target, without having to write__defaults__({(python_source, python_sources): ...})
- โป When running in CI, Pants will output a command to rerun only the failed tests.
- ๐ All built in lockfiles are now Python 3.12 ready.
- ๐ก As part of regenerating lockfiles for Python 3.12, the default version of most builtin Python tools has been updated.
- ๐ณ The
cache_from
field ondocker_image
now supports multiple values. - ๐ The
experimental-deploy
goal now has built-in support for the--dry-run
option. - ๐ช Scalafix can now be run by Pants using the new
pants.backend.experimental.scala.lint.scalafix
backend. - ๐ And lots of smaller features, update, bugfixes, and general improvements
Check out the full release notes. Pants is an open-source project, and the changes are all contributed by our community. If you want to see something more in the next changelog, join us on GitHub and become a contributor.
We also offer formal sponsorship tiers for companies, as well as individual sponsorships via GitHub. These help pay for the ongoing development and hosting costs, and are managed by the Pants Build non-profit organization.
To see Pants in action, explore our example repositories:
- example-python
- example-adhoc
- example-codegen
- example-docker
- example-golang
- example-javascript
- example-jvm
- example-kotlin
- example-visibility
And let us know what you think in Slack!
Pants wouldn't be possible without everyone who contributed to 2.21.0, including everyone who shared feedback on changes and who tested release candidates! Thank you very much!