Skip to main content

Pants is an Apache2 licensed build tool written in Python and Rust.

The latest documentation can be found at pantsbuild.org.

2.9.x Release Series

2.9.0 (Jan 12, 2022)

The first stable release of the 2.9.x series, with no changes since the previous rc!

2.9.0rc6 (Jan 10, 2022)

Bug fixes

  • [Docker] Fix bug when a putative target address did not exist. (#14125) (#14131)

2.9.0rc5 (Jan 07, 2022)

Bug fixes

  • Hook up Scalafmt and Google Java Format to ./pants lint (cherrypick of #14108) (#14117)

  • Reduce output from scalafmt, and lower reflective access option threshold for Google Java Format. (cherrypick of #14109) (#14118)

2.9.0rc4 (Jan 06, 2022)

New Features

  • JVM Resources support (cherrypick of #13908) (#14088)

2.9.0rc3 (Jan 05, 2022)

Bug fixes

  • Fix incorrectly setting name on python_requirements macro (Cherry-pick of #14065) (#14067)

  • Fix help strings which were accidentally tuples, and add a validation. (cherrypick of #14057) (#14068)

2.9.0rc2 (Jan 03, 2022)

New Features

  • Add duration and cache source to test output. (cherrypick of #13889) (#14002)

  • Support Docker build target stage (Cherry pick of #13956) (#13997)

  • Support test --debug with scalatest and junit. (cherrypick of #13958 and #13966) (#14000)

  • Docker context troubleshooter (Cherry pick of #13896) (#13953)

User API Changes

  • Upgrade to Pex 2.1.61 and use --venv copies. (Cherry pick of #13979) (#13980)

Bug fixes

  • Fix .pyi type stubs to show up in python_distribution (cherrypick of #14033) (#14035)

  • Restore the pants namespace package. (Cherry picked from #13972) (#13977)

  • Fix deprecated [python-setup].interpreter_search_paths and [pex].bootstrap_interpreter_names not working (#14009)

  • Fix file sources codegen for the Docker build context. (Cherry pick of #14024) (#14025)

  • [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (cherrypick of #14038) (#14046)

  • [jvm] Parse maven coordinates using regular expression (cherrypick of #14010) (#14015)

  • [jvm] Fix parsing of Coursier report coordinates when packaging is reported. (cherrypick of #13996) (#13998)

  • [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (cherrypick of #14012) (#14014)

2.9.0rc1 (Dec 21, 2021)

User API Changes

  • Set a default for [jvm].resolves and [jvm].default_resolve (cherrypick of #13925) (#13930)

  • [jvm] Normalize the layout of JVM subsystems and add support for compiler options (cherrypick of #13926) (#13931)

  • Upgrade Pex to 2.1.59. (#13932) (#13933)

Bug fixes

  • Fix tailor not setting the name field (Cherry-pick of #13913) (#13924)

  • Fix --log-levels-by-target not working for logs from Python code (Cherry-pick of #13939) (#13940)

  • Revert "Turn off validation for unset SourcesField if required=False" (#13856) (cherrypick of #13944) (#13946)

  • [jvm] Expose additional JVM backends and symbols (cherrypick of #13943) (#13947)

2.9.0rc0 (Dec 17, 2021)

New Features

  • Add --docker-run-args option to support docker run [args] <image>. (#13818)

  • An include_requirements field on pex_binary. (#13894)

  • Add new secrets field to docker_image. (#13830)

  • [jvm] Add support for Scalatest (#13872)

Bug fixes

  • [jvm] Apply the resolve for deploy_jar and restore validation of resolve compatibility (#13911)

  • Fix java_junit_test and scala_junit_test targets to use resolve instead of compatible_resolves (#13870)

  • [jvm] Fix tailor for the addition of Scalatest. (#13887)

  • Fix setup_py resource packaging. (#13878)

Documentation

  • Fix rendering of default field values in reference docs. (#13891)

  • Provide helpful error message in case of undefined Docker build arg. (#13880)

  • [docs] Enable Java and Scala backends on the docsite. (#13909)

  • Update the project description. (#13906)

  • Add warning when building AWS Lambdas and Google Cloud Functions on macOS. (#13790)

2.9.0.dev4 (Dec 13, 2021)

New Features

  • [jvm] Hook up the ability to run JUnit tests written in Scala (#13868)

  • scala: add scalafmt support for fmt and lint goals (#13814)

  • scala: add protobuf codegen support via scalapb (#13853)

  • Add support for global scalac plugins. (#13827)

  • JVM: Adds jar field to jvm_artifact (#13834)

User API Changes

  • relocate_files no longer used with export-codegen goal (#13829)

  • Include shell_source(s) in docker_image build context. (#13761)

Plugin API Changes

  • Codegen plugins can turn off export-codegen integration. (#13828)

  • Deprecate testutil.RuleRunner.create_files() .create_file() and .add_to_build_file() (#13817)

Bug fixes

  • Fix .pyi files not automatically depending on __init__.py (#13844)

Performance

  • [jvm] Use immutable_inputs to provide the compiletime classpath (#13862)

Documentation

  • Improve Docker undefined build arg behavior (#13723)

  • Add missing backtick (#13861)

  • Do not log extra deprecation info when there are no changes for update-build-files --check. (#13855)

2.9.0.dev3 (Dec 06, 2021)

New Features

  • java: add support for Google Java Format (#13811)

  • Adds support for remote jvm artifact urls (#13793)

  • Go tests can depend on file targets (e.g. testdata folder) (#13781)

  • An option to test/run/repl against the entire lockfile. (#13732)

  • Add test_timeout fields to go_package (#13707)

  • Added the paths goal to render all paths between two targets (#13778)

  • Add support for inferring relative imports from Scala (#13775)

  • go: add go vet linter (#13438)

  • Support interpolating Docker build args into the repository field of docker_image targets. (#13721)

  • Expose Pex --resolve-local-platforms option. (#13715)

  • Expose Pex --layout option for pex_binary. (#13714)

  • Add skip_tests field to go_package and shunit2_test (#13708)

  • JVM: Support strong first-party declarations of provided types (#13698)

  • scala: add repl support (#13576)

  • Capture pylint reports. (#13689)

User API Changes

  • Rename pypi_repositories field to repositories (#13794)

  • Add --local-cache and --process-cleanup to replace --process-execution-local-cache and --process-execution-local-cleanup (#13769)

  • Add pants_requirements target generator and deprecate pants_requirement macro (#13512)

  • Stop generating go_package targets from go_mod (#13702)

  • Rename go_first_party_package target to go_package (#13681)

  • Upgrade default version of Black from 21.9b0 to 21.12b0 (#13816)

  • Upgrade to Pex 2.1.56. (#13713)

Plugin API Changes

  • IntField and FloatField can ban negative numbers and zero (#13705)

Bug fixes

  • Support materializing files through file symlinks. (#13789)

  • Fix duplicate error message for publish with no matching targets (#13776)

  • Fix bug when docker pushing multiple tags. (#13764)

  • Fix Java / Scala cycle artifact filename collision. (#13759)

  • Fix run goal for pex_binary with a script entry point from a 3rdparty dependency. (#13748)

  • Fix hadolint SIGSEGV. (#13736)

  • Fix --resolve-local-platforms help. (#13722)

  • Avoid calling disabled stream handlers. (#13680)

  • Fix Go compilation failures causing test goal to error (#13711)

  • Fix UI rendering of Go packages with no tests (#13710)

  • Fix dup 3rdparty dists introduced by local dists. (#13690)

  • Make tailor generate correct fields for python_requirements. (#13687)

  • Interactive processes kill the process and its children on Ctrl+C. (#13678)

2.9.0.dev2 (Nov 18, 2021)

New Features

  • [jvm] Add support for compiling cycles between Java and Scala (#13653)

  • [jvm]: Add Export types to dependency inference code and include exports in compile results for Java sources (#13603)

  • Allow tailor to pick up docker_image targets for any file with "Dockerfile" in it (#13601)

  • [jvm] Add Scala consumed-symbols inference. (#13632)

  • [jvm] Add basic extraction of consumed symbols for Scala (#13628)

User API Changes

  • Report standard backends in anonymous telemetry (#13670)

  • Add [twine].ca_certs_path option. (#13593)

  • Bump twine to 3.6.0 and add tool lockfile (#13594)

  • Ban * globs and ! ignores in source: str field (#13629)

Bug fixes

  • Pass Docker env vars to docker publish. (#13669)

  • Fix download URL for grpc_python_plugin on macos. (#13656)

  • Fix Python dependency inference breaking with python_source targets (#13627)

  • Fix swallowing of git stderr. (#13626)

  • Register skip fields for python linters and mypy also on the python_test_utils target. (#13616)

2.9.0.dev1 (Nov 13, 2021)

New Features

  • Add instructions field to docker_image to support generating the Dockerfile (#13386)

  • Add --unowned-dependency-behavior option for Python (#13491)

User API Changes

  • Upgrade default pylint to v2.11.1 (#13585)

Plugin API Changes

  • [plugin-api] Add default_glob_match_error_behavior to SourcesField. (#13578)

Bug fixes

  • Fix --no-print-stacktrace. (#13539)

Performance

  • Do not invalidate parent paths when only file content has changed (#13566)

  • Fix caching of binary lookups and avoid re-running pytest setup for environment changes (#13559)

  • Fix slow performance from recursive __repr__ and __hash__ for Go (#13492)

  • Go: improve performance of first-party package analysis (#13476)

Documentation

  • Fix tailor confusion with macros vs. targets (#13574)

2.9.0.dev0 (Nov 03, 2021)

New Features

  • Add overrides to python_requirements and poetry_requirements (#13458)

  • Add --tailor-check (#13432)

  • An option to not clean up the binary chroot for the run goal. (#13427)

  • Add [tailor].ignore_paths and [tailor].ignore_adding_targets (#13422)

  • Validate that [tailor].build_file_name is compatible with [GLOBAL].build_patterns (#13420)

User API Changes

  • Remove deprecated pex_binary fields. (#13479)

  • Remove deprecated --pants-supportdir. (#13473)

  • Remove setup_py_commands from python_distribution. (#13450)

  • Remove deprecated InferredDependencies.sibling_dependencies_inferrable kwarg (#13440)

  • CheckResults no longer accepts deprecated typechecker_name kwarg (#13434)

  • Remove deprecated [pytest].junit_xml_dir option. (#13444)

  • Remove deprecated --list-provides option (#13441)

  • Remove deprecated module_mapping and type_stubs_module_mapping fields (#13442)

  • Remove entry_point=<none> for pex_binary in favor of leaving off the field (#13443)

  • Remove deprecated Sources type in favor of SourcesField (#13439)

  • Remove deprecated requirements_relpath from python_requirements macro (#13437)

  • Remove deprecated protobuf_library, python_library, shell_library, and python_requirement_library target aliases (#13429)

  • Remove deprecated --peek-output (#13433)

  • Remove dependencies goal deprecated --type option. (#13431)

  • Remove dependees --output-format option. (#13430)

  • Validate python_test and python_tests targets not used for conftest.py and test_foo.pyi (#13436)

  • Move [python] interpreter_search_paths to [python-bootstrap] search_path, and add support for sandboxed Python scripts in @rules (#13340)

Plugin API Changes

  • Fix fmt, lint, test, and check plugins having to use sources FieldSet value (#13456)

  • Add support for extracting .gz files. (#13335)

Bug fixes

  • [bugfix] Do not cache Docker invocations between pants runs. Fixes #13461. (#13464)

  • Fix Python bootstrap interpreter search. (#13278)

  • Upgrade to Pex 2.1.54. (#13426)

  • Upgrade to Pex 2.1.53. (#13423)

  • Consume the go directive when compiling (#13387)

  • Don't error for invalid Go third-party packages unless building them (#13405)

  • assume version 1 for older lockfiles without version key (#13399)

  • Removes leading whitespace when tailoring BUILD files without header text (#13375)

  • Go: don't error for unsupported third-party sources with project introspection (#13377)

  • Fix missing field for tffmt in lint. (#13355)

  • Use strict resolves by default for the JVM (#13353)

  • Parse SSH git requirements in poetry config. (#13344)

Performance

  • Check for @rule graph cycles asynchronously (#13370)

  • Use --layout=packed for all monolithic resolves. (#13400)

Documentation

  • Improve dynamic UI for Go (#13412)

  • Make check output more useful for Go and Java (#13379)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pantsbuild.pants-2.9.0-cp39-cp39-manylinux2014_x86_64.whl (43.5 MB view details)

Uploaded CPython 3.9

pantsbuild.pants-2.9.0-cp39-cp39-macosx_11_0_arm64.whl (7.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pantsbuild.pants-2.9.0-cp39-cp39-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

pantsbuild.pants-2.9.0-cp38-cp38-manylinux2014_x86_64.whl (43.5 MB view details)

Uploaded CPython 3.8

pantsbuild.pants-2.9.0-cp38-cp38-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

pantsbuild.pants-2.9.0-cp37-cp37m-manylinux2014_x86_64.whl (43.5 MB view details)

Uploaded CPython 3.7m

pantsbuild.pants-2.9.0-cp37-cp37m-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.9.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 43.5 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff18b6627927d09996f54df0f5fd8c7a35eac7ef39f1a13d8eff1a92576b02b8
MD5 0066a1200f31e3cd1c731c6e5876af58
BLAKE2b-256 1ffe69714ff579ae26647a5ba28694cd78c71bd24da70056efbd778eaaf2053e

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pantsbuild.pants-2.9.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe4a6551bc7bf91ca7f19ad30416bf9fdb5961f7aa4e9df8f99ff544eb728609
MD5 d01c0551a21309ad4854f934072c2f9b
BLAKE2b-256 a3842e297d098da83176e755c135ae5c4e52ef22cab14b3bde19aadbd34cf711

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 07f29cbe87ee31c25d7a048a89189cffe869705681afa885a3d9ef6c16f0050a
MD5 e25a90c3890b5b685ce2cbff8d892667
BLAKE2b-256 5052f86db9f3f799fc891daa7dd09e4572b064285ccf0a40c59deca5defaaafb

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 43.5 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de1165e3807c7fe80c045d32d2cab977dca0626b5d0ee59b360d620253bb90ea
MD5 671a82cc5946787b8ccba76fde63ecbd
BLAKE2b-256 846e384de632b007409c765b92f922b347739b3cf877349736718b2188e5126f

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5bb7b46a2a1cae3a5af99f4681ced33d0548f03258b9cb9016416348a7182150
MD5 a800e5f8e9b82b900ee8059f5590e39f
BLAKE2b-256 805d63f320864754097d0b9974a627c06258987887d8ba5a90427532950e77a0

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 43.5 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9234fa07e081dc8fc97c1ff735728f869fd2e439fc23bf5b139b3d32e7e6b0b3
MD5 1f2a57a0de99f614df1d216a4ae7ae61
BLAKE2b-256 4a9c1b0ffac08cc66a473c9ea88d4d19a2c6e4a4d0a3c45fe6607ee3e25b468d

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.9.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.9.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.9.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2c07a4c05d613c9088272931eb53742f038a32a45d8ef55e157447b4a1e1920a
MD5 b5d5409402251ad469d8a8df89e2c119
BLAKE2b-256 86001752eb2ac589b211e8846e6101e01609239d416ff9e79830081701e7174c

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page