Skip to main content

The ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.

Project description

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.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)

Project details


Release history Release notifications | RSS feed

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

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c867ca2546471b5b118ecd7a43df97f400545524bffbbef1988e17e5d6aa6e9
MD5 b86bee20c82eb04512d60396e67afec7
BLAKE2b-256 08662b14dea759894e6df9d3f8d7aa1b12a3c12981a4d150ff8f818999060181

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.9.0rc0-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.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.6

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d1fb75f976b284f4ba40e2ff11e41e8ad6e31ba2ca432ebe54de2df3f520169
MD5 12b904f0f235a399f474aab798c581bd
BLAKE2b-256 f91e81f59920b0fe3e7bef7eb509a305e1c92fe2c30f940a6277703d0a119fb4

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.9.0rc0-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.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e96956de832e300533b15888aa24ef94ba153e8e9ac713640a85360b8a9e1782
MD5 159721a188cab567f5078dd3a9c00f71
BLAKE2b-256 ede08be556ef11d75ba0e9c7578d81d927d8a9199c58e18d1560789d57a2ecd5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3a7c4a69710a9ffad09941e38d417c46e7ae37a387cfedd6cc732e95a288a72
MD5 3e30765e361653dddea7abeca39248a3
BLAKE2b-256 fa32afcbeb12e7294232fab4b35253cc17aa5301bb360ab3578305d4c06f4fb2

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.9.0rc0-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.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e86ecfcf05176fda9b55246fa2a8206605ccb379bac2128fadfb8136ebd312c2
MD5 3e511da5daa2d7c75d4417b1474ff86c
BLAKE2b-256 50d0e732930db19d17b67030bc119d909923057643d49caef1e04716d7168a3e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0c39e03a59686c205de0b00a5c33dc47f1ce6b656efdc463bbf1d4d41925da9
MD5 34eac64961e1ef2e1c25dad70926a88b
BLAKE2b-256 26ae21d2cc4b37f5c231b5b61541a76051da2ee325159f4962819e5d0d8392b6

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.9.0rc0-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.9.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for pantsbuild.pants-2.9.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 72552184911d02a9a863409a8e0e0f7a7bd85f1fb785ce20744a7d296b8b91f7
MD5 b2b84025a7122f9b8a4653e8d2f7a415
BLAKE2b-256 4c005709cae3b24afd738c6276fb10cbe4a75a6fe6642a396ecd7f55338540bd

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page