pants

The Pants Build System

APACHE-2.0 License

Downloads
117.9K
Stars
3.1K
Committers
342

Bot releases are hidden (Show)

pants -

Published by stuhood over 2 years ago

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

pants -

Published by stuhood over 2 years ago

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

pants -

Published by stuhood over 2 years ago

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

pants -

Published by jsirois over 2 years ago

New Features

  • Adds JDK autoconfiguration support to scala BSP metadata setup (#15408)

  • Add lint --skip-formatters option (#15427)

  • Support for sharding tests. (#15417)

  • Add clang-format support for the experimental c/cpp plugin (#15395)

  • Support setting env vars in individual distribution builds. (#15422)

  • kotlin: add support for junit tests (#15382)

User API Changes

  • Upgrade Pex to 2.1.87. (#15472)

  • Deprecate [python].tailor_ignore_solitary_init_files in favor of more useful [python].tailor_ignore_empty_init_files (#15469)

  • Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (#15424)

  • Require that a target's interpreter_constraints are a subset of their dependencies' (#15373)

  • Add [python-infer].init_files as more intuitive replacement for [python-infer].inits (#15397)

Plugin API Changes

  • Move get_git deprecation to start in 2.14.0.dev0 (#15423)

Bug fixes

  • Only infer an init.py dep on a python_sources-generated target. (#15471)

  • kotlin: the plugin_id field on kotlinc_plugin target is optional (#15459)

  • support relative address syntax for JVM compiler plugin artifacts (#15462)

  • Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend (#15453)

  • Fix boolean logic when merging interpreter constraints. (#15414)

  • Fix tags to work with filesystem arguments, overrides field, and python_tests (#15394)

  • Support the {chroot} env placeholder for all interactive processes that are not executed in the workspace. (#15401)

  • Fix [] in file names with target generators (#15383)

  • BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. (#15392)

Documentation

  • Improve error message for dependencies on incompatible Python resolves (#15416)
pants -

Published by benjyw over 2 years ago

New Features

  • Initial support for building dists using mypyc. (#15380)

  • Support dependency inference on vcs_version targets. (#15385)

  • Support for getting a version string from git. (#15374)

  • Add tailor for poetry_requirements and pipenv_requirements (#15352)

User API Changes

  • Add default mapping for pygithub (#15361)

Bug fixes

  • Generalize Docker dep inference for all packageables. (#15375)

  • Fix tailor detection of existing python_requirements targets (#15363)

  • Add the "named args explanation" to other relevant parametrize error messages. (#15362)

  • Use abspath to sandbox in PATH for docker tool shims. (#15341)

Documentation

  • Improve help and error message for [python-infer].unowned_dependency_behavior (#15334)

  • Disallow ! patterns in build_ignore. (#15366)

pants -

Published by stuhood over 2 years ago

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

pants -

Published by stuhood over 2 years ago

New Features

  • Support poetry wildcard requirements. (Cherry-pick of #15213) (#15215)

Bug fixes

  • Do not lowercase Docker image tags. (Cherry pick of #15254) (#15259)

  • Clean PID-specific exception file if empty on process exit (Cherry pick of #15086) (#15112)

  • Fix use of @ in path names (Cherry-pick of #15226) (#15233)

  • Fix lockfile generation for duplicate jvm_artifact targets with jar fields. (Cherry-pick of #15219) (#15232)

  • Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) (#15182)

  • Fix when the same python_requirement defines both type stub and implementation (Cherry-pick of #15121) (#15128)

  • Enable codegen on relocated files (Cherry-pick of #15100) (#15130)

pants -

Published by stuhood over 2 years ago

User API Changes

  • Upgrade Pex to 2.1.84. (Cherry-picks of #15200, #15281 & #15288) (#15289)

Bug fixes

  • Memoize equality for CoarsenedTarget(s) to avoid exponential runtime in check. (Cherry-pick of #15277) (#15278)
pants -

Published by stuhood over 2 years ago

New Features

  • Support poetry wildcard requirements. (#15213)

  • Implement tailor goal for Helm charts (#15192)

  • Write virtualenvs for Python tools as part of export (#15098)

User API Changes

  • Upgrade Pex to 2.1.84. (#15288)

Plugin API Changes

  • Allow for arbitrary suffixes when extracting (#15257)

  • Add lz4 support to archive extraction (#15245)

Bug fixes

  • Simplify BSP metadata merging, and handle the empty list. (#15283)

  • BSP resolve filtering observes computed default values of resolve fields (#15282)

  • Memoize equality for CoarsenedTarget(s) to avoid exponential runtime in check. (#15277)

  • Fix ambiguity of Scala package objects with class or object definitions (#15265)

  • Fix issue with Docker publish when using [docker] tools. (#15255)

  • Do not lowercase Docker image tags. (#15254)

  • Fix the placement of the pex verbosity args. (#15243)

  • Fix use of @ in path names. (#15226)

  • Fix lockfile generation for duplicate jvm_artifact targets with jar fields. (#15219)

  • golang: add more cache keys based on tool IDs (#15205)

Performance

  • MyPy and Pylint partition inputs via CoarsenedTarget (#15141)

Documentation

  • Fix ProtobufSourcesOverridesField help message (#15272)

  • Update help for python resolves with recent improvements (#15228)

  • Improve cache-related error message to be less confusing (#15202)

  • Show experimental-bsp goal in help (#15208)

  • Mention resolve when partitioning Mypy and Pylint (#15172)

  • Don't log set up of binary shims (#15203)

pants -

Published by stuhood over 2 years ago

New Features

  • Address specs for parametrized target templates expand to their created targets (Cherry pick of #15126) (#15148)

User API Changes

  • Upgrade Pex to 2.1.79. (Cherry-pick of #15125) (#15129)

  • Ban terraform_module referring to subdirectories (Cherry-pick of #15106) (#15122)

  • Enable codegen on relocated files (Cherry-pick of #15100) (#15131)

Bug fixes

  • Clean PID-specific exception file if empty on process exit (#15086) (#15113)

  • Allow dashes in inferred asset strings (Cherry-pick of #15123) (#15154)

  • Fix typo in Pylint description (Cherry-pick of #14945) (#15157)

  • Fix when the same python_requirement defines both type stub and implementation (Cherry-pick of #15121) (#15127)

  • fix missing field check in go protobuf rules (Cherry pick of #15105) (#15118)

  • files/dirs swapped in Snapshot's repr (Cherry-pick of #15101) (#15114)

  • Preserve tombstones for workunits which complete while they still have children (cherrypick of #15088) (#15103)

Documentation

  • Add some codegen and terraform backends to docs generator (Cherry-pick of #15036) (#15156)
pants -

Published by stuhood over 2 years ago

New Features

  • Address specs for parametrized target templates expand to their created targets (#15126)

  • Implement publish goal for Helm charts (#15042)

  • add experimental kotlin backend to distribution (#15109)

  • Support pip-style VCS requirements. (#15097)

User API Changes

  • Upgrade Pex to 2.1.79. (#15125)

  • Ban terraform_module referring to subdirectories (#15106)

Plugin API Changes

  • Throw a DuplicateRuleError when there are conflicting rules in a module. (#15073)

  • Expose GitWorktree as an @rule (#15030)

Bug fixes

  • Fix Requires-Python for pantsbuild.pants wheel. (#15149)

  • Allow dashes in inferred asset strings (#15123)

  • Fix when the same python_requirement defines both type stub and implementation (#15121)

  • Fix missing field check in go protobuf rules (#15105)

Documentation

  • Last round of softwrapping help strings (#15142)

  • Softwrapping a few more files (#15138)

  • Softwrap python backend help strings (#15137)

pants -

Published by jsirois over 2 years ago

New Features

  • Support for env var interpolation in config files. (#15087)

  • Support for finer control over which Docker images to push. (#15000)

  • Add a helpful hint to lint if a formatter fails (#15048)

  • Add support for Helm 3rd party dependencies (#14964)

User API Changes

  • Default [python].lockfile_generator to Pex (#15074)

  • Upgrade Pex to 2.1.78. (#15078)

  • terraform: remove terraform_modules generator target type (#15035)

  • Upgrade to Pex 2.1.77. (#15015)

  • Change JVM defaults to use Temurin JDK distribution (#15009)

Plugin API Changes

  • Remove deprecated register_options support. (#15090)

  • Remove deprecated target generator API affordances. (#15091)

  • Add @rule_helper decorator, which participates in awaitable collection (#15025)

Bug fixes

  • Enable codegen on relocated files (#15100)

  • Preserve tombstones for workunits which complete while they still have children (#15088)

  • Clean the export dir under dist/ before populating it. (#15068)

  • Do not use a repository-PEX if a PEX has platforms specified (#15031)

  • Fix default layout and use of PEX-repositories for legacy lockfiles (#15014)

  • Pin pytest 7.0.1 (#14997)

Documentation

  • files/dirs swapped in Snapshot's repr (#15101)

  • Tweak deprecation messages. (#15027)

  • Add some codegen and terraform backends to docs generator (#15036)

  • Text in angle brackets needs to be escaped for the docsite. (#15046)

  • Fix presented provider backend for rules/subsystems. (#14999)

pants -

Published by jsirois over 2 years ago

User API Changes

  • Upgrade Pex to 2.1.78. (Cherry-pick of #15078) (#15079)

  • terraform: remove terraform_modules generator target type (Cherry pick of #15035) (#15063)

Bug fixes

  • Clean the export dir under dist/ before populating it. (cherrypick #15068) (#15075)

  • Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) (#15034)

  • Fix default layout and use of PEX-repositories for legacy lockfiles (cherrypick of #15014) (#15032)

  • Pin pytest 7.0.1 (cherrypick of #14997) (#15013)

Documentation

  • Text in angle brackets needs to be escaped for the docsite. (Cherry pick of #15046) (#15056)

  • Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) (#15024)

pants -

Published by jsirois over 2 years ago

User API Changes

  • Upgrade Pex to 2.1.73. (Cherry-pick of #14875) (#15028)

Bug fixes

  • Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) (#15033)

  • Fix Pylint config check strings (Cherry-pick of #14946) (#14948)

  • add cache key for all Go SDK invocations (Cherry pick of #14897) (#14902)

Documentation

  • Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) (#15023)
pants -

Published by jsirois over 2 years ago

User API Changes

  • Upgrade Pex to 2.1.73. (Cherry-pick of #14875) (#15029)

Bug fixes

  • Fix empty sys.path entries causing an error during invalidation glob calculation. (cherrypick of #14819) (#14961)
pants -

Published by stuhood over 2 years ago

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

pants -

Published by stuhood over 2 years ago

New Features

  • New --docker-build-verbose option to print build output to the console. (Cherry pick of #14557) (#14597)

  • Support include_requirements & complete_platforms for python_awslambda. (Cherry-picks of #14532 & #14469) (#14533)

  • Support complete_platforms for Python GCFs. (#14530) (#14531)

  • Plumb Pex's --complete-platform for pex_binary. (#14526) (#14528)

User API Changes

  • Add output_path field to pyoxidizer_binary and change its default destination (Cherry-pick of #14607) (#14611)

  • Upgrade Pex to 2.1.67. (Cherry-pick of #14544) (#14546)

Bug fixes

  • Fix pyoxidizer_binary to support python_distribution targets that depend on others (cherry-pick of #14620) (#14626)

  • Coursier caches are now determined by -repos configuration (#14603) (#14606)

  • Fix PyOxidizer to write to ~/.cache/pants by using a named cache (Cherry-pick of #14582) (#14590)

  • adds --no-default to Coursier args so that we only use user-configured maven repos (#14581) (#14584)

  • Fix PyOxidizer depending on python_distribution with sdist=True (Cherry-pick of #14394) (#14568)

  • Avoid duplicated deprecation warnings by memoization. (Cherry-pick of #14511) (#14553)

  • Fix coverage base global report creation bug (cherypick of #14547) (#14549)

Performance

  • Add support for rendering a summary of objects held by the graph (cherrypick of #14638) (#14644)

  • Shortcircuit source subsetting if there are no distributions. (cherrypick of #14564) (#14566)

  • Calculate local distribution contents once per distribution (cherrypick of #14551) (#14555)

Documentation

  • Rewrite help for dependencies field to mention generated targets (Cherry-pick of #14621) (#14627)

  • Don't leak local paths into generated docs. (cherrypick #14591) (#14592)

  • Add disclaimer about [python].enable_resolves and lockfile generation (Cherry-pick of #14475) (#14479)

pants -

Published by stuhood over 2 years ago

User API Changes

  • Upgrade Pex to 2.1.65. (Cherry-pick of #14256) (#14617)

Bug fixes

  • Fix coverage base global report creation bug. (cherrypick of #14547) (#14550)

  • Fix executability of materialized files for non-owners. (cherrypick of #14298) (#14308)

  • Fix bad default module mapping for PyMongo (Cherry-pick of #14284) (#14285)

  • Fix complex __import__ statements failing to parse with Python 2.7 - 3.7 (Cherry-pick of #14232) (#14233)

Performance

  • add timeout for remote cache lookups (cherry-pick of #14224) (#14226)

Documentation

  • Rewrite help for dependencies field to mention generated targets (Cherry-pick of #14621) (#14628)

  • Don't leak local paths into generated docs. (cherrypick #14591) (#14593)

  • Add some missing backends to generated docs (Cherry-pick of #14290) (#14292)

pants -

Published by stuhood over 2 years ago

New Features

  • New --docker-build-verbose option to print build output to the console. (#14557)

User API Changes

  • Add output_path field to pyoxidizer_binary and change its default destination (#14607)

  • Upgrade terraform-hcl2-parser to version 3.0.3 (#14554)

Plugin API Changes

  • Rename pants.python.binares to pants.core.subsystems.python_bootstrap (#14613)

  • Add PythonToolBase.to_pex_request() to DRY tool installation (#14610)

  • Move PythonBinary from python.binaries to core.util_rules.system_binaries (#14609)

  • Add core/util_rules/system_binaries.py and relocate archive.py types like UnzipBinary to it (#14601)

Bug fixes

  • Show a helpful error message if a 3rdparty jar isn't available. (#14595)

  • Fix pyoxidizer_binary to support python_distribution targets that depend on others (#14620)

  • Coursier caches are now determined by -repos configuration (#14603)

  • adds --no-default to Coursier args so that we only use user-configured maven repos (#14581)

Performance

  • Fix PyOxidizer to write to ~/.cache/pants by using a named cache (#14582)

Documentation

  • Rewrite help for dependencies field to mention generated targets (#14621)

  • Don't leak local paths into generated docs. (#14591)

pants -

Published by benjyw over 2 years ago

New Features

  • Support for file/files in JVM tests (#14537)

  • Support complete_platforms for python_awslambda. (#14532)

  • Support complete_platforms for Python GCFs. (#14530)

  • Properly support filesystem specs in the paths goal. (#14518)

  • Plumb Pex's --complete-platform for pex_binary. (#14526)

  • Adds the plugin names field to scala sources (#14508)

  • jvm: teach dependency inference about multiple resolves (#14491)

  • scala: add implicit dependency on scala-library (#14450)

  • py_awslambda: pass through include_requirements:bool to pex_binary (#14469)

User API Changes

  • Upgrade Pex to 2.1.67. (#14544)

  • Create per-parametrization aliases for generator targets (#14529)

  • Per-resolve scala plugins (#14497)

Plugin API Changes

  • Replace GoalSubsystem.required_union_implementations with GoalSubsystem.activated() (#14313)

  • Add dynamic help (#14543)

  • Add global counters, and deprecate per-workunit counters. (#14541)

Bug fixes

  • Fix PyOxidizer depending on python_distribution with sdist=True (#14394)

  • Fix coverage base global report creation bug. (#14547)

  • Tests scala local plugins, and makes it work properly on scala_sources targets (#14512)

  • Allow use of parametrize with the jdk= field of JVM targets (#14510)

  • Fix address parse bug in update-build-files --fix-python-macros. (#14485)

Performance

  • Shortcircuit source subsetting if there are no distributions. (#14564)

  • Calculate local distribution contents once per distribution (#14551)

Documentation

  • Fix the incompatible resolve error message to include the entire checked set of targets. (#14525)

  • Add disclaimer about [python].enable_resolves and lockfile generation (#14475)