Skip to main content

Pants 2.21.0 is released!

ยท 2 min read
Chris Burroughs

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 the python_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 on docker_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:

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!