diff --git a/docs/notes/2.0.x.md b/docs/notes/2.0.x.md new file mode 100644 index 000000000..0cf383584 --- /dev/null +++ b/docs/notes/2.0.x.md @@ -0,0 +1,1257 @@ +# 2.0.x Stable Releases + +This document describes releases leading up to the `2.0.x` `stable` +series. + +See for an +overview of the changes in this release, and + for a plugin +upgrade guide. + +## 2.0.2 (2/3/2020) + +The third stable release in the 2.0.x series, with no changes since +`2.0.2rc0`. + +## 2.0.2rc0 (1/14/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11417](https://github.com/pantsbuild/pants/pull/11417)) + +## 2.0.1 (12/18/2020) + +The second stable release in the 2.0.x series, with no changes since +`rc4`. + +Thank you for everyone's feedback! + +## 2.0.1rc4 (12/16/2020) + +### Bugfixes([11310](https://github.com/pantsbuild/pants/pull/11310)) + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11318](https://github.com/pantsbuild/pants/pull/11318)) +- Upgrade to Pex 2.1.24 to fix macOS Big Sur. (cherrypick of #11312) + ([#11314](https://github.com/pantsbuild/pants/pull/11314)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11310](https://github.com/pantsbuild/pants/pull/11310)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11299](https://github.com/pantsbuild/pants/pull/11299)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11277](https://github.com/pantsbuild/pants/pull/11277)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11276](https://github.com/pantsbuild/pants/pull/11276)) + +## 2.0.1rc3 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) + +## 2.0.1rc2 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11216](https://github.com/pantsbuild/pants/pull/11216)) + +### Bugfixes + +- Move graph cycle detection to rust to fix recursion limit. + (cherrypick of #11202) ([#11203](https://github.com/pantsbuild/pants/pull/11203)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11196](https://github.com/pantsbuild/pants/pull/11196)) + +## 2.0.1rc1 (11/16/2020) + +### User API Changes + +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11177](https://github.com/pantsbuild/pants/pull/11177)) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11190](https://github.com/pantsbuild/pants/pull/11190)) + +## 2.0.1rc0 (11/11/2020) + +### User API Changes + +- Add a specific error for target names containing slashes (cherrypick + of #11115) ([#11122](https://github.com/pantsbuild/pants/pull/11122)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached (Cherry-pick of #11111) ([#11116](https://github.com/pantsbuild/pants/pull/11116)) +- Fix `pytest.pex` leaking into coverage data (Cherry-pick + of #11110) ([#11112](https://github.com/pantsbuild/pants/pull/11112)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11139](https://github.com/pantsbuild/pants/pull/11139)) +- Fix `!!` transitive excludes when used multiple times in + a repo (Cherry-pick of #11103) ([#11104](https://github.com/pantsbuild/pants/pull/11104)) +- Fix `setup_py().with_binaries()` to properly inject + dependencies ([#11098](https://github.com/pantsbuild/pants/pull/11098)) +- Upgrade to Pex 2.1.21 to fix interpreter selection and race + condition (Cherry-pick of #11131) ([#11133](https://github.com/pantsbuild/pants/pull/11133)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX (Cherry-pick of #11108) ([#11120](https://github.com/pantsbuild/pants/pull/11120)) + +## 2.0.0 (10/27/2020) + +The first stable release in the 2.0.x series, with no changes since +`rc3`. + +Thank you for everyone's feedback! + +## 2.0.0rc3 (10/25/2020) + +### User API Changes + +- Deprecate several unused options (Cherry-pick of #11041) ([#11043](https://github.com/pantsbuild/pants/pull/11043)) +- Deprecate unused `run-tracker` options (Cherry-pick of + #11038) ([#11039](https://github.com/pantsbuild/pants/pull/11039)) + +### Bugfixes + +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` (Cherry-pick of #11040) ([#11042](https://github.com/pantsbuild/pants/pull/11042)) +- Eagerly validate entry points for + `setup_py().with_binaries()` (Cherry-pick of #11034) + ([#11036](https://github.com/pantsbuild/pants/pull/11036)) + +### Documentation + +- Improve several help messages (Cherry-pick of #11029) ([#11035](https://github.com/pantsbuild/pants/pull/11035)) + +## 2.0.0rc2 (10/22/2020) + +### User API Changes + +- Fold target help into the help system. (Cherry-pick of #11022) + ([#11028](https://github.com/pantsbuild/pants/pull/11028)) +- Rename pex-binary/python-distribution subsystems to avoid naming + collisions. (Cherry-pick of #11007) ([#11010](https://github.com/pantsbuild/pants/pull/11010)) +- Increase default `[python-setup].resolver_jobs` to + `cpu_count / 2` (Cherry-pick of #11006) ([#11011](https://github.com/pantsbuild/pants/pull/11011)) +- Include `` in + `[python-setup].interpreter_search_paths` default + (Cherry-pick of #10998) ([#11008](https://github.com/pantsbuild/pants/pull/11008)) +- Upgrade Pex to 2.1.20 (Cherry-pick of #11014) ([#11016](https://github.com/pantsbuild/pants/pull/11016)) + +### Plugin API Changes + +- Validate that option scopes and target aliases don't collide. + (Cherry-pick of #11004) ([#11015](https://github.com/pantsbuild/pants/pull/11015)) + +### New Features + +- Allow changing the versioning scheme for + `python_distribution` first-party dependencies + (Cherry-pick of #10977) ([#10989](https://github.com/pantsbuild/pants/pull/10989)) +- Add `[python-setup].resolver_http_cache_ttl` option + (Cherry-pick of #10997) ([#11002](https://github.com/pantsbuild/pants/pull/11002)) +- Allow changing the URL to download tools like PEX and Protoc + (Cherry-pick of #11013) ([#11024](https://github.com/pantsbuild/pants/pull/11024)) + +### Bugfixes + +- Revert using libCST for dep inference due to performance + (Cherry-pick of #11001) ([#11005](https://github.com/pantsbuild/pants/pull/11005)) +- Fix resource leak warning with stdio (Cherry-pick of #10995) + ([#10996](https://github.com/pantsbuild/pants/pull/10996)) +- Fix `./pants repl` to use global constrains when no + targets specified (Cherry-pick of #10991) ([#10992](https://github.com/pantsbuild/pants/pull/10992)) +- Fix `setup_py().with_binaries()` to use the default + entry point (Cherry-pick of #11021) ([#11026](https://github.com/pantsbuild/pants/pull/11026)) +- Fix overly verbose `FieldSet` in stack traces + (Cherry-pick of #10978) ([#10990](https://github.com/pantsbuild/pants/pull/10990)) +- Fix several bad usages of `itertools.groupby()` + (Cherry-pick of #10976) ([#10979](https://github.com/pantsbuild/pants/pull/10979)) + +## 2.0.0rc1 (10/15/2020) + +### User API Changes + +- Restore several removed targets and fields to help with upgrading + ([#10970](https://github.com/pantsbuild/pants/pull/10970)) + +### New Features + +- Add `./pants target-types --all` (Cherry-pick of + #10957) ([#10961](https://github.com/pantsbuild/pants/pull/10961)) + +### Bugfixes + +- Fix interpreter selection when building a PEX to use + `[python-setup].interpreter_search_paths` (Cherry-pick + of #10965) ([#10967](https://github.com/pantsbuild/pants/pull/10967)) +- Fix linter targets being skipped when repo has multiple interpreter + constraints (Cherry-pick of #10974) ([#10975](https://github.com/pantsbuild/pants/pull/10975)) +- Automatically set setuptools interpreter constraints if unspecified + (Cherry-pick of #10951) ([#10958](https://github.com/pantsbuild/pants/pull/10958)) +- Fix config validation not erroring on global options in wrong scope + (Cherry-pick of #10950) ([#10956](https://github.com/pantsbuild/pants/pull/10956)) +- Fix logging of lint result files (Cherry-pick of #10959) ([#10968](https://github.com/pantsbuild/pants/pull/10968)) + +## 2.0.0rc0 (10/11/2020) + +### User API Changes + +- Deprecate `python_binary` in favor of + `pex_binary` ([#10939](https://github.com/pantsbuild/pants/pull/10939)) +- Deprecate `[protoc].runtime_targets` in favor of + `[python-protobuf].runtime_dependencies` ([#10926](https://github.com/pantsbuild/pants/pull/10926)) +- Use the `package` goal to build setup-py dists. ([#10919](https://github.com/pantsbuild/pants/pull/10919)) +- Deprecate `--print-exception-stacktrace` to + `--print-stacktrace` ([#10912](https://github.com/pantsbuild/pants/pull/10912)) + +### Plugin API Changes + +- Use `TransitiveTargetsRequest` as input for resolving + `TransitiveTargets` ([#10915](https://github.com/pantsbuild/pants/pull/10915)) +- Add `await Get(Addresses, UnparsedAddressInputs)` + ([#10913](https://github.com/pantsbuild/pants/pull/10913)) +- Upgrade to Pex 2.1.18. ([#10938](https://github.com/pantsbuild/pants/pull/10938)) + +### New Features + +- Add gRPC Python code generation ([#10937](https://github.com/pantsbuild/pants/pull/10937)) +- Add MyPy Protobuf plugin support ([#10931](https://github.com/pantsbuild/pants/pull/10931)) +- Add `output_path` field to `python_binary`, + `python_awslambda`, and `archive` ([#10899](https://github.com/pantsbuild/pants/pull/10899)) + +### Bugfixes + +- Fix for log messages/dynamic UI teardown conflict ([#10940](https://github.com/pantsbuild/pants/pull/10940)) +- Fix some dependencies-like fields not showing up with project + introspection ([#10923](https://github.com/pantsbuild/pants/pull/10923)) +- Send SIGTERM to child processes upon SIGINT ([#10930](https://github.com/pantsbuild/pants/pull/10930)) +- Fix Python 3.8 syntax not working with dependency inference ([#10907](https://github.com/pantsbuild/pants/pull/10907)) +- Plumb `ca_certs_path` to the plugin resolver. ([#10910](https://github.com/pantsbuild/pants/pull/10910)) + +### Documentation + +- Differentiate between User API vs. Plugin API changes in changelog + ([#10916](https://github.com/pantsbuild/pants/pull/10916)) +- Streamline some goal descriptions. ([#10911](https://github.com/pantsbuild/pants/pull/10911)) + +## 2.0.0b3 (10/3/2020) + +### API Changes + +- Add a FileDigest type to differentiate file APIs from directory APIs + ([#10900](https://github.com/pantsbuild/pants/pull/10900)) +- Deprecate `awslambda` and `binary` goals in + favor of new `package` goal ([#10881](https://github.com/pantsbuild/pants/pull/10881)) + +### New Features + +- Add `archive` target type to replace + `python_app` ([#10895](https://github.com/pantsbuild/pants/pull/10895)) +- Add `relocated_files` target type ([#10880](https://github.com/pantsbuild/pants/pull/10880)) +- Add support for `.pyi` type stubs (including for + first-party) ([#10759](https://github.com/pantsbuild/pants/pull/10759)) + +### Bugfixes + +- Upgrade Pex to 2.1.17. ([#10901](https://github.com/pantsbuild/pants/pull/10901)) +- Add back `blocked` flag on BoundedCommandRunner workunit + ([#10873](https://github.com/pantsbuild/pants/pull/10873)) + +### Refactoring, Improvements, and Tooling + +- Log long running workunits when the dynamic UI is disabled ([#10890](https://github.com/pantsbuild/pants/pull/10890)) +- Add a `'coverage_'` prefix to artifact key ([#10891](https://github.com/pantsbuild/pants/pull/10891)) +- Remove unused Nailgun code ([#10883](https://github.com/pantsbuild/pants/pull/10883)) +- Add several rule descriptions and debug hints ([#10878](https://github.com/pantsbuild/pants/pull/10878)) +- fs_util Directory subsetting ignores non-matches ([#10854](https://github.com/pantsbuild/pants/pull/10854)) +- Clean up trace logging ([#10875](https://github.com/pantsbuild/pants/pull/10875)) +- A new mechanism for showing "did you mean" help. ([#10872](https://github.com/pantsbuild/pants/pull/10872)) +- Check in the Pants logo. ([#10871](https://github.com/pantsbuild/pants/pull/10871)) +- Improved type annotations for OrderedSet and FrozenOrderedSet, + removed code duplication ([#10868](https://github.com/pantsbuild/pants/pull/10868)) + +### Documentation + +- Prepare 1.30.2rc1 ([#10887](https://github.com/pantsbuild/pants/pull/10887)) + +## 2.0.0b2 (9/25/2020) + +### API Changes + +- Remove .*/ from --build-ignore defaults ([#10856](https://github.com/pantsbuild/pants/pull/10856)) + +### New Features + +- Partition MyPy based on interpreter constraints ([#10817](https://github.com/pantsbuild/pants/pull/10817)) + +### Bugfixes + +- Fix dependency inference AST parsing to include file names ([#10857](https://github.com/pantsbuild/pants/pull/10857)) +- Validate the names of directory children, and normalize output + directory/file names ([#10850](https://github.com/pantsbuild/pants/pull/10850)) +- Fix empty key for global options in run tracker ([#10807](https://github.com/pantsbuild/pants/pull/10807)) +- Locate bash before using it to locate BinaryPaths for other tools + ([#10858](https://github.com/pantsbuild/pants/pull/10858)) + +### Refactoring, Improvements, and Tooling + +- Move `PantsEnvironment` into `SessionValues` + ([#10862](https://github.com/pantsbuild/pants/pull/10862)) +- Delete binaries/ and net/. ([#10861](https://github.com/pantsbuild/pants/pull/10861)) +- Add `RuleRunner.set_options()` ([#10859](https://github.com/pantsbuild/pants/pull/10859)) +- Improve support of MyPy requirements when Python 2 used ([#10853](https://github.com/pantsbuild/pants/pull/10853)) +- A script to download rust build helper binaries. ([#10851](https://github.com/pantsbuild/pants/pull/10851)) +- Hotfix merge conflict in MyPy tests. ([#10867](https://github.com/pantsbuild/pants/pull/10867)) + +## 2.0.0b1 (9/23/2020) + +### API Changes + +- Default to setting `LC_ALL` and `LANG` in + subprocesses again ([#10800](https://github.com/pantsbuild/pants/pull/10800)) +- Default to `[python-infer].inits = false` ([#10813](https://github.com/pantsbuild/pants/pull/10813)) +- Deprecate `--interpreter-constraints` option where it + no-ops ([#10833](https://github.com/pantsbuild/pants/pull/10833)) +- Upgrade setuptools from 49.6.0 to 50.3.0 and wheel from 0.31.1 to + 0.35.1 ([#10803](https://github.com/pantsbuild/pants/pull/10803)) + +### New Features + +- Restore support for third-party requirements with MyPy ([#10811](https://github.com/pantsbuild/pants/pull/10811)) + +### Bugfixes + +- Plumb the custom certs file through to Pip (via Pex) ([#10837](https://github.com/pantsbuild/pants/pull/10837)) +- Fix MyPy with Python 2-only third-party requirements ([#10820](https://github.com/pantsbuild/pants/pull/10820)) +- Fix `setup_py.with_binaries()` to automatically inject + `dependencies` ([#10829](https://github.com/pantsbuild/pants/pull/10829)) +- Fix run not working with foo:main entry point. ([#10821](https://github.com/pantsbuild/pants/pull/10821)) +- Fix `internal_only` PEXes runtime interpreter diverging + from buildtime ([#10818](https://github.com/pantsbuild/pants/pull/10818)) +- Local process cache validates that digests exist locally before + hitting ([#10789](https://github.com/pantsbuild/pants/pull/10789)) +- Better Ctrl-C handling in the `test --debug` case + ([#10835](https://github.com/pantsbuild/pants/pull/10835)) +- Fix --pants-ignore-warnings behavior ([#10845](https://github.com/pantsbuild/pants/pull/10845)) +- Fix display of "Snapshotting" in dynamic UI ([#10797](https://github.com/pantsbuild/pants/pull/10797)) + +### Refactoring, Improvements, and Tooling + +- Change Display impl of Key ([#10848](https://github.com/pantsbuild/pants/pull/10848)) +- OptionsBootstrapper is provided via a new SessionValues facility + rather than a Param ([#10827](https://github.com/pantsbuild/pants/pull/10827)) +- Internally stop ignoring missing imports with MyPy ([#10828](https://github.com/pantsbuild/pants/pull/10828)) +- Make `get_options_to_record` a 'public' api. ([#10808](https://github.com/pantsbuild/pants/pull/10808)) +- Useful equality for relevant options types ([#10815](https://github.com/pantsbuild/pants/pull/10815)) +- Clean nodes with uncacheable dependencies once per session ([#10814](https://github.com/pantsbuild/pants/pull/10814)) +- Disable pantsd when piping output for internal script ([#10810](https://github.com/pantsbuild/pants/pull/10810)) +- Simplify logging initialization ([#10812](https://github.com/pantsbuild/pants/pull/10812)) +- Remove support for "weak" Gets ([#10805](https://github.com/pantsbuild/pants/pull/10805)) +- Un-revert Add cache_failures option to Process type ([#10796](https://github.com/pantsbuild/pants/pull/10796)) +- Remove reset_interactive_output_stream ([#10791](https://github.com/pantsbuild/pants/pull/10791)) +- Allow creating empty directories with the engine ([#10760](https://github.com/pantsbuild/pants/pull/10760)) +- Use "output" and "input" instead of "product" and "subject" + ([#10790](https://github.com/pantsbuild/pants/pull/10790)) +- Add graph test for UncacheableDeps nodes only running once ([#10795](https://github.com/pantsbuild/pants/pull/10795)) +- Fix our release script to use the correct Python ([#10841](https://github.com/pantsbuild/pants/pull/10841)) +- Refactor `core/util_rules/archive.py` to use + `BinaryPaths` ([#10836](https://github.com/pantsbuild/pants/pull/10836)) +- Work around trailing slash issue with protobuf codegen ([#10849](https://github.com/pantsbuild/pants/pull/10849)) +- Consolidate "runner" PEXes into "tool" PEXes ([#10852](https://github.com/pantsbuild/pants/pull/10852)) + +### Testing + +- Re-export `QueryRule` from + `pants.testutil.rule_runner` ([#10806](https://github.com/pantsbuild/pants/pull/10806)) + +### Documentation + +- Add documentation for the `graph` crate. ([#10793](https://github.com/pantsbuild/pants/pull/10793)) +- Prepare 1.30.1 ([#10843](https://github.com/pantsbuild/pants/pull/10843)) +- Prepare 1.30.2rc0 ([#10846](https://github.com/pantsbuild/pants/pull/10846)) + +## 2.0.0b0 (9/15/2020) + +### API Changes + +- Upgrade to Pex 2.1.16. ([#10782](https://github.com/pantsbuild/pants/pull/10782)) +- Restore running internal only PEXes via discovered Python (#10779) + ([#10788](https://github.com/pantsbuild/pants/pull/10779)) + +### Bugfixes + +- @rules consume params to prevent some types of ambiguity ([#10764](https://github.com/pantsbuild/pants/pull/10764)) +- Fix xdg-open. ([#10773](https://github.com/pantsbuild/pants/pull/10773)) +- Hide BinaryPath test processes from TUI by default. ([#10774](https://github.com/pantsbuild/pants/pull/10774)) +- Signal handling fixes ([#10758](https://github.com/pantsbuild/pants/pull/10758)) +- Fix UUIDRequest scoping. ([#10780](https://github.com/pantsbuild/pants/pull/10780)) +- Fix `DictStringToStringField` not working with default + values ([#10776](https://github.com/pantsbuild/pants/pull/10776)) +- Sandbox Pex temporary files. ([#10772](https://github.com/pantsbuild/pants/pull/10772)) + +### Refactoring, Improvements, and Tooling + +- remoting: move target_platform property into environment variable + ([#10713](https://github.com/pantsbuild/pants/pull/10713)) +- Add the ability to capture all known scope options in run tracker. + ([#10778](https://github.com/pantsbuild/pants/pull/10778)) +- fs_util cat-proto has --child-dir arg ([#10228](https://github.com/pantsbuild/pants/pull/10228)) +- Simplify --print-exception-stacktrace logic ([#10786](https://github.com/pantsbuild/pants/pull/10786)) +- Various ExceptionSink improvements ([#10781](https://github.com/pantsbuild/pants/pull/10781)) +- Revert "Run internal only pexes via discovered python. (#10779)" + ([#10785](https://github.com/pantsbuild/pants/pull/10785)) +- Support volatile processes. ([#10768](https://github.com/pantsbuild/pants/pull/10768)) +- Run internal only pexes via discovered python. ([#10779](https://github.com/pantsbuild/pants/pull/10779)) +- Fix a leaking pytest-cov abstraction. ([#10775](https://github.com/pantsbuild/pants/pull/10775)) +- Support tests for BinaryPaths. ([#10770](https://github.com/pantsbuild/pants/pull/10770)) + +### Documentation + +- Prepare 1.30.1rc2 ([#10783](https://github.com/pantsbuild/pants/pull/10783)) +- Prepare 1.30.1rc1 ([#10766](https://github.com/pantsbuild/pants/pull/10766)) +- Explain how to fix dependency cycles ([#10761](https://github.com/pantsbuild/pants/pull/10761)) + +## 2.0.0a3 (9/11/2020) + +### API Changes + +- Replace `cloc` with `count-loc`, using much + faster SCC program ([#10740](https://github.com/pantsbuild/pants/pull/10740)) +- Upgrade default isort from 4.6 to 5.5 ([#10737](https://github.com/pantsbuild/pants/pull/10737)) +- Disambiguate binary and lambda output. ([#10735](https://github.com/pantsbuild/pants/pull/10735)) + +### New Features + +- Add `runtime_binary_dependencies` field to + `python_tests` target ([#10756](https://github.com/pantsbuild/pants/pull/10756)) +- Pass proxy-related env vars through to Pex calls. ([#10762](https://github.com/pantsbuild/pants/pull/10762)) +- Support custom CA bundles. ([#10757](https://github.com/pantsbuild/pants/pull/10757)) +- Add support to MyPy for first-party plugins ([#10755](https://github.com/pantsbuild/pants/pull/10755)) +- Filter log levels by target ([#10729](https://github.com/pantsbuild/pants/pull/10729)) + +### Bugfixes + +- fix incorrect mapping of parameters into PyRemotingOptions struct + ([#10752](https://github.com/pantsbuild/pants/pull/10752)) +- Fix MyPy to work by default with Python 3.6+ code and Black with + 3.8+ code ([#10750](https://github.com/pantsbuild/pants/pull/10750)) +- Temporarily disable 3rd-party requirements support for MyPy ([#10765](https://github.com/pantsbuild/pants/pull/10765)) + +### Refactoring, Improvements, and Tooling + +- Support binary dependencies in tests. ([#10744](https://github.com/pantsbuild/pants/pull/10744)) +- Add support to MyPy for third-party requirements and stubs (PEP 561) + ([#10753](https://github.com/pantsbuild/pants/pull/10753)) +- Add new intrinsic `Paths` to avoid snapshotting ([#10741](https://github.com/pantsbuild/pants/pull/10741)) +- Remove unused FFI types and `tar_api.rs` ([#10742](https://github.com/pantsbuild/pants/pull/10742)) +- Remove daemonize method + tests ([#10749](https://github.com/pantsbuild/pants/pull/10749)) +- Some refactoring around pantsd and warning filtering ([#10748](https://github.com/pantsbuild/pants/pull/10748)) +- Refactor `pytest_runner_integration_test.py` ([#10736](https://github.com/pantsbuild/pants/pull/10736)) +- Switch the backend of AsyncSemaphore to tokio's Semaphore. ([#10738](https://github.com/pantsbuild/pants/pull/10738)) +- Refactor find_valid_field_sets. ([#10732](https://github.com/pantsbuild/pants/pull/10732)) +- Upgrade to Rust v1.46.0 ([#10694](https://github.com/pantsbuild/pants/pull/10694)) + +### Documentation + +- Fix `./pants help $goal` showing the goal in "related + subsystems" ([#10754](https://github.com/pantsbuild/pants/pull/10754)) + +## 2.0.0a2 (9/3/2020) + +### New Features + +- Support adding arbitrary env vars to test processes ([#10715](https://github.com/pantsbuild/pants/pull/10715)) +- Add a plugin hook for `setup-py` kwargs ([#10721](https://github.com/pantsbuild/pants/pull/10721)) + +### Bugfixes + +- Fix the `testutil` wheel's imports not working due to + namespace packages ([#10725](https://github.com/pantsbuild/pants/pull/10725)) +- Fix Pipenv not parsing requirement extras ([#10722](https://github.com/pantsbuild/pants/pull/10722)) +- Fix invalid shebang for `BinaryPaths` script ([#10710](https://github.com/pantsbuild/pants/pull/10710)) +- Fix retrieval of bytes from artifacts in StreamingWorkunitHandler + ([#10698](https://github.com/pantsbuild/pants/pull/10698)) + +### Refactoring, Improvements, and Tooling + +- Improve Pylint to use + `--python-setup-resolve-all-constraints` ([#10726](https://github.com/pantsbuild/pants/pull/10726)) +- Reorganize `pants/backend/python` ([#10724](https://github.com/pantsbuild/pants/pull/10724)) +- Improve RuleGraph convergence time slightly ([#10700](https://github.com/pantsbuild/pants/pull/10700)) +- Snapshots of single files store normalized paths. ([#10707](https://github.com/pantsbuild/pants/pull/10707)) +- Add product type to the Rule trait to simplify unit testing. + ([#10720](https://github.com/pantsbuild/pants/pull/10720)) + +### Testing + +- Add `RuleRunner.get_target()` ([#10714](https://github.com/pantsbuild/pants/pull/10714)) +- Port more tests from `TestBase` to + `RuleRunner` ([#10704](https://github.com/pantsbuild/pants/pull/10704)) + +### Documentation + +- Formalize support for VCS-style requirements via PEP 440 ([#10728](https://github.com/pantsbuild/pants/pull/10728)) + +## 2.0.0a1 (8/28/2020) + +### API Changes + +- Upgrade default Black version to 20.8b1 ([#10696](https://github.com/pantsbuild/pants/pull/10696)) + +### Bugfixes + +- Fix `test --debug` to be hermetic, but keep + `run` and `repl` non-hermetic ([#10701](https://github.com/pantsbuild/pants/pull/10701)) +- Properly fix setting a custom coverage config file ([#10692](https://github.com/pantsbuild/pants/pull/10692)) +- remoting: output directories in action results reference trees + ([#10691](https://github.com/pantsbuild/pants/pull/10691)) + +### Refactoring, Improvements, and Tooling + +- Unify logging implementations and remove simplelog ([#10686](https://github.com/pantsbuild/pants/pull/10686)) + +### Testing + +- Rename `run_rule` to `run_rule_with_mocks` + ([#10702](https://github.com/pantsbuild/pants/pull/10702)) +- Add `RuleRunner` as a Pytest-style replacement to + `TestBase` ([#10699](https://github.com/pantsbuild/pants/pull/10699)) +- Remove unused `TestBase` setup ([#10697](https://github.com/pantsbuild/pants/pull/10697)) + +### Documentation + +- Fix stale comments in `logger.rs` ([#10695](https://github.com/pantsbuild/pants/pull/10695)) +- Document rule graph construction and open issues ([#10690](https://github.com/pantsbuild/pants/pull/10690)) + +## 2.0.0a0 (8/24/2020) + +### API Changes + +- Temporarily disable protobuf support. ([#10685](https://github.com/pantsbuild/pants/pull/10685)) +- Simplify `python_requirement_library` by deprecating the + `python_requirement` object ([#10669](https://github.com/pantsbuild/pants/pull/10669)) +- Updated default version of pytest to 6.0.1 ([#10328](https://github.com/pantsbuild/pants/pull/10328)) + +### New Features + +- Adds a `pipenv_requirements` macro ([#10654](https://github.com/pantsbuild/pants/pull/10654)) +- Add transitive excludes for `dependencies` with + `!!` ([#10663](https://github.com/pantsbuild/pants/pull/10663)) + +### Bugfixes + +- Fix Coverage loading a custom config file ([#10670](https://github.com/pantsbuild/pants/pull/10670)) +- Fix Rust 3rdparty logs showing up with `--dynamic-ui` + ([#10640](https://github.com/pantsbuild/pants/pull/10640)) +- Fix logging deadlock when trace logging is used ([#10635](https://github.com/pantsbuild/pants/pull/10635)) +- Fix project name canonicalization. ([#10628](https://github.com/pantsbuild/pants/pull/10628)) + +### Refactoring, Improvements, and Tooling + +- Revert "Fix `run`, `repl`, and [test + --debug` to have hermetic environments (#10668)" + ([#10688](https://github.com/pantsbuild/pants/pull/10688)) +- Implement RuleGraph construction using data flow analysis ([#10645](https://github.com/pantsbuild/pants/pull/10645)) +- Fix `run`, `repl`, and [test + --debug` to have hermetic environments ([#10668](https://github.com/pantsbuild/pants/pull/10668)) +- Handle workunits corresponding to canceled Nodes. ([#10659](https://github.com/pantsbuild/pants/pull/10659)) +- Add support for JSON coverage reports ([#10625](https://github.com/pantsbuild/pants/pull/10625)) +- Add an FFI function for reading a `FrozenDict` ([#10666](https://github.com/pantsbuild/pants/pull/10666)) +- Stream output of `typecheck`, rather than dumping at the + end ([#10656](https://github.com/pantsbuild/pants/pull/10656)) +- Allow `binary` to be implemented without implementing + `run` ([#10660](https://github.com/pantsbuild/pants/pull/10660)) +- Reduce noisy log messages from `@rule` params ([#10658](https://github.com/pantsbuild/pants/pull/10658)) +- Add type hints to `TestBase` ([#10647](https://github.com/pantsbuild/pants/pull/10647)) +- Refactoring in graph ([#10637](https://github.com/pantsbuild/pants/pull/10637)) +- Stream output of `test`, rather than dumping at the end + ([#10634](https://github.com/pantsbuild/pants/pull/10634)) +- Preserve Pytest's exit code with `./pants test` + ([#10632](https://github.com/pantsbuild/pants/pull/10632)) +- Rename `--per-target-caching` to + `--per-file-caching` for `lint` and + `fmt` ([#10630](https://github.com/pantsbuild/pants/pull/10630)) +- Upgrade setuptools from 49.2.0 to 49.60 ([#10626](https://github.com/pantsbuild/pants/pull/10626)) +- Allow `test --debug` to run on multiple targets + sequentially ([#10629](https://github.com/pantsbuild/pants/pull/10629)) +- Stream output of `fmt`, rather than dumping at the end + ([#10627](https://github.com/pantsbuild/pants/pull/10627)) +- Stream output of `lint`, rather than dumping at the end + ([#10538](https://github.com/pantsbuild/pants/pull/10538)) +- Add coverage reports as artifacts on the test goal workunit ([#10623](https://github.com/pantsbuild/pants/pull/10623)) + +### Testing + +- Change `TestBase.request_product()` to take an iterable + of subjects ([#10682](https://github.com/pantsbuild/pants/pull/10682)) +- Only use `TestBase` for tests that run rules ([#10680](https://github.com/pantsbuild/pants/pull/10680)) +- Change `pants_integration_test.py` to use Pytest-style + functions ([#10675](https://github.com/pantsbuild/pants/pull/10675)) +- Consolidate `GoalRuleTestBase` into + `TestBase` ([#10679](https://github.com/pantsbuild/pants/pull/10679)) +- Rename `TestBase.request_single_product` to + `TestBase.request_product` ([#10678](https://github.com/pantsbuild/pants/pull/10678)) +- Reorganize `testutil/` ([#10674](https://github.com/pantsbuild/pants/pull/10674)) +- Add `PantsIntegrationTest.setup_tmpdir()` ([#10673](https://github.com/pantsbuild/pants/pull/10673)) +- Change `PantsIntegrationTest` to be hermetic by default + ([#10672](https://github.com/pantsbuild/pants/pull/10672)) +- Remove unused `pytest-timeout` plugin from default + `--pytest-plugins` ([#10631](https://github.com/pantsbuild/pants/pull/10631)) +- Rename `PantsRunIntegrationTest` to + `PantsIntegrationTest` ([#10664](https://github.com/pantsbuild/pants/pull/10664)) +- Add tests for HTML and XML coverage reports. ([#10211](https://github.com/pantsbuild/pants/pull/10211)) + +### Documentation/Logging + +- Provide better debugging information for rule parameters ([#10665](https://github.com/pantsbuild/pants/pull/10665)) +- Stop including the origin module in Debug logs ([#10642](https://github.com/pantsbuild/pants/pull/10642)) +- Change log level for rules and filesystem intrinsics to trace + ([#10639](https://github.com/pantsbuild/pants/pull/10639)) +- Change some remote execution log messages to debug level ([#10643](https://github.com/pantsbuild/pants/pull/10643)) + +## 2.0.0.dev9 (8/15/2020) + +### API Changes + +- Deprecate `--option-name-check-distance` ([#10611](https://github.com/pantsbuild/pants/pull/10611)) + +### New Features + +- Allow restricting use of resolve_all_constraints. ([#10614](https://github.com/pantsbuild/pants/pull/10614)) + +### Bugfixes + +- Revert #10603 so that `conftest.py` belongs to + `python_tests` again ([#10619](https://github.com/pantsbuild/pants/pull/10619)) +- Spawning against materialized binaries works. ([#10577](https://github.com/pantsbuild/pants/pull/10577)) +- Fix linter reports when there are multiple generated ([#10612](https://github.com/pantsbuild/pants/pull/10612)) +- Fix log not always showing up when `--dynamic-ui` is + set ([#10616](https://github.com/pantsbuild/pants/pull/10616)) + +### Refactoring, Improvements, and Tooling + +- Simplify `core/goals/test.py` ([#10622](https://github.com/pantsbuild/pants/pull/10622)) +- Remove passive options mechanism ([#10621](https://github.com/pantsbuild/pants/pull/10621)) +- Speed up resolving requirements through + `--use-first-matching-interpreter` Pex flag ([#10442](https://github.com/pantsbuild/pants/pull/10442)) + +## 2.0.0.dev8 (8/13/2020) + +### API Changes + +- Change `conftest.py` to default to + `python_library` rather than `python_tests` + ([#10603](https://github.com/pantsbuild/pants/pull/10603)) +- Deprecate `--python-setup-platforms` ([#10596](https://github.com/pantsbuild/pants/pull/10596)) +- Make `zip_safe` default to False for + `python_binary` targets. ([#10608](https://github.com/pantsbuild/pants/pull/10608)) + +### New Features + +- Add `--python-infer-string-imports` ([#10609](https://github.com/pantsbuild/pants/pull/10609)) +- Add `--pex-verbosity` option to facilitate debugging + ([#10604](https://github.com/pantsbuild/pants/pull/10604)) + +### Bugfixes + +- Fix binary running to correctly work with source roots. ([#10607](https://github.com/pantsbuild/pants/pull/10607)) +- Fix issues with REPL implementation ([#10597](https://github.com/pantsbuild/pants/pull/10597)) +- Fix regression in unmatched globs error message ([#10595](https://github.com/pantsbuild/pants/pull/10595)) +- Require `provides` field for a + `python_distribution` target ([#10591](https://github.com/pantsbuild/pants/pull/10591)) + +### Refactoring, Improvements, and Tooling + +- Rename `determine_source_files.py` and + `strip_source_roots.py` ([#10588](https://github.com/pantsbuild/pants/pull/10588)) +- Add XML test results as artifacts on the test goal workunit ([#10606](https://github.com/pantsbuild/pants/pull/10606)) +- Add non-root pantsbuild user to remote execution image ([#10583](https://github.com/pantsbuild/pants/pull/10583)) +- Move `--files-not-found-behavior` and BUILD file + options out of bootstrap options ([#10586](https://github.com/pantsbuild/pants/pull/10586)) +- Remoting: limit retries for execution requests. ([#10600](https://github.com/pantsbuild/pants/pull/10600)) +- Ensure MyPy always runs with at least Python 3.6 internally. + ([#10602](https://github.com/pantsbuild/pants/pull/10602)) + +### Documentation + +- Improve errors for invalid `Get` objects ([#10593](https://github.com/pantsbuild/pants/pull/10593)) + +## 2.0.0.dev7 (8/10/2020) + +### API Changes + +- A python_distribution target. ([#10565](https://github.com/pantsbuild/pants/pull/10565)) +- Enable Python dependency inference by default ([#10520](https://github.com/pantsbuild/pants/pull/10520)) +- Targets act as aliases for their files ([#10511](https://github.com/pantsbuild/pants/pull/10511)) + +### New Features + +- Allow using file addresses on the command line ([#10573](https://github.com/pantsbuild/pants/pull/10573)) +- Add `--build-patterns` option ([#10559](https://github.com/pantsbuild/pants/pull/10559)) +- Allow protobuf_library targets to specify a python source root. + ([#10549](https://github.com/pantsbuild/pants/pull/10549)) +- Restore the missing init injection logic. ([#10517](https://github.com/pantsbuild/pants/pull/10517)) +- Add `--pex-executable-search-path` ([#10489](https://github.com/pantsbuild/pants/pull/10489)) +- Add support for bandit output file. ([#10412](https://github.com/pantsbuild/pants/pull/10412)) + +### Bugfixes + +- Sync before executing a process if running in Docker ([#10568](https://github.com/pantsbuild/pants/pull/10568)) +- Fix some issues from #10535 Address changes ([#10555](https://github.com/pantsbuild/pants/pull/10555)) +- Remove self-inflicted invalidation caused by exception logging. + ([#10521](https://github.com/pantsbuild/pants/pull/10521)) +- Fix bug that caused setup-py to hang if src root==buildroot. + ([#10509](https://github.com/pantsbuild/pants/pull/10509)) +- Fix ExternalTool to use relative paths ([#10503](https://github.com/pantsbuild/pants/pull/10503)) +- Fix `./pants binary` not outputting the full output path + ([#10506](https://github.com/pantsbuild/pants/pull/10506)) + +### Refactoring, Improvements, and Tooling + +- Stop validating that `!` dependency ignores are used + ([#10585](https://github.com/pantsbuild/pants/pull/10585)) +- Lower the default for `--python-setup-resolver-jobs` + ([#10584](https://github.com/pantsbuild/pants/pull/10584)) +- Automatically inject dependencies on sibling files when dependency + inference is unused ([#10582](https://github.com/pantsbuild/pants/pull/10582)) +- Use a constraints file in this repo. ([#10579](https://github.com/pantsbuild/pants/pull/10579)) +- Disable speculation by default ([#10581](https://github.com/pantsbuild/pants/pull/10581)) +- upgrade to Rust v1.45.2 ([#10556](https://github.com/pantsbuild/pants/pull/10556)) +- Move `--tag` and `--exclude-target-regexp` + out of bootstrap options ([#10569](https://github.com/pantsbuild/pants/pull/10569)) +- Allow for disabling pantsrc in OptionsBootstrapper independently of + options values ([#10562](https://github.com/pantsbuild/pants/pull/10562)) +- Refactor rule to resolve address specs ([#10563](https://github.com/pantsbuild/pants/pull/10563)) +- Stop using `AddressWithOrigin` for precise file + arguments ([#10551](https://github.com/pantsbuild/pants/pull/10551)) +- Always use generated subtargets with file arguments ([#10550](https://github.com/pantsbuild/pants/pull/10550)) +- Remove unused `SymbolTable` ([#10544](https://github.com/pantsbuild/pants/pull/10544)) +- Support and require disambiguated file addresses ([#10535](https://github.com/pantsbuild/pants/pull/10535)) +- Revert "Add cache_failures option to Process type (#10433)" + ([#10534](https://github.com/pantsbuild/pants/pull/10534)) +- Simplify source root stripping. ([#10543](https://github.com/pantsbuild/pants/pull/10543)) +- Improve source root stripping performance. ([#10533](https://github.com/pantsbuild/pants/pull/10533)) +- ArgSplitter operates relative to the buildroot. ([#10540](https://github.com/pantsbuild/pants/pull/10540)) +- Simplify the setup-py rules. ([#10529](https://github.com/pantsbuild/pants/pull/10529)) +- Allow `Process` to set its workunit level ([#10528](https://github.com/pantsbuild/pants/pull/10528)) +- Rely on the init-injection rules to trigger errors for + un-depended-on-and-relevant `__init__.py` files. ([#10524](https://github.com/pantsbuild/pants/pull/10524)) +- Remove rust source include from integration tests. ([#10522](https://github.com/pantsbuild/pants/pull/10522)) +- upgrade to rust v1.45.1 ([#10523](https://github.com/pantsbuild/pants/pull/10523)) +- Store SpanIds as integers ([#10512](https://github.com/pantsbuild/pants/pull/10512)) +- Remove `tarutil.py` ([#10516](https://github.com/pantsbuild/pants/pull/10516)) +- Refactor Pex usage through new helper rules ([#10514](https://github.com/pantsbuild/pants/pull/10514)) +- Get rid of the remote backend subsystems. ([#10502](https://github.com/pantsbuild/pants/pull/10502)) +- Move subsystem.py and its test into pants.option. ([#10500](https://github.com/pantsbuild/pants/pull/10500)) +- Lower the default local parallelism, and align the number of + swimlanes to it. ([#10499](https://github.com/pantsbuild/pants/pull/10499)) +- Rotate travis aws creds. ([#10496](https://github.com/pantsbuild/pants/pull/10496)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) +- Deprecate `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10493](https://github.com/pantsbuild/pants/pull/10493)) +- Simplify script to check `__init__.py` files + ([#10488](https://github.com/pantsbuild/pants/pull/10488)) +- Merge interactive_process.py into process.py ([#10495](https://github.com/pantsbuild/pants/pull/10495)) +- Export `Get` and `MultiGet` from + `rules.py` ([#10485](https://github.com/pantsbuild/pants/pull/10485)) +- Simplify `engine/internals/nodes.py` ([#10487](https://github.com/pantsbuild/pants/pull/10487)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) + +### Testing + +- Disable remote execution due to RBE shutdown. ([#10566](https://github.com/pantsbuild/pants/pull/10566)) +- remoting: use non-RBE pants remote execution image ([#10539](https://github.com/pantsbuild/pants/pull/10539)) +- Avoid Python 3.8+ for Pylint test ([#10548](https://github.com/pantsbuild/pants/pull/10548)) +- avoid Py 3.8 for BanditIntegrationTest.test_3rdparty_plugin ([#10546](https://github.com/pantsbuild/pants/pull/10546)) +- set locale vars for remoting image ([#10541](https://github.com/pantsbuild/pants/pull/10541)) +- Test for rule graph issues with each distinct backend ([#10519](https://github.com/pantsbuild/pants/pull/10519)) +- docker image for remote execution without GCP/RBE ([#10515](https://github.com/pantsbuild/pants/pull/10515)) + +### Documentation/Logging + +- Update docs urls to pantsbuild.org. ([#10580](https://github.com/pantsbuild/pants/pull/10580)) +- Improve log message when resolving entire lockfile. ([#10578](https://github.com/pantsbuild/pants/pull/10578)) +- Improve error message when the path component does not exist + ([#10570](https://github.com/pantsbuild/pants/pull/10570)) +- Prepare 1.30.1rc0 ([#10554](https://github.com/pantsbuild/pants/pull/10554)) +- Improve error message for unrecognized BUILD file symbols ([#10531](https://github.com/pantsbuild/pants/pull/10531)) +- Reduce verbosity of finding binaries ([#10525](https://github.com/pantsbuild/pants/pull/10525)) +- Render all frames of a failure in Engine tracebacks ([#10510](https://github.com/pantsbuild/pants/pull/10510)) +- Fix bad indent of default in option help. ([#10501](https://github.com/pantsbuild/pants/pull/10501)) +- Fix display of default/current values in help. ([#10490](https://github.com/pantsbuild/pants/pull/10490)) +- Stop warning when return code != 0 or 1 ([#10486](https://github.com/pantsbuild/pants/pull/10486)) + +## 2.0.0.dev6 (7/28/2020) + +### API Changes + +- Upgrade to Pex 2.1.14 ([#10437](https://github.com/pantsbuild/pants/pull/10437)) + +### New Features + +- Improve test output and allow it be configured. ([#10484](https://github.com/pantsbuild/pants/pull/10484)) + +### Bugfixes + +- Make independent owners requests per file to improve memoization + ([#10491](https://github.com/pantsbuild/pants/pull/10491)) +- Fix `PluginField` not working in production ([#10469](https://github.com/pantsbuild/pants/pull/10469)) +- Allow for more cyclic cases with file dependencies ([#10475](https://github.com/pantsbuild/pants/pull/10475)) +- Fix Protobuf when using source roots ([#10453](https://github.com/pantsbuild/pants/pull/10453)) +- Fix fromfile expansion to skip passthrough args. ([#10457](https://github.com/pantsbuild/pants/pull/10457)) +- Fix `--print-exception-stacktrace` not invalidating + pantsd ([#10451](https://github.com/pantsbuild/pants/pull/10451)) +- fixes in async_semaphore for concurrency ID calculation ([#10436](https://github.com/pantsbuild/pants/pull/10436)) + +### Refactoring, Improvements, and Tooling + +- Eliminate most rule registration boilerplate. ([#10477](https://github.com/pantsbuild/pants/pull/10477)) +- Remove unused `util/` and `base/` code + ([#10462](https://github.com/pantsbuild/pants/pull/10462)) +- Rename `UrlToFetch` to `DownloadFile` + ([#10468](https://github.com/pantsbuild/pants/pull/10468)) +- Change the `PathGlobs`, `SnapshotSubset`, + and `UrlToFetch` intrinsics to return + `Digest` ([#10449](https://github.com/pantsbuild/pants/pull/10449)) +- Unify accessing options for a `GoalSubsystem` with + `Subsystem` ([#10456](https://github.com/pantsbuild/pants/pull/10456)) +- Rename `Workspace.materialize_directory()` to + `Workspace.write_digest()` ([#10448](https://github.com/pantsbuild/pants/pull/10448)) +- Remove unused `SingleFileExecutable` ([#10443](https://github.com/pantsbuild/pants/pull/10443)) +- Remove support for Protoc 2 ([#10439](https://github.com/pantsbuild/pants/pull/10439)) +- Make GoalSubsystem subclass Subsystem. ([#10483](https://github.com/pantsbuild/pants/pull/10483)) +- Tweaks to help output: ([#10466](https://github.com/pantsbuild/pants/pull/10466)) +- Cleanup `fs.py` ([#10474](https://github.com/pantsbuild/pants/pull/10474)) +- Add `UnionMembership.from_rules()` ([#10472](https://github.com/pantsbuild/pants/pull/10472)) +- Kill Reporting (mostly). ([#10463](https://github.com/pantsbuild/pants/pull/10463)) +- Add dependencies on conftest and init files via inference ([#10441](https://github.com/pantsbuild/pants/pull/10441)) +- Kill ./pants literals. ([#10465](https://github.com/pantsbuild/pants/pull/10465)) +- Remove Options <-> Parser cycle. ([#10464](https://github.com/pantsbuild/pants/pull/10464)) +- Revert "Use isort v5.x as the default version (#10258)" ([#10460](https://github.com/pantsbuild/pants/pull/10460)) +- Demystify get_all_scoped_flag_names mypy kludges. ([#10459](https://github.com/pantsbuild/pants/pull/10459)) +- Optimize generated subtargets' interaction with + `SpecifiedSourceFiles` ([#10454](https://github.com/pantsbuild/pants/pull/10454)) +- Simplify Collection. ([#10450](https://github.com/pantsbuild/pants/pull/10450)) +- Improvements to help output. ([#10444](https://github.com/pantsbuild/pants/pull/10444)) +- Fixes to get the process_executor CLI tool working again. ([#10435](https://github.com/pantsbuild/pants/pull/10435)) +- Rename argument in streaming workunit callback ([#10432](https://github.com/pantsbuild/pants/pull/10432)) + +### Testing + +- Only skip building wheels on PR builds ([#10482](https://github.com/pantsbuild/pants/pull/10482)) +- Skip building wheels if no release files have changed ([#10481](https://github.com/pantsbuild/pants/pull/10481)) +- Skip flaky GoalRuleIntegrationTest ([#10479](https://github.com/pantsbuild/pants/pull/10479)) +- A script to create an index.html for pants wheels on S3. ([#10458](https://github.com/pantsbuild/pants/pull/10458)) +- Get rid of remaining uses of init_subsystem. ([#10427](https://github.com/pantsbuild/pants/pull/10427)) + +## 2.0.0.dev5 (7/22/2020) + +### API Changes + +- Use isort v5.x as the default version ([#10258](https://github.com/pantsbuild/pants/pull/10258)) +- Don't register any options as recursive. ([#10415](https://github.com/pantsbuild/pants/pull/10415)) + +### New Features + +- Speed up `repl` to no longer rebuild a Pex on source + file changes ([#10418](https://github.com/pantsbuild/pants/pull/10418)) + +### Refactoring, Improvements, and Tooling + +- Implement cycle detection in transitive_targets, and tolerate cycles + in file-addresses. ([#10409](https://github.com/pantsbuild/pants/pull/10409)) +- Stop using cargo-ensure-installed ([#10400](https://github.com/pantsbuild/pants/pull/10400)) +- Remove use of "quiet" in logging init ([#10417](https://github.com/pantsbuild/pants/pull/10417)) + +### Testing + +- Port the plugin resolver test to v2 test style. ([#10424](https://github.com/pantsbuild/pants/pull/10424)) +- Refactor flake8 integration test to use create_options_bootstrapper + ([#10422](https://github.com/pantsbuild/pants/pull/10422)) +- Increase timeout on project_info tests. ([#10421](https://github.com/pantsbuild/pants/pull/10421)) + +## 2.0.0.dev4 (7/21/2020) + +### API Changes + +- Upgrade default mypy from 0.781 to 0.782 ([#10404](https://github.com/pantsbuild/pants/pull/10404)) +- Remove unused `--fmt-only` option ([#10388](https://github.com/pantsbuild/pants/pull/10388)) +- Don't turn on branch coverage by default. ([#10386](https://github.com/pantsbuild/pants/pull/10386)) +- access store server for action cache ([#10329](https://github.com/pantsbuild/pants/pull/10329)) +- Upgrade setuptools from 49.1.0 to 49.2.0 ([#10347](https://github.com/pantsbuild/pants/pull/10347)) +- Move `target.py` rules to + `engine/internals/graph.py` ([#10372](https://github.com/pantsbuild/pants/pull/10372)) + +### New Features + +- Speed up `run` to no longer rebuild a Pex on source file + changes ([#10410](https://github.com/pantsbuild/pants/pull/10410)) +- Support for using a single global resolve. ([#10405](https://github.com/pantsbuild/pants/pull/10405)) +- Flake8 output file support. ([#10371](https://github.com/pantsbuild/pants/pull/10371)) +- A flag to force rerunning tests, bypassing the cache. ([#10403](https://github.com/pantsbuild/pants/pull/10403)) +- Support for injecting ancestor conftest.py files. ([#10378](https://github.com/pantsbuild/pants/pull/10378)) +- Allow ignoring dependencies with `!` ([#10385](https://github.com/pantsbuild/pants/pull/10385)) +- Allow dependencies on files in BUILD files ([#10381](https://github.com/pantsbuild/pants/pull/10381)) +- Unify generated subtargets with file arguments and + `--changed-since` ([#10356](https://github.com/pantsbuild/pants/pull/10356)) +- Use colors for log messages ([#10278](https://github.com/pantsbuild/pants/pull/10278)) + +### Bugfixes + +- Print initial logs from pantsd using local time format [Issue + #10128](https://github.com/pantsbuild/pants/issues/10128) +- Fix using relative paths with `--local-cache-dir` and + `--named-caches-dir` ([#10398](https://github.com/pantsbuild/pants/pull/10398)) +- Fix validation of dependencies ignores breaking with generated + subtargets ([#10407](https://github.com/pantsbuild/pants/pull/10407)) +- close write stream for CAS writes via ByteStream API ([#10395](https://github.com/pantsbuild/pants/pull/10395)) +- Fix recently added n^2 edge collection. ([#10392](https://github.com/pantsbuild/pants/pull/10392)) +- Align cache directory calculation so that the LMDB store location is + uniformly configurable. ([#10391](https://github.com/pantsbuild/pants/pull/10391)) +- remoting: use debug level for RE client workunits saved from remote + ([#10382](https://github.com/pantsbuild/pants/pull/10382)) +- Always include types in the engine's definition of equality. + ([#10377](https://github.com/pantsbuild/pants/pull/10377)) +- Have help respond to color ([#10357](https://github.com/pantsbuild/pants/pull/10357)) +- Display multiline help nicely. ([#10366](https://github.com/pantsbuild/pants/pull/10366)) + +### Refactoring, Improvements, and Tooling + +- Add a hint about adjusting max_user_watches on Linux. ([#10413](https://github.com/pantsbuild/pants/pull/10413)) +- Delete unused v1 sources. ([#10411](https://github.com/pantsbuild/pants/pull/10411)) +- upgrade to Rust 1.45.0 ([#10396](https://github.com/pantsbuild/pants/pull/10396)) +- Tolerate target cycles when using dependency inference ([#10393](https://github.com/pantsbuild/pants/pull/10393)) +- Revert "Tolerate target cycles when using dependency inference + (#10393)" ([#10401](https://github.com/pantsbuild/pants/pull/10401)) +- Add support for cycle-tolerant "weak" Gets ([#10230](https://github.com/pantsbuild/pants/pull/10230)) +- Make fetching wheels more resilient to network errors. ([#10376](https://github.com/pantsbuild/pants/pull/10376)) +- Avoid undefined behaviour around f64/u64 casts ([#10374](https://github.com/pantsbuild/pants/pull/10374)) +- Fix when an explicitly provided dependency supersedes an inferred + dependency ([#10375](https://github.com/pantsbuild/pants/pull/10375)) +- Fix dependency inference handling of dependencies on self ([#10373](https://github.com/pantsbuild/pants/pull/10373)) +- Render local process infrastructure errors more verbosely. ([#10368](https://github.com/pantsbuild/pants/pull/10368)) +- Use our validate goal instead of the custom header check. ([#10361](https://github.com/pantsbuild/pants/pull/10361)) +- Delete some unused testprojects code. ([#10364](https://github.com/pantsbuild/pants/pull/10364)) + +### Testing + +- Upload coverage data to coveralls ([#10299](https://github.com/pantsbuild/pants/pull/9919)) + +### Documentation + +- A script to generate options reference pages for the docsite. + ([#10387](https://github.com/pantsbuild/pants/pull/10387)) + +## 2.0.0.dev3 (7/15/2020) + +### New Features + +- Allow specifying address and file arguments at the same time + ([#10345](https://github.com/pantsbuild/pants/pull/10345)) +- Make help-all dump a JSON blob containing all help info. ([#10336](https://github.com/pantsbuild/pants/pull/10336)) +- Integrate option value derivation into help. ([#10313](https://github.com/pantsbuild/pants/pull/10313)) +- Generate subtargets with file-level precision for dependency + inference ([#10305](https://github.com/pantsbuild/pants/pull/10305)) +- Add option for specifying environment variable with concurrency slot + ([#10297](https://github.com/pantsbuild/pants/pull/10297)) +- Add support for specifying a custom coverage config file + (.coveragerc) ([#10289](https://github.com/pantsbuild/pants/pull/10289)) + +### Bugfixes + +- Fix generated subtargets not working with `dependees` + ([#10355](https://github.com/pantsbuild/pants/pull/10355)) +- Ignore dead symlinks on Linux as well as OSX ([#10339](https://github.com/pantsbuild/pants/pull/10339)) +- Fix bug where workunit completion was not reported correctly + ([#10277](https://github.com/pantsbuild/pants/pull/10277)) +- Fix collision in workunit affecting patches. ([#10350](https://github.com/pantsbuild/pants/pull/10350)) +- Pass stream workunit context to all callbacks calls instead of just + passing it in the last call. ([#10340](https://github.com/pantsbuild/pants/pull/10340)) +- Fix awslambda configuration of Pex. ([#10323](https://github.com/pantsbuild/pants/pull/10323)) +- Hotfix Bandit breaking from stevedore 3.0 release ([#10319](https://github.com/pantsbuild/pants/pull/10319)) + +### Refactoring, Improvements, and Tooling + +- Render only leaf rule graph errors, and improve error messages + ([#10311](https://github.com/pantsbuild/pants/pull/10311)) +- Tweak `any_matches_filespec` to return which paths + matched ([#10358](https://github.com/pantsbuild/pants/pull/10358)) +- Add check for invalid concrete time dates ([#10349](https://github.com/pantsbuild/pants/pull/10349)) +- Explicit error on missing descriptions in the `goals` + goal. ([#10348](https://github.com/pantsbuild/pants/pull/10348)) +- Add module to default rule names. ([#10341](https://github.com/pantsbuild/pants/pull/10341)) +- add artifacts infrastructure on relevant types ([#10344](https://github.com/pantsbuild/pants/pull/10344)) +- Revert modernization of virtualenv to fix pants.pex deploy in CI. + ([#10343](https://github.com/pantsbuild/pants/pull/10343)) +- Represent generated subtarget addresses as file names ([#10338](https://github.com/pantsbuild/pants/pull/10338)) +- Remove unusued RunTracker code ([#10315](https://github.com/pantsbuild/pants/pull/10315)) +- Minor wording change in help message ([#10335](https://github.com/pantsbuild/pants/pull/10335)) +- Display whether a scope is a goal or subsystem in help. ([#10332](https://github.com/pantsbuild/pants/pull/10332)) +- Fix `run_virtualenv` to target the current + `$PY`. ([#10331](https://github.com/pantsbuild/pants/pull/10331)) +- Modernize virtualenv. ([#10330](https://github.com/pantsbuild/pants/pull/10330)) +- Stop differentiating between constructors and types in FFI. ([#10327](https://github.com/pantsbuild/pants/pull/10327)) +- Use generated subtargets internally ([#10312](https://github.com/pantsbuild/pants/pull/10312)) +- Remove `Revision` ([#10318](https://github.com/pantsbuild/pants/pull/10318)) +- Bump to nails 0.6.0 to lay groundwork for cancelation of pantsd + runs. ([#10320](https://github.com/pantsbuild/pants/pull/10320)) +- remove polling remote execution client ([#10306](https://github.com/pantsbuild/pants/pull/10306)) +- Remove `Struct` and `@addressable` + abstractions ([#10309](https://github.com/pantsbuild/pants/pull/10309)) +- Move SubprocessProcessHandler near its single use. ([#10307](https://github.com/pantsbuild/pants/pull/10307)) +- No longer special case the `dependencies` field with + TargetAdaptor ([#10303](https://github.com/pantsbuild/pants/pull/10303)) +- Use with_workunit everywhere ([#10300](https://github.com/pantsbuild/pants/pull/10300)) +- refactor execution strategy options into separate struct ([#10304](https://github.com/pantsbuild/pants/pull/10304)) +- Remove -q from the release run of reversion. ([#10301](https://github.com/pantsbuild/pants/pull/10301)) +- Simplify BUILD file parsing ([#10298](https://github.com/pantsbuild/pants/pull/10298)) + +### Testing + +- Fix tests that relied on the docsite CNAME file. ([#10337](https://github.com/pantsbuild/pants/pull/10337)) +- Run unit tests and integration tests in CI in the same Pants run + ([#10333](https://github.com/pantsbuild/pants/pull/10333)) +- Merge the unit and integration tests ([#10302](https://github.com/pantsbuild/pants/pull/10302)) +- Run code coverage on v2 unit tests. ([#9919](https://github.com/pantsbuild/pants/pull/9919)) + +## 2.0.0.dev2 (7/8/2020) + +### API Changes + +- Rename `FilesContent` to `DigestContents` + and `InputFilesContent` to `CreateDigest` + ([#10290](https://github.com/pantsbuild/pants/pull/10290)) +- remoting: default is streaming client ([#10260](https://github.com/pantsbuild/pants/pull/10260)) +- Upgrade setuptools from 47.3.1 to 49.1.0 ([#10255](https://github.com/pantsbuild/pants/pull/10255)) +- Upgrade packaging from 20.3 to 20.4 ([#10256](https://github.com/pantsbuild/pants/pull/10256)) +- Deprecate the --v1/--v2 global options. ([#10245](https://github.com/pantsbuild/pants/pull/10245)) + +### New Features + +- Preserve source roots with Pytest output ([#10165](https://github.com/pantsbuild/pants/pull/10165)) + +### Bugfixes + +- Downgrade to tokio 0.2.20 to fix + `materialize_directories`. ([#10294](https://github.com/pantsbuild/pants/pull/10294)) +- Expose method to bring down dynamic UI ([#10234](https://github.com/pantsbuild/pants/pull/10234)) +- Fix double-workunit-completion print ([#10247](https://github.com/pantsbuild/pants/pull/10179)) + +### Refactoring, Improvements, and Tooling + +- Remove v1 `source/` abstractions like + `EagerFileSet` ([#10292](https://github.com/pantsbuild/pants/pull/10292)) +- Use f-strings in engine/util.py ([#10288](https://github.com/pantsbuild/pants/pull/10288)) +- Use dependency inference internally ([#10283](https://github.com/pantsbuild/pants/pull/10283)) +- Unify `LegacyPythonCallbackParser` and + `Parser` ([#10281](https://github.com/pantsbuild/pants/pull/10281)) +- Lower the default max-memory usage of pantsd. ([#10287](https://github.com/pantsbuild/pants/pull/10287)) +- Improvements and refactoring of help system. ([#10280](https://github.com/pantsbuild/pants/pull/10280)) +- Refactor WorkunitStore struct ([#10242](https://github.com/pantsbuild/pants/pull/10242)) +- remoting: check action cache for cached result before submitting a + request ([#10253](https://github.com/pantsbuild/pants/pull/10253)) +- Remove leftover v1 Target API bindings ([#10276](https://github.com/pantsbuild/pants/pull/10276)) +- Fix remaining internal dependency cycles ([#10254](https://github.com/pantsbuild/pants/pull/10254)) +- Remove `build_graph.Target` ([#10266](https://github.com/pantsbuild/pants/pull/10266)) +- Remove `cache/` and `invalidation/` ([#10262](https://github.com/pantsbuild/pants/pull/10262)) +- Remove obsolete root patterns. ([#10263](https://github.com/pantsbuild/pants/pull/10263)) +- Remove `Task`, `Goal`, and + `Context` ([#10252](https://github.com/pantsbuild/pants/pull/10252)) +- Simplify `git.py` and `scm.py` ([#10251](https://github.com/pantsbuild/pants/pull/10251)) +- Remove the internal tags `type_checked` and + `partially_type_checked` ([#10244](https://github.com/pantsbuild/pants/pull/10244)) +- Remove `HydratedTarget`, `AddressMapper`, + and `BuildGraph` ([#10250](https://github.com/pantsbuild/pants/pull/10250)) +- Remove all remaining v1 Targets ([#10246](https://github.com/pantsbuild/pants/pull/10246)) +- Remove `TestBase.context()` ([#10248](https://github.com/pantsbuild/pants/pull/10248)) +- Delete the rest of v1 `pants.backend.python` ([#10240](https://github.com/pantsbuild/pants/pull/10240)) +- Remove the concept of a scope category. ([#10224](https://github.com/pantsbuild/pants/pull/10224)) + +### Testing + +- Remove stale "pants.pex for integration tests" mechanism ([#10279](https://github.com/pantsbuild/pants/pull/10279)) +- Re-enable RBE ([#10284](https://github.com/pantsbuild/pants/pull/10284)) +- Temporarily disable remote execution in CI ([#10268](https://github.com/pantsbuild/pants/pull/10268)) +- Upgrade responses from 0.10.14 to 0.10.15 ([#10257](https://github.com/pantsbuild/pants/pull/10257)) +- Increase pylint integration tests timeout. ([#10261](https://github.com/pantsbuild/pants/pull/10261)) +- Fix broken Pylint test from new isort release ([#10259](https://github.com/pantsbuild/pants/pull/10259)) +- Simplify ci.py now that we have no v1 tests ([#10241](https://github.com/pantsbuild/pants/pull/10241)) + +## 2.0.0.dev1 (7/2/2020) + +### API Changes + +- Get rid of --plugins2/--backend-packages2 ([#10231](https://github.com/pantsbuild/pants/pull/10231)) +- Deprecate `--changed-include-dependees` in favor of + `--changed-dependees` ([#10217](https://github.com/pantsbuild/pants/pull/10217)) +- Remove `pants.contrib.mypy` plugin in favor of v2 + implementation ([#10157](https://github.com/pantsbuild/pants/pull/10157)) +- Remove `--coverage-py-omit-test-sources` ([#10202](https://github.com/pantsbuild/pants/pull/10202)) +- Gets rid of the v1 GoalRunner. ([#10167](https://github.com/pantsbuild/pants/pull/10167)) +- Remove `pants.backend.jvm` ([#10218](https://github.com/pantsbuild/pants/pull/10218)) +- Remove --zipkin-trace-v2 option ([#10184](https://github.com/pantsbuild/pants/pull/10184)) +- Remove `core_tasks/` and most of `task/` + ([#10236](https://github.com/pantsbuild/pants/pull/10236)) +- Remove v1 portions of `backend/native` and + `ipex` ([#10187](https://github.com/pantsbuild/pants/pull/10187)) +- Delete v1 python backend task code ([#10223](https://github.com/pantsbuild/pants/pull/10223)) +- Remove v1 Python `unpack_whls`, `bundle`, + and `repl` ([#10204](https://github.com/pantsbuild/pants/pull/10204)) +- Remove Thrift ([#10171](https://github.com/pantsbuild/pants/pull/10171)) +- Remove `TestBase.create_library()` and + `TestBase.target()` ([#10237](https://github.com/pantsbuild/pants/pull/10237)) +- Remove some v1 parts of `testutil/` ([#10233](https://github.com/pantsbuild/pants/pull/10233)) + +### New Features + +- Add new `typecheck` goal for MyPy ([#10212](https://github.com/pantsbuild/pants/pull/10212)) +- Properly handle PEP 420 namespace packages ([#10183](https://github.com/pantsbuild/pants/pull/10183)) +- Add support for creating multiple coverage reports ([#9997](https://github.com/pantsbuild/pants/pull/9997)) +- Add the ability to write/output the raw coverage file. ([#10195](https://github.com/pantsbuild/pants/pull/10195)) +- Log Coverage report name as part of the console message. ([#10194](https://github.com/pantsbuild/pants/pull/10194)) +- Attempt to adjust file handle limits and warn if they cannot be + adjusted ([#10174](https://github.com/pantsbuild/pants/pull/10174)) + +### Bugfixes + +- Fix `--changed-dependees` to work when v1 is disabled + ([#10235](https://github.com/pantsbuild/pants/pull/10235)) +- Teach `pants_requirement()` to work with dependency + inference ([#10232](https://github.com/pantsbuild/pants/pull/10232)) +- Remove indentation in process errors. ([#10181](https://github.com/pantsbuild/pants/pull/10181)) +- Automatically include `__init__.py` files ([#10166](https://github.com/pantsbuild/pants/pull/10166)) +- Fix AddPrefix to correctly add arbitrarily many parent components + ([#10189](https://github.com/pantsbuild/pants/pull/10189)) +- Fix `dependencies --transitive` to include target roots + that are also dependencies ([#10186](https://github.com/pantsbuild/pants/pull/10186)) +- Fix MyPy to include `resources`, but still not + `files` ([#10168](https://github.com/pantsbuild/pants/pull/10168)) + +### Refactoring, Improvements, and Tooling + +- Reduce time spend grabbing locks in workunit code ([#10179](https://github.com/pantsbuild/pants/pull/10179)) +- local_cas supports an instance-name ([#10225](https://github.com/pantsbuild/pants/pull/10225)) +- local_cas supports GetCapabilities request ([#10226](https://github.com/pantsbuild/pants/pull/10226)) +- Refactor remoting options into separate struct ([#10215](https://github.com/pantsbuild/pants/pull/10215)) +- remoting: log RE capabilities and refresh REv2 proto ([#10155](https://github.com/pantsbuild/pants/pull/10155)) +- Fix stray type error in fs.py ([#10182](https://github.com/pantsbuild/pants/pull/10182)) +- Remove redundant cast call ([#10196](https://github.com/pantsbuild/pants/pull/10196)) +- Use debug level for remote store workunits ([#10238](https://github.com/pantsbuild/pants/pull/10238)) +- Simplify Get implementation. ([#10178](https://github.com/pantsbuild/pants/pull/10178)) +- Delete the old BinaryTool mechanism. ([#10239](https://github.com/pantsbuild/pants/pull/10239)) +- Delete more v1 task-related integration tests. ([#10210](https://github.com/pantsbuild/pants/pull/10210)) +- Refactor coverage integration tests ([#10209](https://github.com/pantsbuild/pants/pull/10209)) +- Stop using deprecated assertEquals ([#10197](https://github.com/pantsbuild/pants/pull/10197)) +- Remove `ivy/` and most of `java/` ([#10222](https://github.com/pantsbuild/pants/pull/10222)) +- Remove Bundle and App code ([#10221](https://github.com/pantsbuild/pants/pull/10221)) +- Remove more zipkin-related code ([#10207](https://github.com/pantsbuild/pants/pull/10207)) +- Remove unused `list_backends.py` ([#10205](https://github.com/pantsbuild/pants/pull/10205)) +- Remove internal `contrib/` infrastructure ([#10177](https://github.com/pantsbuild/pants/pull/10177)) +- Rewrite/delete some tests that involve v1 tasks. ([#10219](https://github.com/pantsbuild/pants/pull/10219)) +- Remove JVM testprojects ([#10216](https://github.com/pantsbuild/pants/pull/10216)) +- Stop testing `testprojects::` ([#10170](https://github.com/pantsbuild/pants/pull/10170)) +- Remove the src/{scala|java} directories. ([#10201](https://github.com/pantsbuild/pants/pull/10201)) +- Delete examples/src/{java,scala}. ([#10198](https://github.com/pantsbuild/pants/pull/10198)) +- Stop running JVM tests written in Java/Scala ([#10175](https://github.com/pantsbuild/pants/pull/10175)) +- Move `scm/` and `util/` tests to + `src` ([#10176](https://github.com/pantsbuild/pants/pull/10176)) +- Nuke more v1 tests ([#10172](https://github.com/pantsbuild/pants/pull/10172)) +- upgrade tokio to 0.2.21 ([#10191](https://github.com/pantsbuild/pants/pull/10191)) +- upgrade futures crate to 0.3.5 ([#10190](https://github.com/pantsbuild/pants/pull/10190)) +- upgrade async-trait crate to 0.1.36 ([#10193](https://github.com/pantsbuild/pants/pull/10193)) +- upgrade crossbeam-channel create so only one copy ([#10192](https://github.com/pantsbuild/pants/pull/10192)) +- upgrade indexmap crate ([#10199](https://github.com/pantsbuild/pants/pull/10199)) +- upgrade parking_lot crate ([#10200](https://github.com/pantsbuild/pants/pull/10200)) + +### Documentation + +- Prepare 1.30.0rc1. ([#10188](https://github.com/pantsbuild/pants/pull/10188)) + +## 2.0.0.dev0 (6/25/2020) + +### API Changes + +- Remove v1 JVM backend Tasks. ([#10142](https://github.com/pantsbuild/pants/pull/10142)) +- Remove `targets` goal in favor of + `target-types` goal ([#10145](https://github.com/pantsbuild/pants/pull/10145)) +- Remove deprecated `Get[P](S)` syntax in favor of + `Get(P, S)` ([#10148](https://github.com/pantsbuild/pants/pull/10148)) +- Remove v1 `login`, `server`, and + `killserver` goals ([#10144](https://github.com/pantsbuild/pants/pull/10144)) +- Remove v1 `minimize`, `filemap`, + `paths`, `sort`, and `depmap` + goals ([#10135](https://github.com/pantsbuild/pants/pull/10135)) +- Replace v1 `dependees`, `dependencies`, + `filedeps`, and `filter` with v2 ([#10117](https://github.com/pantsbuild/pants/pull/10117)) +- Remove the v1 scrooge contrib plugin. ([#10127](https://github.com/pantsbuild/pants/pull/10127)) +- Remove support for `pants.ini` ([#10123](https://github.com/pantsbuild/pants/pull/10123)) +- Remove the v1 `export` goal ([#10122](https://github.com/pantsbuild/pants/pull/10122)) +- Remove `pants.backend.docgen` ([#10121](https://github.com/pantsbuild/pants/pull/10121)) +- Remove v1 `idea-plugin` goal ([#10115](https://github.com/pantsbuild/pants/pull/10115)) +- Remove v1 Java Protobuf implementation ([#10111](https://github.com/pantsbuild/pants/pull/10111)) +- Remove `pants.contrib.node` plugin ([#10113](https://github.com/pantsbuild/pants/pull/10113)) +- Remove v1 `bash-completion` goal ([#10112](https://github.com/pantsbuild/pants/pull/10112)) +- Remove watchman. ([#10114](https://github.com/pantsbuild/pants/pull/10114)) +- Upgrade default mypy version from 0.780 to 0.781 ([#10109](https://github.com/pantsbuild/pants/pull/10109)) +- Remove `pants.contrib.go` plugin ([#10107](https://github.com/pantsbuild/pants/pull/10107)) +- Remove v1 Python Grpcio codegen backend ([#10108](https://github.com/pantsbuild/pants/pull/10108)) +- Remove deprecated `--v2-ui` in favor of + `--dynamic-ui` ([#10105](https://github.com/pantsbuild/pants/pull/10105)) +- Remove deprecated `--enable-pantsd` in favor of + `--pantsd` ([#10104](https://github.com/pantsbuild/pants/pull/10104)) +- Remove deprecated `pytest-coverage` scope in favor of + `coverage-py` ([#10103](https://github.com/pantsbuild/pants/pull/10103)) +- Remove `pants.contrib.confluence` ([#10106](https://github.com/pantsbuild/pants/pull/10106)) + +### New Features + +- Add support for MyPy to Pants v2 ([#10132](https://github.com/pantsbuild/pants/pull/10132)) +- Changes to support Django. ([#10088](https://github.com/pantsbuild/pants/pull/10088)) +- Add support for enum list options. ([#10083](https://github.com/pantsbuild/pants/pull/10083)) + +### Bugfixes + +- Do not render pytest at info by default, but give it a description. + ([#10164](https://github.com/pantsbuild/pants/pull/10164)) +- Preserve source roots in MyPy and Pylint output ([#10159](https://github.com/pantsbuild/pants/pull/10159)) +- Do not include resource targets in v2 MyPy chroot ([#10154](https://github.com/pantsbuild/pants/pull/10154)) +- Set dynamic-ui default based on CI ([#10140](https://github.com/pantsbuild/pants/pull/10140)) +- Fix Pytest XML reports and Coverage breaking with remote execution + ([#10136](https://github.com/pantsbuild/pants/pull/10136)) +- Retry for filesystem changes more quickly, indefinitely, and with + logging ([#10139](https://github.com/pantsbuild/pants/pull/10139)) +- Normalize paths before determining whether we can watch them. + ([#10130](https://github.com/pantsbuild/pants/pull/10130)) + +### Refactoring, Improvements, and Tooling + +- Remove use of importlib for native_engine loading ([#10161](https://github.com/pantsbuild/pants/pull/10161)) +- Update sha2 crate dependency ([#10163](https://github.com/pantsbuild/pants/pull/10163)) +- Remove unused rust deps. ([#10162](https://github.com/pantsbuild/pants/pull/10162)) +- Add message field on workunits and use it to replace some explicit + logging ([#10158](https://github.com/pantsbuild/pants/pull/10158)) +- Expose the types consumed to produce a type in a RuleGraph. ([#10153](https://github.com/pantsbuild/pants/pull/10153)) +- Upgrade setuptools from 44.0.0 to 47.3.1 ([#10149](https://github.com/pantsbuild/pants/pull/10149)) +- Support for using unstripped python sources ([#10138](https://github.com/pantsbuild/pants/pull/10138)) +- fix snapshot subset testing and unrevert #9779 ([#10146](https://github.com/pantsbuild/pants/pull/10146)) +- Revert "Make SnapshotSubset() faster (#9779)" ([#10143](https://github.com/pantsbuild/pants/pull/10143)) +- Make SnapshotSubset() faster ([#9779](https://github.com/pantsbuild/pants/pull/9779)) +- upgrade to rust v1.44.1 ([#10125](https://github.com/pantsbuild/pants/pull/10125)) +- Remove `BuildFile` ([#10102](https://github.com/pantsbuild/pants/pull/10102)) + +### Testing + +- Enable test timeouts for python in v2. ([#10147](https://github.com/pantsbuild/pants/pull/10147)) +- Delete many v1 tests. ([#10116](https://github.com/pantsbuild/pants/pull/10116)) +- enable REv2 streaming client in CI ([#9989](https://github.com/pantsbuild/pants/pull/9989)) + +### Documentation + +- Remove the v1 docsite ([#10120](https://github.com/pantsbuild/pants/pull/10120)) diff --git a/docs/notes/2.1.x.md b/docs/notes/2.1.x.md new file mode 100644 index 000000000..2e2247f86 --- /dev/null +++ b/docs/notes/2.1.x.md @@ -0,0 +1,233 @@ +# 2.1.x Stable Releases + +This document describes releases leading up to the `2.1.x` `stable` +series. + +See for an +overview of the changes in this release. + +## 2.1.2 (2/9/2020) + +The third stable release in the 2.1.x series, with no changes since +`2.1.2rc0`. + +## 2.1.2rc0 (2/4/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11418](https://github.com/pantsbuild/pants/pull/11418)) + +## 2.1.1 (12/18/2020) + +The second stable release in the 2.1.x series, with no changes since +`rc2`. + +Thank you to everyone who helped test the rcs! + +## 2.1.1rc2 (12/16/2020) + +### Bugfixes + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11316](https://github.com/pantsbuild/pants/pull/11316)) +- Upgrade to Pex 2.1.24. (cherrypick of #11312) ([#11315](https://github.com/pantsbuild/pants/pull/11315)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11311](https://github.com/pantsbuild/pants/pull/11311)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11298](https://github.com/pantsbuild/pants/pull/11298)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11274](https://github.com/pantsbuild/pants/pull/11274)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11275](https://github.com/pantsbuild/pants/pull/11202)) [PR + #11275](https://github.com/pantsbuild/pants/pull/11275) + +## 2.1.1rc1 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) +- Remove extraneous INFO level log line (Cherry-pick of #11228) + ([#11229](https://github.com/pantsbuild/pants/pull/11229)) + +## 2.1.1rc0 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11217](https://github.com/pantsbuild/pants/pull/11217)) + +### Bugfixes + +- Move graph cycle detection to Rust to fix recursion limit. + (cherrypick of #11202) ([#11204](https://github.com/pantsbuild/pants/pull/11204)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11197](https://github.com/pantsbuild/pants/pull/11197)) + +## 2.1.0 (11/17/2020) + +The first stable release of the `2.1.x` series, with no changes since +the previous release candidate. + +## 2.1.0rc3 (11/16/2020) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11189](https://github.com/pantsbuild/pants/pull/11189)) + +## 2.1.0rc2 (11/13/2020) + +### New Features + +- Remoting: allow timeout parameters to be configured (Cherry-pick of + #11125) ([#11158](https://github.com/pantsbuild/pants/pull/11158)) + +### User API Changes + +- Deprecate running Pants with Python 3.6 ([#11173](https://github.com/pantsbuild/pants/pull/11173)) +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11178](https://github.com/pantsbuild/pants/pull/11178)) + +### Bugfixes + +- make a few minor reliability fixes to remote caching code + (Cherry-pick of #11130) ([#11159](https://github.com/pantsbuild/pants/pull/11159)) + +## 2.1.0rc1 (11/11/2020) + +### Bugfixes + +- Upgrade to Pex 2.1.21 (Cherry-pick of #11131) ([#11134](https://github.com/pantsbuild/pants/pull/11134)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11138](https://github.com/pantsbuild/pants/pull/11138)) + +## 2.1.0rc0 (11/9/2020) + +### New Features + +- Add `export-codegen` goal ([#11107](https://github.com/pantsbuild/pants/pull/11107)) +- Add `./pants py-constraints --summary` for project + overview ([#11099](https://github.com/pantsbuild/pants/pull/11099)) +- Add `./pants help subsystems` ([#11088](https://github.com/pantsbuild/pants/pull/11088)) +- Improve performance of dependency inference ([#11094](https://github.com/pantsbuild/pants/pull/11094)) + +### User API Changes + +- Change default for `--pants-distdir-legacy-paths` and + deprecate it ([#11096](https://github.com/pantsbuild/pants/pull/11096)) +- Clarify that process cache namespacing works for all runners + ([#11095](https://github.com/pantsbuild/pants/pull/11095)) +- Deprecate target names containing slashes and colons ([#11115](https://github.com/pantsbuild/pants/pull/11115)) + +### Plugin API Changes + +- Rename `SourcesSnapshot` to `SpecsSnapshot` + ([#11114](https://github.com/pantsbuild/pants/pull/11114)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached ([#11111](https://github.com/pantsbuild/pants/pull/11111)) +- Fix `pytest.pex` leaking into coverage data ([#11110](https://github.com/pantsbuild/pants/pull/11110)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX ([#11108](https://github.com/pantsbuild/pants/pull/11108)) +- Fix `!!` transitive excludes when used multiple times in + a repo ([#11103](https://github.com/pantsbuild/pants/pull/11103)) +- Fix `setup_py.with_provides()` to respect the + `:func` entry-point shorthand ([#11093](https://github.com/pantsbuild/pants/pull/11093)) +- Include a host fingerprint in pantsd's identity ([#11092](https://github.com/pantsbuild/pants/pull/11092)) + +### Documentation + +- Improve error message for invalid unions in `Get()`s ([#11102](https://github.com/pantsbuild/pants/pull/11102)) + +## 2.1.0.dev0 (10/30/2020) + +### User API Changes + +- Do not error if `./pants package` does not match any + targets ([#11051](https://github.com/pantsbuild/pants/pull/11051)) +- Deprecate the `compatibility` field in favor of + `interpreter_constraints` ([#11074](https://github.com/pantsbuild/pants/pull/11074)) +- Remove deprecated `awslambda`, `binary`, and + `setup-py` goals in favor of `package` + ([#11048](https://github.com/pantsbuild/pants/pull/11048)) +- Rename pex-binary/python-distribution to avoid naming collisions. + ([#11007](https://github.com/pantsbuild/pants/pull/11007)) +- Remove deprecated `--{fmt,lint}-per-target-caching` in + favor of `--per-file-caching` ([#11062](https://github.com/pantsbuild/pants/pull/11062)) +- Remove post_stats from RunTracker ([#11068](https://github.com/pantsbuild/pants/pull/11068)) +- Remove stats_version in runtracker ([#11065](https://github.com/pantsbuild/pants/pull/11065)) +- Remove deprecated `--lang` and `--lc-all` + options in favor of `--env-vars` ([#11066](https://github.com/pantsbuild/pants/pull/11066)) +- Remove deprecated `--protoc-runtime-targets` option + ([#11083](https://github.com/pantsbuild/pants/pull/11083)) +- Remove deprecated `--interpreter-constraints` option + for some Python tools ([#11082](https://github.com/pantsbuild/pants/pull/11082)) +- Remove deprecated `runtime_binary_dependencies` field + ([#11079](https://github.com/pantsbuild/pants/pull/11079)) +- Remove deprecated `--spec-file` option in favor of + `--spec-files` ([#11076](https://github.com/pantsbuild/pants/pull/11076)) +- Remove deprecated `[basic-auth]`, + `[reporter]`, and `run-tracker` + options ([#11078](https://github.com/pantsbuild/pants/pull/11078)) +- Remove deprecated `--print-exception-stacktrace` in + favor of `--print-stacktrace` ([#11085](https://github.com/pantsbuild/pants/pull/11085)) +- Remove unused global options ([#11077](https://github.com/pantsbuild/pants/pull/11077)) +- Remove deprecated `python_requirement` BUILD file symbol + ([#11055](https://github.com/pantsbuild/pants/pull/11055)) +- Deprecate the `platforms` field allowing a bare string + ([#11073](https://github.com/pantsbuild/pants/pull/11073)) +- Deprecate several unused options ([#11041](https://github.com/pantsbuild/pants/pull/11041)) +- Deprecate unused `run-tracker` options ([#11038](https://github.com/pantsbuild/pants/pull/11038)) +- Remove deprecated `python-setup` options ([#10984](https://github.com/pantsbuild/pants/pull/10984)) +- Remove deprecated `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10986](https://github.com/pantsbuild/pants/pull/10986)) +- Remove deprecated global options like `--v2` and + `--backend-packages2` ([#10985](https://github.com/pantsbuild/pants/pull/10985)) +- Remove deprecated `--changed-*` options ([#10982](https://github.com/pantsbuild/pants/pull/10982)) +- Remove deprecated `./pants filter` options ([#10983](https://github.com/pantsbuild/pants/pull/10983)) + +### New Features + +- Add `[python-setup].resolver_http_cache_ttl` option + ([#10997](https://github.com/pantsbuild/pants/pull/10997)) +- Add new `py-constraints` goal through new + `pants.backend.python.mixed_interpreter_constraints` + backend ([#11075](https://github.com/pantsbuild/pants/pull/11075)) +- Add `:my_func` shorthand for the + `entry_point` field ([#11064](https://github.com/pantsbuild/pants/pull/11064)) +- Add new EngineAware method metadata() ([#11030](https://github.com/pantsbuild/pants/pull/11030)) +- remote caching support ([#10960](https://github.com/pantsbuild/pants/pull/10960)) +- Store per-run logs on RunTracker ([#11025](https://github.com/pantsbuild/pants/pull/11025)) +- Allow changing the URL to download tools like PEX and Protoc + ([#11013](https://github.com/pantsbuild/pants/pull/11013)) +- Add mechanism to deprecate target types and fields ([#10966](https://github.com/pantsbuild/pants/pull/10966)) + +### Bugfixes + +- remote caching: upload stdout/stderr content to remote cache + ([#11049](https://github.com/pantsbuild/pants/pull/11049)) +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` ([#11040](https://github.com/pantsbuild/pants/pull/11040)) +- Fix `setup_py().with_binaries()` to use the default + entry point ([#11021](https://github.com/pantsbuild/pants/pull/11021)) +- Fix resource leak warning with stdio ([#10995](https://github.com/pantsbuild/pants/pull/10995)) +- Fix `./pants repl` to use global constrains when no + targets specified ([#10991](https://github.com/pantsbuild/pants/pull/10991)) +- Fix overly verbose `FieldSet` in stack traces ([#10978](https://github.com/pantsbuild/pants/pull/10978)) +- Fix several bad usages of `itertools.groupby()` ([#10976](https://github.com/pantsbuild/pants/pull/10976)) +- Fix bug with linter targets being skipped ([#10974](https://github.com/pantsbuild/pants/pull/10974)) +- Fix config validation not erroring on global options in wrong scope + ([#10950](https://github.com/pantsbuild/pants/pull/10950)) +- Automatically set setuptools interpreter constraints if unspecified + ([#10951](https://github.com/pantsbuild/pants/pull/10951)) + +### Documentation + +- Improve error message for invalid input in `Get()`s ([#11081](https://github.com/pantsbuild/pants/pull/11081)) +- Improve several help messages ([#11029](https://github.com/pantsbuild/pants/pull/11029)) +- Fold target help into the help system. ([#11022](https://github.com/pantsbuild/pants/pull/11022)) diff --git a/docs/notes/2.10.x.md b/docs/notes/2.10.x.md new file mode 100644 index 000000000..3533af034 --- /dev/null +++ b/docs/notes/2.10.x.md @@ -0,0 +1,481 @@ +# 2.10.x Release Series + +## 2.10.1 (May 13, 2022) + +The second stable release of the `2.10.x` series, with no changes since the previous `rc`! + +## 2.10.1rc1 (Apr 30, 2022) + +### New Features + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15215](https://github.com/pantsbuild/pants/pull/15215)) + +### Bug fixes + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15259](https://github.com/pantsbuild/pants/pull/15259)) + +* Clean PID-specific exception file if empty on process exit (Cherry pick of #15086) ([#15112](https://github.com/pantsbuild/pants/pull/15112)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15233](https://github.com/pantsbuild/pants/pull/15233)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15232](https://github.com/pantsbuild/pants/pull/15232)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15182](https://github.com/pantsbuild/pants/pull/15182)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15128](https://github.com/pantsbuild/pants/pull/15128)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15130](https://github.com/pantsbuild/pants/pull/15130)) + +## 2.10.1rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15028](https://github.com/pantsbuild/pants/pull/15028)) + +### Bug fixes + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15033](https://github.com/pantsbuild/pants/pull/15033)) + +* Fix Pylint config check strings (Cherry-pick of #14946) ([#14948](https://github.com/pantsbuild/pants/pull/14948)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14902](https://github.com/pantsbuild/pants/pull/14902)) + +### Documentation + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15023](https://github.com/pantsbuild/pants/pull/15023)) + +## 2.10.0 (Mar 23, 2022) + +The first stable release of the `2.10.x` branch, with no changes since the previous `rc`! + +## 2.10.0rc5 (Mar 16, 2022) + +### User API Changes + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` ([#14815](https://github.com/pantsbuild/pants/pull/14815)) + +### Bug fixes + +* Fix exclusive spawn mechanism for relative paths and working directories. (cherrypick of #14812) ([#14816](https://github.com/pantsbuild/pants/pull/14816)) + +* Fix a coverage config rewriting bug. (cherrypick of #14784) ([#14785](https://github.com/pantsbuild/pants/pull/14785)) + +* Fix empty sys.path entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14822](https://github.com/pantsbuild/pants/pull/14822)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators (Cherry-pick of #14829) ([#14831](https://github.com/pantsbuild/pants/pull/14831)) + +## 2.10.0rc4 (Mar 14, 2022) + +### New Features + +* Python dependency inference supports multiple resolves for first-party targets (Cherry-pick of #14486) ([#14765](https://github.com/pantsbuild/pants/pull/14765)) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (#14768) ([#14769](https://github.com/pantsbuild/pants/pull/14769)) + +### Documentation + +* Update `[python]` docs with updates to the resolves feature ([#14775](https://github.com/pantsbuild/pants/pull/14775)) + +* Switch from Aegean Check Mark to Multiplication X (Cherry-pick of #14764) ([#14767](https://github.com/pantsbuild/pants/pull/14767)) + +* Improve documentation for `python_test_utils` (Cherry-pick of #14739) ([#14748](https://github.com/pantsbuild/pants/pull/14748)) + +* Improve REPL multiple resolves error to mention [python].default_resolve (Cherry-pick of #14778) ([#14780](https://github.com/pantsbuild/pants/pull/14780)) + +## 2.10.0rc3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles (Cherry-pick of #14675) ([#14706](https://github.com/pantsbuild/pants/pull/14706)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14693](https://github.com/pantsbuild/pants/pull/14693)) + +### User API Changes + +* Deprecate `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14691](https://github.com/pantsbuild/pants/pull/14691)) + +* Move `--memory-summary` to `--stats-memory-summary` (Cherry-pick of #14652) ([#14655](https://github.com/pantsbuild/pants/pull/14655)) + +* Upgrade Pex to 2.1.70. (#14700) ([#14703](https://github.com/pantsbuild/pants/pull/14703)) + +### Bug fixes + +* Fix address parse bug in `update-build-files --fix-python-macros`. (Cherry-pick of #14485) ([#14696](https://github.com/pantsbuild/pants/pull/14696)) + +* Don't show no-op regex-lint output. (Cherry-pick of #14656) ([#14671](https://github.com/pantsbuild/pants/pull/14671)) + +* Invalidate Go cache when Go version changes (Cherry-pick of #14661) ([#14672](https://github.com/pantsbuild/pants/pull/14672)) + +### Performance + +* Reduce memory usage by interning Tasks and RuleGraph entries. (cherrypick of #14683) ([#14689](https://github.com/pantsbuild/pants/pull/14689)) + +## 2.10.0rc2 (Feb 26, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. (Cherry pick of #14557) ([#14597](https://github.com/pantsbuild/pants/pull/14597)) + +* Support include_requirements & complete_platforms for `python_awslambda`. (Cherry-picks of #14532 & #14469) ([#14533](https://github.com/pantsbuild/pants/pull/14533)) + +* Support complete_platforms for Python GCFs. (#14530) ([#14531](https://github.com/pantsbuild/pants/pull/14531)) + +* Plumb Pex's `--complete-platform` for pex_binary. (#14526) ([#14528](https://github.com/pantsbuild/pants/pull/14528)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination (Cherry-pick of #14607) ([#14611](https://github.com/pantsbuild/pants/pull/14611)) + +* Upgrade Pex to 2.1.67. (Cherry-pick of #14544) ([#14546](https://github.com/pantsbuild/pants/pull/14546)) + +### Bug fixes + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others (cherry-pick of #14620) ([#14626](https://github.com/pantsbuild/pants/pull/14626)) + +* Coursier caches are now determined by `-repos` configuration (#14603) ([#14606](https://github.com/pantsbuild/pants/pull/14606)) + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache (Cherry-pick of #14582) ([#14590](https://github.com/pantsbuild/pants/pull/14590)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos (#14581) ([#14584](https://github.com/pantsbuild/pants/pull/14584)) + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (Cherry-pick of #14394) ([#14568](https://github.com/pantsbuild/pants/pull/14568)) + +* Avoid duplicated deprecation warnings by memoization. (Cherry-pick of #14511) ([#14553](https://github.com/pantsbuild/pants/pull/14553)) + +* Fix coverage base global report creation bug (cherypick of #14547) ([#14549](https://github.com/pantsbuild/pants/pull/14549)) + +### Performance + +* Add support for rendering a summary of objects held by the graph (cherrypick of #14638) ([#14644](https://github.com/pantsbuild/pants/pull/14644)) + +* Shortcircuit source subsetting if there are no distributions. (cherrypick of #14564) ([#14566](https://github.com/pantsbuild/pants/pull/14566)) + +* Calculate local distribution contents once per distribution (cherrypick of #14551) ([#14555](https://github.com/pantsbuild/pants/pull/14555)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14627](https://github.com/pantsbuild/pants/pull/14627)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14592](https://github.com/pantsbuild/pants/pull/14592)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation (Cherry-pick of #14475) ([#14479](https://github.com/pantsbuild/pants/pull/14479)) + +## 2.10.0rc1 (Feb 14, 2022) + +### New Features + +* Improve `export` goal to handle multiple Python resolves (Cherry-pick of #14436) ([#14454](https://github.com/pantsbuild/pants/pull/14454)) + +### User API Changes + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` (Cherry-pick of #14420) ([#14435](https://github.com/pantsbuild/pants/pull/14435)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. (Cherry-pick of #14376) ([#14403](https://github.com/pantsbuild/pants/pull/14403)) + +### Bug fixes + +* Fix handling of Go version for third-party packages (Cherry-pick of #14457) ([#14459](https://github.com/pantsbuild/pants/pull/14459)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. (Cherry-pick of #14447) ([#14456](https://github.com/pantsbuild/pants/pull/14456)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves (Cherry-pick of #14418) ([#14439](https://github.com/pantsbuild/pants/pull/14439)) + +* Fix `pants_requirements` target generator to use resolves (Cherry-pick of #14417) ([#14423](https://github.com/pantsbuild/pants/pull/14423)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` (Cherry-pick of #14404) ([#14424](https://github.com/pantsbuild/pants/pull/14424)) + +## 2.10.0rc0 (Feb 07, 2022) + +### New Features + +* Add `--fmt-only`, `--check-only`, and `--lint-only` ([#14356](https://github.com/pantsbuild/pants/pull/14356)) + +* Add support for building PyOxidizer apps ([#14183](https://github.com/pantsbuild/pants/pull/14183)) + +* Adds `run` support for `deploy_jar` targets ([#14352](https://github.com/pantsbuild/pants/pull/14352)) + +* New `[docker].executable_search_paths` option. ([#14360](https://github.com/pantsbuild/pants/pull/14360)) + +* Support Go 1.18 fuzz test targets ([#14357](https://github.com/pantsbuild/pants/pull/14357)) + +* Validate Python user lockfiles & improve tool lockfile error message ([#14353](https://github.com/pantsbuild/pants/pull/14353)) + +* Allow using Yapf with `update-build-files` rather than Black ([#14378](https://github.com/pantsbuild/pants/pull/14378)) + +* Graduate Thrift Python support to be stable with `pants.backend.codegen.thrift.apache.python` ([#14389](https://github.com/pantsbuild/pants/pull/14389)) + +### User API Changes + +* Graduate Docker backend from experimental status. ([#14310](https://github.com/pantsbuild/pants/pull/14310)) + +* Graduate the Dockerfile linter Hadolint from experimental status. ([#14311](https://github.com/pantsbuild/pants/pull/14311)) + +* Merge `validate` goal with `lint` goal ([#14102](https://github.com/pantsbuild/pants/pull/14102)) + +* Rename Python resolve options and fields to not say "experimental" ([#14326](https://github.com/pantsbuild/pants/pull/14326)) + +* Add Thrift, Protobuf, Java, and Scala folders to default for `[source].root_patterns` ([#14363](https://github.com/pantsbuild/pants/pull/14363)) + +* Rename the `download-pex-bin` scope to `pex-cli`. ([#14344](https://github.com/pantsbuild/pants/pull/14344)) + +* Upgrade default Black version to 22.1.0 ([#14324](https://github.com/pantsbuild/pants/pull/14324)) + +* Upgrade default Pytest version to 7 ([#14380](https://github.com/pantsbuild/pants/pull/14380)) + +### Plugin API Changes + +* Rename `LintRequest` to `LintTargetsRequest` ([#14312](https://github.com/pantsbuild/pants/pull/14312)) + +* New (optional) API for MyPy-friendly options registration ([#14331](https://github.com/pantsbuild/pants/pull/14331)) + +* Remove `PexFromTargetsRequest.additional_requirements` ([#14350](https://github.com/pantsbuild/pants/pull/14350)) + +* `ReplImplementation` now passes root targets, not transitive closure ([#14323](https://github.com/pantsbuild/pants/pull/14323)) + +* `LintRequest`, `FmtRequest`, and `CheckRequest` must set `name: ClassVar[str]` ([#14304](https://github.com/pantsbuild/pants/pull/14304)) + +### Bug fixes + +* Warn when `[python-protobuf].runtime_dependencies` needs to use new target generator syntax ([#14391](https://github.com/pantsbuild/pants/pull/14391)) + +* Fix native cycle detection error message. ([#14381](https://github.com/pantsbuild/pants/pull/14381)) + +* Fix import parsing regression ([#14349](https://github.com/pantsbuild/pants/pull/14349)) + +* Include link dest in symlink error. ([#14384](https://github.com/pantsbuild/pants/pull/14384)) + +### Performance + +* Lazy load help info ([#14305](https://github.com/pantsbuild/pants/pull/14305)) + +### Documentation + +* Standardize how we reference formatters, linters, and checkers in goal summary ([#14355](https://github.com/pantsbuild/pants/pull/14355)) + +* Don't enumerate deprecated scopes in help. ([#14345](https://github.com/pantsbuild/pants/pull/14345)) + +* Don't render skipped tools in final summary with `fmt`, `lint`, `check`, and `test` ([#14303](https://github.com/pantsbuild/pants/pull/14303)) + +## 2.10.0.dev3 (Jan 28, 2022) + +### New Features + +* Support multiple disjoint Python resolves via `[python].experimental_resolves` ([#14299](https://github.com/pantsbuild/pants/pull/14299)) + +* Optionally render the `--dynamic-ui` with Prodash ([#14221](https://github.com/pantsbuild/pants/pull/14221)) + +* Add `context_root` field to `docker_image` and `default_context_root` option to `[docker]` scope. ([#14165](https://github.com/pantsbuild/pants/pull/14165)) + +### User API Changes + +* Deprecate `generate-user-lockfile` and `[python].experimental_lockfile` in favor of `[python].experimental_resolves` ([#14288](https://github.com/pantsbuild/pants/pull/14288)) + +* Bump versions & regenerate lockfiles for several Python tools, including Twine, PyUpgrade, and MyPy Protobuf ([#14277](https://github.com/pantsbuild/pants/pull/14277)) + +* Upgrade Pex to 2.1.65. ([#14256](https://github.com/pantsbuild/pants/pull/14256)) + +### Plugin API Changes + +* Remove `PexFromTargetsRequest(direct_deps_only: bool)` ([#14291](https://github.com/pantsbuild/pants/pull/14291)) + +* Rename `GenerateToolLockfileSentinel.options_scope` to `resolve_name` ([#14231](https://github.com/pantsbuild/pants/pull/14231)) + +* Rename `PythonModule` to `PythonModuleOwnersRequest` ([#14276](https://github.com/pantsbuild/pants/pull/14276)) + +### Bug fixes + +* Fix plugin resolution running twice. ([#14294](https://github.com/pantsbuild/pants/pull/14294)) + +* Fix Pylint to consider transitive third-party dependencies ([#14289](https://github.com/pantsbuild/pants/pull/14289)) + +* Fix bad default module mapping for PyMongo ([#14284](https://github.com/pantsbuild/pants/pull/14284)) + +* go: filter out `vendor` directories in tailor ([#14259](https://github.com/pantsbuild/pants/pull/14259)) + +* Fix packaged file names for `pex_binaries` target generator ([#14269](https://github.com/pantsbuild/pants/pull/14269)) + +* Cap number of UI bars to terminal height ([#14228](https://github.com/pantsbuild/pants/pull/14228)) + +* Fix executability of materialized files for non-owners. ([#14298](https://github.com/pantsbuild/pants/pull/14298)) + +### Performance + +* Dynamically choose per-process concurrency for supported processes ([#14184](https://github.com/pantsbuild/pants/pull/14184)) + +### Documentation + +* Add some missing backends to generated docs ([#14290](https://github.com/pantsbuild/pants/pull/14290)) + +## 2.10.0.dev2 (Jan 22, 2022) + +### New Features + +* JVM lockfile invalidation headers and verification ([#14185](https://github.com/pantsbuild/pants/pull/14185)) + +* Add new `api-types` help goal ([#14081](https://github.com/pantsbuild/pants/pull/14081)) + +* Add line numbers to `--unowned-dependency-behavior` errors ([#14169](https://github.com/pantsbuild/pants/pull/14169)) + +* Add Flake8 first-party plugin support ([#14027](https://github.com/pantsbuild/pants/pull/14027)) + +* add runtime dependencies field for Apache Thrift for Python ([#14158](https://github.com/pantsbuild/pants/pull/14158)) + +* Add `#pants: no-infer-dep` pragma for ignoring imports ([#14059](https://github.com/pantsbuild/pants/pull/14059) and [#14225](https://github.com/pantsbuild/pants/pull/14225)) + +* Add local `.pants.rc` support ([#14142](https://github.com/pantsbuild/pants/pull/14142)) + +* thrift: add scrooge java backend ([#14043](https://github.com/pantsbuild/pants/pull/14043)) + +* add Avro codegen support for Java ([#13990](https://github.com/pantsbuild/pants/pull/13990)) + +### User API Changes + +* add timeout for remote cache lookups ([#14224](https://github.com/pantsbuild/pants/pull/14224)) + +* Replace `coursier-resolve` goal with `generate-lockfiles` ([#14211](https://github.com/pantsbuild/pants/pull/14211)) + +* Replace `jvm-generate-lockfiles` goal with `generate-lockfiles` ([#14176](https://github.com/pantsbuild/pants/pull/14176)) + +* Deprecate `sourcefile-validation` in favor of `regex-lint` ([#14173](https://github.com/pantsbuild/pants/pull/14173)) + +* Deprecate `python_requirements` and `poetry_requirements` using old macro in favor of target generation ([#14075](https://github.com/pantsbuild/pants/pull/14075)) + +* Add try/except parsing to import_parser to avoid failing strict checks for optional imports ([#14216](https://github.com/pantsbuild/pants/pull/14216)) + +* Don't error on string imports with `[python-infer].unowned_dependency_behavior` ([#14179](https://github.com/pantsbuild/pants/pull/14179)) + +### Plugin API Changes + +* Remove per-language indirection for formatter plugins. ([#14166](https://github.com/pantsbuild/pants/pull/14166)) + +### Bug fixes + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 ([#14232](https://github.com/pantsbuild/pants/pull/14232)) + +* `LockfileMetadata` - Replace flaky `_header_dict()` mechanism with more robust `header_attrs` mechanism ([#14229](https://github.com/pantsbuild/pants/pull/14229)) + +* More accurate reported runtime when `pantsd` is in use. ([#14177](https://github.com/pantsbuild/pants/pull/14177)) + +* Fix Pylint to run on transitive dependencies to avoid underreporting issues ([#13918](https://github.com/pantsbuild/pants/pull/13918)) + +* [Docker] Fix bug when a putative target address did not exist. ([#14125](https://github.com/pantsbuild/pants/pull/14125)) + +* Fix immutable inputs DCL bug. ([#14016](https://github.com/pantsbuild/pants/pull/14016)) + +### Performance + +* Batching of `lint` and `fmt` invokes ([#14186](https://github.com/pantsbuild/pants/pull/14186)) + +### Documentation + +* [Doc] Include backend source for goals, subsystems and targets in generated docsite. ([#14126](https://github.com/pantsbuild/pants/pull/14126)) + +## 2.10.0.dev1 (Jan 07, 2022) + +### New Features + +* JVM Resources support ([#13908](https://github.com/pantsbuild/pants/pull/13908)) + +* Expose Docker build context hash for image tag interpolation. ([#13959](https://github.com/pantsbuild/pants/pull/13959)) + +* Add Thrift IDL codegen using Apache Thrift for Python and Java and Scrooge for Scala ([#13987](https://github.com/pantsbuild/pants/pull/13987)) + +* Add new `image_labels` field to `docker_image`. ([#13973](https://github.com/pantsbuild/pants/pull/13973)) + +### User API Changes + +* Deprecate `[validate].detail_level` in favor of `[sourcefile-validation].detail_level` ([#14103](https://github.com/pantsbuild/pants/pull/14103)) + +* Upgrade Hadolint (dockerfile linter) to from 2.6.0 to 2.8.0 ([#14110](https://github.com/pantsbuild/pants/pull/14110)) + +* Change third party module mapping to consider resolves ([#14034](https://github.com/pantsbuild/pants/pull/14034)) + +### Plugin API Changes + +* Fix `@rule` effect validation for `not cacheable` types. ([#14069](https://github.com/pantsbuild/pants/pull/14069)) + +* Allow plugins to use range requirements by applying constraints to plugin resolution ([#14058](https://github.com/pantsbuild/pants/pull/14058)) + +### Bug fixes + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. ([#14109](https://github.com/pantsbuild/pants/pull/14109)) + +* Hook up Scalafmt and Google Java Format to `./pants lint` ([#14108](https://github.com/pantsbuild/pants/pull/14108)) + +* Fix `validate` goal crashing if not configured ([#14104](https://github.com/pantsbuild/pants/pull/14104)) + +* Fix dropped output race during UI teardown ([#14093](https://github.com/pantsbuild/pants/pull/14093)) + +* Fix incorrectly setting `name` on `python_requirements` macro ([#14065](https://github.com/pantsbuild/pants/pull/14065)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. ([#14038](https://github.com/pantsbuild/pants/pull/14038)) + +* Fix `.pyi` type stubs to show up in `python_distribution` ([#14033](https://github.com/pantsbuild/pants/pull/14033)) + +* Fix file sources codegen for the Docker build context. ([#14024](https://github.com/pantsbuild/pants/pull/14024)) + +* [jvm] Parse maven coordinates using regular expression ([#14010](https://github.com/pantsbuild/pants/pull/14010)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries ([#14012](https://github.com/pantsbuild/pants/pull/14012)) + +### Documentation + +* Include provider info in help output for subsystems and target types. ([#13993](https://github.com/pantsbuild/pants/pull/13993)) + +* Fix help strings which were accidentally tuples, and add a validation. ([#14057](https://github.com/pantsbuild/pants/pull/14057)) + +## 2.10.0.dev0 (Dec 27, 2021) + +### New Features + +* Add duration and cache source to test output. ([#13889](https://github.com/pantsbuild/pants/pull/13889)) + +* Add `pex_binaries` target generator ([#13910](https://github.com/pantsbuild/pants/pull/13910)) + +* Support Docker build target stage ([#13956](https://github.com/pantsbuild/pants/pull/13956)) + +* Add `ssh` field to `docker_image`. ([#13957](https://github.com/pantsbuild/pants/pull/13957)) + +* Docker `FROM` target dep inference ([#13921](https://github.com/pantsbuild/pants/pull/13921)) + +* Docker context troubleshooter ([#13896](https://github.com/pantsbuild/pants/pull/13896)) + +* java: add protobuf code generation support using `protoc` ([#13989](https://github.com/pantsbuild/pants/pull/13989)) + +* Support `test --debug` with scalatest and junit. ([#13966](https://github.com/pantsbuild/pants/pull/13966)) + +### User API Changes + +* Update shellcheck default version to v0.8.0 ([#13983](https://github.com/pantsbuild/pants/pull/13983)) + +* Upgrade to Pex 2.1.61 and use `--venv` copies. ([#13979](https://github.com/pantsbuild/pants/pull/13979)) + +* Remove deprecated `[python-setup]` in favor of `[python]` ([#14004](https://github.com/pantsbuild/pants/pull/14004)) + +* Remove deprecated `typecheck` goal as alias for `check` ([#13929](https://github.com/pantsbuild/pants/pull/13929)) + +* Remove deprecated `pants_requirement` in favor of `pants_requirements` ([#13927](https://github.com/pantsbuild/pants/pull/13927)) + +* Remove deprecated `--process-execution-local-cleanup` and `--process-execution-local-cache` in favor of `--process-cleanup` and `--local-cache` ([#13928](https://github.com/pantsbuild/pants/pull/13928)) + +### Plugin API Changes + +* Add `OptionalSingleSourceField` ([#13982](https://github.com/pantsbuild/pants/pull/13982)) + +* Remove deprecated RuleRunner methods `create_file(s)` and `add_to_build_file`. ([#13954](https://github.com/pantsbuild/pants/pull/13954)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) ([#13944](https://github.com/pantsbuild/pants/pull/13944)) + +### Bug fixes + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. ([#13996](https://github.com/pantsbuild/pants/pull/13996)) + +* Restore the `pants` namespace package. ([#13972](https://github.com/pantsbuild/pants/pull/13972)) + +* Fix `--log-levels-by-target` not working for logs from Python code ([#13939](https://github.com/pantsbuild/pants/pull/13939)) + +* Fix `tailor` not setting the `name` field ([#13913](https://github.com/pantsbuild/pants/pull/13913)) diff --git a/docs/notes/2.11.x.md b/docs/notes/2.11.x.md new file mode 100644 index 000000000..72b4f776f --- /dev/null +++ b/docs/notes/2.11.x.md @@ -0,0 +1,523 @@ +# 2.11.x Release Series + +## 2.11.1 (Jun 28, 2022) + +The second stable release in the `2.11.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15972](https://github.com/pantsbuild/pants/pull/15972)) + +## 2.11.1rc3 (Jun 23, 2022) + +### Bug fixes + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15794](https://github.com/pantsbuild/pants/pull/15794)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15844](https://github.com/pantsbuild/pants/pull/15844)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15822](https://github.com/pantsbuild/pants/pull/15822)) + +## 2.11.1rc2 (May 31, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15659](https://github.com/pantsbuild/pants/pull/15659)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15708](https://github.com/pantsbuild/pants/pull/15708)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15678](https://github.com/pantsbuild/pants/pull/15678)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15679](https://github.com/pantsbuild/pants/pull/15679)) + +## 2.11.1rc1 (May 23, 2022) + +### User API Changes + +* Revert `tags` changes, except for the `python_tests` bug fix ([#15553](https://github.com/pantsbuild/pants/pull/15553)) + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15486](https://github.com/pantsbuild/pants/pull/15486)) + +### Bug fixes + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15574](https://github.com/pantsbuild/pants/pull/15574)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15572](https://github.com/pantsbuild/pants/pull/15572)) + +* Improve `name=` used for Python requirement target generators with `tailor` (Cherry-pick of #15507) ([#15520](https://github.com/pantsbuild/pants/pull/15520)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15497](https://github.com/pantsbuild/pants/pull/15497)) + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15610](https://github.com/pantsbuild/pants/pull/15610)) + +## 2.11.1rc0 (May 13, 2022) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15413](https://github.com/pantsbuild/pants/pull/15413)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15404](https://github.com/pantsbuild/pants/pull/15404)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15402](https://github.com/pantsbuild/pants/pull/15402)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15371](https://github.com/pantsbuild/pants/pull/15371)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15369](https://github.com/pantsbuild/pants/pull/15369)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15357](https://github.com/pantsbuild/pants/pull/15357)) + +* Fix a bug in the python venv export logic. (cherrypick of #15294) ([#15307](https://github.com/pantsbuild/pants/pull/15307)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15300](https://github.com/pantsbuild/pants/pull/15300)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15309](https://github.com/pantsbuild/pants/pull/15309)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15440](https://github.com/pantsbuild/pants/pull/15440)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15389](https://github.com/pantsbuild/pants/pull/15389)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15367](https://github.com/pantsbuild/pants/pull/15367)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15365](https://github.com/pantsbuild/pants/pull/15365)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15349](https://github.com/pantsbuild/pants/pull/15349)) + +## 2.11.0 (May 02, 2022) + +The first stable release of the `2.11.x` series, with no changes since the previous `rc`! + +## 2.11.0rc6 (Apr 30, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.84. (Cherry-picks of #15200, #15281 & #15288) ([#15289](https://github.com/pantsbuild/pants/pull/15289)) + +### Bug fixes + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. (Cherry-pick of #15277) ([#15278](https://github.com/pantsbuild/pants/pull/15278)) + +## 2.11.0rc5 (Apr 26, 2022) + +### Bug fixes + +* Fix issue with Docker publish when using `[docker] tools`. (Cherry pick of #15255) ([#15261](https://github.com/pantsbuild/pants/pull/15261)) + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15260](https://github.com/pantsbuild/pants/pull/15260)) + +* Fix the placement of the pex verbosity args. (Cherry-pick of #15243) ([#15249](https://github.com/pantsbuild/pants/pull/15249)) + +## 2.11.0rc4 (Apr 25, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.80. (Cherry-pick of #15179) ([#15180](https://github.com/pantsbuild/pants/pull/15180)) + +### Bug fixes + +* golang: add more cache keys based on tool IDs (Cherry-pick of #15205) ([#15209](https://github.com/pantsbuild/pants/pull/15209)) + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15214](https://github.com/pantsbuild/pants/pull/15214)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15231](https://github.com/pantsbuild/pants/pull/15231)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15230](https://github.com/pantsbuild/pants/pull/15230)) + +### Documentation + +* Don't log set up of binary shims (Cherry-pick of #15203) ([#15206](https://github.com/pantsbuild/pants/pull/15206)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15181](https://github.com/pantsbuild/pants/pull/15181)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` (Cherry-pick of #15141) ([#15244](https://github.com/pantsbuild/pants/pull/15244)) + +## 2.11.0rc3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets (Cherry pick of #15126) ([#15148](https://github.com/pantsbuild/pants/pull/15148)) + +### User API Changes + +* Upgrade Pex to 2.1.79. (Cherry-pick of #15125) ([#15129](https://github.com/pantsbuild/pants/pull/15129)) + +* Ban `terraform_module` referring to subdirectories (Cherry-pick of #15106) ([#15122](https://github.com/pantsbuild/pants/pull/15122)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15131](https://github.com/pantsbuild/pants/pull/15131)) + +### Bug fixes + +* Clean PID-specific exception file if empty on process exit (#15086) ([#15113](https://github.com/pantsbuild/pants/pull/15113)) + +* Allow dashes in inferred asset strings (Cherry-pick of #15123) ([#15154](https://github.com/pantsbuild/pants/pull/15154)) + +* Fix typo in Pylint description (Cherry-pick of #14945) ([#15157](https://github.com/pantsbuild/pants/pull/15157)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15127](https://github.com/pantsbuild/pants/pull/15127)) + +* fix missing field check in go protobuf rules (Cherry pick of #15105) ([#15118](https://github.com/pantsbuild/pants/pull/15118)) + +* files/dirs swapped in Snapshot's repr (Cherry-pick of #15101) ([#15114](https://github.com/pantsbuild/pants/pull/15114)) + +* Preserve tombstones for workunits which complete while they still have children (cherrypick of #15088) ([#15103](https://github.com/pantsbuild/pants/pull/15103)) + +### Documentation + +* Add some codegen and terraform backends to docs generator (Cherry-pick of #15036) ([#15156](https://github.com/pantsbuild/pants/pull/15156)) + +## 2.11.0rc2 (Apr 08, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.78. (Cherry-pick of #15078) ([#15079](https://github.com/pantsbuild/pants/pull/15079)) + +* terraform: remove `terraform_modules` generator target type (Cherry pick of #15035) ([#15063](https://github.com/pantsbuild/pants/pull/15063)) + +### Bug fixes + +* Clean the export dir under dist/ before populating it. (cherrypick #15068) ([#15075](https://github.com/pantsbuild/pants/pull/15075)) + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15034](https://github.com/pantsbuild/pants/pull/15034)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles (cherrypick of #15014) ([#15032](https://github.com/pantsbuild/pants/pull/15032)) + +* Pin pytest 7.0.1 (cherrypick of #14997) ([#15013](https://github.com/pantsbuild/pants/pull/15013)) + +### Documentation + +* Text in angle brackets needs to be escaped for the docsite. (Cherry pick of #15046) ([#15056](https://github.com/pantsbuild/pants/pull/15056)) + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15024](https://github.com/pantsbuild/pants/pull/15024)) + +## 2.11.0rc1 (Mar 31, 2022) + +### New Features + +* Add Protobuf formatting using buf format (Cherry pick of #14907) ([#14917](https://github.com/pantsbuild/pa + +* Add registration for the Go Protobuf backend (Cherry pick of #14874) ([#14900](https://github.com/pantsbuild/pants/pull/14900)) + +* Restore experimental codegen backends disabled for 2.10 release (Cherry-pick of #14407) ([#14932](https://github.com/pantsbuild/pants/pull/14932)) + +* Add support for parsing address parameters to CLI specs parsing (cherrypick of #14949) ([#14957](https://github.com/pantsbuild/pants/pull/14957)) + +### User API Changes + +* Upgrade to Pex 2.1.75 for VCS lock support and deadlock fix (Cherry-pick of #14970) ([#14976](https://github.com/pantsbuild/pants/pull/14976)) + +### Plugin API Changes + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. (cherrypick of #14959) ([#14962](https://github.com/pantsbuild/pants/pull/14962)) + +### Bug fixes + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields (Cherry-pick of #14847) ([#14930](https://github.com/pantsbuild/pants/pull/14930)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves (cherrypick of #14854, #14856, #14934) ([#14942](https://github.com/pantsbuild/pants/pull/14942)) + +* Upgrade Pex to 2.1.73. (#14875) ([#14880](https://github.com/pantsbuild/pants/pull/14880)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting (cherrypick of #14889) ([#14896](https://github.com/pantsbuild/pants/pull/14896)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled (#14891) ([#14894](https://github.com/pantsbuild/pants/pull/14894)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14901](https://github.com/pantsbuild/pants/pull/14901)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators (#14893) ([#14895](https://github.com/pantsbuild/pants/pull/14895)) + +### Performance + +* Make PEX lockfile subsetting incremental (cherry-pick of #14944) ([#14956](https://github.com/pantsbuild/pants/pull/14956)) + +## 2.11.0rc0 (Mar 17, 2022) + +### New Features + +* Generate and compile Go from Protobuf ([#14714](https://github.com/pantsbuild/pants/pull/14714)) + +* Add the ability to infer assets from strings for Python ([#14049](https://github.com/pantsbuild/pants/pull/14049)) + +* Add `[python].lockfile_generator` to allow using Pex for lockfile generation ([#14740](https://github.com/pantsbuild/pants/pull/14740)) + +* Add protobuf linting using Buf with `pants.backend.codegen.protobuf.lint.buf` backend ([#14540](https://github.com/pantsbuild/pants/pull/14540)) + +* Add `run` support to `pyoxidizer_binary` ([#14646](https://github.com/pantsbuild/pants/pull/14646)) + +* Add new `[docker].tools` option ([#14361](https://github.com/pantsbuild/pants/pull/14361)) + +* Add `build_file_dir()` symbol to BUILD files ([#14827](https://github.com/pantsbuild/pants/pull/14827)) + +* Adds `excludes` field to `jvm_artifact` targets ([#14715](https://github.com/pantsbuild/pants/pull/14715)) + +* Basic support for Helm charts ([#14658](https://github.com/pantsbuild/pants/pull/14658)) + +* Support `package` goal for Helm charts ([#14797](https://github.com/pantsbuild/pants/pull/14797)) + +* Python dependency inference supports multiple resolves for first-party targets ([#14486](https://github.com/pantsbuild/pants/pull/14486)) + +* Default the parameters of `parametrize`d dependencies on `parametrize`d targets ([#14788](https://github.com/pantsbuild/pants/pull/14788)) + +* Allow for codegen targets to be used directly by JVM compiler requests ([#14751](https://github.com/pantsbuild/pants/pull/14751)) + +### User API Changes + +* Update default Python interpreter constraints to not use Python 3.6 ([#14803](https://github.com/pantsbuild/pants/pull/14803)) + +* `python_sources` and `python_tests` target generators no longer impact interpreter constraints calculations ([#14821](https://github.com/pantsbuild/pants/pull/14821)) + +* Target generators (like `python_sources`) now only directly depend on their generated targets ([#14766](https://github.com/pantsbuild/pants/pull/14766)) + +* Deprecate not explicitly setting `[python].lockfile_generator` ([#14817](https://github.com/pantsbuild/pants/pull/14817)) + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` (Cherry-pick of #14815) ([#14818](https://github.com/pantsbuild/pants/pull/14818)) + +* Swap the order of generated names and parameters in Addresses. ([#14814](https://github.com/pantsbuild/pants/pull/14814)) + +* Rename `_python_requirements_file` target to `_generator_sources_helper` ([#14727](https://github.com/pantsbuild/pants/pull/14727)) + +* Add `SSL_CERT_DIR` and `SSL_CERT_FILE` to the default for `[subprocess-environment].env_vars` ([#14808](https://github.com/pantsbuild/pants/pull/14808)) + +* Upgrade Pex to 2.1.72. ([#14795](https://github.com/pantsbuild/pants/pull/14795)) + +### Plugin API Changes + +* Deprecate `Subsystem.register_options` in favor of the new attribute-based Option types ([#14772](https://github.com/pantsbuild/pants/pull/14772)) + +* New util rule for isolating binary tools. ([#14374](https://github.com/pantsbuild/pants/pull/14374)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. ([#14819](https://github.com/pantsbuild/pants/pull/14819)) + +* Fix exclusive spawn mechanism for relative paths and working directories. ([#14812](https://github.com/pantsbuild/pants/pull/14812)) + +* Fix a coverage config rewriting bug. ([#14784](https://github.com/pantsbuild/pants/pull/14784)) + +* golang: fix regression in analysis code ([#14733](https://github.com/pantsbuild/pants/pull/14733)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators ([#14829](https://github.com/pantsbuild/pants/pull/14829)) + +* Switch default tool lockfiles to Pex lockfiles for faster installation ([#14811](https://github.com/pantsbuild/pants/pull/14811)) + +* Port `Process` operations to use of `DigestTrie` ([#14723](https://github.com/pantsbuild/pants/pull/14723)) + +### Documentation + +* Improve REPL multiple resolves error to mention `[python].default_resolve` ([#14778](https://github.com/pantsbuild/pants/pull/14778)) + +* Switch from Aegean Check Mark to Multiplication X ([#14764](https://github.com/pantsbuild/pants/pull/14764)) + +* Improve documentation for `python_test_utils` ([#14739](https://github.com/pantsbuild/pants/pull/14739)) + +## 2.11.0.dev3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles ([#14675](https://github.com/pantsbuild/pants/pull/14675)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14698](https://github.com/pantsbuild/pants/pull/14698)) + +* JVM: add war file packaging ([#13888](https://github.com/pantsbuild/pants/pull/13888)) + +* Improve `export` to include pip in the venv. ([#14640](https://github.com/pantsbuild/pants/pull/14640)) + +### User API Changes + +* Remove `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14695](https://github.com/pantsbuild/pants/pull/14695)) + +* Upgrade Pex to 2.1.70. ([#14700](https://github.com/pantsbuild/pants/pull/14700)) + +### Plugin API Changes + +* Add `SkipOption` and improve `ArgsListOption` ([#14660](https://github.com/pantsbuild/pants/pull/14660)) + +* Move `BinaryPath` and `BashBinary` from `pants.engine.process` to `pants.core.util_rules.system_binaries` ([#14629](https://github.com/pantsbuild/pants/pull/14629)) + +### Bug fixes + +* Fix rendering of "Scheduling: ..." workunits introduced by workunit filtering. ([#14681](https://github.com/pantsbuild/pants/pull/14681)) + +* Give interactive processes a chance to gracefully shutdown ([#14580](https://github.com/pantsbuild/pants/pull/14580)) + +* Don't show no-op regex-lint output. ([#14656](https://github.com/pantsbuild/pants/pull/14656)) + +* Go: introduce cache key for compile actions ([#14661](https://github.com/pantsbuild/pants/pull/14661)) + +* Go: Properly disable CGo ([#14623](https://github.com/pantsbuild/pants/pull/14623)) + +### Performance + +* Add support for rendering a summary of objects held by the graph ([#14638](https://github.com/pantsbuild/pants/pull/14638)) + +* Reduce memory usage by interning Tasks and RuleGraph entries. ([#14683](https://github.com/pantsbuild/pants/pull/14683)) + +* Skip capture of `TRACE` workunits by default ([#13483](https://github.com/pantsbuild/pants/pull/13483)) + +## 2.11.0.dev2 (Feb 25, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. ([#14557](https://github.com/pantsbuild/pants/pull/14557)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination ([#14607](https://github.com/pantsbuild/pants/pull/14607)) + +* Upgrade `terraform-hcl2-parser` to version 3.0.3 ([#14554](https://github.com/pantsbuild/pants/pull/14554)) + +### Plugin API Changes + +* Rename `pants.python.binares` to `pants.core.subsystems.python_bootstrap` ([#14613](https://github.com/pantsbuild/pants/pull/14613)) + +* Add `PythonToolBase.to_pex_request()` to DRY tool installation ([#14610](https://github.com/pantsbuild/pants/pull/14610)) + +* Move `PythonBinary` from `python.binaries` to `core.util_rules.system_binaries` ([#14609](https://github.com/pantsbuild/pants/pull/14609)) + +* Add `core/util_rules/system_binaries.py` and relocate `archive.py` types like `UnzipBinary` to it ([#14601](https://github.com/pantsbuild/pants/pull/14601)) + +### Bug fixes + +* Show a helpful error message if a 3rdparty jar isn't available. ([#14595](https://github.com/pantsbuild/pants/pull/14595)) + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others ([#14620](https://github.com/pantsbuild/pants/pull/14620)) + +* Coursier caches are now determined by `-repos` configuration ([#14603](https://github.com/pantsbuild/pants/pull/14603)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos ([#14581](https://github.com/pantsbuild/pants/pull/14581)) + +### Performance + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache ([#14582](https://github.com/pantsbuild/pants/pull/14582)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets ([#14621](https://github.com/pantsbuild/pants/pull/14621)) + +* Don't leak local paths into generated docs. ([#14591](https://github.com/pantsbuild/pants/pull/14591)) + +## 2.11.0.dev1 (Feb 22, 2022) + +### New Features + +* Support for `file`/`files` in JVM tests ([#14537](https://github.com/pantsbuild/pants/pull/14537)) + +* Support complete_platforms for `python_awslambda`. ([#14532](https://github.com/pantsbuild/pants/pull/14532)) + +* Support complete_platforms for Python GCFs. ([#14530](https://github.com/pantsbuild/pants/pull/14530)) + +* Properly support filesystem specs in the `paths` goal. ([#14518](https://github.com/pantsbuild/pants/pull/14518)) + +* Plumb Pex's `--complete-platform` for pex_binary. ([#14526](https://github.com/pantsbuild/pants/pull/14526)) + +* Adds the plugin names field to scala sources ([#14508](https://github.com/pantsbuild/pants/pull/14508)) + +* jvm: teach dependency inference about multiple resolves ([#14491](https://github.com/pantsbuild/pants/pull/14491)) + +* scala: add implicit dependency on scala-library ([#14450](https://github.com/pantsbuild/pants/pull/14450)) + +* py_awslambda: pass through `include_requirements:bool` to `pex_binary` ([#14469](https://github.com/pantsbuild/pants/pull/14469)) + +### User API Changes + +* Upgrade Pex to 2.1.67. ([#14544](https://github.com/pantsbuild/pants/pull/14544)) + +* Create per-parametrization aliases for generator targets ([#14529](https://github.com/pantsbuild/pants/pull/14529)) + +* Per-resolve scala plugins ([#14497](https://github.com/pantsbuild/pants/pull/14497)) + +### Plugin API Changes + +* Replace `GoalSubsystem.required_union_implementations` with `GoalSubsystem.activated()` ([#14313](https://github.com/pantsbuild/pants/pull/14313)) + +* Add dynamic help ([#14543](https://github.com/pantsbuild/pants/pull/14543)) + +* Add global counters, and deprecate per-workunit counters. ([#14541](https://github.com/pantsbuild/pants/pull/14541)) + +### Bug fixes + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (#14394) + +* Fix coverage base global report creation bug. ([#14547](https://github.com/pantsbuild/pants/pull/14547)) + +* Tests scala local plugins, and makes it work properly on `scala_sources` targets ([#14512](https://github.com/pantsbuild/pants/pull/14512)) + +* Allow use of `parametrize` with the `jdk=` field of JVM targets ([#14510](https://github.com/pantsbuild/pants/pull/14510)) + +* Fix address parse bug in `update-build-files --fix-python-macros`. ([#14485](https://github.com/pantsbuild/pants/pull/14485)) + +### Performance + +* Shortcircuit source subsetting if there are no distributions. ([#14564](https://github.com/pantsbuild/pants/pull/14564)) + +* Calculate local distribution contents once per distribution ([#14551](https://github.com/pantsbuild/pants/pull/14551)) + +### Documentation + +* Fix the incompatible resolve error message to include the entire checked set of targets. ([#14525](https://github.com/pantsbuild/pants/pull/14525)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation ([#14475](https://github.com/pantsbuild/pants/pull/14475)) + +## 2.11.0.dev0 (Feb 11, 2022) + +### New Features + +* Add support for long_description_path field in python_distribution ([#14448](https://github.com/pantsbuild/pants/pull/14448)) + +* Improve `export` goal to handle multiple Python resolves ([#14436](https://github.com/pantsbuild/pants/pull/14436)) + +* Add support for multiple compile/testing JDKs ([#14421](https://github.com/pantsbuild/pants/pull/14421)) + +* Add initial support for a `parametrize` builtin to generate multiple copies of a target ([#14408](https://github.com/pantsbuild/pants/pull/14408)) + +* scala: support multiple scala versions ([#14425](https://github.com/pantsbuild/pants/pull/14425)) + +### User API Changes + +* Remove support for JSON-encoded JVM lockfiles. ([#14458](https://github.com/pantsbuild/pants/pull/14458)) + +* Remove deprecated `.tag` version values. ([#14453](https://github.com/pantsbuild/pants/pull/14453)) + +* Remove deprecated `[scala] version` option. ([#14455](https://github.com/pantsbuild/pants/pull/14455)) + +* Replace `compatible_resolves` with `resolve` for JVM targets ([#14441](https://github.com/pantsbuild/pants/pull/14441)) + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` ([#14420](https://github.com/pantsbuild/pants/pull/14420)) + +* Remove options, goals, and backends deprecated in Pants 2.10 ([#14396](https://github.com/pantsbuild/pants/pull/14396)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. ([#14376](https://github.com/pantsbuild/pants/pull/14376)) + +* Default to `use_deprecated_python_macros = false` and deprecate the option ([#14399](https://github.com/pantsbuild/pants/pull/14399)) + +### Plugin API Changes + +* Adding DictOptions and WorkspacePathOption to the declarative options ([#14433](https://github.com/pantsbuild/pants/pull/14433)) + +* More declarative target generators for plugins ([#14377](https://github.com/pantsbuild/pants/pull/14377)) + +### Bug fixes + +* Fix handling of Go version for third-party packages ([#14457](https://github.com/pantsbuild/pants/pull/14457)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. ([#14447](https://github.com/pantsbuild/pants/pull/14447)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves ([#14418](https://github.com/pantsbuild/pants/pull/14418)) + +* Fix `pants_requirements` target generator to use resolves ([#14417](https://github.com/pantsbuild/pants/pull/14417)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` ([#14404](https://github.com/pantsbuild/pants/pull/14404)) + +### Documentation + +* `help` command reminds users about `help-advanced` ([#14402](https://github.com/pantsbuild/pants/pull/14402)) diff --git a/docs/notes/2.12.x.md b/docs/notes/2.12.x.md new file mode 100644 index 000000000..1031ae074 --- /dev/null +++ b/docs/notes/2.12.x.md @@ -0,0 +1,491 @@ +# 2.12.x Release Series + +## 2.12.1 (Aug 31, 2022) + +The second stable release of 2.12, with only updates to the docs website. + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16678](https://github.com/pantsbuild/pants/pull/16678)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16651](https://github.com/pantsbuild/pants/pull/16651)) + +## 2.12.1rc4 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16619](https://github.com/pantsbuild/pants/pull/16619)) + +### Bug fixes + +* Add `grpcio` to default Python module mapping ([#16605](https://github.com/pantsbuild/pants/pull/16605)) + +* Fix `IndexError` when codegen is missing expected `python_requirement` targets ([#16590](https://github.com/pantsbuild/pants/pull/16590)) + +### Documentation + +* Fix broken link to community page (Cherry-pick of #16468) ([#16556](https://github.com/pantsbuild/pants/pull/16556)) + +## 2.12.1rc3 (Aug 14, 2022) + +### Bug fixes + +* Include Helm chart dependency inference rules (cherrypick of #16368) ([#16490](https://github.com/pantsbuild/pants/pull/16490)) + +* Fix docker invalidation bug. (cherrypick #16419) ([#16479](https://github.com/pantsbuild/pants/pull/16479)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16295](https://github.com/pantsbuild/pants/pull/16295)) + +### Documentation + +* Fix source roots docs (Cherry-pick of #16363) ([#16364](https://github.com/pantsbuild/pants/pull/16364)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16348](https://github.com/pantsbuild/pants/pull/16348)) + +## 2.12.1rc2 (Jul 20, 2022) + +### Bug fixes + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16251](https://github.com/pantsbuild/pants/pull/16251)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields (cherry-pick of #16232) ([#16248](https://github.com/pantsbuild/pants/pull/16248)) + +## 2.12.1rc1 (Jul 19, 2022) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16220](https://github.com/pantsbuild/pants/pull/16220)) + +### Bug fixes + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16233](https://github.com/pantsbuild/pants/pull/16233)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (Cherry-pick of #16197) ([#16213](https://github.com/pantsbuild/pants/pull/16213)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16211](https://github.com/pantsbuild/pants/pull/16211)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16185](https://github.com/pantsbuild/pants/pull/16185)) + +### Documentation + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16207](https://github.com/pantsbuild/pants/pull/16207)) + +## 2.12.1rc0 (Jul 14, 2022) + +### User API Changes + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16114](https://github.com/pantsbuild/pants/pull/16114)) + +### Bug fixes + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16179](https://github.com/pantsbuild/pants/pull/16179)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16153](https://github.com/pantsbuild/pants/pull/16153)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16047](https://github.com/pantsbuild/pants/pull/16047)) + +### Documentation + +* Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) ([#16157](https://github.com/pantsbuild/pants/pull/16157)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16138](https://github.com/pantsbuild/pants/pull/16138)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16059](https://github.com/pantsbuild/pants/pull/16059)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16061](https://github.com/pantsbuild/pants/pull/16061)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16021](https://github.com/pantsbuild/pants/pull/16021)) + +* Bump 2.12 install version ([#16002](https://github.com/pantsbuild/pants/pull/16002)) + +## 2.12.0 (Jun 28, 2022) + +The first stable release of the `2.12.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15973](https://github.com/pantsbuild/pants/pull/15973)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15970](https://github.com/pantsbuild/pants/pull/15970)) + +## 2.12.0rc3 (Jun 23, 2022) + +### New Features + +* Add option for max wait before terminating interactive process (Cherry-pick of #15767) ([#15908](https://github.com/pantsbuild/pants/pull/15908)) + +### User API Changes + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. (Cherry-pick of #15745) ([#15746](https://github.com/pantsbuild/pants/pull/15746)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15907](https://github.com/pantsbuild/pants/pull/15907)) + +### Bug fixes + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15906](https://github.com/pantsbuild/pants/pull/15906)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15905](https://github.com/pantsbuild/pants/pull/15905)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15793](https://github.com/pantsbuild/pants/pull/15793)) + +* Record metrics for remote cache store errors (Cherry-pick of #15744) ([#15747](https://github.com/pantsbuild/pants/pull/15747)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` (Cherry-pick of #15733) ([#15737](https://github.com/pantsbuild/pants/pull/15737)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15843](https://github.com/pantsbuild/pants/pull/15843)) + +* Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) ([#15820](https://github.com/pantsbuild/pants/pull/15820)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15823](https://github.com/pantsbuild/pants/pull/15823)) + +## 2.12.0rc2 (May 31, 2022) + +### New Features + +* Add Memory controls to JVM processes (Cherry-pick of #15224) ([#15682](https://github.com/pantsbuild/pants/pull/15682)) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15658](https://github.com/pantsbuild/pants/pull/15658)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15707](https://github.com/pantsbuild/pants/pull/15707)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15677](https://github.com/pantsbuild/pants/pull/15677)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15680](https://github.com/pantsbuild/pants/pull/15680)) + +* Choose correct dialect according to scala-version (Cherry-pick of #15649) ([#15681](https://github.com/pantsbuild/pants/pull/15681)) + +## 2.12.0rc1 (May 23, 2022) + +### New Features + +* Allow turning off `export` of Python tools like `black` (Cherry-pick of #15509) ([#15511](https://github.com/pantsbuild/pants/pull/15511)) + +* Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) ([#15468](https://github.com/pantsbuild/pants/pull/15468)) + +### User API Changes + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15485](https://github.com/pantsbuild/pants/pull/15485)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15611](https://github.com/pantsbuild/pants/pull/15611)) + +* Record Scala `package object` as provided name (Cherry-pick of #15582) ([#15608](https://github.com/pantsbuild/pants/pull/15608)) + +* Don't give a subsequent formatter an empty snapshot after skipping (Cherry-pick of #15483) ([#15602](https://github.com/pantsbuild/pants/pull/15602)) + +* Fix lockfile generation for Docker and Terraform to not require Python backend (Cherry-pick of #15453) ([#15604](https://github.com/pantsbuild/pants/pull/15604)) + +* Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) ([#15603](https://github.com/pantsbuild/pants/pull/15603)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15575](https://github.com/pantsbuild/pants/pull/15575)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15573](https://github.com/pantsbuild/pants/pull/15573)) + +* Fix `tag` filtering with `--changed-dependees` (Cherry-pick of #15546) ([#15564](https://github.com/pantsbuild/pants/pull/15564)) + +* Improve `name=` used for `python_requirements` target generators with `tailor` (Cherry-pick of #15507) ([#15519](https://github.com/pantsbuild/pants/pull/15519)) + +* jvm: don't generate default tool lockfiles (Cherry pick of #15488) ([#15498](https://github.com/pantsbuild/pants/pull/15498)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15496](https://github.com/pantsbuild/pants/pull/15496)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional (Cherry-pick of #15459) ([#15466](https://github.com/pantsbuild/pants/pull/15466)) + +* kotlin: remove stray scala references (Cherry-pick of #15461) ([#15465](https://github.com/pantsbuild/pants/pull/15465)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified (Cherry-pick of #15579) ([#15601](https://github.com/pantsbuild/pants/pull/15601)) + +## 2.12.0rc0 (May 13, 2022) + +### User API Changes + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (Cherry-pick of #15424) ([#15441](https://github.com/pantsbuild/pants/pull/15441)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' (Cherry-pick of #15373) ([#15407](https://github.com/pantsbuild/pants/pull/15407)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` (Cherry-pick of #15423) ([#15437](https://github.com/pantsbuild/pants/pull/15437)) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15412](https://github.com/pantsbuild/pants/pull/15412)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15405](https://github.com/pantsbuild/pants/pull/15405)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15403](https://github.com/pantsbuild/pants/pull/15403)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15372](https://github.com/pantsbuild/pants/pull/15372)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15370](https://github.com/pantsbuild/pants/pull/15370)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15356](https://github.com/pantsbuild/pants/pull/15356)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15299](https://github.com/pantsbuild/pants/pull/15299)) + +* Fix a bug in the python venv export logic. (#15294) ([#15297](https://github.com/pantsbuild/pants/pull/15297)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15308](https://github.com/pantsbuild/pants/pull/15308)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15439](https://github.com/pantsbuild/pants/pull/15439)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15391](https://github.com/pantsbuild/pants/pull/15391)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15368](https://github.com/pantsbuild/pants/pull/15368)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15364](https://github.com/pantsbuild/pants/pull/15364)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15348](https://github.com/pantsbuild/pants/pull/15348)) + +## 2.12.0a0 (Apr 29, 2022) + +### New Features + +* Support poetry wildcard requirements. ([#15213](https://github.com/pantsbuild/pants/pull/15213)) + +* Implement `tailor` goal for Helm charts ([#15192](https://github.com/pantsbuild/pants/pull/15192)) + +* Write virtualenvs for Python tools as part of `export` ([#15098](https://github.com/pantsbuild/pants/pull/15098)) + +### User API Changes + +* Upgrade Pex to 2.1.84. ([#15288](https://github.com/pantsbuild/pants/pull/15288)) + +### Plugin API Changes + +* Allow for arbitrary suffixes when extracting ([#15257](https://github.com/pantsbuild/pants/pull/15257)) + +* Add lz4 support to archive extraction ([#15245](https://github.com/pantsbuild/pants/pull/15245)) + +### Bug fixes + +* Simplify BSP metadata merging, and handle the empty list. ([#15283](https://github.com/pantsbuild/pants/pull/15283)) + +* BSP resolve filtering observes computed default values of resolve fields ([#15282](https://github.com/pantsbuild/pants/pull/15282)) + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. ([#15277](https://github.com/pantsbuild/pants/pull/15277)) + +* Fix ambiguity of Scala `package object`s with `class` or `object` definitions ([#15265](https://github.com/pantsbuild/pants/pull/15265)) + +* Fix issue with Docker publish when using `[docker] tools`. ([#15255](https://github.com/pantsbuild/pants/pull/15255)) + +* Do not lowercase Docker image tags. ([#15254](https://github.com/pantsbuild/pants/pull/15254)) + +* Fix the placement of the pex verbosity args. ([#15243](https://github.com/pantsbuild/pants/pull/15243)) + +* Fix use of `@` in path names. ([#15226](https://github.com/pantsbuild/pants/pull/15226)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. ([#15219](https://github.com/pantsbuild/pants/pull/15219)) + +* golang: add more cache keys based on tool IDs ([#15205](https://github.com/pantsbuild/pants/pull/15205)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` ([#15141](https://github.com/pantsbuild/pants/pull/15141)) + +### Documentation + +* Fix `ProtobufSourcesOverridesField` help message ([#15272](https://github.com/pantsbuild/pants/pull/15272)) + +* Update `help` for python resolves with recent improvements ([#15228](https://github.com/pantsbuild/pants/pull/15228)) + +* Improve cache-related error message to be less confusing ([#15202](https://github.com/pantsbuild/pants/pull/15202)) + +* Show `experimental-bsp` goal in help ([#15208](https://github.com/pantsbuild/pants/pull/15208)) + +* Mention resolve when partitioning Mypy and Pylint ([#15172](https://github.com/pantsbuild/pants/pull/15172)) + +* Don't log set up of binary shims ([#15203](https://github.com/pantsbuild/pants/pull/15203)) + +## 2.12.0.dev3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets ([#15126](https://github.com/pantsbuild/pants/pull/15126)) + +* Implement `publish` goal for Helm charts ([#15042](https://github.com/pantsbuild/pants/pull/15042)) + +* add experimental kotlin backend to distribution ([#15109](https://github.com/pantsbuild/pants/pull/15109)) + +* Support pip-style VCS requirements. ([#15097](https://github.com/pantsbuild/pants/pull/15097)) + +### User API Changes + +* Upgrade Pex to 2.1.79. ([#15125](https://github.com/pantsbuild/pants/pull/15125)) + +* Ban `terraform_module` referring to subdirectories ([#15106](https://github.com/pantsbuild/pants/pull/15106)) + +### Plugin API Changes + +* Throw a `DuplicateRuleError` when there are conflicting rules in a module. ([#15073](https://github.com/pantsbuild/pants/pull/15073)) + +* Expose `GitWorktree` as an `@rule` ([#15030](https://github.com/pantsbuild/pants/pull/15030)) + +### Bug fixes + +* Fix Requires-Python for pantsbuild.pants wheel. ([#15149](https://github.com/pantsbuild/pants/pull/15149)) + +* Allow dashes in inferred asset strings ([#15123](https://github.com/pantsbuild/pants/pull/15123)) + +* Fix when the same `python_requirement` defines both type stub and implementation ([#15121](https://github.com/pantsbuild/pants/pull/15121)) + +* Fix missing field check in go protobuf rules ([#15105](https://github.com/pantsbuild/pants/pull/15105)) + +### Documentation + +* Last round of softwrapping help strings ([#15142](https://github.com/pantsbuild/pants/pull/15142)) + +* Softwrapping a few more files ([#15138](https://github.com/pantsbuild/pants/pull/15138)) + +* Softwrap python backend help strings ([#15137](https://github.com/pantsbuild/pants/pull/15137)) + +## 2.12.0.dev2 (Apr 11, 2022) + +### New Features + +* Support for env var interpolation in config files. ([#15087](https://github.com/pantsbuild/pants/pull/15087)) + +* Support for finer control over which Docker images to push. ([#15000](https://github.com/pantsbuild/pants/pull/15000)) + +* Add a helpful hint to `lint` if a formatter fails ([#15048](https://github.com/pantsbuild/pants/pull/15048)) + +* Add support for Helm 3rd party dependencies ([#14964](https://github.com/pantsbuild/pants/pull/14964)) + +### User API Changes + +* Default `[python].lockfile_generator` to Pex ([#15074](https://github.com/pantsbuild/pants/pull/15074)) + +* Upgrade Pex to 2.1.78. ([#15078](https://github.com/pantsbuild/pants/pull/15078)) + +* terraform: remove `terraform_modules` generator target type ([#15035](https://github.com/pantsbuild/pants/pull/15035)) + +* Upgrade to Pex 2.1.77. ([#15015](https://github.com/pantsbuild/pants/pull/15015)) + +* Change JVM defaults to use Temurin JDK distribution ([#15009](https://github.com/pantsbuild/pants/pull/15009)) + +### Plugin API Changes + +* Remove deprecated `register_options` support. ([#15090](https://github.com/pantsbuild/pants/pull/15090)) + +* Remove deprecated target generator API affordances. ([#15091](https://github.com/pantsbuild/pants/pull/15091)) + +* Add `@rule_helper` decorator, which participates in awaitable collection ([#15025](https://github.com/pantsbuild/pants/pull/15025)) + +### Bug fixes + +* Enable codegen on relocated files ([#15100](https://github.com/pantsbuild/pants/pull/15100)) + +* Preserve tombstones for workunits which complete while they still have children ([#15088](https://github.com/pantsbuild/pants/pull/15088)) + +* Clean the export dir under dist/ before populating it. ([#15068](https://github.com/pantsbuild/pants/pull/15068)) + +* Do not use a repository-PEX if a PEX has platforms specified ([#15031](https://github.com/pantsbuild/pants/pull/15031)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles ([#15014](https://github.com/pantsbuild/pants/pull/15014)) + +* Pin pytest 7.0.1 ([#14997](https://github.com/pantsbuild/pants/pull/14997)) + +### Documentation + +* files/dirs swapped in Snapshot's repr ([#15101](https://github.com/pantsbuild/pants/pull/15101)) + +* Tweak deprecation messages. ([#15027](https://github.com/pantsbuild/pants/pull/15027)) + +* Add some codegen and terraform backends to docs generator ([#15036](https://github.com/pantsbuild/pants/pull/15036)) + +* Text in angle brackets needs to be escaped for the docsite. ([#15046](https://github.com/pantsbuild/pants/pull/15046)) + +* Fix presented provider backend for rules/subsystems. ([#14999](https://github.com/pantsbuild/pants/pull/14999)) + +## 2.12.0.dev1 (Apr 05, 2022) + +### New Features + +* Support restricting specific requirements to just wheels or just sdists. ([#14985](https://github.com/pantsbuild/pants/pull/14985)) + +* Add support for Helm unittest ([#14849](https://github.com/pantsbuild/pants/pull/14849)) + +* Add support for parsing address parameters to CLI specs parsing ([#14949](https://github.com/pantsbuild/pants/pull/14949)) + +### User API Changes + +* Merge list values across config files. ([#14850](https://github.com/pantsbuild/pants/pull/14850)) + +* Write test reports to a standard location under the distdir. ([#14929](https://github.com/pantsbuild/pants/pull/14929)) + +* Upgrade Pex to 2.1.76. ([#14992](https://github.com/pantsbuild/pants/pull/14992)) + +* Upgrade coursier to v2.1.0-M5-18-gfebf9838c ([#14978](https://github.com/pantsbuild/pants/pull/14978)) + +### Plugin API Changes + +* "Unify" `fmt` and `lint` rules for formatters ([#14903](https://github.com/pantsbuild/pants/pull/14903)) + +* Refactor `prior_formatter_result` and its usage ([#14987](https://github.com/pantsbuild/pants/pull/14987)) + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. ([#14959](https://github.com/pantsbuild/pants/pull/14959)) + +### Bug fixes + +* add go protobuf backend to init/BUILD ([#14979](https://github.com/pantsbuild/pants/pull/14979)) + +* Fix Pylint config check strings ([#14946](https://github.com/pantsbuild/pants/pull/14946)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves ([#14934](https://github.com/pantsbuild/pants/pull/14934)) + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields ([#14847](https://github.com/pantsbuild/pants/pull/14847)) + +### Performance + +* Make PEX lockfile subsetting incremental ([#14944](https://github.com/pantsbuild/pants/pull/14944)) + +### Documentation + +* Don't warn if no relevant targets in glob or --changed. ([#14904](https://github.com/pantsbuild/pants/pull/14904)) + +## 2.12.0.dev0 (Mar 25, 2022) + +### New Features + +* Add Protobuf formatting using buf format ([#14907](https://github.com/pantsbuild/pants/pull/14907)) + +* add registration for the Go Protobuf backend ([#14874](https://github.com/pantsbuild/pants/pull/14874)) + +### User API Changes + +* Remove `--use-deprecated-python-macros` in favor of always using target generators ([#14842](https://github.com/pantsbuild/pants/pull/14842)) + +* Add `django-dotenv`, `django-safedelete` and `factory-boy` to default Python module mapping ([#14848](https://github.com/pantsbuild/pants/pull/14848)) + +* Add cattrs to Python's DEFAULT_MODULE_MAPPING ([#14845](https://github.com/pantsbuild/pants/pull/14845)) + +* hcl parser 3.0.5 ([#14878](https://github.com/pantsbuild/pants/pull/14878)) + +### Plugin API Changes + +* FmtResult now operates on Snapshots ([#14865](https://github.com/pantsbuild/pants/pull/14865)) + +### Bug fixes + +* add cache key for all Go SDK invocations ([#14897](https://github.com/pantsbuild/pants/pull/14897)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting ([#14889](https://github.com/pantsbuild/pants/pull/14889)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators ([#14893](https://github.com/pantsbuild/pants/pull/14893)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled ([#14891](https://github.com/pantsbuild/pants/pull/14891)) diff --git a/docs/notes/2.13.x.md b/docs/notes/2.13.x.md new file mode 100644 index 000000000..265e043a4 --- /dev/null +++ b/docs/notes/2.13.x.md @@ -0,0 +1,717 @@ +# 2.13.x Release Series + +## 2.13.1 (Oct 27, 2022) + +The second stable release in the 2.13.x series, with no changes since 2.13.1rc2. + +## 2.13.1rc2 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17274](https://github.com/pantsbuild/pants/pull/17274)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17243](https://github.com/pantsbuild/pants/pull/17243)) + +* fixup name of opt-in flag in error message ([#17038](https://github.com/pantsbuild/pants/pull/17038)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17242](https://github.com/pantsbuild/pants/pull/17242)) + +## 2.13.1rc1 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17123](https://github.com/pantsbuild/pants/pull/17123)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17121](https://github.com/pantsbuild/pants/pull/17121)) + +* Upgrade Pex to 2.1.103. (Cherry-pick of #16426) ([#17114](https://github.com/pantsbuild/pants/pull/17114)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17156](https://github.com/pantsbuild/pants/pull/17156)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17151](https://github.com/pantsbuild/pants/pull/17151)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17149](https://github.com/pantsbuild/pants/pull/17149)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17147](https://github.com/pantsbuild/pants/pull/17147)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17110](https://github.com/pantsbuild/pants/pull/17110)) + +* Fix the [python-bootstrap].search_path option name in the docs. (Cherry-pick of #17063) ([#17066](https://github.com/pantsbuild/pants/pull/17066)) + +## 2.13.1rc0 (Sep 29, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16884](https://github.com/pantsbuild/pants/pull/16884)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17054](https://github.com/pantsbuild/pants/pull/17054)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17032](https://github.com/pantsbuild/pants/pull/17032)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17020](https://github.com/pantsbuild/pants/pull/17020)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16972](https://github.com/pantsbuild/pants/pull/16972)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16938](https://github.com/pantsbuild/pants/pull/16938)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16936](https://github.com/pantsbuild/pants/pull/16936)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16885](https://github.com/pantsbuild/pants/pull/16885)) + +### Documentation + +* Add Thales Menato's proudest contribution (Cherry-pick of #17023) ([#17024](https://github.com/pantsbuild/pants/pull/17024)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17006](https://github.com/pantsbuild/pants/pull/17006)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16981](https://github.com/pantsbuild/pants/pull/16981)) + +* Update changelog on docsite with 2.13 links (cherrypick of #16918) ([#16957](https://github.com/pantsbuild/pants/pull/16957)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16813](https://github.com/pantsbuild/pants/pull/16813)) + +* fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16810](https://github.com/pantsbuild/pants/pull/16810)) + +## 2.13.0 (Sep 7, 2022) + +The first stable release of 2.13.0, with no changes since 2.13.0rc3. + +See our [blog post](https://blog.pantsbuild.org/introducing-pants-2-13/) for a summary of what's new in Pants 2.13. + +## 2.13.0rc3 (Aug 31, 2022) + +### Bug fixes + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16699](https://github.com/pantsbuild/pants/pull/16699)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16660](https://github.com/pantsbuild/pants/pull/16660)) + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16729](https://github.com/pantsbuild/pants/pull/16729)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16652](https://github.com/pantsbuild/pants/pull/16652)) + +## 2.13.0rc2 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16618](https://github.com/pantsbuild/pants/pull/16618)) + +### Bug fixes + +* Have `run` run `__main__.py` for non-zipapp PEXs (Cherry-pick of #16568) ([#16635](https://github.com/pantsbuild/pants/pull/16635)) + +* Add `grpcio` to default Python module mapping ([#16604](https://github.com/pantsbuild/pants/pull/16604)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. (Cherry-pick of #16545) ([#16555](https://github.com/pantsbuild/pants/pull/16555)) + +### Performance + +* Improve performance of `Owners` rule (Cherry-pick of #16563) ([#16597](https://github.com/pantsbuild/pants/pull/16597)) + +* Fix performance for generating lockfiles for `pytest` and `setuptools` (Cherry-pick of #16591) ([#16596](https://github.com/pantsbuild/pants/pull/16596)) + +### Documentation + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16623](https://github.com/pantsbuild/pants/pull/16623)) + +* Use Markdown h3 for ToC support (Cherry-pick of #15964) ([#16558](https://github.com/pantsbuild/pants/pull/16558)) + +* Fix broken link to community page (Cherry-pick of #16468) ([#16557](https://github.com/pantsbuild/pants/pull/16557)) + +## 2.13.0rc1 (Aug 12, 2022) + +### User API Changes + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` (Cherry-pick of #16415) ([#16417](https://github.com/pantsbuild/pants/pull/16417)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (Cherry-pick of #16305) ([#16334](https://github.com/pantsbuild/pants/pull/16334)) + +* Upgrade Pex to 2.1.102. (Cherry-pick of #16313) ([#16323](https://github.com/pantsbuild/pants/pull/16323)) + +### Bug fixes + +* Add missing `help` message to experimental backends (Cherry-pick of #16403) ([#16500](https://github.com/pantsbuild/pants/pull/16500)) + +* Fix `CacheContentBehavior::Defer` with a remote cache (Cherry-pick of #16439) ([#16441](https://github.com/pantsbuild/pants/pull/16441)) + +* Fix docker invalidation bug (cherrypick of #16419) ([#16431](https://github.com/pantsbuild/pants/pull/16431)) + +* Set immutable_input_digests on a docker RunRequest. (Cherry-pick of #16385) ([#16396](https://github.com/pantsbuild/pants/pull/16396)) + +* go: pass -p option to `go tool asm` on Go v1.19+ (Cherry pick of #16381) ([#16395](https://github.com/pantsbuild/pants/pull/16395)) + +* consume inits part of package object within the inner scope (Cherry-pick of #16282) ([#16371](https://github.com/pantsbuild/pants/pull/16371)) + +* Add a newline at the end of `paths` output (Cherry-pick of #16302) ([#16372](https://github.com/pantsbuild/pants/pull/16372)) + +* fix kotlin tailor for junit tests (Cherry pick of #16333) ([#16341](https://github.com/pantsbuild/pants/pull/16341)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16296](https://github.com/pantsbuild/pants/pull/16296)) + +* Allow using `--import` option with Autoflake (Cherry-pick of #16192) ([#16275](https://github.com/pantsbuild/pants/pull/16275)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` (Cherry-pick of #16263) ([#16267](https://github.com/pantsbuild/pants/pull/16267)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches (Cherry-pick of #16398) ([#16409](https://github.com/pantsbuild/pants/pull/16409)) + +### Documentation + +* Update docs on how to run Pants in CI. (Cherry-pick of #16503) ([#16509](https://github.com/pantsbuild/pants/pull/16509)) + +* Fix partition description for MyPy when multiple resolves (Cherry-pick of #16486) ([#16498](https://github.com/pantsbuild/pants/pull/16498)) + +* Fix source roots docs. (Cherry-pick of #16363) ([#16365](https://github.com/pantsbuild/pants/pull/16365)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16349](https://github.com/pantsbuild/pants/pull/16349)) + +* add tailor docs for kotlin backend (Cherry pick of #16332) ([#16338](https://github.com/pantsbuild/pants/pull/16338)) + +* docs: add initial Kotlin docs (Cherry pick of #16304) ([#16329](https://github.com/pantsbuild/pants/pull/16329)) + +* Document test sharding and update plugin docs with 2.13 changes (Cherry-pick of #16293) ([#16306](https://github.com/pantsbuild/pants/pull/16306)) + +## 2.13.0rc0 (Jul 20, 2022) + +### New Features + +* allow JVM sources to have files dependencies (Cherry-pick of #16203) ([#16236](https://github.com/pantsbuild/pants/pull/16236)) + +* Add [python].default_run_goal_use_sandbox (Cherry-pick of #16239) ([#16253](https://github.com/pantsbuild/pants/pull/16253)) + +* Add `include_sources` to `pex_binary` target (Cherry-pick of #16215) ([#16252](https://github.com/pantsbuild/pants/pull/16252)) + +* Add support for extra env variables in go tests (Cherry-pick of #16013) ([#16067](https://github.com/pantsbuild/pants/pull/16067)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields (Cherry-pick of #16227) ([#16237](https://github.com/pantsbuild/pants/pull/16237)) + +* Upgrade Pex to 2.1.99. (Cherry-pick of #16184) ([#16225](https://github.com/pantsbuild/pants/pull/16225)) + +* Correct deprecation warning to 2.15 (Cherry-pick of #16056) ([#16218](https://github.com/pantsbuild/pants/pull/16218)) + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16113](https://github.com/pantsbuild/pants/pull/16113)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16219](https://github.com/pantsbuild/pants/pull/16219)) + +### Bug fixes + +* Refactors `output_field` to default to something that disambiguates on paramtrized fields (Cherry-pick of #16232) ([#16254](https://github.com/pantsbuild/pants/pull/16254)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16250](https://github.com/pantsbuild/pants/pull/16250)) + +* Remove removal of use_deprecated_pex_binary_run_semantics in 2.13.x ([#16108](https://github.com/pantsbuild/pants/pull/16108)) + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16234](https://github.com/pantsbuild/pants/pull/16234)) + +* Add overrides field to scala targets (Cherry-pick of #16204) ([#16235](https://github.com/pantsbuild/pants/pull/16235)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (#16197) ([#16214](https://github.com/pantsbuild/pants/pull/16214)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16210](https://github.com/pantsbuild/pants/pull/16210)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16186](https://github.com/pantsbuild/pants/pull/16186)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16180](https://github.com/pantsbuild/pants/pull/16180)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16154](https://github.com/pantsbuild/pants/pull/16154)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` (Cherry-pick of #16093) ([#16148](https://github.com/pantsbuild/pants/pull/16148)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins (Cherry-pick of #16106) ([#16147](https://github.com/pantsbuild/pants/pull/16147)) + +* Record ongoing backtrack attempts (Cherry-pick of #16075) ([#16080](https://github.com/pantsbuild/pants/pull/16080)) + +* Write to caches during backtracking (Cherry-pick of #16078) ([#16081](https://github.com/pantsbuild/pants/pull/16081)) + +* Fix `--changed-since` with `tailor` and `update-build-files` when no changes ([#16066](https://github.com/pantsbuild/pants/pull/16066)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16048](https://github.com/pantsbuild/pants/pull/16048)) + +### Performance + +* Port `@rule` `Get`s to rust (Cherry-pick of #16160) ([#16177](https://github.com/pantsbuild/pants/pull/16177)) + +### Documentation + +* Document `--filter` options working with any goal (Cherry-pick of #16090) ([#16209](https://github.com/pantsbuild/pants/pull/16209)) + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16208](https://github.com/pantsbuild/pants/pull/16208)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16139](https://github.com/pantsbuild/pants/pull/16139)) + +* New doc explaining vcs_version. (Cherrypick of #16092) ([#16102](https://github.com/pantsbuild/pants/pull/16102)) + +* Fix typo in warning for `[python].resolve_all_constraints` (Cherry-pick of #16068) ([#16073](https://github.com/pantsbuild/pants/pull/16073)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16058](https://github.com/pantsbuild/pants/pull/16058)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16060](https://github.com/pantsbuild/pants/pull/16060)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16020](https://github.com/pantsbuild/pants/pull/16020)) + +## 2.13.0a1 (Jun 29, 2022) + +### New Features + +* Add ability to `run` any `PythonSourceField` (Cherry-pick of #15849) ([#16022](https://github.com/pantsbuild/pants/pull/16022)) + +* Add `--debug-adapter` flag to `run` (Cherry-pick of #15829) ([#15988](https://github.com/pantsbuild/pants/pull/15988)) + +* Add repository config option to Docker registries. (Cherry pick of #15884) ([#15952](https://github.com/pantsbuild/pants/pull/15952)) + +### User API Changes + +* Deprecate not setting `tailor_pex_binary_targets` explicitly (Cherry-pick of #15962) ([#16023](https://github.com/pantsbuild/pants/pull/16023)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 (Cherry-pick of #15934) ([#15938](https://github.com/pantsbuild/pants/pull/15938)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15916](https://github.com/pantsbuild/pants/pull/15916)) + +### Bug fixes + +* Backtrack through calls from `@rules` to synchronous engine methods (Cherry-pick of #15979) ([#16001](https://github.com/pantsbuild/pants/pull/16001)) + +* Assorted remote metrics fixes. (Cherry-pick of #15914) ([#15976](https://github.com/pantsbuild/pants/pull/15976)) + +* Fix bad "" description in invalid addresses error messages (Cherry-pick of #15859) ([#15936](https://github.com/pantsbuild/pants/pull/15936)) + +* Fix reporting of time spent downloading files (Cherry-pick of #15873) ([#15921](https://github.com/pantsbuild/pants/pull/15921)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15918](https://github.com/pantsbuild/pants/pull/15918)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15917](https://github.com/pantsbuild/pants/pull/15917)) + +* Increment the missing-digest backtracking level once per attempt (Cherry pick of #15889) ([#15897](https://github.com/pantsbuild/pants/pull/15897)) + +* Scala: should visit ctor args of base type (Cherry pick of #15880) ([#15892](https://github.com/pantsbuild/pants/pull/15892)) + +* Scala: mark an object that extends another type as recursive (Cherry pick of #15865) ([#15891](https://github.com/pantsbuild/pants/pull/15891)) + +### Performance + +* terraform: use immutable input for Terraform tool (Cherry-pick of #15037) ([#15998](https://github.com/pantsbuild/pants/pull/15998)) + +* Improve performance of file arguments when `--owners-not-found-behavior` not used ([#15931](https://github.com/pantsbuild/pants/pull/15931)) + +* Dedupe `load_bytes_with` calls to a remote Store (Cherry-pick of #15901) ([#15915](https://github.com/pantsbuild/pants/pull/15915)) + +### Documentation + +* Update Python documentation with 2.11 changes (Cherry-pick of #15857) ([#15981](https://github.com/pantsbuild/pants/pull/15981)) + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15974](https://github.com/pantsbuild/pants/pull/15974)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15971](https://github.com/pantsbuild/pants/pull/15971)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments (Cherry-pick of #15932) ([#15937](https://github.com/pantsbuild/pants/pull/15937)) + +## 2.13.0a0 (Jun 17, 2022) + +### New Features + +* Add option for max wait before terminating interactive process ([#15767](https://github.com/pantsbuild/pants/pull/15767)) + +### User API Changes + +* Add `[scala-infer].force_add_siblings_as_dependencies` and deprecate it defaulting to true ([#15841](https://github.com/pantsbuild/pants/pull/15841)) + +* Add `--debug-adapter` flag to `test` goal ([#15799](https://github.com/pantsbuild/pants/pull/15799)) + +### Plugin API Changes + +* Add `skip_invalid_addresses` field to `UnparsedAddressInputs` ([#15864](https://github.com/pantsbuild/pants/pull/15864)) + +* Add `MaybeAddress` for infallible evaluation of `AddressInput` ([#15863](https://github.com/pantsbuild/pants/pull/15863)) + +* Add optional `StringSequenceField.valid_choices` ([#15684](https://github.com/pantsbuild/pants/pull/15684)) + +* `WrappedTarget` now requires `WrappedTargetRequest` ([#15789](https://github.com/pantsbuild/pants/pull/15789)) + +* Move `ResolveError` from `pants.base.exceptions` to `pants.build_graph.address` ([#15790](https://github.com/pantsbuild/pants/pull/15790)) + +* `_TargetParametrizations` now requires `_TargetParametrizationsRequest` ([#15759](https://github.com/pantsbuild/pants/pull/15759)) + +* `BuildFileAddress` now requires `BuildFileAddressRequest` ([#15760](https://github.com/pantsbuild/pants/pull/15760)) + +### Bug fixes + +* Support `--help` for builtin goals. ([#15798](https://github.com/pantsbuild/pants/pull/15798)) + +* Handle venv path special chars in coursier fetch ([#15701](https://github.com/pantsbuild/pants/pull/15701)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field ([#15787](https://github.com/pantsbuild/pants/pull/15787)) + +### Performance + +* Backtrack execution for missing digests to make `eager_fetch=false` more resilient ([#15850](https://github.com/pantsbuild/pants/pull/15850)) + +* Remove synchronous remote cache lookup from remote execution ([#15854](https://github.com/pantsbuild/pants/pull/15854)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15842](https://github.com/pantsbuild/pants/pull/15842)) + +* Update docs for redesign of CLI arguments ([#15816](https://github.com/pantsbuild/pants/pull/15816)) + +* Better error message when an address does not exist ([#15788](https://github.com/pantsbuild/pants/pull/15788)) + +## 2.13.0.dev5 (Jun 08, 2022) + +### New Features + +* Add GraphQL API server backend for the experimental-explorer goal ([#15697](https://github.com/pantsbuild/pants/pull/15697)) + +* Add `extra_env_vars` field to `experimental_shell_command` target. ([#15742](https://github.com/pantsbuild/pants/pull/15742)) + +* Add `experimental-explorer` builtin goal. ([#15695](https://github.com/pantsbuild/pants/pull/15695)) + +### User API Changes + +* Always ignore paths which are not files, directories, or links. ([#15773](https://github.com/pantsbuild/pants/pull/15773)) + +* Add API types and rules to cli help info ([#14227](https://github.com/pantsbuild/pants/pull/14227)) + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. ([#15745](https://github.com/pantsbuild/pants/pull/15745)) + +* Revert "Go can use both `file` and `resource` targets (#15663)" ([#15725](https://github.com/pantsbuild/pants/pull/15725)) + +* Deprecate `--exclude-target-regexp` in favor of `--filter-address-regex` ([#15729](https://github.com/pantsbuild/pants/pull/15729)) + +### Plugin API Changes + +* Require setting `description_of_origin` with `AddressInput` and `UnparsedAddressInputs` ([#15743](https://github.com/pantsbuild/pants/pull/15743)) + +* Require keyword arguments for `AddressInput` ([#15741](https://github.com/pantsbuild/pants/pull/15741)) + +### Bug fixes + +* `tailor` should skip bad requirements targets ([#15755](https://github.com/pantsbuild/pants/pull/15755)) + +* `tailor` for Go does not add targets when no ancestor `go.mod` ([#15750](https://github.com/pantsbuild/pants/pull/15750)) + +* Record metrics for remote cache store errors ([#15744](https://github.com/pantsbuild/pants/pull/15744)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` ([#15733](https://github.com/pantsbuild/pants/pull/15733)) + +* Fix `--changed-since` with directories unknown to Pants ([#15714](https://github.com/pantsbuild/pants/pull/15714)) + +### Documentation + +* Improve error messages for invalid addresses ([#15751](https://github.com/pantsbuild/pants/pull/15751)) + +* Correctly describe the origin of invalid specs, e.g. `--paths-from` ([#15730](https://github.com/pantsbuild/pants/pull/15730)) + +## 2.13.0.dev4 (May 31, 2022) + +### New Features + +* Support running pex_binary targets directly on the in-repo sources. ([#15689](https://github.com/pantsbuild/pants/pull/15689)) + +* Go can use both `file` and `resource` targets ([#15663](https://github.com/pantsbuild/pants/pull/15663)) + +* Add ignore command line arguments, e.g. `-dir::` ([#15619](https://github.com/pantsbuild/pants/pull/15619)) + +* Allow to skip linting on Helm charts ([#15640](https://github.com/pantsbuild/pants/pull/15640)) + +* Helm charts support CRDS by default ([#15623](https://github.com/pantsbuild/pants/pull/15623)) + +* Adds dependency injection rule for protobuf-java runtime ([#15006](https://github.com/pantsbuild/pants/pull/15006)) + +### User API Changes + +* Make the global --no-process-cleanup conserve the `run` tmpdir. ([#15683](https://github.com/pantsbuild/pants/pull/15683)) + +* Upgrade Pex to 2.1.90. ([#15656](https://github.com/pantsbuild/pants/pull/15656)) + +* Remove `-d` as shorthand for `--logdir` ([#15621](https://github.com/pantsbuild/pants/pull/15621)) + +### Plugin API Changes + +* `PutativeTargetsRequest.path_globs()` can take multiple globs ([#15634](https://github.com/pantsbuild/pants/pull/15634)) + +* [Plugin API change] Remove default help message from MultipleSourcesField ([#15633](https://github.com/pantsbuild/pants/pull/15633)) + +* Don't allow multiple flag names for the same option ([#15627](https://github.com/pantsbuild/pants/pull/15627)) + +* Remove `PutativeTargetsSearchPaths` ([#15625](https://github.com/pantsbuild/pants/pull/15625)) + +* Refactor `Specs` as prework for ignore Specs ([#15620](https://github.com/pantsbuild/pants/pull/15620)) + +* Ban using short option names like `-x`, except for pre-blessed values ([#15624](https://github.com/pantsbuild/pants/pull/15624)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used ([#15706](https://github.com/pantsbuild/pants/pull/15706)) + +* `python_requirements()` can handle `-r reqs.txt` ([#15672](https://github.com/pantsbuild/pants/pull/15672)) + +* Increase RuleGraph solver loop threshold to allow for larger `@rule` sets ([#15668](https://github.com/pantsbuild/pants/pull/15668)) + +* Fix `--help` output when specs given. ([#15665](https://github.com/pantsbuild/pants/pull/15665)) + +* `update-build-files` falls back to interpreter constraints from tool lockfile for Black and Yapf ([#15666](https://github.com/pantsbuild/pants/pull/15666)) + +* Fix detection of `--help` when specs given ([#15664](https://github.com/pantsbuild/pants/pull/15664)) + +* Choose correct Scala dialect according to scala-version ([#15649](https://github.com/pantsbuild/pants/pull/15649)) + +* Fix deleted files with `--changed-since` when using target-less goals like `count-loc` ([#15662](https://github.com/pantsbuild/pants/pull/15662)) + +* Prevent collisions between attempts to materialize an immutable input digest. ([#15652](https://github.com/pantsbuild/pants/pull/15652)) + +* Fix another case of direct Coursier lockfile consumption ([#15650](https://github.com/pantsbuild/pants/pull/15650)) + +### Documentation + +* Mention language specific opt outs for `tailor` ([#15673](https://github.com/pantsbuild/pants/pull/15673)) + +* Provide more "Did you mean ..." suggestions for the CLI help. ([#15646](https://github.com/pantsbuild/pants/pull/15646)) + +* [docs] Add language specific file examples for sources help message of a target ([#15635](https://github.com/pantsbuild/pants/pull/15635)) + +* Docs: show language specific file examples in sources field in the help of targets ([#15595](https://github.com/pantsbuild/pants/pull/15595)) + +## 2.13.0.dev3 (May 23, 2022) + +### New Features + +* `dir:` and `dir::` work on target-less goals like `count-loc` ([#15577](https://github.com/pantsbuild/pants/pull/15577)) + +* `--changed-since` works on target-less goals like `count-loc` ([#14434](https://github.com/pantsbuild/pants/pull/14434)) + +* Add `--no-use-deprecated-directory-cli-args-semantics` so that directory arguments match all files/targets in the directory ([#15589](https://github.com/pantsbuild/pants/pull/15589)) + +* `filter` options work with any goal now, not only the `filter` goal ([#15599](https://github.com/pantsbuild/pants/pull/15599)) + +* Use new, consistent CLI args semantics for `tailor` if `use_deprecated_cli_args_semantics = false` ([#15612](https://github.com/pantsbuild/pants/pull/15612)) + +* Support JVM options per tool ([#15505](https://github.com/pantsbuild/pants/pull/15505)) + +* Allow turning off `export` of Python tools like `black` ([#15509](https://github.com/pantsbuild/pants/pull/15509)) + +* Adding file downloading support to asset targets ([#15457](https://github.com/pantsbuild/pants/pull/15457)) + +### User API Changes + +* Deprecate `filter` goal now that `filter` options can be used from any goal ([#15600](https://github.com/pantsbuild/pants/pull/15600)) + +* Tailor `__main__.py` files as pex binaries ([#15598](https://github.com/pantsbuild/pants/pull/15598)) + +* `update-build-files` now takes CLI args for which BUILD files to change ([#15581](https://github.com/pantsbuild/pants/pull/15581)) + +* Don't error when `dir:` and `dir::` have no targets, as long as the directories exist ([#15570](https://github.com/pantsbuild/pants/pull/15570)) + +* Deprecate `--owners-not-found-behavior` and set default to `ignore` ([#15560](https://github.com/pantsbuild/pants/pull/15560)) + +* Add `--unmatched-cli-globs`, which before was controlled by `--owners-not-found-behavior` ([#15556](https://github.com/pantsbuild/pants/pull/15556)) + +* Deprecate `files_not_found_behavior` in favor of `unmatched_build_file_globs` ([#15555](https://github.com/pantsbuild/pants/pull/15555)) + +* Remove undocumented CLI file arguments ignore syntax ([#15534](https://github.com/pantsbuild/pants/pull/15534)) + +* `go_third_party_package` targets now depend on their `go.mod` and `go.sum` ([#15521](https://github.com/pantsbuild/pants/pull/15521)) + +* `--changed-dependees` no longer runs on sibling targets from same target generator ([#15396](https://github.com/pantsbuild/pants/pull/15396)) + +* Change `_generator_sources_helper` to use `source: str` rather than `sources: list[str]` ([#15475](https://github.com/pantsbuild/pants/pull/15475)) + +* Upgrade Pex to 2.1.88. ([#15484](https://github.com/pantsbuild/pants/pull/15484)) + +* Revert "Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (#15469)" ([#15492](https://github.com/pantsbuild/pants/pull/15492)) + +### Plugin API Changes + +* Replace `SpecsSnapshot` with lazier `SpecsPaths` ([#15593](https://github.com/pantsbuild/pants/pull/15593)) + +* Rename classes in `specs.py` for unification of specs semantics ([#15538](https://github.com/pantsbuild/pants/pull/15538)) + +* Remove `addressable=` kwarg from `tailor` ([#15504](https://github.com/pantsbuild/pants/pull/15504)) + +* Remove `AbstractTestGenerator` from `pantsbuild.pants.testutil` ([#15464](https://github.com/pantsbuild/pants/pull/15464)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries ([#15571](https://github.com/pantsbuild/pants/pull/15571)) + +* Record Scala `package object` as provided name ([#15582](https://github.com/pantsbuild/pants/pull/15582)) + +* Fix deprecation message for `--filter-target-type` with deprecated target alias ([#15596](https://github.com/pantsbuild/pants/pull/15596)) + +* Fix scala inference doesn't infer name after function call ([#15565](https://github.com/pantsbuild/pants/pull/15565)) + +* Fix JVM resource classification and artifact grouping ([#15567](https://github.com/pantsbuild/pants/pull/15567)) + +* Apply `--tag` filtering to target-less goals like `count-loc` ([#15479](https://github.com/pantsbuild/pants/pull/15479)) + +* Fix `tag` filtering with `--changed-dependees` ([#15546](https://github.com/pantsbuild/pants/pull/15546)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` ([#15542](https://github.com/pantsbuild/pants/pull/15542)) + +* Support transitive file dependencies in Scalatest/JUnit ([#15501](https://github.com/pantsbuild/pants/pull/15501)) + +* Improve `name=` used for Python requirement target generators with `tailor` ([#15507](https://github.com/pantsbuild/pants/pull/15507)) + +* don't generate default tool lockfiles ([#15488](https://github.com/pantsbuild/pants/pull/15488)) + +* Don't give a subsequent formatter an empty snapshot after skipping ([#15483](https://github.com/pantsbuild/pants/pull/15483)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations ([#15494](https://github.com/pantsbuild/pants/pull/15494)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified ([#15579](https://github.com/pantsbuild/pants/pull/15579)) + +* `regex-lint` only reads files that will be checked ([#15580](https://github.com/pantsbuild/pants/pull/15580)) + +### Documentation + +* Freshen up deprecated option formatting ([#15590](https://github.com/pantsbuild/pants/pull/15590)) + +* Make required fields sort first on the docsite and in the './pants help target' output ([#15587](https://github.com/pantsbuild/pants/pull/15587)) + +* Add a few default_help_reprs ([#15588](https://github.com/pantsbuild/pants/pull/15588)) + +* Suggest a UUID when erroring about missing UUID ([#15550](https://github.com/pantsbuild/pants/pull/15550)) + +* Tweak docs to include `no-infer-dep` in a few more places ([#15547](https://github.com/pantsbuild/pants/pull/15547)) + +## 2.13.0.dev2 (May 14, 2022) + +### New Features + +* Adds JDK autoconfiguration support to scala BSP metadata setup ([#15408](https://github.com/pantsbuild/pants/pull/15408)) + +* Add `lint --skip-formatters` option ([#15427](https://github.com/pantsbuild/pants/pull/15427)) + +* Support for sharding tests. ([#15417](https://github.com/pantsbuild/pants/pull/15417)) + +* Add clang-format support for the experimental c/cpp plugin ([#15395](https://github.com/pantsbuild/pants/pull/15395)) + +* Support setting env vars in individual distribution builds. ([#15422](https://github.com/pantsbuild/pants/pull/15422)) + +* kotlin: add support for junit tests ([#15382](https://github.com/pantsbuild/pants/pull/15382)) + +### User API Changes + +* Upgrade Pex to 2.1.87. ([#15472](https://github.com/pantsbuild/pants/pull/15472)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#15469](https://github.com/pantsbuild/pants/pull/15469)) + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) ([#15424](https://github.com/pantsbuild/pants/pull/15424)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' ([#15373](https://github.com/pantsbuild/pants/pull/15373)) + +* Add `[python-infer].init_files` as more intuitive replacement for `[python-infer].inits` ([#15397](https://github.com/pantsbuild/pants/pull/15397)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` ([#15423](https://github.com/pantsbuild/pants/pull/15423)) + +### Bug fixes + +* Only infer an __init__.py dep on a python_sources-generated target. ([#15471](https://github.com/pantsbuild/pants/pull/15471)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional ([#15459](https://github.com/pantsbuild/pants/pull/15459)) + +* support relative address syntax for JVM compiler plugin artifacts ([#15462](https://github.com/pantsbuild/pants/pull/15462)) + +* Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend ([#15453](https://github.com/pantsbuild/pants/pull/15453)) + +* Fix boolean logic when merging interpreter constraints. ([#15414](https://github.com/pantsbuild/pants/pull/15414)) + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` ([#15394](https://github.com/pantsbuild/pants/pull/15394)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. ([#15401](https://github.com/pantsbuild/pants/pull/15401)) + +* Fix `[]` in file names with target generators ([#15383](https://github.com/pantsbuild/pants/pull/15383)) + +* BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. ([#15392](https://github.com/pantsbuild/pants/pull/15392)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves ([#15416](https://github.com/pantsbuild/pants/pull/15416)) + +## 2.13.0.dev1 (May 10, 2022) + +### New Features + +* Initial support for building dists using mypyc. ([#15380](https://github.com/pantsbuild/pants/pull/15380)) + +* Support dependency inference on vcs_version targets. ([#15385](https://github.com/pantsbuild/pants/pull/15385)) + +* Support for getting a version string from git. ([#15374](https://github.com/pantsbuild/pants/pull/15374)) + +* Add `tailor` for `poetry_requirements` and `pipenv_requirements` ([#15352](https://github.com/pantsbuild/pants/pull/15352)) + +### User API Changes + +* Add default mapping for pygithub ([#15361](https://github.com/pantsbuild/pants/pull/15361)) + +### Bug fixes + +* Generalize Docker dep inference for all packageables. ([#15375](https://github.com/pantsbuild/pants/pull/15375)) + +* Fix `tailor` detection of existing `python_requirements` targets ([#15363](https://github.com/pantsbuild/pants/pull/15363)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. ([#15362](https://github.com/pantsbuild/pants/pull/15362)) + +* Use abspath to sandbox in PATH for docker tool shims. ([#15341](https://github.com/pantsbuild/pants/pull/15341)) + +### Documentation + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` ([#15334](https://github.com/pantsbuild/pants/pull/15334)) + +* Disallow `!` patterns in `build_ignore`. ([#15366](https://github.com/pantsbuild/pants/pull/15366)) + +## 2.13.0.dev0 (May 05, 2022) + +### New Features + +* BSP compile exposes loose classfiles to allow IntelliJ to invoke tests ([#15347](https://github.com/pantsbuild/pants/pull/15347)) + +* Add options to turn off `tailor` on a per-language basis ([#15335](https://github.com/pantsbuild/pants/pull/15335)) + +### User API Changes + +* Upgrade hadolint to 2.10.0 and add linux arm64 support ([#15317](https://github.com/pantsbuild/pants/pull/15317)) + +* Remove `[test].xml_dir`, `[update-build-files].fix_python_macros`, and `[java-infer].third_party_imports` ([#15311](https://github.com/pantsbuild/pants/pull/15311)) + +* Deprecate `[golang].expected_version` in favor of more flexible `[golang].minimum_expected_version` ([#15306](https://github.com/pantsbuild/pants/pull/15306)) + +### Plugin API Changes + +* Add `update_env` to `process_execution::local`. ([#15340](https://github.com/pantsbuild/pants/pull/15340)) + +### Bug fixes + +* Fix error output of `parametrize()` ([#15339](https://github.com/pantsbuild/pants/pull/15339)) + +* Don't strip source roots when building dists with an existing setup.py ([#15303](https://github.com/pantsbuild/pants/pull/15303)) + +* Fix a bug in the python venv export logic. ([#15294](https://github.com/pantsbuild/pants/pull/15294)) + +* Fix non-determinism of `package_data` in generated `setup.py` files ([#15292](https://github.com/pantsbuild/pants/pull/15292)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal ([#15304](https://github.com/pantsbuild/pants/pull/15304)) + +### Documentation + +* Improve error message for resolves x interpreter constraints issues ([#15314](https://github.com/pantsbuild/pants/pull/15314)) diff --git a/docs/notes/2.14.x.md b/docs/notes/2.14.x.md new file mode 100644 index 000000000..f17acd1e9 --- /dev/null +++ b/docs/notes/2.14.x.md @@ -0,0 +1,695 @@ +# 2.14.x Release Series + +## 2.14.2 (May 14, 2023) + +The third stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.2rc2 (Apr 23, 2023) + +### Bug Fixes + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18674](https://github.com/pantsbuild/pants/pull/18674)) + +### Documentation + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18797](https://github.com/pantsbuild/pants/pull/18797)) + +## 2.14.2rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18642](https://github.com/pantsbuild/pants/pull/18642)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18635](https://github.com/pantsbuild/pants/pull/18635)) + +## 2.14.2rc0 (Mar 24, 2023) + +### Bug fixes + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18538](https://github.com/pantsbuild/pants/pull/18538)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18060](https://github.com/pantsbuild/pants/pull/18060)) + +## 2.14.1 (Jan 16, 2023) + +The second stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.1rc0 (Dec 30, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17867](https://github.com/pantsbuild/pants/pull/17867)) + +* Fix twine env vars propagation for publish goal (Cherry-pick of #17650) ([#17658](https://github.com/pantsbuild/pants/pull/17658)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17583](https://github.com/pantsbuild/pants/pull/17583)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17547](https://github.com/pantsbuild/pants/pull/17547)) + +* Fix an unactionable `InteractiveProcessRequest` deprecation ([#17546](https://github.com/pantsbuild/pants/pull/17546)) + +* Fix dep inference from shuint2_tests targets. (Cherry-pick of #17417) ([#17421](https://github.com/pantsbuild/pants/pull/17421)) + +* Fix dirtying of uncacheable nodes (Cherry-pick of #17079) ([#17396](https://github.com/pantsbuild/pants/pull/17396)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17609](https://github.com/pantsbuild/pants/pull/17609)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17569](https://github.com/pantsbuild/pants/pull/17569)) + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17529](https://github.com/pantsbuild/pants/pull/17529)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17498](https://github.com/pantsbuild/pants/pull/17498)) + +* Fix typo in docs: debug-adaptor should be debug-adapter (Cherry-pick of #17452) ([#17453](https://github.com/pantsbuild/pants/pull/17453)) + +* Update nuke_if_too_big documentation (Cherry-pick of #17429) ([#17430](https://github.com/pantsbuild/pants/pull/17430)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17424](https://github.com/pantsbuild/pants/pull/17424)) + +* Add 2.14 blog post link to changelog page. (Cherry-pick of #17381) ([#17384](https://github.com/pantsbuild/pants/pull/17384)) + +* Document the existence of the init-pants action. (Cherry-pick of #17378) ([#17380](https://github.com/pantsbuild/pants/pull/17380)) + +* Fix linebreak issues in the targets docs page. (Cherry-pick of #17364) ([#17366](https://github.com/pantsbuild/pants/pull/17366)) + +## 2.14.0 (Oct 26, 2022) + +The first stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.0rc5 (Oct 21, 2022) + +### Bug fixes + +* Retry the streaming portion of downloads, as well as the setup. (Cherry-pick of #17298) ([#17302](https://github.com/pantsbuild/pants/pull/17302)) + +* Fix incomplete cherry-pick of #17177. ([#17312](https://github.com/pantsbuild/pants/pull/17312)) + +### Documentation + +* Fix a nit in the Getting Help docs. (Cherry-pick of #17295) ([#17296](https://github.com/pantsbuild/pants/pull/17296)) + +## 2.14.0rc4 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17275](https://github.com/pantsbuild/pants/pull/17275)) + +* Fix macros depending on macros from other files (Cherry-pick of #17183) ([#17245](https://github.com/pantsbuild/pants/pull/17245)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17244](https://github.com/pantsbuild/pants/pull/17244)) + +### Performance + +* Set PEX_ROOT for export post-processing command. (cherry-pick of #17177) ([#17200](https://github.com/pantsbuild/pants/pull/17200)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17241](https://github.com/pantsbuild/pants/pull/17241)) + +## 2.14.0rc3 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17120](https://github.com/pantsbuild/pants/pull/17120)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17113](https://github.com/pantsbuild/pants/pull/17113)) + +### Bug fixes + +* Exit normally from K8S parser with unsupported manifests (Cherry-pick of #17037) ([#17143](https://github.com/pantsbuild/pants/pull/17143)) + +* Fix dep inference with empty lines in multiline imports. (Cherry-pick of #17284) ([#17285](https://github.com/pantsbuild/pants/pull/17285)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17158](https://github.com/pantsbuild/pants/pull/17158)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17152](https://github.com/pantsbuild/pants/pull/17152)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17150](https://github.com/pantsbuild/pants/pull/17150)) + +* Fix Helm K8S parser help message (Cherry-pick of #17091) ([#17145](https://github.com/pantsbuild/pants/pull/17145)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17148](https://github.com/pantsbuild/pants/pull/17148)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17111](https://github.com/pantsbuild/pants/pull/17111)) + +* Update `pytest-xdist` docs. (Cherry-pick of #17071) ([#17072](https://github.com/pantsbuild/pants/pull/17072)) + +## 2.14.0rc2 (Sep 29, 2022) + +### User API Changes + +* Restore the deprecated `filter` goal indefinitely (Cherry-pick of #17027) ([#17052](https://github.com/pantsbuild/pants/pull/17052)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17053](https://github.com/pantsbuild/pants/pull/17053)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17033](https://github.com/pantsbuild/pants/pull/17033)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17021](https://github.com/pantsbuild/pants/pull/17021)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17010](https://github.com/pantsbuild/pants/pull/17010)) + +* Add `parametrize()` support for `__defaults__`. (Cherry-pick of #16977) ([#17008](https://github.com/pantsbuild/pants/pull/17008)) + +* go: prepend $GOROOT/bin to PATH for tests (Cherry pick of #16993) ([#16997](https://github.com/pantsbuild/pants/pull/16997)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16973](https://github.com/pantsbuild/pants/pull/16973)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16939](https://github.com/pantsbuild/pants/pull/16939)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16935](https://github.com/pantsbuild/pants/pull/16935)) + +* remove override of register_plugin_field (Cherry pick of #16919) ([#16923](https://github.com/pantsbuild/pants/pull/16923)) + +* Only request source roots for PEP-517 deps that belong on the syspath (cherrypick of #16903) ([#16917](https://github.com/pantsbuild/pants/pull/16917)) + +### Performance + +* Add an optional speculation delay when using a remote cache (Cherry-pick of #16922) ([#16956](https://github.com/pantsbuild/pants/pull/16956)) + +### Documentation + +* Improve remote cache logging for hit or miss (Cherry-pick of #16975) ([#16986](https://github.com/pantsbuild/pants/pull/16986)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16982](https://github.com/pantsbuild/pants/pull/16982)) + +* Update changelog on docsite with 2.13, 2.14 links (Cherry-pick of #16918) ([#16958](https://github.com/pantsbuild/pants/pull/16958)) + +## 2.14.0rc1 (Sep 16, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16879](https://github.com/pantsbuild/pants/pull/16879)) + +### Bug fixes + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code (Cherry-pick of #16896) ([#16904](https://github.com/pantsbuild/pants/pull/16904)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16880](https://github.com/pantsbuild/pants/pull/16880)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets (Cherry pick of #16386) ([#16799](https://github.com/pantsbuild/pants/pull/16799)) + +### Documentation + +* Don't mention a specific version in the manual install instructions (cherrypick of #16888) ([#16889](https://github.com/pantsbuild/pants/pull/16889)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16814](https://github.com/pantsbuild/pants/pull/16814)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16811](https://github.com/pantsbuild/pants/pull/16811)) + +## 2.14.0rc0 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when `--no-colors` (Cherry-pick of #16586) ([#16808](https://github.com/pantsbuild/pants/pull/16808)) + +## 2.14.0a1 (Sep 04, 2022) + +### New Features + +* Add support for string interpolation in Helm deployments (Cherry-pick of #16611) ([#16723](https://github.com/pantsbuild/pants/pull/16723)) + +* Support Docker custom tags via plugin hook (Cherry-pick of #16662) ([#16719](https://github.com/pantsbuild/pants/pull/16719)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support (Cherry-pick of #16584) ([#16625](https://github.com/pantsbuild/pants/pull/16625)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds (Cherry-pick of #16709) ([#16725](https://github.com/pantsbuild/pants/pull/16725)) + +* Resolve properly provided symbol names for types defined at top level package (Cherry-pick of #16690) ([#16718](https://github.com/pantsbuild/pants/pull/16718)) + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16700](https://github.com/pantsbuild/pants/pull/16700)) + +* Wire BUILD file formatters in `lint` (Cherry-pick of #16666) ([#16694](https://github.com/pantsbuild/pants/pull/16694)) + +* Include type bound constraints in consumed symbols during Scala inference (Cherry-pick of #16692) ([#16698](https://github.com/pantsbuild/pants/pull/16698)) + +* Make `FilespecMatcher` case-sensitive (Cherry-pick of #16673) ([#16677](https://github.com/pantsbuild/pants/pull/16677)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16659](https://github.com/pantsbuild/pants/pull/16659)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. (Cherry-pick of #16627) ([#16701](https://github.com/pantsbuild/pants/pull/16701)) + +* Optimize `CreateDigest` implementation. (Cherry-pick of #16617) ([#16648](https://github.com/pantsbuild/pants/pull/16648)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier (Cherry-pick of #16706) ([#16742](https://github.com/pantsbuild/pants/pull/16742)) + +* Welcome community members to consider joining team (Cherry-pick of #16681) ([#16745](https://github.com/pantsbuild/pants/pull/16745)) + +* Clarify wording for `--skip` options (Cherry-pick of #16622) ([#16702](https://github.com/pantsbuild/pants/pull/16702)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16653](https://github.com/pantsbuild/pants/pull/16653)) + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16624](https://github.com/pantsbuild/pants/pull/16624)) + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16730](https://github.com/pantsbuild/pants/pull/16730)) + +## 2.14.0a0 (Aug 23, 2022) + +### New Features + +* Add Plugin hook for adding custom additional Docker image tags. ([#16077](https://github.com/pantsbuild/pants/pull/16077)) + +* Add new fmt plugins for build file formatting ([#16560](https://github.com/pantsbuild/pants/pull/16560)) + +* Add buildifier as a BUILD file formatter ([#16573](https://github.com/pantsbuild/pants/pull/16573)) + +* go: add support for test coverage ([#16550](https://github.com/pantsbuild/pants/pull/16550)) + +* Disable 80 col hard wrapping in mypy output ([#16488](https://github.com/pantsbuild/pants/pull/16488)) + +* Allow for automatic use of `pytest-xdist` ([#16499](https://github.com/pantsbuild/pants/pull/16499)) + +* Add `[pyoxidizer].lockfile` ([#16537](https://github.com/pantsbuild/pants/pull/16537)) + +* Add `[flake8].extra_files` to allow configuring plugins like Bandit ([#16470](https://github.com/pantsbuild/pants/pull/16470)) + +* Support 3rd party Helm artifacts in Helm deployments ([#16478](https://github.com/pantsbuild/pants/pull/16478)) + +### User API Changes + +* Mark `[python].requirement_constraints` as deprecated (but not planned for removal) ([#16606](https://github.com/pantsbuild/pants/pull/16606)) + +* Add `[python-repos].find_links` as preferred alias for `[python-repos].repos` ([#16582](https://github.com/pantsbuild/pants/pull/16582)) + +* Fix that running on a BUILD file expands to all of its targets ([#16546](https://github.com/pantsbuild/pants/pull/16546)) + +* Deprecate `[python].only_binary` and `[python].no_binary` in favor of more powerful `[python].resolves_to_only_binary` and `[python].resolves_to_no_binary` ([#16513](https://github.com/pantsbuild/pants/pull/16513)) + +### Plugin API Changes + +* Rename `FmtRequest` to `FmtTargetsRequest` (plus some `fix` refactoring) ([#16535](https://github.com/pantsbuild/pants/pull/16535)) + +### Bug fixes + +* Auto-detect Helm chart source roots ([#16531](https://github.com/pantsbuild/pants/pull/16531)) + +* Have `run` run `__main__.py` for non-zipapp PEXs ([#16568](https://github.com/pantsbuild/pants/pull/16568)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. ([#16545](https://github.com/pantsbuild/pants/pull/16545)) + +* Prevent running N^2 publish processes during deploy goal ([#16516](https://github.com/pantsbuild/pants/pull/16516)) + +* Track Python indexes, find-links, and manylinux in lockfile headers ([#16525](https://github.com/pantsbuild/pants/pull/16525)) + +### Performance + +* Fix performance for generating lockfiles for `pytest` and `setuptools` ([#16591](https://github.com/pantsbuild/pants/pull/16591)) + +* Improve performance of `Owners` rule ([#16563](https://github.com/pantsbuild/pants/pull/16563)) + +### Documentation + +* More succinct phrasing and better formatting for cli help. ([#16549](https://github.com/pantsbuild/pants/pull/16549)) + +* Document `[python].resolves_to_constraints_file` and `[python].resolves_to_no_binary` ([#16548](https://github.com/pantsbuild/pants/pull/16548)) + +* Fix broken link to community page ([#16468](https://github.com/pantsbuild/pants/pull/16468)) + +## 2.14.0.dev6 (Aug 13, 2022) + +### New Features + +* Support adding to dict-valued options in config files. ([#16481](https://github.com/pantsbuild/pants/pull/16481)) + +* Add `[mypy].extra_type_stubs_lockfile` ([#16461](https://github.com/pantsbuild/pants/pull/16461)) + +* Proposal for a Helm Deployment goal implementation ([#15882](https://github.com/pantsbuild/pants/pull/15882)) + +* Add support for using environment variables in JVM tests ([#16455](https://github.com/pantsbuild/pants/pull/16455)) + +* Add `[python].resolves_to_constraints_file` ([#16420](https://github.com/pantsbuild/pants/pull/16420)) + +### Plugin API Changes + +* `GenerateToolLockfileSentinel` encouraged to use language-specific subclasses ([#16449](https://github.com/pantsbuild/pants/pull/16449)) + +* Allow backend packages to also register remote auth plugins ([#16444](https://github.com/pantsbuild/pants/pull/16444)) + +### Bug fixes + +* Fix `--process-cleanup` deprecation. ([#16447](https://github.com/pantsbuild/pants/pull/16447)) + +* Fix `CacheContentBehavior::Defer` with a remote cache ([#16439](https://github.com/pantsbuild/pants/pull/16439)) + +### Documentation + +* Update docs on how to run Pants in CI. ([#16503](https://github.com/pantsbuild/pants/pull/16503)) + +* Fix partition description for MyPy when multiple resolves ([#16486](https://github.com/pantsbuild/pants/pull/16486)) + +* Add IBM to user list. ([#16457](https://github.com/pantsbuild/pants/pull/16457)) + +## 2.14.0.dev5 (Aug 07, 2022) + +### New Features + +* Add `[pytest].config` to set custom config file paths ([#16423](https://github.com/pantsbuild/pants/pull/16423)) + +* java/protobuf: add support for grpc-java codegen ([#16350](https://github.com/pantsbuild/pants/pull/16350)) + +### User API Changes + +* Upgrade Pex to 2.1.103. ([#16313](https://github.com/pantsbuild/pants/pull/16426)) +* +* Deprecate `[python].lockfile_generator` ([#16418](https://github.com/pantsbuild/pants/pull/16418)) + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` ([#16415](https://github.com/pantsbuild/pants/pull/16415)) + +* Add a few popular python packages to default modules mapping ([#16330](https://github.com/pantsbuild/pants/pull/16330)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#16305](https://github.com/pantsbuild/pants/pull/16305)) + +* Upgrade Pex to 2.1.102. ([#16313](https://github.com/pantsbuild/pants/pull/16313)) + +* Enable `[python-infer].unowned_dependency_behavior="warning"` by default. ([#16281](https://github.com/pantsbuild/pants/pull/16281)) + +* Upgrade Pex to 2.1.101. ([#16297](https://github.com/pantsbuild/pants/pull/16297)) + +### Plugin API Changes + +* Add entry point support for remote auth plugin ([#16212](https://github.com/pantsbuild/pants/pull/16212)) + +* Provide foundations for a deploy goal ([#16335](https://github.com/pantsbuild/pants/pull/16335)) + +### Bug fixes + +* Fix docker invalidation bug. ([#16419](https://github.com/pantsbuild/pants/pull/16419)) + +* Add missing `help` message to experimental backends ([#16403](https://github.com/pantsbuild/pants/pull/16403)) + +* Set immutable_input_digests on a docker RunRequest. ([#16385](https://github.com/pantsbuild/pants/pull/16385)) + +* go: pass -p option to `go tool asm` on Go v1.19+ ([#16381](https://github.com/pantsbuild/pants/pull/16381)) + +* jvm: fix fetching artifacts with non-jar packaging ([#16358](https://github.com/pantsbuild/pants/pull/16358)) + +* [internal] Add missing timeout field to target generators ([#16314](https://github.com/pantsbuild/pants/pull/16314)) + +* Include Helm chart dependency inference rules ([#16368](https://github.com/pantsbuild/pants/pull/16368)) + +* [internal] Use `f_globals` instead of `inspect.getmodule` in `collect_rules` ([#16357](https://github.com/pantsbuild/pants/pull/16357)) + +* Silence mkdir, cp, and mv commands with MyPy caching ([#16340](https://github.com/pantsbuild/pants/pull/16340)) + +* fix kotlin tailor for junit tests ([#16333](https://github.com/pantsbuild/pants/pull/16333)) + +* Leverage a multiprocess-safe strategy for MyPy's cache ([#16290](https://github.com/pantsbuild/pants/pull/16290)) + +* Eagerly error for symlink loops ([#16319](https://github.com/pantsbuild/pants/pull/16319)) + +* Add a newline at the end of `paths` output ([#16302](https://github.com/pantsbuild/pants/pull/16302)) + +* Consume inits part of package object within the inner scope ([#16282](https://github.com/pantsbuild/pants/pull/16282)) + +* Explicitly add directory entries to resources JARs ([#16264](https://github.com/pantsbuild/pants/pull/16264)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches ([#16398](https://github.com/pantsbuild/pants/pull/16398)) + +### Documentation + +* Document how to use Pylint reports ([#16399](https://github.com/pantsbuild/pants/pull/16399)) + +* Fix source roots docs. ([#16363](https://github.com/pantsbuild/pants/pull/16363)) + +* Show advanced options with `help` if there are no basic options ([#16352](https://github.com/pantsbuild/pants/pull/16352)) + +* Improve a docker backend warning. ([#16355](https://github.com/pantsbuild/pants/pull/16355)) + +* Link to dev.to post on resource hub. ([#16331](https://github.com/pantsbuild/pants/pull/16331)) + +* Only show the deprecated option section with `help` if there are deprecated options ([#16339](https://github.com/pantsbuild/pants/pull/16339)) + +* add tailor docs for kotlin backend ([#16332](https://github.com/pantsbuild/pants/pull/16332)) + +* Fix the experimental_run_shell_command example. ([#16286](https://github.com/pantsbuild/pants/pull/16286)) + +* Fix typo in backend name ([#16312](https://github.com/pantsbuild/pants/pull/16312)) + +* docs: add initial Kotlin docs ([#16304](https://github.com/pantsbuild/pants/pull/16304)) + +* Document test sharding and update plugin docs with 2.13 changes ([#16293](https://github.com/pantsbuild/pants/pull/16293)) + +## 2.14.0.dev4 (Aug 05, 2022) + +There was no 2.14.0.dev4 because of technical issues. + +## 2.14.0.dev3 (Jul 22, 2022) + +### New Features + +* add Go ASDF support ([#16246](https://github.com/pantsbuild/pants/pull/16246)) + +* Add `[python].default_run_goal_use_sandbox` ([#16239](https://github.com/pantsbuild/pants/pull/16239)) + +* Add `include_sources` to `pex_binary` target ([#16215](https://github.com/pantsbuild/pants/pull/16215)) + +* allow JVM sources to have files dependencies ([#16203](https://github.com/pantsbuild/pants/pull/16203)) + +* Optionally strip metadata and timestamps from JVM jars ([#16134](https://github.com/pantsbuild/pants/pull/16134)) + +* Support timeouts in Helm unittest targets ([#16181](https://github.com/pantsbuild/pants/pull/16181)) + +* Allow for dependency inference plugins to provide excludes ([#16155](https://github.com/pantsbuild/pants/pull/16155)) + +* Add support for strict and color flags in Helm unittest ([#15947](https://github.com/pantsbuild/pants/pull/15947)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields ([#16227](https://github.com/pantsbuild/pants/pull/16227)) + +* Warn users if they set remote cache and or/execution via config while the values are provided by the auth plugin. ([#16165](https://github.com/pantsbuild/pants/pull/16165)) + +* Upgrade Pex to 2.1.99. ([#16184](https://github.com/pantsbuild/pants/pull/16184)) + +* Upgrade python reqs, upgrade default setuptools to 63.1.0 ([#16168](https://github.com/pantsbuild/pants/pull/16168)) + +* Add test timeouts to JUnit and Scalatest targets. ([#16126](https://github.com/pantsbuild/pants/pull/16126)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s ([#16206](https://github.com/pantsbuild/pants/pull/16206)) + +* Add support for auth plugin setting its name ([#16171](https://github.com/pantsbuild/pants/pull/16171)) + +* Fold dep injection into inference, and use FieldSet ([#16107](https://github.com/pantsbuild/pants/pull/16107)) + +### Bug fixes + +* Allow using `--import` option with Autoflake ([#16192](https://github.com/pantsbuild/pants/pull/16192)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` ([#16263](https://github.com/pantsbuild/pants/pull/16263)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets ([#16249](https://github.com/pantsbuild/pants/pull/16249)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields ([#16232](https://github.com/pantsbuild/pants/pull/16232)) + +* fix scala plugins args order causing cache issues ([#16228](https://github.com/pantsbuild/pants/pull/16228)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types ([#16197](https://github.com/pantsbuild/pants/pull/16197)) + +* Add `overrides` field to Scala targets ([#16204](https://github.com/pantsbuild/pants/pull/16204)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. ([#16198](https://github.com/pantsbuild/pants/pull/16198)) + +* Use filelists to make archive creation tasks more reliable ([#16183](https://github.com/pantsbuild/pants/pull/16183)) + +* Allow macros to raise builtin Errors ([#16174](https://github.com/pantsbuild/pants/pull/16174)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin ([#16176](https://github.com/pantsbuild/pants/pull/16176)) + +* java: add proper inference of Scrooge Java Thrift dependencies ([#16130](https://github.com/pantsbuild/pants/pull/16130)) + +* Fix "dependency" pluralization ([#16150](https://github.com/pantsbuild/pants/pull/16150)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes ([#16141](https://github.com/pantsbuild/pants/pull/16141)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` ([#16093](https://github.com/pantsbuild/pants/pull/16093)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins ([#16106](https://github.com/pantsbuild/pants/pull/16106)) + +### Performance + +* Port `@rule` `Get`s to rust ([#16160](https://github.com/pantsbuild/pants/pull/16160)) + +### Documentation + +* Add Vicara Solutions to the users page. ([#16221](https://github.com/pantsbuild/pants/pull/16221)) + +* Document the "fromfile" feature. ([#16205](https://github.com/pantsbuild/pants/pull/16205)) + +* Document `--filter` options working with any goal ([#16090](https://github.com/pantsbuild/pants/pull/16090)) + +* Updates installation docs to refer to the 1-step setup script ([#16149](https://github.com/pantsbuild/pants/pull/16149)) + +* Add 2.12 changelog to docsite ([#16136](https://github.com/pantsbuild/pants/pull/16136)) + +## 2.14.0.dev2 (Jul 11, 2022) + +### User API Changes + +* Revert "Upgrade Pex to 2.1.95. (#16110)" ([#16125](https://github.com/pantsbuild/pants/pull/16125)) + +* Add a lock for the Poetry tool. ([#16117](https://github.com/pantsbuild/pants/pull/16117)) + +* Upgrade Pex to 2.1.95. ([#16110](https://github.com/pantsbuild/pants/pull/16110)) + +* Fix poetry locks missing hashes. ([#16112](https://github.com/pantsbuild/pants/pull/16112)) + +* java/avro: inject runtime library dependency ([#15904](https://github.com/pantsbuild/pants/pull/15904)) + +### Bug fixes + +* Fix issue with `__defaults__` not propagating over gaps in the tree of BUILD files. ([#16089](https://github.com/pantsbuild/pants/pull/16089)) + +* Write to caches during backtracking ([#16078](https://github.com/pantsbuild/pants/pull/16078)) + +* Record ongoing backtrack attempts ([#16075](https://github.com/pantsbuild/pants/pull/16075)) + +### Documentation + +* New doc explaining vcs_version. ([#16092](https://github.com/pantsbuild/pants/pull/16092)) + +* Fix typo in warning for `[python].resolve_all_constraints` ([#16068](https://github.com/pantsbuild/pants/pull/16068)) + +## 2.14.0.dev1 (Jul 05, 2022) + +### New Features + +* Add support for extra env variables in go tests ([#16013](https://github.com/pantsbuild/pants/pull/16013)) + +* Add ability to `run` any `PythonSourceField` ([#15849](https://github.com/pantsbuild/pants/pull/15849)) + +* Add `--debug-adapter` flag to `run` ([#15829](https://github.com/pantsbuild/pants/pull/15829)) + +### User API Changes + +* Correct deprecation warning for addressing `pex_binary` targets by filename to 2.15 ([#16056](https://github.com/pantsbuild/pants/pull/16056)) + +* Default `scala-infer` `force_add_siblings_as_dependencies` to False. ([#16031](https://github.com/pantsbuild/pants/pull/16031)) + +* Upgrade Pex to 2.1.94. ([#16029](https://github.com/pantsbuild/pants/pull/16029)) + +* Remove `python-infer` `inits` option. ([#16036](https://github.com/pantsbuild/pants/pull/16036)) + +* Remove `golang` `expected_version` option. ([#16033](https://github.com/pantsbuild/pants/pull/16033)) + +* Remove the `filter` goal. ([#16032](https://github.com/pantsbuild/pants/pull/16032)) + +* Default `--use-deprecated-pex-binary-run-semantics` to `False`. ([#16034](https://github.com/pantsbuild/pants/pull/16034)) + +* Default `python` `tailor_pex_binary_targets` to `False`. ([#16035](https://github.com/pantsbuild/pants/pull/16035)) + +* Deprecate not setting `tailor_pex_binary_targets` explicitly ([#15962](https://github.com/pantsbuild/pants/pull/15962)) + +* `tailor` and `update-build-files` require specifying CLI arguments ([#15941](https://github.com/pantsbuild/pants/pull/15941)) + +* Upgrade default version of black to 22.6.0 ([#15960](https://github.com/pantsbuild/pants/pull/15960)) + +* Upgrade default version of pyupgrade to 2.34.0 ([#15956](https://github.com/pantsbuild/pants/pull/15956)) + +### Plugin API Changes + +* `fmt` plugins can add new files ([#15846](https://github.com/pantsbuild/pants/pull/15846)) + +* Pants internally uses dedicated Sources and Dependencies fields ([#16037](https://github.com/pantsbuild/pants/pull/16037)) + +### Bug fixes + +* Fix pantsd TTY handling. ([#16038](https://github.com/pantsbuild/pants/pull/16038)) + +* revert REAPI batch API PRs ([#16016](https://github.com/pantsbuild/pants/pull/16016)) + +* Backtrack through calls from `@rules` to synchronous engine methods ([#15979](https://github.com/pantsbuild/pants/pull/15979)) + +### Documentation + +* Fix CI provider table rendering. ([#16051](https://github.com/pantsbuild/pants/pull/16051)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints ([#16000](https://github.com/pantsbuild/pants/pull/16000)) + +* Fix alpha release email template typo. ([#16027](https://github.com/pantsbuild/pants/pull/16027)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. ([#16015](https://github.com/pantsbuild/pants/pull/16015)) + +* Update Python documentation with 2.11 changes ([#15857](https://github.com/pantsbuild/pants/pull/15857)) + +* Update the docs for `fmt` and test report changes ([#15968](https://github.com/pantsbuild/pants/pull/15968)) + +* Use Markdown h3 for ToC support ([#15964](https://github.com/pantsbuild/pants/pull/15964)) + +* Direct people to a quick form before they join Slack. ([#15957](https://github.com/pantsbuild/pants/pull/15957)) + +## 2.14.0.dev0 (Jun 25, 2022) + +### New Features + +* Add repository config option to Docker registries. ([#15884](https://github.com/pantsbuild/pants/pull/15884)) + +* Add `__defaults__` BUILD file symbol ([#15836](https://github.com/pantsbuild/pants/pull/15836)) + +### User API Changes + +* Deprecate `--use-deprecated-directory-cli-args-semantics` and default to false ([#15939](https://github.com/pantsbuild/pants/pull/15939)) + +* Remove deprecated `[golang].expected_version` in favor of `[golang].minimum_expected_version` ([#15942](https://github.com/pantsbuild/pants/pull/15942)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 ([#15934](https://github.com/pantsbuild/pants/pull/15934)) + +* Remove deprecated `--excluded-target-regexp`, `--files-not-found-behavior`, and `--owners-not-found-behavior` global options ([#15929](https://github.com/pantsbuild/pants/pull/15929)) + +* Deprecate implicit setting of `--remote-cache-{read,write,eager-fetch}` with `--remote-execution` ([#15900](https://github.com/pantsbuild/pants/pull/15900)) + +* Upgrade Pex to 2.1.100. ([#16285](https://github.com/pantsbuild/pants/pull/16285)) + +### Plugin API Changes + +* Plugin fields should propagate to subclassed target types. ([#15876](https://github.com/pantsbuild/pants/pull/15876)) + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods ([#15890](https://github.com/pantsbuild/pants/pull/15890)) + +### Bug fixes + +* Assorted remote metrics fixes. ([#15914](https://github.com/pantsbuild/pants/pull/15914)) + +* Fix bad "" description in invalid addresses error messages ([#15859](https://github.com/pantsbuild/pants/pull/15859)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism ([#15903](https://github.com/pantsbuild/pants/pull/15903)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. ([#15899](https://github.com/pantsbuild/pants/pull/15899)) + +* Increment the missing-digest backtracking level once per attempt ([#15889](https://github.com/pantsbuild/pants/pull/15889)) + +* Scala: should visit ctor args of base type ([#15880](https://github.com/pantsbuild/pants/pull/15880)) + +* Scala: mark an object that extends another type as recursive ([#15865](https://github.com/pantsbuild/pants/pull/15865)) + +* Fix reporting of time spent downloading files ([#15873](https://github.com/pantsbuild/pants/pull/15873)) + +### Performance + +* Dedupe `load_bytes_with` calls to a remote Store ([#15901](https://github.com/pantsbuild/pants/pull/15901)) + +* Improve mypy runs by adding the "incremental" mypy cache ([#16276](https://github.com/pantsbuild/pants/pull/16276)) + +### Documentation + +* Add test debugging doc ([#15948](https://github.com/pantsbuild/pants/pull/15948)) + +* Update certificate environment variable advice for #14808. ([#15943](https://github.com/pantsbuild/pants/pull/15943)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments ([#15932](https://github.com/pantsbuild/pants/pull/15932)) + +* Fix GCF Handler documentation. ([#16284](https://github.com/pantsbuild/pants/pull/16284)) diff --git a/docs/notes/2.15.x.md b/docs/notes/2.15.x.md new file mode 100644 index 000000000..344929e3c --- /dev/null +++ b/docs/notes/2.15.x.md @@ -0,0 +1,771 @@ +# 2.15.x Release Series + +## What's New + +Pants 2.15 brings support for several new features: + +### Environments + +Pants now supports alternate execution "environments" for build actions. These "environments" can be explicitly +configured as desired via several new target types (including having multiple environments of the same type). +The new `environment` field on many targets tells Pants which environment to use for a particular target. + +Pants previously supported local execution (which is now configured by the `local_environment` target type) and +remote execution via the Remote Execution API (which is now configured by the `remote_environment` target type). + +New in Pants 2.15 is support for executing build actions within a Docker container configured via the +`docker_environment` target type. + +See the [Environments documentation](https://www.pantsbuild.org/v2.15/docs/environments) for more information. + +### Test Batching + +`./pants test` now supports batching compatible tests together so that they execute in the same process. +This can improve performance of test execution by sharing test environment setup across multiple test files, +but must be balanced against the impact on caching and concurrency. + +The Python backend is the first user of the test batching support. + +### New goal: `fix` + +The `fix` goal has been added to run tools which generally will perform more invasive changes on your source +files than the `fmt` goal. The `fmt` goal remains for tools which merely format code without making +semantic changes. + +### Backends + +#### Python + +Several changes have been made to the Python backend: + +- Support for the new Environments feature. Relevant targets now have a new `environment` field +to configure which environment to use for that target. +- Batched execution of `pytest` tests. +- Support for `lcov` coverage format. +- Support for `pyright` typechecking. +- Python lockfiles are now represented in the build graph via synthetic targets. +- Upgrades to default version of several tools including coverage and Flake8. + +#### Go + +The Go backend received several changes including: + +- Basic support for Cgo +- Coverage reports can be generated in HTML and not just the raw data file used by `go tool cover`. +- Support for [the `golangci-lint` linter](https://www.pantsbuild.org/v2.15/docs/go#golangci-lint). +- Support for multiple `go_mod` targets in same repository. +- A new `go-generate` custom goal to run `go generate` on any `//go:generate` instructions in a package. +- `$GOROOT/bin` is now prepended to `PATH` when running tests to enable them to easily find the `go` binary for +the Go toolchain in use. + +Note: Due to certain changes in Go v1.20, Pants 2.15.x and earlier Pants versions will not work with Go v1.20 +and later releases. Instead, use Pants v2.16.x or later Pants versions to support Go v1.20 and later releases. + +#### New: OpenAPI + +The new OpenAPI backend provides support for linting OpenAPI API specifications using the `spectral` tool +and generating Java code from the OpenAPI specifications. + +Enable the `pants.backend.experimental.openapi` backend for base OpenAPI support, +the `pants.backend.experimental.openapi.lint.spectral` backend for linting support, and +the `pants.backend.experimental.openapi.codegen.java` backend for Java code generation support. + +### Plugin API changes + +Several changes were made to the Plugin API including the changes highlighted below. Read the +[Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#215) for a full description +of the changes highlighted below (as well as other changes not highlighted here), including how to migrate +existing plugins. + +#### Formatters / Linters + +The schema used for formatters and linters has been changed in order to allow for formatters and linters which +do not require a target on which to operate. See the [applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#lint-and-fmt-schema-changes) +for the specific changes. + +#### Batched Tests + +The plugin API used by the `test` goal has been changed significantly to support the explicit batching of tests. See the +[applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#test-schema-changes) +for the specific changes. + +#### Synthetic Targets + +Plugins may now add "synthetic targets" to the build graph to create freestanding targets programmatically. +These synthetic targets can also be generator targets in order to further create generated targets. See the +[plugin documentation for the Synthetic Targets API](https://www.pantsbuild.org/v2.15/docs/target-api-concepts#synthetic-targets-api) +for more information. + +---- + +## 2.15.2 (Jun 14, 2023) + +The third stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.2rc0 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19266](https://github.com/pantsbuild/pants/pull/19266)) + +### Documentation + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19153](https://github.com/pantsbuild/pants/pull/19153)) + +* Fix docs link to pants_from_sources script. (Cherry-pick of #19088) ([#19089](https://github.com/pantsbuild/pants/pull/19089)) + +## 2.15.1 (May 18, 2023) + +The second stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.1rc3 (May 14, 2023) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18973](https://github.com/pantsbuild/pants/pull/18973)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18947](https://github.com/pantsbuild/pants/pull/18947)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (Cherry-pick of #18917) ([#18949](https://github.com/pantsbuild/pants/pull/18949)) + +### Documentation + +* Fix `awslambda-python` documentation (Cherry-pick of #18302) ([#18929](https://github.com/pantsbuild/pants/pull/18929)) + +## 2.15.1rc2 (Apr 23, 2023) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18798](https://github.com/pantsbuild/pants/pull/18798)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18733](https://github.com/pantsbuild/pants/pull/18733)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18723](https://github.com/pantsbuild/pants/pull/18723)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18675](https://github.com/pantsbuild/pants/pull/18675)) + +### Documentation + +* Jacob Floyd/Huon Wilson updates to team page (Cherry-pick of #18221) ([#18795](https://github.com/pantsbuild/pants/pull/18795)) + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18796](https://github.com/pantsbuild/pants/pull/18796)) + +* Add Pylint post (Cherry-pick of #18079) ([#18794](https://github.com/pantsbuild/pants/pull/18794)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18651](https://github.com/pantsbuild/pants/pull/18651)) + +## 2.15.1rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18641](https://github.com/pantsbuild/pants/pull/18641)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18636](https://github.com/pantsbuild/pants/pull/18636)) + +* Fix export-codgen with multiple output types from same input type (Cherry-pick of #18373) ([#18377](https://github.com/pantsbuild/pants/pull/18377)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18603](https://github.com/pantsbuild/pants/pull/18603)) + +### Documentation + +* Fix `./pants` -> `pants` in some docs and help strings. (cherrypick of #18596) ([#18607](https://github.com/pantsbuild/pants/pull/18607)) + +## 2.15.1rc0 (Mar 24, 2023) + +### Bug fixes + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18567](https://github.com/pantsbuild/pants/pull/18567)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18550](https://github.com/pantsbuild/pants/pull/18550)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18537](https://github.com/pantsbuild/pants/pull/18537)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18467](https://github.com/pantsbuild/pants/pull/18467)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18446](https://github.com/pantsbuild/pants/pull/18446)) + +* go: skip go v1.20+ when searching for the GOROOT ([#18429](https://github.com/pantsbuild/pants/pull/18429)) + +### Documentation + +* Some doc fixes suggested by users. (Cherry-pick of #18393) ([#18394](https://github.com/pantsbuild/pants/pull/18394)) + +## 2.15.0 (Feb 24, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.15.0rc7 (Feb 22, 2023) + +### Bug fixes + +* Docker environment uses a volume for named caches (Cherry-pick of #18327) ([#18337](https://github.com/pantsbuild/pants/pull/18337)) + +* go: add backends which were missing from distribution (Cherrypick of #18312) ([#18316](https://github.com/pantsbuild/pants/pull/18316)) + +* Ensure that the pep-517 backend shim works on Python 2.7. (Cherry-pick of #18295) ([#18300](https://github.com/pantsbuild/pants/pull/18300)) + +## 2.15.0rc6 (Feb 16, 2023) + +### New Features + +* Allow exporting codegenerated files/resources (Cherry-pick of #18236) ([#18241](https://github.com/pantsbuild/pants/pull/18241)) + +### Bug fixes + +* Fix bootstrap issue with `__defaults__` and environments. (Cherry-pick of #18251) ([#18262](https://github.com/pantsbuild/pants/pull/18262)) + +* Upgrade to Lambdex 0.1.9 (Cherry-pick of #18257) ([#18261](https://github.com/pantsbuild/pants/pull/18261)) + +* Delete override of expected `exe` name for `shfmt`. (Cherry-pick of #18258) ([#18259](https://github.com/pantsbuild/pants/pull/18259)) + +* Allow breakpoints to be hit when run_in_sandbox is False (Cherry-pick of #18244) ([#18245](https://github.com/pantsbuild/pants/pull/18245)) + +### Documentation + +* docs: add What's New section for 2.15.x release notes ([#18226](https://github.com/pantsbuild/pants/pull/18226)) + +## 2.15.0rc5 (Feb 10, 2023) + +### Bug fixes + +* Fix published wheel RECORDs. (Cherry-pick of #18219) ([#18220](https://github.com/pantsbuild/pants/pull/18220)) + +* Always explicitly shutdown executors (Cherry-pick of #18216) ([#18218](https://github.com/pantsbuild/pants/pull/18218)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. (Cherry-pick of #18203) ([#18206](https://github.com/pantsbuild/pants/pull/18206)) + +* Have lambdex create a new output file. (Cherry-pick of #18200) ([#18201](https://github.com/pantsbuild/pants/pull/18201)) + +## 2.15.0rc4 (Feb 07, 2023) + +### Bug fixes + +* Shutdown all threads as part of Scheduler shutdown (Cherry-pick of #18166) ([#18188](https://github.com/pantsbuild/pants/pull/18188)) + +## 2.15.0rc3 (Feb 02, 2023) + +### New Features + +* Add `environment=` to `experimental_shell_command`. (Cherry-pick of #17575) ([#18064](https://github.com/pantsbuild/pants/pull/18064)) + +### Bug fixes + +* Add the `environment` field to most Python binary target types (Cherry-pick of #18144) ([#18150](https://github.com/pantsbuild/pants/pull/18150)) + +* Run `pyupgrade` until convergence (Cherry-pick of #18128) ([#18130](https://github.com/pantsbuild/pants/pull/18130)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18061](https://github.com/pantsbuild/pants/pull/18061)) + +* go: detect when `go.sum` needs additional entries filled in (Cherrypick of #17811) ([#18118](https://github.com/pantsbuild/pants/pull/18118)) + +* Explicitly use "python" ijson backend (cherry-pick of #17787) ([#18077](https://github.com/pantsbuild/pants/pull/18077)) + +* Fix caching of PATH lookups in remote execution (Cherry-pick of #18026) ([#18062](https://github.com/pantsbuild/pants/pull/18062)) + +### Documentation + +* Document the new get-pants.sh name. (Cherry-pick of #18137) ([#18139](https://github.com/pantsbuild/pants/pull/18139)) + +* Recommend checking the pantsup.sh script in. (Cherry-pick of #18120) ([#18134](https://github.com/pantsbuild/pants/pull/18134)) + +* Change ./pants to pants in the docs (cherry-pick of #18121) ([#18124](https://github.com/pantsbuild/pants/pull/18124)) + +* docs: fix markdown inline code typo in a docstring (Cherry-pick of #18002) ([#18103](https://github.com/pantsbuild/pants/pull/18103)) + +* docs: add tutorials to get started writing plugins (Cherry-pick) ([#18107](https://github.com/pantsbuild/pants/pull/18107)) + +* docs: mention name clashing between custom goals and options when writing plugins (Cherry-pick of #17899) ([#18105](https://github.com/pantsbuild/pants/pull/18105)) + +* docs: tidy up Writing plugins : rules-api directory files (Cherry-pick of #17710) ([#18102](https://github.com/pantsbuild/pants/pull/18102)) + +* Document new pants launcher binary, aka scie-pants. (Cherry-pick of #18056) ([#18075](https://github.com/pantsbuild/pants/pull/18075)) + +* Docs: improve docs on handling option values in cli (Cherry-pick of #17506) ([#18069](https://github.com/pantsbuild/pants/pull/18069)) + +* Update and reorganize resource hub (#17922) ([#18068](https://github.com/pantsbuild/pants/pull/18068)) + +* Add Daniel Goldman and Darcy Shen to team page (Cherry-pick of #17921) ([#18066](https://github.com/pantsbuild/pants/pull/18066)) + +* Nudge more technical support toward GH Discussions (Cherry-pick of #17906) ([#18065](https://github.com/pantsbuild/pants/pull/18065)) + +## 2.15.0rc2 (Jan 18, 2023) + +### New Features + +* Added support for discovering and patching `pyright` config files (cherry-pick of #17771) ([#18030](https://github.com/pantsbuild/pants/pull/18030)) + +### Bug fixes + +* Streamline local dist handling when running python sources. (Cherry-pick of #17742) ([#18035](https://github.com/pantsbuild/pants/pull/18035)) + +* Adds workunit for interactive processes. (Cherry-pick of #17544) ([#17996](https://github.com/pantsbuild/pants/pull/17996)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox (Cherry-pick of #17235) ([#17980](https://github.com/pantsbuild/pants/pull/17980)) + +* add `skip_pyright` field to python test targets (Cherry-pick of #17960) ([#17968](https://github.com/pantsbuild/pants/pull/17968)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. (Cherry-pick of #17939) ([#17941](https://github.com/pantsbuild/pants/pull/17941)) + +### Documentation + +* Document how to update the pants script. (Cherry-pick of #17976) ([#17979](https://github.com/pantsbuild/pants/pull/17979)) + +## 2.15.0rc1 (Dec 26, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17866](https://github.com/pantsbuild/pants/pull/17866)) + +* Restore support for :all: in `only_binary`/`no_binary`. (Cherry-pick of #17779) ([#17784](https://github.com/pantsbuild/pants/pull/17784)) + +* Test DebugAdapter requests, and fix issues (Cherry-pick of #17678) ([#17768](https://github.com/pantsbuild/pants/pull/17768)) + +* chdir in `rule_runner.run_interactive_process` (Cherry-pick of #17722) ([#17765](https://github.com/pantsbuild/pants/pull/17765)) + +### Performance + +* Run python sources with a VenvPex (Cherry-pick of #17700) ([#17761](https://github.com/pantsbuild/pants/pull/17761)) + +### Documentation + +* Document batched `pytest` execution. (Cherry-pick of #17845) ([#17853](https://github.com/pantsbuild/pants/pull/17853)) + +* Tweak the docs about __defaults__. (Cherry-pick of #17829) ([#17838](https://github.com/pantsbuild/pants/pull/17838)) + +## 2.15.0rc0 (Dec 08, 2022) + +### Bug fixes + +* More precise running workunit for processes executing remotely (Cherry-pick of #17719) ([#17725](https://github.com/pantsbuild/pants/pull/17725)) + +* Fix twine env vars propagation for `publish` goal. (Cherry-pick of #17650) ([#17659](https://github.com/pantsbuild/pants/pull/17659)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17584](https://github.com/pantsbuild/pants/pull/17584)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17548](https://github.com/pantsbuild/pants/pull/17548)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17610](https://github.com/pantsbuild/pants/pull/17610)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17568](https://github.com/pantsbuild/pants/pull/17568)) + +* Add Shantanu Kumar to Contributors list (Cherry-pick of #17579) ([#17587](https://github.com/pantsbuild/pants/pull/17587)) + +## 2.15.0a1 (Nov 11, 2022) + +### New Features + +* A --resolve flag, to specify the resolves to export. (Cherry-pick of #17416) ([#17461](https://github.com/pantsbuild/pants/pull/17461)) + +### User API Changes + +* Deprecate the old export semantics. (Cherry-pick of #17465) ([#17466](https://github.com/pantsbuild/pants/pull/17466)) + +### Bug fixes + +* Fix memoization of `CoarsenedTarget.closure` (Cherry-pick of #17516) ([#17518](https://github.com/pantsbuild/pants/pull/17518)) + +* Support parsing targets from additional paths not containing BUILD files. (Cherry-pick of #17451) ([#17513](https://github.com/pantsbuild/pants/pull/17513)) + +* Ensure lockfile target exists before injecting a dependency to it. (Cherry-pick of #17365) ([#17505](https://github.com/pantsbuild/pants/pull/17505)) + +* Ensure correct eq/hash semantics for PythonArtifact. (Cherry-pick of #17484) ([#17492](https://github.com/pantsbuild/pants/pull/17492)) + +* Flip the default for `pull` on `docker_image` to `False` (Cherry-pick of #17459) ([#17460](https://github.com/pantsbuild/pants/pull/17460)) + +* Isolate config seed values from the DEFAULT section. (Cherry-pick of #17474) ([#17485](https://github.com/pantsbuild/pants/pull/17485)) + +* Fix poorly understood stdout redirection issue. (Cherry-pick of #17471) ([#17473](https://github.com/pantsbuild/pants/pull/17473)) + +* Fix propagation of the remote-execution-append-only-caches path (Cherry-pick of #17469) ([#17472](https://github.com/pantsbuild/pants/pull/17472)) + +* Fix dep inference from `shuint2_tests` targets. (Cherry-pick of #17417) ([#17422](https://github.com/pantsbuild/pants/pull/17422)) + +* Fix `EnvironmentName` used in `test` runs (Cherry-pick of #17412) ([#17415](https://github.com/pantsbuild/pants/pull/17415)) + +* Restore debug hints for `test` execution (Cherry-pick of #17406) ([#17407](https://github.com/pantsbuild/pants/pull/17407)) + +### Performance + +* Skip loading of local cache data when possible (Cherry-pick of #17495) ([#17524](https://github.com/pantsbuild/pants/pull/17524)) + +* Symlink site-packages into `pylint` venvs when possible. (Cherry-pick of #17488) ([#17491](https://github.com/pantsbuild/pants/pull/17491)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule (Cherry-pick of #17487) ([#17490](https://github.com/pantsbuild/pants/pull/17490)) + +### Documentation + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17528](https://github.com/pantsbuild/pants/pull/17528)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17499](https://github.com/pantsbuild/pants/pull/17499)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17425](https://github.com/pantsbuild/pants/pull/17425)) + +## 2.15.0a0 (Oct 28, 2022) + +### New Features + +* Add support for batched `pytest` execution ([#17385](https://github.com/pantsbuild/pants/pull/17385)) + +* Add a `batch_size` parameter to the `test` subsystem. ([#17361](https://github.com/pantsbuild/pants/pull/17361)) + +* Replace `skip` placeholders with real `SkipOption`s in test subsystems. ([#17360](https://github.com/pantsbuild/pants/pull/17360)) + +### Plugin API Changes + +* Refactor optional typing in generic partitioning utils. ([#17371](https://github.com/pantsbuild/pants/pull/17371)) + +* Refactor plumbing for `test` goal to support batched tests. ([#17134](https://github.com/pantsbuild/pants/pull/17134)) + +* Rework partitioning types for more flexibility. ([#17288](https://github.com/pantsbuild/pants/pull/17288)) + +### Bug fixes + +* Ensure PATH to shims are absolute for the protobuf buf linter. ([#17367](https://github.com/pantsbuild/pants/pull/17367)) + +* Include process execution strategy in Process cache key ([#17340](https://github.com/pantsbuild/pants/pull/17340)) + +* Fix use of `--shard` with `--debug`/`--debug-adapter` in `test`. ([#17321](https://github.com/pantsbuild/pants/pull/17321)) + +* go: properly handle xtest packages when building ([#17307](https://github.com/pantsbuild/pants/pull/17307)) + +* Retry the streaming portion of downloads, as well as the setup. ([#17298](https://github.com/pantsbuild/pants/pull/17298)) + +### Performance + +* Implement cancellation of remote processes ([#17341](https://github.com/pantsbuild/pants/pull/17341)) + +### Documentation + +* Document Synthetic Targets API.([#17330](https://github.com/pantsbuild/pants/pull/17330)) + +* Initial documentation for Environments ([#17096](https://github.com/pantsbuild/pants/pull/17096)) + +* Add 2.14 blog post link to changelog page. ([#17381](https://github.com/pantsbuild/pants/pull/17381)) + +* Document the existence of the init-pants action. ([#17378](https://github.com/pantsbuild/pants/pull/17378)) + +* Add a section about `test` to plugin API guide. ([#17362](https://github.com/pantsbuild/pants/pull/17362)) + +* Revise the error message associated with OOM-killed events ([#17373](https://github.com/pantsbuild/pants/pull/17373)) + +* Fix linebreak issues in the targets docs page. ([#17364](https://github.com/pantsbuild/pants/pull/17364)) + +* Fix a nit in the Getting Help docs. ([#17295](https://github.com/pantsbuild/pants/pull/17295)) + +## 2.15.0.dev5 (Oct 19, 2022) + +### New Features + +* Synthesize targets for Python lockfiles ([#17097](https://github.com/pantsbuild/pants/pull/17097)) + +* Refactor `shunit2` into a proper subsystem. ([#17257](https://github.com/pantsbuild/pants/pull/17257)) + +* Add lcov support ([#17256](https://github.com/pantsbuild/pants/pull/17256)) + +* New API to create synthetic targets. ([#16998](https://github.com/pantsbuild/pants/pull/16998)) + +* Support custom post renderers in Helm deployments ([#17215](https://github.com/pantsbuild/pants/pull/17215)) + +* Add a `fix` goal ([#17202](https://github.com/pantsbuild/pants/pull/17202)) + +* Add basic support for pyright typechecking ([#17163](https://github.com/pantsbuild/pants/pull/17163)) + +### User API Changes + +* Upgrade Pex to 2.1.111. ([#17267](https://github.com/pantsbuild/pants/pull/17267)) + +* Upgrade the Pants-provided `coverage` to version 6.5.X ([#17254](https://github.com/pantsbuild/pants/pull/17254)) + +* Upgrade default Flake8 version to 5.0 ([#17226](https://github.com/pantsbuild/pants/pull/17226)) + +* Add Snowflake connector to module mapping ([#17165](https://github.com/pantsbuild/pants/pull/17165)) + +* Always include relevant params in workunit descriptions, and include descriptions in traces by default ([#17119](https://github.com/pantsbuild/pants/pull/17119)) + +### Plugin API Changes + +* Rename `SubPartition` to `Batch` in partitioning types. ([#17263](https://github.com/pantsbuild/pants/pull/17263)) + +* Make fmt/lint result types less boilerplate-y ([#17192](https://github.com/pantsbuild/pants/pull/17192)) + +* Begin migration to explicitly scoped environments ([#17155](https://github.com/pantsbuild/pants/pull/17155)) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode ([#17272](https://github.com/pantsbuild/pants/pull/17272)) + +* Remote cache reads are resilient to remote execution writing to the cache ([#17195](https://github.com/pantsbuild/pants/pull/17195)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely ([#17204](https://github.com/pantsbuild/pants/pull/17204)) + +* Declaring Javascript, Prettier, and Pyright backends/plugins in BUILD ([#17190](https://github.com/pantsbuild/pants/pull/17190)) + +* Set PEX_ROOT for export post-processing command. ([#17177](https://github.com/pantsbuild/pants/pull/17177)) + +* Fix macros depending on macros from other files ([#17183](https://github.com/pantsbuild/pants/pull/17183)) + +* go/gofmt: filter out non-go files from file list ([#17171](https://github.com/pantsbuild/pants/pull/17171)) + +* Fix dep inference with empty lines in multiline imports. ([#17284](https://github.com/pantsbuild/pants/pull/17284)) + +### Documentation + +* Change fmt/lint/check docs with latest changes ([#17133](https://github.com/pantsbuild/pants/pull/17133)) + +* Add CI talk to resources ([#17238](https://github.com/pantsbuild/pants/pull/17238)) + +## 2.15.0.dev4 (Oct 07, 2022) + +### New Features + +* Optionally export venvs via symlink into the pex_root. ([#17130](https://github.com/pantsbuild/pants/pull/17130)) + +* go: add cgo support for tailor ([#17087](https://github.com/pantsbuild/pants/pull/17087)) + +### User API Changes + +* Upgrade Pex to 2.1.108. ([#17112](https://github.com/pantsbuild/pants/pull/17112)) + +### Plugin API Changes + +* Switch `LintRequest.name` to `.tool_subsystem` ([#17103](https://github.com/pantsbuild/pants/pull/17103)) + +* Rename/Refactor `style_request` to better capture intent. ([#17084](https://github.com/pantsbuild/pants/pull/17084)) + +### Bug fixes + +* Move pyoxidized pants binary out of the main source tree ([#16703](https://github.com/pantsbuild/pants/pull/16703)) + +### Documentation + +* Generate help info about target_field_name to the docsite. ([#17138](https://github.com/pantsbuild/pants/pull/17138)) + +* Add Aiven to user list. ([#17131](https://github.com/pantsbuild/pants/pull/17131)) + +* Fix `bsp-groups.toml` example in documentation ([#17125](https://github.com/pantsbuild/pants/pull/17125)) + +* Update maintainer job description ([#17022](https://github.com/pantsbuild/pants/pull/17022)) + +## 2.15.0.dev3 (Oct 03, 2022) + +### New Features + +* Add `venv_site_packages_copies` field to `pex_binary` ([#17046](https://github.com/pantsbuild/pants/pull/17046)) + +* Add golangci-lint to go backend ([#16994](https://github.com/pantsbuild/pants/pull/16994)) + +* go: add `go-generate` goal to run `go generate` on a package ([#16909](https://github.com/pantsbuild/pants/pull/16909)) + +* Support Java codegen for the OpenAPI backend ([#16862](https://github.com/pantsbuild/pants/pull/16862)) + +* go: render coverage reports as HTML ([#16995](https://github.com/pantsbuild/pants/pull/16995)) + +* Environment-aware subsystems ([#16965](https://github.com/pantsbuild/pants/pull/16965)) + +* Environment sensitive options ([#16840](https://github.com/pantsbuild/pants/pull/16840)) + +* Add retries to NetDownload intrinsic. ([#16798](https://github.com/pantsbuild/pants/pull/16798)) + +* go: add basic support for cgo ([#16413](https://github.com/pantsbuild/pants/pull/16413)) + +* Add support for add-trailing-comma tool ([#16776](https://github.com/pantsbuild/pants/pull/16776)) + +### User API Changes + +* Upgrade Pex to 2.1.107. ([#17081](https://github.com/pantsbuild/pants/pull/17081)) + +* Restore the deprecated `filter` goal indefinitely ([#17027](https://github.com/pantsbuild/pants/pull/17027)) + +### Plugin API Changes + +* Improve usability of the `--engine-visualize-to` option ([#17080](https://github.com/pantsbuild/pants/pull/17080)) + +* Change `fmt` plugin schema to allow for targetless formatters ([#16980](https://github.com/pantsbuild/pants/pull/16980)) + +* Renames `SubsystemRule()` to `Subsystem.rules()` ([#16954](https://github.com/pantsbuild/pants/pull/16954)) + +* Introduce new schema for lint plugins ([#16735](https://github.com/pantsbuild/pants/pull/16735)) + +* `Environment`, `EnvironmentRequest`, and `CompleteEnvironment` now include `Vars` in the name ([#16851](https://github.com/pantsbuild/pants/pull/16851)) + +* `MockGet` expects `input_types` kwarg, not `input_type` ([#16839](https://github.com/pantsbuild/pants/pull/16839)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make interpreter path expansion cache-correct ([#17051](https://github.com/pantsbuild/pants/pull/17051)) + +* Add python 3.10 to acceptable GCF runtimes ([#17028](https://github.com/pantsbuild/pants/pull/17028)) + +* Don't cache VCS version outside the current pants session. ([#17017](https://github.com/pantsbuild/pants/pull/17017)) + +* Fix Pantsd not properly invalidating when `CPPFLAGS` and `LDFLAGS` change ([#17009](https://github.com/pantsbuild/pants/pull/17009)) + +* Add `parametrize()` support for `__defaults__`. ([#16977](https://github.com/pantsbuild/pants/pull/16977)) + +* go: prepend $GOROOT/bin to PATH for tests ([#16993](https://github.com/pantsbuild/pants/pull/16993)) + +* Fix for hang with redirected stdio. ([#16970](https://github.com/pantsbuild/pants/pull/16970)) + +* Fix invalid field error message for parametrized fields. ([#16911](https://github.com/pantsbuild/pants/pull/16911)) + +* Fix venv re-population race. ([#16931](https://github.com/pantsbuild/pants/pull/16931)) + +* `wait` for killed nailgun processes. ([#16924](https://github.com/pantsbuild/pants/pull/16924)) + +* remove override of register_plugin_field ([#16919](https://github.com/pantsbuild/pants/pull/16919)) + +* Only request source roots for PEP-517 deps that belong on the syspath ([#16903](https://github.com/pantsbuild/pants/pull/16903)) + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code ([#16896](https://github.com/pantsbuild/pants/pull/16896)) + +* docker: upgrade bollard crate for bug fix ([#16850](https://github.com/pantsbuild/pants/pull/16850)) + +* Preserve stdio when a local process times out. ([#16841](https://github.com/pantsbuild/pants/pull/16841)) + +### Performance + +* Add an optional speculation delay when using a remote cache ([#16922](https://github.com/pantsbuild/pants/pull/16922)) + +* Only use remote cache when cache scope is Always or Successful ([#16920](https://github.com/pantsbuild/pants/pull/16920)) + +### Documentation + +* Fix Helm K8S parser help message ([#17091](https://github.com/pantsbuild/pants/pull/17091)) + +* Update `pytest-xdist` docs. ([#17071](https://github.com/pantsbuild/pants/pull/17071)) + +* Fix the [python-bootstrap].search_path option name in the docs. ([#17063](https://github.com/pantsbuild/pants/pull/17063)) + +* Add Doron Somech's proudest contribution ([#17029](https://github.com/pantsbuild/pants/pull/17029)) + +* improve remote cache logging for hit or miss ([#16975](https://github.com/pantsbuild/pants/pull/16975)) + +* Remove bad linebreaks from python-run-goal page. ([#16976](https://github.com/pantsbuild/pants/pull/16976)) + +* Update changelog on docsite with 2.13, 2.14 links ([#16918](https://github.com/pantsbuild/pants/pull/16918)) + +* Add Marcelo to team page, move Josh Reed to Maintainer ([#16826](https://github.com/pantsbuild/pants/pull/16826)) + +* Don't mention a specific version in the manual install instructions. ([#16888](https://github.com/pantsbuild/pants/pull/16888)) + +## 2.15.0.dev2 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when --no-colors ([#16586](https://github.com/pantsbuild/pants/pull/16586)) + +* Add OpenAPI backend ([#16199](https://github.com/pantsbuild/pants/pull/16199)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets ([#16386](https://github.com/pantsbuild/pants/pull/16386)) + +### Bug fixes + +* docker: capture output once after container exits ([#16783](https://github.com/pantsbuild/pants/pull/16783)) + +* docker: lazily initialize docker connection ([#16779](https://github.com/pantsbuild/pants/pull/16779)) + +### Documentation + +* Add IBM, Coinbase, and Astranis case studies ([#16805](https://github.com/pantsbuild/pants/pull/16805)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" ([#16804](https://github.com/pantsbuild/pants/pull/16804)) + +* Add Brand24 to user list. ([#16793](https://github.com/pantsbuild/pants/pull/16793)) + +## 2.15.0.dev1 (Sep 04, 2022) + +### New Features + +* go: support placing resource files in packages (and not just embedding) ([#16688](https://github.com/pantsbuild/pants/pull/16688)) + +* "naive" docker command runner ([#16670](https://github.com/pantsbuild/pants/pull/16670)) + +* Adds `binary_name` field to PyOxidizer support ([#16696](https://github.com/pantsbuild/pants/pull/16696)) + +### Plugin API Changes + +* The environment to use becomes a context-specific parameter ([#16721](https://github.com/pantsbuild/pants/pull/16721)) + +* Deprecate `Platform.current` in favor of requesting an injected `Platform` ([#16765](https://github.com/pantsbuild/pants/pull/16765)) + +* Allow `@union`s to declare additional types which are provided to implementers ([#16717](https://github.com/pantsbuild/pants/pull/16717)) + +* Deprecate remote_auth_plugin option - plugins can use entry points now. ([#16691](https://github.com/pantsbuild/pants/pull/16691)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds ([#16709](https://github.com/pantsbuild/pants/pull/16709)) + +* Resolve properly provided symbol names for types defined at top level package ([#16690](https://github.com/pantsbuild/pants/pull/16690)) + +* Include type bound constraints in consumed symbols during Scala inference ([#16692](https://github.com/pantsbuild/pants/pull/16692)) + +* Make experimental_shell_command deterministic ([#16675](https://github.com/pantsbuild/pants/pull/16675)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier ([#16706](https://github.com/pantsbuild/pants/pull/16706)) + +* In python resource example, use importlib.resources to read assets ([#16695](https://github.com/pantsbuild/pants/pull/16695)) + +* Welcome community members to consider joining team ([#16681](https://github.com/pantsbuild/pants/pull/16681)) + +## 2.15.0.dev0 (Aug 29, 2022) + +### New Features + +* Add support for string interpolation in Helm deployments ([#16611](https://github.com/pantsbuild/pants/pull/16611)) + +* Add --squash and --pull options support for docker build ([#16607](https://github.com/pantsbuild/pants/pull/16607)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support ([#16584](https://github.com/pantsbuild/pants/pull/16584)) + +* [experimental] adds `pants_oxidized_experimental` target, creating a standalone binary distribution for Pants ([#16484](https://github.com/pantsbuild/pants/pull/16484)) + +### User API Changes + +* Remove deprecated `[python].only_binary`, `[python].no_binary`, and `[python].tailor_ignore_solitary_init_files` ([#16638](https://github.com/pantsbuild/pants/pull/16638)) + +* Remove deprecated `[python].lockfile_generator` and deprecate `poetry` subsystem (used previously for lockfile generation) ([#16633](https://github.com/pantsbuild/pants/pull/16633)) + +* Remove deprecated `use_deprecated_directory_cli_args_semantics` option ([#16630](https://github.com/pantsbuild/pants/pull/16630)) + +### Plugin API Changes + +* Add support for passing multiple input params to a `@rule` `Get` ([#16668](https://github.com/pantsbuild/pants/pull/16668)) + +* Remove deprecated `matches_filespec` and `get_git` functions ([#16629](https://github.com/pantsbuild/pants/pull/16629)) + +* Remove unnecessary type parameter from `Get` ([#16634](https://github.com/pantsbuild/pants/pull/16634)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make `FilespecMatcher` case-sensitive ([#16673](https://github.com/pantsbuild/pants/pull/16673)) + +* Ensure the sandbox distdir exists when creating dists via PEP517. ([#16647](https://github.com/pantsbuild/pants/pull/16647)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. ([#16627](https://github.com/pantsbuild/pants/pull/16627)) + +* Optimize `CreateDigest` implementation. ([#16617](https://github.com/pantsbuild/pants/pull/16617)) + +### Documentation + +* Create page of Pants team members and proudest contribs ([#16676](https://github.com/pantsbuild/pants/pull/16676)) + +* Fix example BSP groups file. ([#16649](https://github.com/pantsbuild/pants/pull/16649)) + +* Clarify wording for `--skip` options ([#16622](https://github.com/pantsbuild/pants/pull/16622)) + +* Fix `./pants help` docs on command line specs ([#16616](https://github.com/pantsbuild/pants/pull/16616)) + +* Mention team meetings as a Contributor permission ([#16543](https://github.com/pantsbuild/pants/pull/16543)) diff --git a/docs/notes/2.16.x.md b/docs/notes/2.16.x.md new file mode 100644 index 000000000..82c490a5b --- /dev/null +++ b/docs/notes/2.16.x.md @@ -0,0 +1,1147 @@ +# 2.16.x Release Series + +## What's New + +### BUILD files + +The new `env` function in BUILD files allows access to environment variables in BUILD files. + +Run `pants help symbols` for documentation of all builtin symbols and macros provided by prelude files +which are usable in BUILD files. + +The visibility rules syntax now supports matching on target names. The rules glob syntax also now uses +the same syntax as target selectors. + +### Backends + +#### Docker + +The [`{pants.hash}`](https://www.pantsbuild.org/docs/tagging-docker-images#string-interpolation-using-placeholder-values) +generation code was changed such that the generated hash for the same input will be different in pants 2.16. + +#### Python + +The Python backend added or improved support for various tools including: + +- [`pydocstyle`](https://www.pydocstyle.org/) is now supported for linting Python doc strings. Enable the +`pants.backend.python.lint.pydocstyle` backend to add this support. + +- [`ruff`](https://github.com/charliermarsh/ruff) is now supported for linting and formatting Python code. Enable the +`pants.backend.experimental.python.lint.ruff` backend to add this support. + +- [`pyenv`](https://github.com/pyenv/pyenv) is now supported as a way for Pants to provide a hermetic version of Python +for each relevant Interpreter required to run user code. Enable the `pants.backend.python.providers.experimental.pyenv` +backend to add this support. + +- Pants now understands how to parse dependencies of projects using the OpenStack/Stevedore ((https://github.com/openstack/stevedore) +project. Enable the `pants.backend.python.framework.stevedore` backend to add this support. + +- More Python target types now have the `environment` field and thus can execute in non-local environments. + +Deprecations: + +- The default value of `CPython>=3.7,<4` for the `[python].interpreter_constraints` option is now +deprecated and will be removed in Pants v2.17.x. This options sets Python interpreter +constraints for Python-related targets which did not otherwise specify their own interpreter +constraints. Instead of relying on this default, explicitly set the +`[python].interpreter_constraints` option appropriately. We recommend constraining to a single +interpreter minor version if you can, e.g., `interpreter_constraints = ['==3.11.*']`, or at least +a small number of interpreter minor versions, e.g., `interpreter_constraints = ['>=3.10,<3.12']`. + +- The special Python "tool lockfile" functionality is deprecated. Repos can now use regular "user lockfiles" to provide custom versions of tools. + +#### Shell command improvements and support for ad-hoc tools + +The Shell backend along with the new `pants.backend.experimental.adhoc` backend have received a number of improvements so that +Pants is able to invoke workflows that include tools for which Pants does not yet have a +dedicated backend. + +In recognition of these improvements, the `experimental_shell_command` and `experimental_run_shell_command` target types have +graduated to no longer have the `experimental_` prefix; deprecating the prefixed variants with removal in 2.17. Upgrade to use +`shell_command` and `run_shell_command` respectively instead. + +The improvements include: + +- The `shell_command` continues to provide a way to run a tool for its side effects and capture +outputs from the tool invocation for consumption as dependencies by other target types, but has had several improvements: + + - the `dependencies` field has been deprecated, and separated into three fields: `execution_dependencies` for + dependencies required to execute the command, `output_dependencies` for dependencies required to + use the output, and `runnable_dependencies` for targets that need to exist as directly + executable on the sandbox's `PATH` + - the `outputs` field has been separated into `output_files` and `output_directories` + - the directory in which the command is invoked can be controlled via the new `workdir` field + - the location of the output files when consumed as a dependency can be controlled via the new `root_output_directory` field + +- Preserving symlinks as symlinks in process output, rather than resolving them to their target +file. This eliminates the need for work-arounds in `shell_command`s that happen to generate +semantically-relevant symlinks, such as the contents of `node_modules/.bin` if using `shell_command` +to invoke `npm ci` or `npm install`. + +- The new `adhoc_tool` target type supplied by the `adhoc` backend allows executing most "runnable" target types (those supported for `pants run` goal) exported by another Pants backend in an execution sandbox goal, allowing you to capture their outputs to be captured. The outputs can then be consumed by another Pants target in a similar manner to the `shell_command` target type. +"Runnable" target types include: + * Adhoc: `system_binary` + * Docker: `docker_image` + * Go: `go_binary` + * JVM: `jvm_artifact`, and `deploy_jar` + * Python: `pex_binary`, `python_requirement`, `python_source`, and `pyoxidizer_binary` + +- The new `system_binary` target type supplied by the `adhoc` backend wraps any externally-managed tool so that the +tool may be invoked as a "runnable" by the `adhoc_tool` target type, while also allowing tool versions to be pinned for reproducibility. + +- Support for running in non-local environments as specified by the `environment` field on `shell_command`, `adhoc_tool`, and related target types. + +- Defining arbitrary shell commands as tests which can be invoked using `pants test` via the +new `experimental_test_shell_command` target type. + +- The `workdir` field to `run_shell_command` has been switched to match the documented behavior: it now runs from the same directory as the `BUILD` file by default. To preserve the old behavior, explicitly set `workdir="/"`. The stabilisation also fixes other bugs with relative paths passed to the `workdir` field and thus may require updates. + +Ad-hoc tool support, with the `adhoc_tool` or `shell_command` targets, can be used to compile third party +libraries in unsupported languages, run tools from ecosystems Pants doesn't yet directly support, and other similar code-generation tasks. +These targets can be used for first-party code generation, making use of existing backends that define +"runnable" targets if needed. For instance, exporting a OpenAPI schema from a Python API server, letting Pants +manage the interpreters and dependencies required. + +Enable the `pants.backend.experimental.adhoc` backend to add the features supplied by the `adhoc` backend. +Enable the `pants.backend.shell` backend for the shell-related functionality including `shell_command` and +`run_shell_command` target types. + +#### Go + +The Go backend has received a large number of changes in order to be ready for Go v1.20 +and to make continued progress on [stabilizing the Go backend](https://github.com/pantsbuild/pants/issues/17447). + +The main change is that Pants will now compile Go SDK packages from scratch and no longer rely on +the prebuilt package archives distributed with the Go SDK. Go v1.20 will no longer ship with those +prebuilt package archives, and so this change was necessary for Pants to continue to work +with Go v1.20 and later releases. (It is also a correctness issue since Pants will now be able to +apply compiler options consistently to both first-party Go code and Go SDK packages.) + +The Pants team would appreciate if the community could try out 2.16.x with your Go code as an additional +check to ensure there are no regressions. + +The Go backend also now supports: +- Environments are supported via the `environment` field available now on `go_binary` targets. +- Code coverage can now analyze coverage for packages beyond just the package under test via the new +`--go-test-cover-packages` option. +- Numerous bug fixes to the Cgo support. +- The [data race detector](https://go.dev/doc/articles/race_detector) is supported via the `race` field now available on `go_binary` targets. +- Compiler and other flags may be set via the `compiler_flags`, `linker_flags`, and `assembler_flags` fields +available on various target types. + +#### Buf + +Pants is now able to discover and supply configuration files for the `Buf` protobuf linter. + +#### New: Preamble + +The new "preamble" plugin allows formatting/linting files to ensure they start with specific text, such as a copyright header. Enable the +`pants.backend.tools.preamble` backend to add this support. + +#### New: CUE + +Pants now have basic support for the [CUE language](https://cuelang.org/) for defining, generating, and validating configuration data. +Enable the `pants.backend.experimental.cue` backend to use this support. + +#### New: YamlLint + +Pants now the supports the [yamllint](https://yamllint.readthedocs.io) linter for YAML files. Enable the `pants.backend.experimental.tools.yamllint` backend to add this support. + +#### New: AWS S3 support for URLs + +Pants now supports referencing S3 URLs via the scheme (E.g. `s3://`), or authority (E.g. `*.s3*amazonaws.com` or `s3.*amazonaws.com`) +anywhere a URL can be specified. +Credentials are loaded similar to the AWS CLI (most regularly `~/.aws/credentials`) and attached as headers in the request (which aren't cached or logged). + +Enable the `pants.backend.url_handlers.s3` backend to add this support. + +#### New + +### Plugin API Changes + +The `URLDownloadHandler` union has been added to allow plugins to modify native URL downloading, such as transforming the URL or attaching headers for auth. + +The `frozen_after_init` decorator on dataclasses has been removed from many parts of the Pants codebase. Plugin authors should avoid use of this decorator because it will likely be removed in a future Pants version. + +The deprecated `Platform.current` has been removed. Instead, have the affected rules take a `Platform` directly as a parameter and the engine will supply the relevant `Platform` instance. + +The `ToolCustomLockfile` and `ToolDefaultLockfile` classes [have been removed](https://github.com/pantsbuild/pants/pull/17843). + +---- + +## 2.16.1rc4 (Oct 17, 2023) + +### Bug fixes + +* Fix algorithm for gathering Go build requests with coverage. (Cherry-pick of #20030) ([#20032](https://github.com/pantsbuild/pants/pull/20032)) + +## 2.16.1rc3 (Oct 06, 2023) + +### Bug fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19968](https://github.com/pantsbuild/pants/pull/19968)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19908](https://github.com/pantsbuild/pants/pull/19908)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19857](https://github.com/pantsbuild/pants/pull/19857)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19839](https://github.com/pantsbuild/pants/pull/19839)) + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19653](https://github.com/pantsbuild/pants/pull/19653)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19649](https://github.com/pantsbuild/pants/pull/19649)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19647](https://github.com/pantsbuild/pants/pull/19647)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19617](https://github.com/pantsbuild/pants/pull/19617)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19614](https://github.com/pantsbuild/pants/pull/19614)) + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19594](https://github.com/pantsbuild/pants/pull/19594)) + +* Fix the new tool lockfile deprecation message. (cherrypick of #19565) ([#19571](https://github.com/pantsbuild/pants/pull/19571)) + +* Fix `golangci-lint` runner script (Cherry-pick of #19015) ([#19472](https://github.com/pantsbuild/pants/pull/19472)) + +* Use the `package_name` variable to fix an `UnboundLocalError`. (Cherry-pick of #19433) ([#19452](https://github.com/pantsbuild/pants/pull/19452)) + +### Documentation + +* Update release docs with latest changes ([#19895](https://github.com/pantsbuild/pants/pull/19895)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19638](https://github.com/pantsbuild/pants/pull/19638)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19598](https://github.com/pantsbuild/pants/pull/19598)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19577](https://github.com/pantsbuild/pants/pull/19577)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19569](https://github.com/pantsbuild/pants/pull/19569)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19560](https://github.com/pantsbuild/pants/pull/19560)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19495](https://github.com/pantsbuild/pants/pull/19495)) + +## 2.16.1rc2 (Sep 23, 2023) + +Never released due to build issues. + +## 2.16.1rc1 (Sep 20, 2023) + +Never released due to build issues. + +## 2.16.1rc0 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19457](https://github.com/pantsbuild/pants/pull/19457)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19310](https://github.com/pantsbuild/pants/pull/19310)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19420](https://github.com/pantsbuild/pants/pull/19420)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19422](https://github.com/pantsbuild/pants/pull/19422)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19417](https://github.com/pantsbuild/pants/pull/19417)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19320](https://github.com/pantsbuild/pants/pull/19320)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19331](https://github.com/pantsbuild/pants/pull/19331)) + +## 2.16.0 (Jun 14, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.16.0rc7 (Jun 11, 2023) + +### Bug Fixes + +* Fix S3 URL Handler for good (Cherry-pick of #19285) ([#19288](https://github.com/pantsbuild/pants/pull/19288)) + +## 2.16.0rc6 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19267](https://github.com/pantsbuild/pants/pull/19267)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19110](https://github.com/pantsbuild/pants/pull/19110)) + + +## 2.16.0rc5 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version`/`extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19210](https://github.com/pantsbuild/pants/pull/19210)) + +### Bug Fixes + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19196](https://github.com/pantsbuild/pants/pull/19196)) + +* Use `{bin_name()} run` as `$0` in `run_shell_command` (Cherry-pick of #19020) ([#19036](https://github.com/pantsbuild/pants/pull/19036)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19206](https://github.com/pantsbuild/pants/pull/19206)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19108](https://github.com/pantsbuild/pants/pull/19108)) + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19154](https://github.com/pantsbuild/pants/pull/19154)) + +## 2.16.0rc4 (May 25, 2023) + +### User API Changes + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19135](https://github.com/pantsbuild/pants/pull/19135)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19086](https://github.com/pantsbuild/pants/pull/19086)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19081](https://github.com/pantsbuild/pants/pull/19081)) + +### Bug Fixes + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19137](https://github.com/pantsbuild/pants/pull/19137)) + +### Documentation + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19114](https://github.com/pantsbuild/pants/pull/19114)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19090](https://github.com/pantsbuild/pants/pull/19090)) + +## 2.16.0rc3 (May 18, 2023) + +### User API Changes + +* Support Python requirement target addrs in tool requirements. (Cherry-pick of #19014) ([#19023](https://github.com/pantsbuild/pants/pull/19023)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` (Cherry-pick of #19019) ([#19031](https://github.com/pantsbuild/pants/pull/19031)) + +* Docs tweaks for 2.16.x (Cherry-pick of #19009) ([#19012](https://github.com/pantsbuild/pants/pull/19012)) + +## 2.16.0rc2 (May 11, 2023) + +### User API Changes + +* Use the resolve's ICs for tools. (Cherry-pick of #18776) ([#18806](https://github.com/pantsbuild/pants/pull/18806)) + +* Default to using the entire tool lockfile. (Cherry-pick of #18793) ([#18807](https://github.com/pantsbuild/pants/pull/18807)) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18971](https://github.com/pantsbuild/pants/pull/18971)) + +* Make `DigestSubset` symlink-aware (Cherry-pick of #18963) ([#18970](https://github.com/pantsbuild/pants/pull/18970)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18948](https://github.com/pantsbuild/pants/pull/18948)) + +* Actually run deprecated targets fixer (Cherry-pick of #18860) ([#18893](https://github.com/pantsbuild/pants/pull/18893)) + +* Remove existing entry if any when materialising symlink (Cherry-pick of #18873) ([#18878](https://github.com/pantsbuild/pants/pull/18878)) + +* Ensure non-ambiguous args/env vars injection into PEXes (Cherry-pick of #18861) ([#18877](https://github.com/pantsbuild/pants/pull/18877)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. (Cherry-pick of #18713) ([#18866](https://github.com/pantsbuild/pants/pull/18866)) + +* help backends: Only list enabled experimental backends unless advanced help. (Cherry-pick of #18821) ([#18867](https://github.com/pantsbuild/pants/pull/18867)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. (Cherry-pick of #18826) ([#18870](https://github.com/pantsbuild/pants/pull/18870)) + +* Handle workdir="."/default properly in run_shell_command (Cherry-pick of #18840) ([#18850](https://github.com/pantsbuild/pants/pull/18850)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths (Cherry-pick of #18814) ([#18839](https://github.com/pantsbuild/pants/pull/18839)) + +* Use build root as workdir for shell_command(workdir="") (Cherry-pick of #18813) ([#18832](https://github.com/pantsbuild/pants/pull/18832)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (cherry-pick #18917) ([#18944](https://github.com/pantsbuild/pants/pull/18944)) + +### Documentation + +* update troubleshooting document about self-hosted action runner (Cherry-pick of #18900) ([#18943](https://github.com/pantsbuild/pants/pull/18943)) + +* doc: mention `use_local_alias` for the `[docker].registries` option. (Cherry-pick of #18946) ([#18950](https://github.com/pantsbuild/pants/pull/18950)) + +* Fix adhoc output_... example, document run_shell_command workdir changes (Cherry-pick of #18894) ([#18910](https://github.com/pantsbuild/pants/pull/18910)) + +* Include `symbols` as topic in usage help. (Cherry-pick of #18825) ([#18869](https://github.com/pantsbuild/pants/pull/18869)) + +* Update mypy and pytest documentation to refer to install_from_resolve (Cherry pick of #18791) ([#18858](https://github.com/pantsbuild/pants/pull/18858)) + +## 2.16.0rc1 (Apr 23, 2023) + +### User API Changes + +* Upgrade Pex to 2.1.134. (Cherry-pick of #18785) ([#18789](https://github.com/pantsbuild/pants/pull/18789)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18799](https://github.com/pantsbuild/pants/pull/18799)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests (Cherry-pick of #18692) ([#18694](https://github.com/pantsbuild/pants/pull/18694)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18734](https://github.com/pantsbuild/pants/pull/18734)) + +* Add `ruff` lint rules (Cherry-pick of #18716) ([#18739](https://github.com/pantsbuild/pants/pull/18739)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18724](https://github.com/pantsbuild/pants/pull/18724)) + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s (Cherry-pick of #18699) ([#18700](https://github.com/pantsbuild/pants/pull/18700)) + +* Add timeout to remote store calls, and adjust name of cache timeout. (Cherry-pick of #18695) ([#18697](https://github.com/pantsbuild/pants/pull/18697)) + +* Bump minimum supported version of Pex to v2.1.129. (Cherry-pick of #18678) ([#18687](https://github.com/pantsbuild/pants/pull/18687)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18676](https://github.com/pantsbuild/pants/pull/18676)) + +### Documentation + +* Update linter documentation to refer to `install_from_resolve` (Cherry-pick of #18781) ([#18782](https://github.com/pantsbuild/pants/pull/18782)) + +* Add PEP 621 `pyproject.toml` file docs (Cherry-pick of #18672) ([#18677](https://github.com/pantsbuild/pants/pull/18677)) + +* Improve lockfile consumption error message. (Cherry-pick of #18638) ([#18653](https://github.com/pantsbuild/pants/pull/18653)) + +* Document AWS CDK issue that multiple users have encountered. (Cherry-pick of #18656) ([#18666](https://github.com/pantsbuild/pants/pull/18666)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18650](https://github.com/pantsbuild/pants/pull/18650)) + +## 2.16.0rc0 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18640](https://github.com/pantsbuild/pants/pull/18640)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (Cherry-pick of #18622) ([#18634](https://github.com/pantsbuild/pants/pull/18634)) + +* Fix PexPEX invocations (Cherry-pick of #18610) ([#18633](https://github.com/pantsbuild/pants/pull/18633)) + +* narrow pex_binary files warning (Cherry-pick of #18619) ([#18628](https://github.com/pantsbuild/pants/pull/18628)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18604](https://github.com/pantsbuild/pants/pull/18604)) + +### Documentation + +* Fix a string that should have been an f-string (Cherry-pick of #18608) ([#18611](https://github.com/pantsbuild/pants/pull/18611)) + +* Fix `./pants` -> `pants` in some docs and help strings. (Cherry-pick of #18596) ([#18606](https://github.com/pantsbuild/pants/pull/18606)) + +## 2.16.0a1 (Mar 24, 2023) + +### New Features + +* Always provide Python-for-Pants-scripts (Cherry-pick of #18433) ([#18495](https://github.com/pantsbuild/pants/pull/18495)) + +* Expose environment information on process metadata (Cherry-pick of #18458) ([#18463](https://github.com/pantsbuild/pants/pull/18463)) + +### User API Changes + +* Upgrade Pex to 2.1.130. (Cherry-pick of #18576) ([#18578](https://github.com/pantsbuild/pants/pull/18578)) + +* Deprecate old-style custom tool lockfiles. (#18494) ([#18498](https://github.com/pantsbuild/pants/pull/18498)) + +* Let a user resolve shadow a tool lockfile of the same name (Cherry-pick of #18481) ([#18493](https://github.com/pantsbuild/pants/pull/18493)) + +* Audit and update requirements for Python tools. (cherrypick #18431) ([#18460](https://github.com/pantsbuild/pants/pull/18460)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. (Cherry-pick of #18575) ([#18585](https://github.com/pantsbuild/pants/pull/18585)) + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18568](https://github.com/pantsbuild/pants/pull/18568)) + +* Declare ruff outputs as files. (Cherry-pick of #18551) ([#18557](https://github.com/pantsbuild/pants/pull/18557)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18549](https://github.com/pantsbuild/pants/pull/18549)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18536](https://github.com/pantsbuild/pants/pull/18536)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18468](https://github.com/pantsbuild/pants/pull/18468)) + +* Only expose the equiv of `from typing import *` in prelude files (Cherry-pick of #18452) ([#18455](https://github.com/pantsbuild/pants/pull/18455)) + +* Support type hints in prelude files. (Cherry-pick of #18442) ([#18449](https://github.com/pantsbuild/pants/pull/18449)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18447](https://github.com/pantsbuild/pants/pull/18447)) + +### Documentation + +* First pass at `adhoc_tool` documentation (Cherry-pick of #18531) ([#18581](https://github.com/pantsbuild/pants/pull/18581)) + +* Update docs on running pants from sources with scie-pants. (Cherry-pick of #18513) ([#18514](https://github.com/pantsbuild/pants/pull/18514)) + +* Remove the superfluous updated: front matter from readme docs. (cherrypick of #18475) ([#18476](https://github.com/pantsbuild/pants/pull/18476)) + +* Expand lockfile documentation to its own page. (cherrypick of #18471) ([#18474](https://github.com/pantsbuild/pants/pull/18474)) + +## 2.16.0a0 (Mar 06, 2023) + +### New Features + +* Allow python tools to be installed from a user resolve. ([#18418](https://github.com/pantsbuild/pants/pull/18418)) + +* golang: add support for passthrough args for gofmt ([#18409](https://github.com/pantsbuild/pants/pull/18409)) + +* Add the ability for Pants to provide Python via a union (with a pyenv impl) ([#18352](https://github.com/pantsbuild/pants/pull/18352)) + +* Add `sources_fingerprint` to `peek` on source-creating targets ([#18383](https://github.com/pantsbuild/pants/pull/18383)) + +* New `BUILD` file symbols help info ([#18378](https://github.com/pantsbuild/pants/pull/18378)) + +* Visibility: support matching on target names. ([#18369](https://github.com/pantsbuild/pants/pull/18369)) + +* Support for `peek`ing at dependency/dependents rules ([#18112](https://github.com/pantsbuild/pants/pull/18112)) + +* Adds support for supplying "runnable" dependencies to the `execution_dependencies` field ([#18347](https://github.com/pantsbuild/pants/pull/18347)) + +* javascript: Support esm modules and commonjs specific javascript file extensions ([#18208](https://github.com/pantsbuild/pants/pull/18208)) + +* Adds `system_binary` target, which can be used to reproducibly find a pre-installed binary for use with `adhoc_tool` ([#18332](https://github.com/pantsbuild/pants/pull/18332)) + +* Enable running third-party Go `main` packages ([#17449](https://github.com/pantsbuild/pants/pull/17449)) + +### User API Changes + +* Add `python311` runtime to `python_google_cloud_function` target ([#18405](https://github.com/pantsbuild/pants/pull/18405)) + +* Delegate lockfile requirement validation to Pex when possible. ([#18415](https://github.com/pantsbuild/pants/pull/18415)) + +* Upgrade Pex to 2.1.126. ([#18408](https://github.com/pantsbuild/pants/pull/18408)) + +* Deprecate the default interpreter constraints. ([#18390](https://github.com/pantsbuild/pants/pull/18390)) + +* Give pantsd more RAM by default. ([#18389](https://github.com/pantsbuild/pants/pull/18389)) + +### Plugin API Changes + +* Support specifying a named resolve as the superset in a `PexRequirements`. ([#18397](https://github.com/pantsbuild/pants/pull/18397)) + +* Deprecate the `@rule_helper` decorator. ([#18330](https://github.com/pantsbuild/pants/pull/18330)) + +* Get rid of the `LockfileContent` class ([#18305](https://github.com/pantsbuild/pants/pull/18305)) + +### Bug fixes + +* python: collect files with '[tool.ruff' sections as candidates for Ruff config files ([#18413](https://github.com/pantsbuild/pants/pull/18413)) + +* Fix OSError when running pants in systemd-nspawn container ([#18398](https://github.com/pantsbuild/pants/pull/18398)) + +* Fix `paths` issue with transitive excludes. ([#18396](https://github.com/pantsbuild/pants/pull/18396)) + +* Fix export-codgen with multiple output types from same input type ([#18373](https://github.com/pantsbuild/pants/pull/18373)) + +* Errors in `--loop` wait for changes rather than re-running immediately ([#18367](https://github.com/pantsbuild/pants/pull/18367)) + +* Support using `env()` in prelude macro files ([#18273](https://github.com/pantsbuild/pants/pull/18273)) + +* Docker environment uses a volume for named caches ([#18327](https://github.com/pantsbuild/pants/pull/18327)) + +* Load `fromfile` files relative to build root ([#18311](https://github.com/pantsbuild/pants/pull/18311)) + +* Ensure that the pep-517 backend shim works on Python 2.7. ([#18295](https://github.com/pantsbuild/pants/pull/18295)) + +### Documentation + +* Update documentation on how to install the pants binary ([#18372](https://github.com/pantsbuild/pants/pull/18372)) + +* Some doc fixes suggested by users. ([#18393](https://github.com/pantsbuild/pants/pull/18393)) + +* docs: tidy up writing plugins tutorial ([#18380](https://github.com/pantsbuild/pants/pull/18380)) + +* docs: upgrade plugin writing tutorial to 2.15.0 ([#18371](https://github.com/pantsbuild/pants/pull/18371)) + +* Use valid container/app names in helm examples ([#18358](https://github.com/pantsbuild/pants/pull/18358)) + +* Remove defunct newsletter ([#18355](https://github.com/pantsbuild/pants/pull/18355)) + +* docs: mention code generation when troubleshooting missing imports from first-party code ([#18073](https://github.com/pantsbuild/pants/pull/18073)) + +* Fix documentation example for `python_awslambda` targets ([#18302](https://github.com/pantsbuild/pants/pull/18302)) + +* Change bool values to lowercase in TOML snippets ([#18299](https://github.com/pantsbuild/pants/pull/18299)) + + +## 2.16.0.dev7 (Feb 17, 2023) + +### New Features + +* Allow exporting codegenerated files/resources ([#18236](https://github.com/pantsbuild/pants/pull/18236)) + +* python: teach tailor goal to create resource targets for py.typed marker files ([#18174](https://github.com/pantsbuild/pants/pull/18174)) + +* The beginnings of a Django plugin. ([#18173](https://github.com/pantsbuild/pants/pull/18173)) + +* Add backend for projects that use openstack/stevedore ([#18132](https://github.com/pantsbuild/pants/pull/18132)) + +* [python-infer]: allow ignoring unowned imports ([#18094](https://github.com/pantsbuild/pants/pull/18094)) + +* Print diff report when generating Python lockfiles. ([#17347](https://github.com/pantsbuild/pants/pull/17347)) + +### User API Changes + +* Deprecates `experimental_run_shell_command` in favour of `run_shell_command` ([#18266](https://github.com/pantsbuild/pants/pull/18266)) + +* Deprecates `experimental_shell_command`, replacing with `shell_command` ([#18255](https://github.com/pantsbuild/pants/pull/18255)) + +* Extracts `backend.adhoc` package and `backend.experimental.adhoc` backend for `adhoc_tool` ([#18237](https://github.com/pantsbuild/pants/pull/18237)) + +* Upgrade Pex to 2.1.122. ([#18230](https://github.com/pantsbuild/pants/pull/18230)) + +* Relativize the pants_bin_name if necessary. ([#18204](https://github.com/pantsbuild/pants/pull/18204)) + +* Adjust the default for `root_output_directory` ([#18192](https://github.com/pantsbuild/pants/pull/18192)) + +* Visibility backend: adjust rule set selector syntax making path values default rather than target types. ([#18154](https://github.com/pantsbuild/pants/pull/18154)) + +* Adds fields to capture stdout/stderr to `experimental_run_in_sandbox` ([#18165](https://github.com/pantsbuild/pants/pull/18165)) + +* `shell_command`/`run_in_sandbox` workdir/output dir adjustments ([#18157](https://github.com/pantsbuild/pants/pull/18157)) + +* Default to the new "Dependents" header in the py_constraints report. ([#18142](https://github.com/pantsbuild/pants/pull/18142)) + +### Plugin API Changes + +* Improve type inference for `@rule`s ([#17947](https://github.com/pantsbuild/pants/pull/17947)) + +* deprecate `frozen_after_init` ([#18127](https://github.com/pantsbuild/pants/pull/18127)) + +### Bug fixes + +* go: support embed configuration in stdlib packages ([#18271](https://github.com/pantsbuild/pants/pull/18271)) + +* Upgrade to Lambdex 0.1.9 ([#18257](https://github.com/pantsbuild/pants/pull/18257)) + +* Delete override of expected `exe` name for `shfmt`. ([#18258](https://github.com/pantsbuild/pants/pull/18258)) + +* Fix bootstrap issue with `__defaults__` and environments. ([#18251](https://github.com/pantsbuild/pants/pull/18251)) + +* Allow breakpoints to be hit when run_in_sandbox is False ([#18244](https://github.com/pantsbuild/pants/pull/18244)) + +* Avoid bind-mounts for docker environments on macOS ([#18225](https://github.com/pantsbuild/pants/pull/18225)) + +* Move ruff from fmt to fix ([#18228](https://github.com/pantsbuild/pants/pull/18228)) + +* Stream large remote cache downloads directly to disk ([#18054](https://github.com/pantsbuild/pants/pull/18054)) + +* BUILD file target field default should respect values from `__defaults__`. ([#18172](https://github.com/pantsbuild/pants/pull/18172)) + +* Fix published wheel RECORDs. ([#18219](https://github.com/pantsbuild/pants/pull/18219)) + +* Always explicitly shutdown executors ([#18216](https://github.com/pantsbuild/pants/pull/18216)) + +* go: upgrade golangci-lint to fix issue with Go v1.20 ([#18207](https://github.com/pantsbuild/pants/pull/18207)) + +* go: disable coverage redesign experiment on Go v1.20+ ([#18205](https://github.com/pantsbuild/pants/pull/18205)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. ([#18203](https://github.com/pantsbuild/pants/pull/18203)) + +* Have lambdex create a new output file. ([#18200](https://github.com/pantsbuild/pants/pull/18200)) + +* Shutdown all threads as part of Scheduler shutdown ([#18166](https://github.com/pantsbuild/pants/pull/18166)) + +* Fix the dep inference scripts source root bug. ([#18164](https://github.com/pantsbuild/pants/pull/18164)) + +* Add the `environment` field to most Python binary target types ([#18144](https://github.com/pantsbuild/pants/pull/18144)) + +* go: don't check for `Target` attribute on stdlib packages ([#18148](https://github.com/pantsbuild/pants/pull/18148)) + +* go: fix backend to work when run in non-local environments ([#18140](https://github.com/pantsbuild/pants/pull/18140)) + +* Run `pyupgrade` until convergence ([#18128](https://github.com/pantsbuild/pants/pull/18128)) + +### Documentation + +* docs: use an example black version that does not explode ([#18270](https://github.com/pantsbuild/pants/pull/18270)) + +* docs: fix typo ([#18238](https://github.com/pantsbuild/pants/pull/18238)) + +* Update the stated release target to match our desired reality. ([#18234](https://github.com/pantsbuild/pants/pull/18234)) + +* docs: add What's New section for 2.15.x release notes (#18226) ([#18232](https://github.com/pantsbuild/pants/pull/18232)) + +* Add warning about dependency inference + `extra_type_stubs`. ([#17076](https://github.com/pantsbuild/pants/pull/17076)) + +* docs: further updates to 2.16.x What's New ([#18227](https://github.com/pantsbuild/pants/pull/18227)) + +* Jacob Floyd/Huon Wilson updates to team page ([#18221](https://github.com/pantsbuild/pants/pull/18221)) + +* docs: add "What's New" section to 2.16 release notes ([#18146](https://github.com/pantsbuild/pants/pull/18146)) + +* Document the new get-pants.sh name. ([#18137](https://github.com/pantsbuild/pants/pull/18137)) + +* Add Pylint post ([#18079](https://github.com/pantsbuild/pants/pull/18079)) + +* Change to Pantsbuild's custom YouTube url ([#18133](https://github.com/pantsbuild/pants/pull/18133)) + +* Recommend checking the pantsup.sh script in. ([#18120](https://github.com/pantsbuild/pants/pull/18120)) + +* Don't update old release notes. ([#18123](https://github.com/pantsbuild/pants/pull/18123)) + +* Change `./pants` to `pants` in the docs ([#18121](https://github.com/pantsbuild/pants/pull/18121)) + + +## 2.16.0.dev6 (Jan 29, 2023) + +### New Features + +* go: add `environment` field to `go_binary` ([#18113](https://github.com/pantsbuild/pants/pull/18113)) + +* Add experimental backend for ruff with lint and fmt goals ([#17945](https://github.com/pantsbuild/pants/pull/17945)) + +* Add support for `fmt` cue files. ([#18106](https://github.com/pantsbuild/pants/pull/18106)) + +* Add new experimental backend for CUE with initial support for the `lint` goal. ([#17943](https://github.com/pantsbuild/pants/pull/17943)) + +* Add yamllint as a lint tool for YAML sources ([#17821](https://github.com/pantsbuild/pants/pull/17821)) + +* lint: add pydocstyle python backend ([#17596](https://github.com/pantsbuild/pants/pull/17596)) + +### User API Changes + +* Upgrade Pex to 2.1.121. ([#18037](https://github.com/pantsbuild/pants/pull/18037)) + +### Plugin API Changes + +* Make the python dep inference script extensible. ([#17997](https://github.com/pantsbuild/pants/pull/17997)) + +* Remove some dead code from `lockfile.py` ([#18041](https://github.com/pantsbuild/pants/pull/18041)) + +### Bug fixes + +* Inject a path-safe target spec into `experimental_shell_command` etc processes ([#18092](https://github.com/pantsbuild/pants/pull/18092)) + +* docker: Allow overriding FROM args when determining upstream image dependencies ([#18009](https://github.com/pantsbuild/pants/pull/18009)) + +* Make mypy cache per-repo ([#18043](https://github.com/pantsbuild/pants/pull/18043)) + +* Fix caching of PATH lookups in remote execution ([#18026](https://github.com/pantsbuild/pants/pull/18026)) + +### Documentation + +* docs: make tutorials to get started writing plugins visible on readme pages ([#18083](https://github.com/pantsbuild/pants/pull/18083)) + +* Document new pants launcher binary, aka scie-pants. ([#18056](https://github.com/pantsbuild/pants/pull/18056)) + +* Front matter for new tutorial pages. ([#18074](https://github.com/pantsbuild/pants/pull/18074)) + +* Cosmetic fix for current value information in help output for pass-through arguments. ([#18051](https://github.com/pantsbuild/pants/pull/18051)) + +* docs: add pydocstyle to the docs and help reference ([#18033](https://github.com/pantsbuild/pants/pull/18033)) + +* docs: add tutorial to get started writing plugins: No 3 ([#18018](https://github.com/pantsbuild/pants/pull/18018)) + + +## 2.16.0.dev5 (Jan 16, 2023) + +### New Features + +* New `env()` BUILD file function. ([#17652](https://github.com/pantsbuild/pants/pull/17652)) + +* Support REPL command history. ([#17959](https://github.com/pantsbuild/pants/pull/17959)) + +* Resolve Python dep inference ambiguity via locality. ([#17931](https://github.com/pantsbuild/pants/pull/17931)) + +* Add targets to re-wrap source files in different `SourcesField` types. ([#17877](https://github.com/pantsbuild/pants/pull/17877)) + +* Allow plugins to add custom schema/authority URL handler rules ([#17898](https://github.com/pantsbuild/pants/pull/17898)) + +* Support freezing command line args and env vars into pex binaries. ([#17905](https://github.com/pantsbuild/pants/pull/17905)) + +* Support catching `@rule` errors ([#17911](https://github.com/pantsbuild/pants/pull/17911)) + +### User API Changes + +* Ugrade Pex to 2.1.120 ([#17957](https://github.com/pantsbuild/pants/pull/17957)) + +* Adds `workdir` field for `experimental_shell_command` and friends ([#17928](https://github.com/pantsbuild/pants/pull/17928)) + +### Bug fixes + +* Let pyright see dependencies in other source roots. ([#18014](https://github.com/pantsbuild/pants/pull/18014)) + +* go: gather and link transitive prebuilt object files for cgo mode ([#17971](https://github.com/pantsbuild/pants/pull/17971)) + +* add skip_pyright field to python test targets ([#17960](https://github.com/pantsbuild/pants/pull/17960)) + +* Allow `experimental_shell_command`/`experimental_run_in_sandbox` to specify `output_`s from anywhere under the buildroot ([#17938](https://github.com/pantsbuild/pants/pull/17938)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. ([#17939](https://github.com/pantsbuild/pants/pull/17939)) + +### Documentation + +* WSL disclaimer in Getting Started/Prerequisites ([#18000](https://github.com/pantsbuild/pants/pull/18000)) + +* Add Daniel Goldman and Darcy Shen to team page ([#17921](https://github.com/pantsbuild/pants/pull/17921)) + +* Clarify runtime vs. complete_platforms for serverless. ([#18001](https://github.com/pantsbuild/pants/pull/18001)) + +* docs: add tutorial to get started writing plugins: No 2 ([#17890](https://github.com/pantsbuild/pants/pull/17890)) + +* docs: generate a JSON schema file to be used in IDEs when editing pants.toml ([#17915](https://github.com/pantsbuild/pants/pull/17915)) + +* docs: fix markdown inline code typo in a docstring ([#18002](https://github.com/pantsbuild/pants/pull/18002)) + +* fix type in `check` help output ([#17969](https://github.com/pantsbuild/pants/pull/17969)) + +* Document how to update the pants script. ([#17976](https://github.com/pantsbuild/pants/pull/17976)) + +* Add Kaiko to "who uses Pants" page. ([#17949](https://github.com/pantsbuild/pants/pull/17949)) + +* docs: provide a link to Google Cloud Function in the backend docstring ([#17948](https://github.com/pantsbuild/pants/pull/17948)) + +* docs: add info about beta stage support of protobuf for Scala and Java ([#17935](https://github.com/pantsbuild/pants/pull/17935)) + +* docs: add the first tutorial on writing plugins to readme docs directory ([#17930](https://github.com/pantsbuild/pants/pull/17930)) + +* docs: reformat the kotlin docs to have better line breaks on readme.com ([#17929](https://github.com/pantsbuild/pants/pull/17929)) + +* Update and reorganize resource hub ([#17922](https://github.com/pantsbuild/pants/pull/17922)) + +* Add Payhere to user list. ([#17917](https://github.com/pantsbuild/pants/pull/17917)) + +* Nudge more technical support toward GH Discussions ([#17906](https://github.com/pantsbuild/pants/pull/17906)) + +* go: update docs to remove caveats about implemented features ([#17913](https://github.com/pantsbuild/pants/pull/17913)) + + +## 2.16.0.dev4 (Dec 30, 2022) + +### New Features + +* Add [buf] config and config_discovery options ([#17885](https://github.com/pantsbuild/pants/pull/17885)) + +* New help topic: `backends`. ([#17600](https://github.com/pantsbuild/pants/pull/17600)) + +* Make pants work when the uid doesn't map to a user. ([#17881](https://github.com/pantsbuild/pants/pull/17881)) + +* Make JVM sources runnable ([#17847](https://github.com/pantsbuild/pants/pull/17847)) + +* Support `python_requirement` as a `run`/`experimental_run_in_sandbox` target ([#17864](https://github.com/pantsbuild/pants/pull/17864)) + +* Support `experimental_run_in_sandbox`/`./pants run` for `jvm_artifact` targets ([#17827](https://github.com/pantsbuild/pants/pull/17827)) + +* go: support the `go test` profiling options ([#17836](https://github.com/pantsbuild/pants/pull/17836)) + +* Add output_path field to python_distribution. ([#17841](https://github.com/pantsbuild/pants/pull/17841)) + +### User API Changes + +* Upgrade default mypy-protobuf version to 3.4 ([#17887](https://github.com/pantsbuild/pants/pull/17887)) + +* allow each resolve to be exported for multiple python interpreters ([#17711](https://github.com/pantsbuild/pants/pull/17711)) + +* More default Python module mappings. ([#17879](https://github.com/pantsbuild/pants/pull/17879)) + +* Make export cleanup a subset of `dist/export`, not the whole thing ([#17849](https://github.com/pantsbuild/pants/pull/17849)) + +* Unify the messages for lockfile validation errors. ([#17842](https://github.com/pantsbuild/pants/pull/17842)) + +* Unify validation of tool and user lockfile metadata. ([#17834](https://github.com/pantsbuild/pants/pull/17834)) + +* Detect Pants-generated lockfiles before attempting to validate. ([#17833](https://github.com/pantsbuild/pants/pull/17833)) + +### Plugin API Changes + +* Remove `immutable_input_digests` from shell code ([#17886](https://github.com/pantsbuild/pants/pull/17886)) + +* Default `use_pantsd` to `False` in `run_pants` ([#17874](https://github.com/pantsbuild/pants/pull/17874)) + +* Remove the ToolCustomLockfile/ToolDefaultLockfile classes. ([#17843](https://github.com/pantsbuild/pants/pull/17843)) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts ([#17855](https://github.com/pantsbuild/pants/pull/17855)) + +### Performance + +* Bring back hardlinking big files ([#17878](https://github.com/pantsbuild/pants/pull/17878)) + +* Don't invalidate watched files if non-perms metadata changed ([#17875](https://github.com/pantsbuild/pants/pull/17875)) + +### Documentation + +* docs: mention name clashing between custom goals and options when writing plugins ([#17899](https://github.com/pantsbuild/pants/pull/17899)) + +* docs: add tutorial to get started writing plugins: No 1 ([#17732](https://github.com/pantsbuild/pants/pull/17732)) + +* Document batched `pytest` execution. ([#17845](https://github.com/pantsbuild/pants/pull/17845)) + +* Tweak the docs about __defaults__. ([#17829](https://github.com/pantsbuild/pants/pull/17829)) + +* docs: extend python test goal with info on collecting tests with pytests ([#17894](https://github.com/pantsbuild/pants/pull/17894)) + + +## 2.16.0.dev3 (Dec 16, 2022) + +### New Features + +* Allow targets that implement `RunFieldSet` to be executed in the sandbox for side effects ([#17716](https://github.com/pantsbuild/pants/pull/17716)) + +* `python_requirements` target generator can parse PEP 621 pyproject.toml files ([#16932](https://github.com/pantsbuild/pants/pull/16932)) + +### User API Changes + +* Bump default version of shfmt from 3.2.4 to 3.6.0 ([#17777](https://github.com/pantsbuild/pants/pull/17777)) + +* An enum of Python export formats. ([#17800](https://github.com/pantsbuild/pants/pull/17800)) + +* Add export-codegen goal to more backends ([#17773](https://github.com/pantsbuild/pants/pull/17773)) + +* Adds `execution_dependencies` for `experimental_shell_command` ([#17743](https://github.com/pantsbuild/pants/pull/17743)) + +### Plugin API Changes + +* Remove boilerplate for run and test plugins ([#17774](https://github.com/pantsbuild/pants/pull/17774)) + +### Bug fixes + +* go: detect when `go.sum` needs additional entries filled in ([#17811](https://github.com/pantsbuild/pants/pull/17811)) + +* go: pass module sources through to linker if `${SRCDIR}` is referenced ([#17780](https://github.com/pantsbuild/pants/pull/17780)) + +* go: improve options passed to assembler invocations ([#17796](https://github.com/pantsbuild/pants/pull/17796)) + +* Explicitly use "python" ijson backend ([#17787](https://github.com/pantsbuild/pants/pull/17787)) + +* Do not clear the `pantsd` log while restarting ([#17783](https://github.com/pantsbuild/pants/pull/17783)) + +* Restore support for :all: in `only_binary`/`no_binary`. ([#17779](https://github.com/pantsbuild/pants/pull/17779)) + +* go: remove notion of separate `__obj__` directory ([#17775](https://github.com/pantsbuild/pants/pull/17775)) + +* Visibility: empty selector should match no target. ([#17763](https://github.com/pantsbuild/pants/pull/17763)) + +* [Visibility] `**/..` globs can match root level files ([#17681](https://github.com/pantsbuild/pants/pull/17681)) + +* Visibility: fix rules path for generated targets. ([#17760](https://github.com/pantsbuild/pants/pull/17760)) + +### Documentation + +* Documentation for the new visibility rules ([#17632](https://github.com/pantsbuild/pants/pull/17632)) + +* Add Doctrine's eng blog post and example repo to resource hub. ([#17810](https://github.com/pantsbuild/pants/pull/17810)) + +* Add Astranis to user list. ([#17812](https://github.com/pantsbuild/pants/pull/17812)) + +* Add Doctrine to user list ([#17793](https://github.com/pantsbuild/pants/pull/17793)) + +* Doc: update `Get` docstring for multiple inputs. ([#17730](https://github.com/pantsbuild/pants/pull/17730)) + + +## 2.16.0.dev2 (Dec 08, 2022) + +### New Features + +* go: use target spec for coverage output directories plus support import path ([#17734](https://github.com/pantsbuild/pants/pull/17734)) + +* go: add `assembler_flags` field for adding arbitrary extra assembler flags ([#17731](https://github.com/pantsbuild/pants/pull/17731)) + +* Expose target field defaults in BUILD files. ([#17649](https://github.com/pantsbuild/pants/pull/17649)) + +* Add a new "preamble" plugin ([#17682](https://github.com/pantsbuild/pants/pull/17682)) + +* go: support code coverage over multiple packages during single test ([#17701](https://github.com/pantsbuild/pants/pull/17701)) + +* go: add `linker_flags` field to `go_mod` and `go_binary` target types ([#17697](https://github.com/pantsbuild/pants/pull/17697)) + +* go: add `compiler_flags` field for adding arbitrary extra compiler flags ([#17683](https://github.com/pantsbuild/pants/pull/17683)) + +### User API Changes + +* Include transitive requirements missing for `python_distribution`. ([#17594](https://github.com/pantsbuild/pants/pull/17594)) + +* Extend default module mapping for Python 3rd-party dependency inference: pysocks and atlassian-python-api ([#17654](https://github.com/pantsbuild/pants/pull/17654)) + +### Bug fixes + +* Test DebugAdapter requests, and fix issues ([#17678](https://github.com/pantsbuild/pants/pull/17678)) + +* chdir in `rule_runner.run_interactive_process` ([#17722](https://github.com/pantsbuild/pants/pull/17722)) + +* More precise running workunit for processes executing remotely ([#17719](https://github.com/pantsbuild/pants/pull/17719)) + +* Don't strip the input of a `DictOption` file config ([#17705](https://github.com/pantsbuild/pants/pull/17705)) + +* Visibility rules: error if more than one declaration per BUILD file. ([#17669](https://github.com/pantsbuild/pants/pull/17669)) + +* Allow JVM source to depend on relocated_files target ([#17005](https://github.com/pantsbuild/pants/pull/17005)) + +* Fix bug in Go test result exit code interpretation. ([#17661](https://github.com/pantsbuild/pants/pull/17661)) + +### Performance + +* Immutably hardlink "large" files in a sandbox ([#17520](https://github.com/pantsbuild/pants/pull/17520)) + +* Run python sources with a VenvPex ([#17700](https://github.com/pantsbuild/pants/pull/17700)) + +### Documentation + +* Doc fixes and updates: ([#17708](https://github.com/pantsbuild/pants/pull/17708)) + +* docs: tidy up Writing plugins : rules-api directory files ([#17710](https://github.com/pantsbuild/pants/pull/17710)) + +* Update docker docs to clarify dependency handling. ([#17655](https://github.com/pantsbuild/pants/pull/17655)) + + +## 2.16.0.dev1 (Nov 27, 2022) + +### New Features + +* go: address sanitizer support ([#17651](https://github.com/pantsbuild/pants/pull/17651)) + +* go: add support for C/C++ memory sanitizer ([#17644](https://github.com/pantsbuild/pants/pull/17644)) + +* shell: add `experimental_test_shell_command` for arbitrary shell-driven tests ([#17640](https://github.com/pantsbuild/pants/pull/17640)) + +* support Go data race detector ([#17510](https://github.com/pantsbuild/pants/pull/17510)) + +* Add `Field.none_is_valid_value` bool class var option. ([#17577](https://github.com/pantsbuild/pants/pull/17577)) + +### User API Changes + +* Remove deprecated `run --cleanup` option. ([#17647](https://github.com/pantsbuild/pants/pull/17647)) + +* Upgrade Pex to 2.1.116. ([#17637](https://github.com/pantsbuild/pants/pull/17637)) + +### Plugin API Changes + +* Remove deprecated Platform.current. ([#17646](https://github.com/pantsbuild/pants/pull/17646)) + +### Bug fixes + +* Fix twine env vars propagation for `publish` goal. ([#17650](https://github.com/pantsbuild/pants/pull/17650)) + +* Support `source=None` for `docker_image` targets. ([#17578](https://github.com/pantsbuild/pants/pull/17578)) + +* Specify local environment for python source analysis goal ([#17603](https://github.com/pantsbuild/pants/pull/17603)) + +* go: allow use of `go_asm.h` assembly header in assembly files ([#17611](https://github.com/pantsbuild/pants/pull/17611)) + +* Visibility rule glob tweaks for `*` and `**` ([#17588](https://github.com/pantsbuild/pants/pull/17588)) + +### Documentation + +* Fix broken docs links to manual build instructions ([#17608](https://github.com/pantsbuild/pants/pull/17608)) + +* Docs: improve docs on handling option values in cli ([#17506](https://github.com/pantsbuild/pants/pull/17506)) + + +## 2.16.0.dev0 (Nov 19, 2022) + +### New Features + +* Add `environment=` to `experimental_shell_command`. ([#17575](https://github.com/pantsbuild/pants/pull/17575)) + +* Add debug goals to python ([#17057](https://github.com/pantsbuild/pants/pull/17057)) + +* Target visibility rules ([#17401](https://github.com/pantsbuild/pants/pull/17401)) + +* Emit a `__run.sh` into InteractiveProcess sandboxes. ([#17532](https://github.com/pantsbuild/pants/pull/17532)) + +* Support newer pip versions. ([#17555](https://github.com/pantsbuild/pants/pull/17555)) + +* New dependency rules Plugin API ([#17550](https://github.com/pantsbuild/pants/pull/17550)) + +* Export metadata about a packaged docker image ([#17299](https://github.com/pantsbuild/pants/pull/17299)) + +* Don't require hardcoded name in `python_distribution.provides` ([#17522](https://github.com/pantsbuild/pants/pull/17522)) + +* Add `per_platform` object ([#17334](https://github.com/pantsbuild/pants/pull/17334)) + +* Process output capturing is symlink-aware ([#17496](https://github.com/pantsbuild/pants/pull/17496)) + +* go: introduce `GoBuildOptions` and `cgo_enabled` field ([#17475](https://github.com/pantsbuild/pants/pull/17475)) + +* Disambiguate Python module providers by level of ancestry. ([#17489](https://github.com/pantsbuild/pants/pull/17489)) + +* go: support ".syso" prebuilt object files ([#17479](https://github.com/pantsbuild/pants/pull/17479)) + +* Add Docker registries `use_local_alias` configuration option. ([#17265](https://github.com/pantsbuild/pants/pull/17265)) + +* Proposal for supporting Jar shading rules ([#17251](https://github.com/pantsbuild/pants/pull/17251)) + +* A --resolve flag, to specify the resolves to export. ([#17416](https://github.com/pantsbuild/pants/pull/17416)) + +* Handle duplicate JAR entries in `deploy_jar` ([#17419](https://github.com/pantsbuild/pants/pull/17419)) + +### User API Changes + +* Upgrade default version of golangci-lint to 1.50.1 ([#17574](https://github.com/pantsbuild/pants/pull/17574)) + +* Deprecate the old export semantics. ([#17465](https://github.com/pantsbuild/pants/pull/17465)) + +* Add `restartable` field to `python_sources` ([#17400](https://github.com/pantsbuild/pants/pull/17400)) + +* Deprecate the `# Dependees` column name in the py-constraints summary. ([#17399](https://github.com/pantsbuild/pants/pull/17399)) + +* Rename the dependees goal to dependents. ([#17397](https://github.com/pantsbuild/pants/pull/17397)) + +* Rename --changed-dependees to --changed-dependents ([#17395](https://github.com/pantsbuild/pants/pull/17395)) + +### Bug fixes + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox ([#17566](https://github.com/pantsbuild/pants/pull/17566)) + +* Created an `NpxToolBase` as an inheritable Subsystem for `nodejs` tools ([#17567](https://github.com/pantsbuild/pants/pull/17567)) + +* Fix loading of `SymlinkNodes` from the `Store`. ([#17549](https://github.com/pantsbuild/pants/pull/17549)) + +* Do not try to create `""` output directory in `CreateArchive` ([#17538](https://github.com/pantsbuild/pants/pull/17538)) + +* Persist digests before emitting them in `fs_util` ([#17525](https://github.com/pantsbuild/pants/pull/17525)) + +* Fix memoization of `CoarsenedTarget.closure` ([#17516](https://github.com/pantsbuild/pants/pull/17516)) + +* Support parsing targets from additional paths not containing BUILD files. ([#17451](https://github.com/pantsbuild/pants/pull/17451)) + +* Ensure lockfile target exists before injecting a dependency to it. ([#17365](https://github.com/pantsbuild/pants/pull/17365)) + +* Ensure correct eq/hash semantics for PythonArtifact. ([#17484](https://github.com/pantsbuild/pants/pull/17484)) + +* Isolate config seed values from the DEFAULT section. ([#17474](https://github.com/pantsbuild/pants/pull/17474)) + +* Fix poorly understood stdout redirection issue. ([#17471](https://github.com/pantsbuild/pants/pull/17471)) + +* Fix propagation of the remote-execution-append-only-caches path ([#17469](https://github.com/pantsbuild/pants/pull/17469)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox ([#17235](https://github.com/pantsbuild/pants/pull/17235)) + +* Plumb symlink support through the Pants engine ([#16844](https://github.com/pantsbuild/pants/pull/16844)) + +* Flip the default for `pull` on `docker_image` to `False` ([#17459](https://github.com/pantsbuild/pants/pull/17459)) + +* Merge pytest addopts ([#16614](https://github.com/pantsbuild/pants/pull/16614)) + +* Fix dep inference from `shuint2_tests` targets. ([#17417](https://github.com/pantsbuild/pants/pull/17417)) + +* Fix `EnvironmentName` used in `test` runs ([#17412](https://github.com/pantsbuild/pants/pull/17412)) + +* Add the m1 homebrew bin dir to the system binary search path. ([#17411](https://github.com/pantsbuild/pants/pull/17411)) + +* Restore debug hints for `test` execution ([#17406](https://github.com/pantsbuild/pants/pull/17406)) + +### Performance + +* Skip loading of local cache data when possible ([#17495](https://github.com/pantsbuild/pants/pull/17495)) + +* Symlink site-packages into `pylint` venvs when possible. ([#17488](https://github.com/pantsbuild/pants/pull/17488)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule ([#17487](https://github.com/pantsbuild/pants/pull/17487)) + +### Documentation + +* correct docs: direnv can't save ulimit ([#17561](https://github.com/pantsbuild/pants/pull/17561)) + +* Update team pages for SJ and Dan! ([#17534](https://github.com/pantsbuild/pants/pull/17534)) + +* Fix line breaks in a docs page. ([#17527](https://github.com/pantsbuild/pants/pull/17527)) + +* Clarify how `__defaults__` apply to target generators. ([#17493](https://github.com/pantsbuild/pants/pull/17493)) + +* Fix typo in docs: debug-adaptor should be debug-adapter ([#17452](https://github.com/pantsbuild/pants/pull/17452)) + +* Update `nuke_if_too_big` documentation ([#17429](https://github.com/pantsbuild/pants/pull/17429)) + +* Fix version templating in `vcs_version` docs ([#17423](https://github.com/pantsbuild/pants/pull/17423)) diff --git a/docs/notes/2.17.x.md b/docs/notes/2.17.x.md new file mode 100644 index 000000000..0355b56ba --- /dev/null +++ b/docs/notes/2.17.x.md @@ -0,0 +1,667 @@ +# 2.17.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +## What's New + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +### Overall + +The [`pants` launcher binary](https://github.com/pantsbuild/scie-pants) (aka `scie-pants`) is now the recommended way to run Pants. +Use of a `./pants` shell script in a repository is deprecated. + +The `pants` launcher has numerous benefits, such as: + +* automatically download and maintain a Python distribution for running Pants +* run `pants` from any directory within a repository and not just the build root +* far less overhead when starting commands (up to 4-5×) + +See the [Pants installation +instructions](https://www.pantsbuild.org/docs/installation) for additional information on how to migrate to the `pants` launcher binary. + +Related to this, pants' distribution model is changing, and 2.17 will be the last version where: + +* the `pantsbuild.pants` package is published to PyPI. Use [the `pants_requirements` target](https://www.pantsbuild.org/v2.17/docs/reference-pants_requirements) for installing the requisite packages for plugins, rather than `python_requirement` or similar. +* the universal (cross-platform) `pants` PEX is published to GitHub Releases. For future releases, smaller per-platform PEXes will be attached instead. + +### Performance + +As mentioned above, the new launcher binary reduces start-up overhead. + +Large files are now cached as standalone files on disk, rather than stored directly in the internal database pants uses for cache (but still under the `~/.cache/pants/lmdb_store` directory). This improves performance for manipulating these files, especially when the cache directory and sandbox temporary directory are on the same file system and thus allow hard-linking. + +### Backends + +#### Python + +Python dependencies are now analyzed via an intrinsic rule implemented in Rust for increased performance +over the prior Python implementation of the rule. See [#18854](https://github.com/pantsbuild/pants/pull/18854) for +discusion of the performance improvements. + +Exported mutable virtualenvs can now include [PEP-660](https://peps.python.org/pep-0660/) editable installs of `python_distribution` targets. +To enable this feature for a resolve, add that resolve's name to the `[export].py_editables_in_resolves` list in `pants.toml`. +See [#18639](https://github.com/pantsbuild/pants/pull/18639) for details on Pants' PEP-660 implementation. + +The default `pip` Pants uses under the hood has changed from 20.3.4 to 23.1.2. This newer `pip` has better dependency resolution performance in many cases, but may give different results than the earlier `pip`. Of course those results will still be correct in the sense that they will be compatible with your requirements and constraints. + +The `python_awslambda` or `python_google_cloud_function` targets now support a new 'zip' layout, as recommended by the cloud vendors. This layout gives smaller packages and faster cold starts than the existing Lambdex layout, and will become the default in 2.18. See the docs [for `python_awslambda`](https://www.pantsbuild.org/v2.17/docs/awslambda-python#migrating-from-pants-216-and-earlier) and [for `python_google_cloud_function`](https://www.pantsbuild.org/v2.17/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier). + +The default value for the `[python].interpreter_constraints` option was deprecated in 2.16 and is now removed: `pants.toml` must provide this option. We recommend constraining to a single interpreter minor version if you can, for instance: `interpreter_constraints = ['==3.11.*']`. See [the Interpreter Compatibility docs for more details](https://www.pantsbuild.org/v2.17/docs/python-interpreter-compatibility). + +#### Docker + +The Docker backend now supports authenticating with registries via the `DOCKER_HOST`, `DOCKER_CONFIG` and `DOCKER_CERT_PATH` environment variables. + +#### New: Javascript (experimental!) + +Pants now has _very early_ experimental support for Javascript thanks to ongoing efforts by Tobias Nilsson and +Theo Ribeiro. Please note that the Javascript backend is still incomplete, is being actively developed, and _probably +has critical bugs_. Despite that, the Pants maintainers would appreciate any feedback from the community to help +guide our development efforts. + +Supported goals are: + +* `test`: Letting you run tests via runners installed with the package manager of your choice. +* `package` goal, either to run a customized `package.json` script that produces an artifact via `node_build_script`, or to pack a tarball for npm-registry publication via the `npm_distribution` target. +* `tailor`: Generates build file targets for `*.js`, `*.test.js` and `package.json` files. +* `generate-lockfile`: Creates the lockfile in the format matching a projects package manager. + +The backend supports all package managers provided by `corepack`. `yarn@v2` and [PlugNPlay](https://yarnpkg.com/features/pnp) is not supported. + +Enable the `pants.backend.experimental.javascript` backend to try out this support. Please [file issues](https://github.com/pantsbuild/pants/issues/new/choose) for any issues encountered, and follow along [the stabilization ticket on github](https://github.com/pantsbuild/pants/issues/19240). + +#### New: Taplo TOML Formatter + +Pants now supports the [Taplo TOML formatter](https://taplo.tamasfe.dev/). Enable the `pants.backend.tools.taplo` +backend to add this support. + +### Plugin API Changes + +Rules should now request output types which do not need an input type via the new one-argument form of `Get`. For +example, rules can now write `await Get(ChosenLocalEnvironmentName)`. Certain request types which exists only to +work around the previous lack of such synax are now deprecated in favor of the one argument `Get()` form. + +The `PythonBinary` type is now deprecated, use `PythonBuildStandalone` instead. + +## 2.17.1rc1 (Oct 06, 2023) + +### Bug Fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19969](https://github.com/pantsbuild/pants/pull/19969)) + +* Fetch shellcheck from vscode-shellcheck for M1 support (Cherry-pick of #19945) ([#19952](https://github.com/pantsbuild/pants/pull/19952)) + +* Immediately invalidate written files in write_digest (Cherry-pick of #19903) ([#19949](https://github.com/pantsbuild/pants/pull/19949)) + +* Fix "failed to create hardlink" error due to multiple mounts on the same device (Cherry-pick of #19894) ([#19914](https://github.com/pantsbuild/pants/pull/19914)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19906](https://github.com/pantsbuild/pants/pull/19906)) + +### Documentation + +* Add Tom and Gautham to the Contributors page. (Cherry-pick of #19955) ([#19962](https://github.com/pantsbuild/pants/pull/19962)) + +* Remove references to PyPI/`pantsbuild.pants` wheels in docs (Cherry-pick of #19924) ([#19936](https://github.com/pantsbuild/pants/pull/19936)) + +## 2.17.1rc0 (Sep 20, 2023) + +### New Features + +* `with contextlib.suppress(ImportError)` weakens imports (Cherry-pick of #19293) ([#19789](https://github.com/pantsbuild/pants/pull/19789)) + +### Bug Fixes + +* Port `pantsd` fingerprinting to Rust, and validate from native client (Cherry-pick of #19833) ([#19867](https://github.com/pantsbuild/pants/pull/19867)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19855](https://github.com/pantsbuild/pants/pull/19855)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19837](https://github.com/pantsbuild/pants/pull/19837)) + +* Allow requesters of `TargetRootsToFieldSets` to turn off the secondary ownership warning (Cherry-pick of #19721) ([#19734](https://github.com/pantsbuild/pants/pull/19734)) + +### Performance + +* Remove memoization of the `Paths` intrinsic to reduce memory usage (Cherry-pick of #19689) ([#19717](https://github.com/pantsbuild/pants/pull/19717)) + +### Documentation + +* docs: remove Toolchain references (cherrypick #19508) ([#19828](https://github.com/pantsbuild/pants/pull/19828)) + +* docs: Improve the help string for the global option 'PANTS_CONCURRENT'. (Cherry-pick of #19822) ([#19824](https://github.com/pantsbuild/pants/pull/19824)) + +* Fix Documentation (InitialConfiguration) go backend (Cherry-pick of #19806) ([#19809](https://github.com/pantsbuild/pants/pull/19809)) + +* Fix typoed artifact name in Lambda docs (Cherry-pick of #19739) ([#19746](https://github.com/pantsbuild/pants/pull/19746)) + +* Update the docs changelog to include 2.17.x. (Cherry-pick of #19729) ([#19736](https://github.com/pantsbuild/pants/pull/19736)) + +## 2.17.0 (Aug 29, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.17.0rc5 (Aug 26, 2023) + +### Bug Fixes + +* Remove `tensorboard` mapping from our default mapping (Cherry-pick of #19673) ([#19677](https://github.com/pantsbuild/pants/pull/19677)) + +### Documentation + +* Backport to 2.17: docs: set EnvironmentBehavior in plugin Goal examples (#19590) ([#19664](https://github.com/pantsbuild/pants/pull/19664)) + +## 2.17.0rc4 (Aug 23, 2023) + +### User API Changes + +* Require scie-pants 0.9.2 or newer, for new distribution model (Cherry-pick of #19654) ([#19655](https://github.com/pantsbuild/pants/pull/19655)) + +* Add Python 3.12 to the default interpreter universe (Cherry-pick of #19641) ([#19651](https://github.com/pantsbuild/pants/pull/19651)) + +### Bug Fixes + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19652](https://github.com/pantsbuild/pants/pull/19652)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19650](https://github.com/pantsbuild/pants/pull/19650)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19648](https://github.com/pantsbuild/pants/pull/19648)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19615](https://github.com/pantsbuild/pants/pull/19615)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19616](https://github.com/pantsbuild/pants/pull/19616)) + +* Add path to cache key for Rust dep inference, for relative imports (cherry-pick of #19630) ([#19640](https://github.com/pantsbuild/pants/pull/19640)) + +### Documentation + +* Backport to 2.17: Fix dead doc links (#19546) ([#19659](https://github.com/pantsbuild/pants/pull/19659)) + +* Additional mentions and tweaks in 2.17's "What's new" (Cherry-pick of #19629) ([#19642](https://github.com/pantsbuild/pants/pull/19642)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19639](https://github.com/pantsbuild/pants/pull/19639)) + +* docs: fix markdown inconsistencies (Cherry pick of #19363) ([#19622](https://github.com/pantsbuild/pants/pull/19622)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19597](https://github.com/pantsbuild/pants/pull/19597)) + +## 2.17.0rc3 (Aug 13, 2023) + +### User API Changes + +* Upgrade the default pip to v23.1.2. (Cherry-pick of #19538) ([#19541](https://github.com/pantsbuild/pants/pull/19541)) + +### Bug Fixes + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19593](https://github.com/pantsbuild/pants/pull/19593)) + +* Fix the new tool lockfile deprecation message. ([#19565](https://github.com/pantsbuild/pants/pull/19565)) + +* Fix golangci-lint runner script (Cherry-pick of #19015) ([#19473](https://github.com/pantsbuild/pants/pull/19473)) + +### Documentation + +* Initial draft of What's New for v2.17.x (Cherry-pick of #19168) ([#19595](https://github.com/pantsbuild/pants/pull/19595)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19576](https://github.com/pantsbuild/pants/pull/19576)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19570](https://github.com/pantsbuild/pants/pull/19570)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19561](https://github.com/pantsbuild/pants/pull/19561)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19494](https://github.com/pantsbuild/pants/pull/19494)) + +## 2.17.0rc2 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19456](https://github.com/pantsbuild/pants/pull/19456)) + +* Use the "package_name" variable to fix an UnboundLocalError. (Cherry-pick of #19433) ([#19453](https://github.com/pantsbuild/pants/pull/19453)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19313](https://github.com/pantsbuild/pants/pull/19313)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19419](https://github.com/pantsbuild/pants/pull/19419)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19421](https://github.com/pantsbuild/pants/pull/19421)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19416](https://github.com/pantsbuild/pants/pull/19416)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19321](https://github.com/pantsbuild/pants/pull/19321)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19329](https://github.com/pantsbuild/pants/pull/19329)) + +## 2.17.0rc1 (Jun 08, 2023) + +### Plugin API Changes + +* Deprecate using `PythonBinary` (Cherry-pick of #19209) ([#19222](https://github.com/pantsbuild/pants/pull/19222)) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19268](https://github.com/pantsbuild/pants/pull/19268)) + +* Add taplo to the release (Cherry-pick of #19258) ([#19259](https://github.com/pantsbuild/pants/pull/19259)) + +* Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) ([#19255](https://github.com/pantsbuild/pants/pull/19255)) + +* Fix secondary ownership warning semantics (Cherry-pick of #19191) ([#19224](https://github.com/pantsbuild/pants/pull/19224)) + +## 2.17.0rc0 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version/extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19211](https://github.com/pantsbuild/pants/pull/19211)) + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19136](https://github.com/pantsbuild/pants/pull/19136)) + +* Implement layout="zip" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) ([#19120](https://github.com/pantsbuild/pants/pull/19120)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19087](https://github.com/pantsbuild/pants/pull/19087)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19083](https://github.com/pantsbuild/pants/pull/19083)) + +### Bug Fixes + +* Discover Scala REPL main class and coordinates (Cherry-pick of #19189) ([#19203](https://github.com/pantsbuild/pants/pull/19203)) + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19197](https://github.com/pantsbuild/pants/pull/19197)) + +* Avoid extra `.` in `from .. import` parent imports in Rust Python dep inference (Cherry-pick of #19175) ([#19177](https://github.com/pantsbuild/pants/pull/19177)) + +* Don't try and garbage collect tempfiles (Cherry-pick of #19103) ([#19113](https://github.com/pantsbuild/pants/pull/19113)) + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19138](https://github.com/pantsbuild/pants/pull/19138)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19111](https://github.com/pantsbuild/pants/pull/19111)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19207](https://github.com/pantsbuild/pants/pull/19207)) + +* Adjust FaaS docs for `layout = "zip"` (Cherry-pick of #19180) ([#19198](https://github.com/pantsbuild/pants/pull/19198)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19109](https://github.com/pantsbuild/pants/pull/19109)) + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19115](https://github.com/pantsbuild/pants/pull/19115)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19091](https://github.com/pantsbuild/pants/pull/19091)) + +## 2.17.0a1 (May 19, 2023) + +Due to infrastructure issues, `2.17.0a1` is a second attempt at publishing `2.17.0a0`. + +## 2.17.0a0 (May 18, 2023) + +NOTE: `2.17.0a0` was not released to PyPI due to infrastructure issues. + +### New Features + +* Add a workunit logging plugin ([#18984](https://github.com/pantsbuild/pants/pull/18984)) + +* javascript: Add `yarn@v1` support ([#18928](https://github.com/pantsbuild/pants/pull/18928)) + +* javascript: Support Node.js subpath imports ([#18934](https://github.com/pantsbuild/pants/pull/18934)) + +* Add Taplo toml formatter ([#18865](https://github.com/pantsbuild/pants/pull/18865)) + +* Include the Pants native client in released wheels ([#18957](https://github.com/pantsbuild/pants/pull/18957)) + +* Extract Python dependencies in an intrinsic ([#18854](https://github.com/pantsbuild/pants/pull/18854)) + +### User API Changes + +* Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. ([#19028](https://github.com/pantsbuild/pants/pull/19028)) + +* Support Python requirement target addrs in tool requirements. ([#19014](https://github.com/pantsbuild/pants/pull/19014)) + +* javascript: Add an explicit `npm_distribution` target instead of coupling to `node_package` ([#18925](https://github.com/pantsbuild/pants/pull/18925)) + +* Shorten the deprecation for `export` without `--resolve`. ([#19000](https://github.com/pantsbuild/pants/pull/19000)) + +* Upgrade Pex to 2.1.137. ([#19003](https://github.com/pantsbuild/pants/pull/19003)) + +* Remove the underlying implementation of `anonymous-telemetry` ([#18952](https://github.com/pantsbuild/pants/pull/18952)) + +### Plugin API Changes + +* Port Django migrations inference away from `PythonDependencyVisitorRequest` ([#19008](https://github.com/pantsbuild/pants/pull/19008)) + +* fmtrequest -> abstractfmtrequest ([#18935](https://github.com/pantsbuild/pants/pull/18935)) + +### Bug Fixes + +* Use `{bin_name()} run` as `$0` in `run_shell_command` ([#19020](https://github.com/pantsbuild/pants/pull/19020)) + +* Make `DigestSubset` symlink-aware ([#18963](https://github.com/pantsbuild/pants/pull/18963)) + +* javascript: Do not add literal {chroot} to pnpm cache path ([#18921](https://github.com/pantsbuild/pants/pull/18921)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` ([#19019](https://github.com/pantsbuild/pants/pull/19019)) + +* Docs tweaks for 2.16.x ([#19009](https://github.com/pantsbuild/pants/pull/19009)) + +* Fix example `first_party_dependency_version_scheme` in docs ([#18993](https://github.com/pantsbuild/pants/pull/18993)) + +## 2.17.0.dev5 (May 08, 2023) + +### New Features + +* javascript: Implement dependency inference opt-out and improve resilience ([#18931](https://github.com/pantsbuild/pants/pull/18931)) + +* javascript: Add support for the pnpm package manager ([#18864](https://github.com/pantsbuild/pants/pull/18864)) + +* Eagerly clean running nodes rather than interrupting them. ([#18855](https://github.com/pantsbuild/pants/pull/18855)) + +* javascript: Nodejs tests batch support ([#18742](https://github.com/pantsbuild/pants/pull/18742)) + +* New API type: `CurrentExecutingGoals`. ([#18788](https://github.com/pantsbuild/pants/pull/18788)) + +### User API Changes + +* javascript: Support `package` goal in `node_build_script` target ([#18926](https://github.com/pantsbuild/pants/pull/18926)) + +* Deprecate running Pants outside scie-pants. ([#18833](https://github.com/pantsbuild/pants/pull/18833)) + +* Upgrade Pex to 2.1.135. ([#18876](https://github.com/pantsbuild/pants/pull/18876)) + +### Plugin API Changes + +* Remove redundant PythonToolBase/JvmToolBase features. ([#18805](https://github.com/pantsbuild/pants/pull/18805)) + +### Bug Fixes + +* Ensure packaged artefacts are fully replaced in dist/ ([#18930](https://github.com/pantsbuild/pants/pull/18930)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* javascript: Handle package.json placed at the root of the repository ([#18919](https://github.com/pantsbuild/pants/pull/18919)) + +* Actually run deprecated targets fixer ([#18860](https://github.com/pantsbuild/pants/pull/18860)) + +* Remove existing entry if any when materialising symlink ([#18873](https://github.com/pantsbuild/pants/pull/18873)) + +* Ensure non-ambiguous args/env vars injection into PEXes ([#18861](https://github.com/pantsbuild/pants/pull/18861)) + +* Handle workdir="."/default properly in run_shell_command ([#18840](https://github.com/pantsbuild/pants/pull/18840)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths ([#18814](https://github.com/pantsbuild/pants/pull/18814)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. ([#18713](https://github.com/pantsbuild/pants/pull/18713)) + +* help backends: Only list enabled experimental backends unless advanced help. ([#18821](https://github.com/pantsbuild/pants/pull/18821)) + +* Use build root as workdir for shell_command(workdir="") ([#18813](https://github.com/pantsbuild/pants/pull/18813)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. ([#18826](https://github.com/pantsbuild/pants/pull/18826)) + +### Performance + +* Optimize `Target` and `FieldSet` operations ([#18917](https://github.com/pantsbuild/pants/pull/18917)) + +* Triage some noqa: PNT30 await-in-loops ([#18831](https://github.com/pantsbuild/pants/pull/18831)) + +### Documentation + +* Update the identity of the response team for CoC violation reporting. ([#16410](https://github.com/pantsbuild/pants/pull/16410)) + +* Fix adhoc output_... example, document run_shell_command workdir changes ([#18894](https://github.com/pantsbuild/pants/pull/18894)) + +* Add missing backtick in help string ([#18907](https://github.com/pantsbuild/pants/pull/18907)) + +* Add Salesforce to the users list ([#18891](https://github.com/pantsbuild/pants/pull/18891)) + +* update troubleshooting document about self-hosted action runner ([#18900](https://github.com/pantsbuild/pants/pull/18900)) + +* Credit the Works on ARM program for our CI resources. ([#18892](https://github.com/pantsbuild/pants/pull/18892)) + +* feat: update installation.md ([#18836](https://github.com/pantsbuild/pants/pull/18836)) + +* Remove reference to readme.com as the way to edit documentation ([#18863](https://github.com/pantsbuild/pants/pull/18863)) + +* Fix library name typo in third party example ([#18862](https://github.com/pantsbuild/pants/pull/18862)) + +* Update mypy and pytest documentation to refer to install_from_resolve ([#18791](https://github.com/pantsbuild/pants/pull/18791)) + +* Include `symbols` as topic in usage help. ([#18825](https://github.com/pantsbuild/pants/pull/18825)) + +* docs: reorder contributor steps, rustup is required for git hooks install to work smoothly ([#18828](https://github.com/pantsbuild/pants/pull/18828)) + +## 2.17.0.dev4 (Apr 23, 2023) + +### New Features + +* javascript: Manage `npm` version with corepack ([#18748](https://github.com/pantsbuild/pants/pull/18748)) + +* `python_distribution` editable installs in exports ([#18639](https://github.com/pantsbuild/pants/pull/18639)) + +### User API Changes + +* Default to using the entire tool lockfile. ([#18793](https://github.com/pantsbuild/pants/pull/18793)) + +* Upgrade Pex to 2.1.134. ([#18785](https://github.com/pantsbuild/pants/pull/18785)) + +* Use the resolve's ICs for tools. ([#18776](https://github.com/pantsbuild/pants/pull/18776)) + +* Use Self backport in `BinaryPath` factory method. ([#18763](https://github.com/pantsbuild/pants/pull/18763)) + +* Deprecate "Secondary Ownership" semantics ([#18737](https://github.com/pantsbuild/pants/pull/18737)) + +* Expand versions range for `ruff` + upgrade it ([#18707](https://github.com/pantsbuild/pants/pull/18707)) + +### Plugin API Changes + +* Allow `BinaryPaths` to close over their type. ([#18760](https://github.com/pantsbuild/pants/pull/18760)) + +* Set a central default ICs for tools. ([#18714](https://github.com/pantsbuild/pants/pull/18714)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. ([#18787](https://github.com/pantsbuild/pants/pull/18787)) + +* Dedup graph errors. ([#18770](https://github.com/pantsbuild/pants/pull/18770)) + +* Flush metadata to disk before renaming immutable store files ([#18768](https://github.com/pantsbuild/pants/pull/18768)) + +* Clear FSDB materialization cache when `remove`ing a file ([#18747](https://github.com/pantsbuild/pants/pull/18747)) + +* Use address as stable key when batching field sets in `lint`/`test` ([#18725](https://github.com/pantsbuild/pants/pull/18725)) + +* Fix `repr` for `Field`s that don't define `default`. ([#18719](https://github.com/pantsbuild/pants/pull/18719)) + +* Add `ruff` lint rules ([#18716](https://github.com/pantsbuild/pants/pull/18716)) + +* javascript: Use binary shims in nodejs sandboxes ([#18682](https://github.com/pantsbuild/pants/pull/18682)) + +### Documentation + +* Improve error location for invalid targets/target fields. ([#18366](https://github.com/pantsbuild/pants/pull/18366)) + +* Add info on how to configure Docker Desktop for using `docker_environment` ([#18786](https://github.com/pantsbuild/pants/pull/18786)) + +* Update linter documentation to refer to `install_from_resolve` ([#18781](https://github.com/pantsbuild/pants/pull/18781)) + +* docs: Fix typo on requirements-overrides code snippet ([#18750](https://github.com/pantsbuild/pants/pull/18750)) + +* Edit Python publishing docs for clarity. ([#18718](https://github.com/pantsbuild/pants/pull/18718)) + +## 2.17.0.dev3 (Apr 10, 2023) + +### New Features + +* Helm: Add support for DNS lookups in Chart templates ([#18670](https://github.com/pantsbuild/pants/pull/18670)) + +* Include global Git ignore file and `.git/info/exclude` in `pants_ignore` to ignore for file watching ([#18649](https://github.com/pantsbuild/pants/pull/18649)) + +### User API Changes + +* Remove deprecated default ICs. ([#18627](https://github.com/pantsbuild/pants/pull/18627)) + +### Plugin API Changes + +* Move/Rename: `goals/setup_py.py` -> `{util_rules,goals}/package_dists.py` + `subsystems/setup_py_generation.py` ([#18702](https://github.com/pantsbuild/pants/pull/18702)) + +* Deprecate some `Request` types in favor of `Get()` with only one arg ([#18655](https://github.com/pantsbuild/pants/pull/18655)) + +* Add support for `Get(MyType)` syntax with no input args ([#18648](https://github.com/pantsbuild/pants/pull/18648)) + +### Bug fixes + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s ([#18699](https://github.com/pantsbuild/pants/pull/18699)) + +* Remove implicit conversion from `std::io::Error` to `StoreError` ([#18696](https://github.com/pantsbuild/pants/pull/18696)) + +* Add timeout to remote store calls, and adjust name of cache timeout. ([#18695](https://github.com/pantsbuild/pants/pull/18695)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests ([#18692](https://github.com/pantsbuild/pants/pull/18692)) + +* doc: Describe relevant error modes during rule compilation ([#18663](https://github.com/pantsbuild/pants/pull/18663)) + +* Bump minimum supported version of Pex to v2.1.129. ([#18678](https://github.com/pantsbuild/pants/pull/18678)) + +* Fix JVM resource JAR creation on older Mac OSes ([#18673](https://github.com/pantsbuild/pants/pull/18673)) + +* javascript: Do not read none mapped package.json files in javascript rules ([#18523](https://github.com/pantsbuild/pants/pull/18523)) + +### Documentation + +* Add PEP 621 pyproject.toml file docs ([#18672](https://github.com/pantsbuild/pants/pull/18672)) + +* Document AWS CDK issue that multiple users have encountered. ([#18656](https://github.com/pantsbuild/pants/pull/18656)) + +* Error when goals used without relevant backends activated ([#18420](https://github.com/pantsbuild/pants/pull/18420)) + +* Improve lockfile consumption error message. ([#18638](https://github.com/pantsbuild/pants/pull/18638)) + +* Remove a python-specific tip from the general prereqs page. ([#18637](https://github.com/pantsbuild/pants/pull/18637)) + +* Make UUID message clearer ([#18561](https://github.com/pantsbuild/pants/pull/18561)) + +## 2.17.0.dev2 (Mar 31, 2023) + +### New Features + +* javascript: Test goal with package manager installed test runner support ([#18554](https://github.com/pantsbuild/pants/pull/18554)) + +* expose PANTS_VERSION and make it string-comparable ([#18573](https://github.com/pantsbuild/pants/pull/18573)) + +### User API Changes + +* Upgrade Pex to 2.1.131. ([#18626](https://github.com/pantsbuild/pants/pull/18626)) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are cleaned up ([#18632](https://github.com/pantsbuild/pants/pull/18632)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` ([#18622](https://github.com/pantsbuild/pants/pull/18622)) + +* narrow pex_binary files warning ([#18619](https://github.com/pantsbuild/pants/pull/18619)) + +* Fix PexPEX invocations ([#18610](https://github.com/pantsbuild/pants/pull/18610)) + +* Improve debug information for docker auth, and expose an environment variable. ([#18599](https://github.com/pantsbuild/pants/pull/18599)) + +### Performance + +* Only materialize immutable files once per process ([#18600](https://github.com/pantsbuild/pants/pull/18600)) + +### Documentation + +* Fix a string that should have been an f-string ([#18608](https://github.com/pantsbuild/pants/pull/18608)) + +* Fix `./pants` -> `pants` in some docs and help strings. ([#18596](https://github.com/pantsbuild/pants/pull/18596)) + +## 2.17.0.dev1 (Mar 24, 2023) + +### New Features + +* engine: add an option to clear the destination directory when writing digest to disk ([#18534](https://github.com/pantsbuild/pants/pull/18534)) + +* javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm ([#18520](https://github.com/pantsbuild/pants/pull/18520)) + +* javascript: Initial NPM support ([#18326](https://github.com/pantsbuild/pants/pull/18326)) + +* Always provide Python-for-Pants-scripts ([#18433](https://github.com/pantsbuild/pants/pull/18433)) + +### User API Changes + +* Upgrade Pex to 2.1.130. ([#18576](https://github.com/pantsbuild/pants/pull/18576)) + +* Deprecate old-style custom tool lockfiles. ([#18494](https://github.com/pantsbuild/pants/pull/18494)) + +* Let a user resolve shadow a tool lockfile of the same name ([#18481](https://github.com/pantsbuild/pants/pull/18481)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. ([#18575](https://github.com/pantsbuild/pants/pull/18575)) + +* Fail fast for attempts to use `test --debug` with a docker environment ([#18560](https://github.com/pantsbuild/pants/pull/18560)) + +* Declare ruff outputs as files. ([#18551](https://github.com/pantsbuild/pants/pull/18551)) + +* Add support for Docker registry auth ([#18541](https://github.com/pantsbuild/pants/pull/18541)) + +* Fix Poetry req synthesis for URLs with markers. ([#18535](https://github.com/pantsbuild/pants/pull/18535)) + +* Re-enable hardlinking using `fclonefileat` on macOS. ([#18501](https://github.com/pantsbuild/pants/pull/18501)) + +### Performance + +* Materialize "large" files in a new store location and hardlink them in sandboxes ([#18153](https://github.com/pantsbuild/pants/pull/18153)) + +* Finish parallelizing materialization of Process inputs ([#18469](https://github.com/pantsbuild/pants/pull/18469)) + +### Documentation + +* First pass at `adhoc_tool` documentation ([#18531](https://github.com/pantsbuild/pants/pull/18531)) + +* Add Tobias Nilsson to team page ([#18571](https://github.com/pantsbuild/pants/pull/18571)) + +* docs: fix an f-string in help ([#18539](https://github.com/pantsbuild/pants/pull/18539)) + +* Clarify that `experimental_` shell functions are deprecated and replaced ([#18529](https://github.com/pantsbuild/pants/pull/18529)) + +* Update docs on running pants from sources with scie-pants. ([#18513](https://github.com/pantsbuild/pants/pull/18513)) + +* Add ExoFlare to user list. ([#18496](https://github.com/pantsbuild/pants/pull/18496)) + +* Fix malformed pantsbuild/example-python link in documentation ([#18484](https://github.com/pantsbuild/pants/pull/18484)) + +* update scie-jump cache directory reference ([#18485](https://github.com/pantsbuild/pants/pull/18485)) + +* Expand lockfile documentation to its own page. ([#18471](https://github.com/pantsbuild/pants/pull/18471)) + +## 2.17.0.dev0 (Mar 10, 2023) + +### New Features + +* Expose environment information on process metadata ([#18458](https://github.com/pantsbuild/pants/pull/18458)) + +* Support running `pants` from anywhere in the project. ([#18412](https://github.com/pantsbuild/pants/pull/18412)) + +### User API Changes + +* Audit and update requirements for Python tools. ([#18431](https://github.com/pantsbuild/pants/pull/18431)) + +* Upgrade Pex to 2.1.128. ([#18453](https://github.com/pantsbuild/pants/pull/18453)) + +### Bug fixes + +* Preserve environment variables in `pantsd` to allow Docker auth. ([#18465](https://github.com/pantsbuild/pants/pull/18465)) + +* Only expose the equiv of `from typing import *` in prelude files ([#18452](https://github.com/pantsbuild/pants/pull/18452)) + +* Support type hints in prelude files. ([#18442](https://github.com/pantsbuild/pants/pull/18442)) + +* Synthesized lockfile targets should never err on missing lockfiles. ([#18406](https://github.com/pantsbuild/pants/pull/18406)) + +* Fixes to visualisations for xdot ([#18421](https://github.com/pantsbuild/pants/pull/18421)) diff --git a/docs/notes/2.18.x.md b/docs/notes/2.18.x.md new file mode 100644 index 000000000..cef26f56f --- /dev/null +++ b/docs/notes/2.18.x.md @@ -0,0 +1,206 @@ +# 2.18.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- The improvements to AWS Lambda and Google Cloud Function support in 2.17 have continued in 2.18, including simpler configuration and support for AWS Lambda Layers. +- Many more options can now be controlled when building Docker images. +- Significant feature work and bug fixes to "deploy" backends like Helm and Terraform. + +Keep reading to see the details and what's also included. + +### Overall + +[The `pants` launcher binary](https://www.pantsbuild.org/v2.18/docs/installation) is now **required** to run Pants. It must be version 0.10.0 or greater: run `PANTS_BOOTSTRAP_VERSION=report pants` to check and `SCIE_BOOT=update pants` to upgrade to the latest. Pants 2.18 and later are not distributed via PyPI, and thus the launcher is required to coordinate downloading the appropriate versions from GitHub Releases. + +[The `[cli.alias]` section](https://www.pantsbuild.org/v2.18/docs/reference-cli) of `pants.toml` now supports defining flag-like aliases. For example: `--all-changed = "--changed-since=HEAD --changed-dependents=transitive"`. + +[The `paths` goal](https://www.pantsbuild.org/v2.18/docs/reference-paths) now supports passing groups of targets to `--from` and/or `--to`. + +The `help` goal now supports showing help for an environment variable. For example: `pants help PANTS_FIX_ONLY`. + +Additional bug fixes: + +- The client now detects changes in pants configuration that require restarting the pants daemon. +- Sequences of goals that mutate files on disk and then immediately re-read them now no longer fail spuriously if the second goal happens faster than the OS file-change notification is received. For instance, `pants fix lint ::` would sometimes run the `lint` goal on the files before the `fix` changes were applied. +- More reliable detection of when optimised hard-linking can be used for creating sandboxes. For instance, no longer hitting errors when a single device is mounted multiple times. + +The deprecation for referring to a "secondary" owner target via the file name has expired, and so this is no longer supported. For example, if `path/to/main.py` is the entry point of the `path/to:binary` `pex_binary` target, an invocation like `pants package path/to/main.py` must now use the target address instead: `pants package path/to:binary`. + +### BUILD files + +Several bug fixes: + +- Better error messages when a `BUILD` file refers to an unknown value. +- `__defaults__` can now be used in the same `BUILD` file as [environment targets](https://www.pantsbuild.org/v2.18/docs/environments) like `local_environment`. + +### Performance + +Memory usage has been reduced, particularly for the Go backend. + +A best-effort limit has been placed on the number of open cache file handles (approximately 1000), reducing the need for `ulimit` adjustments. + +### Remote caching/execution + +Remote caching using the gRPC remote execution API now supports mTLS, via the new [`remote_client_certs_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_certs_path) and [`remote_client_key_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_key_path) options in the `[GLOBAL]` section. + +### Backends + +Several backends that were intended to be included in previous releases were accidentally missing from the released pants artifacts, these are now available in 2.18: + +- `pants.backend.experimental.openapi.codegen.java`: Enables generating Java from OpenAPI. +- `pants.backend.experimental.python.framework.django`: Enables better support for projects using Django. +- `pants.backend.experimental.swift`: Enables core Swift support. +- `pants.backend.python.providers.experimental.pyenv.custom_install`: Enables customising how the pyenv provider builds a Python interpreter. + +In addition, the [documentation of backends](https://www.pantsbuild.org/v2.18/docs/enabling-backends) now lists all backends, including preview ones that were not previously advertised. Please go check it out, try backends relevant to you and let us know how they go for your use cases, [report bugs](https://www.pantsbuild.org/v2.18/docs/getting-help) and/or [submit fixes](https://www.pantsbuild.org/v2.18/docs/contributor-overview)! + +#### Docker + +More options can be passed when building images (see and docs for more details: + +- on [the `[docker]` subsystem](https://www.pantsbuild.org/v2.18/docs/reference-docker): `build_hosts`, `build_no_cache` +- on [the `docker_image` target](https://www.pantsbuild.org/v2.18/docs/reference-docker_image): `build_network`, `build_platform`, `extra_build_hosts` + +Additional features and bug fixes: + +- Registries with the same address no longer silently overwrite each other, and instead now emit an error. +- [The `secrets` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codesecretscode) now supports expanding `~` to refer to the current user's home directory. +- [The `image_tags` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codeimage_tagscode) now has an explanatory error if it is incorrectly empty. + +#### Helm + +[The `helm_unittest_tests` target](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-unit-tests) has had several improvements: + +- support for being added by the `tailor` goal (this can be disabled with the new `[helm].tailor_unittests` option) +- support for [snapshot testing](https://www.pantsbuild.org/v2.18/docs/helm-overview#snapshot-testing) via the new `generate-snapshots` goal + +[The new `pants.backend.experimental.helm.check.kubeconform` backend](https://www.pantsbuild.org/v2.18/docs/helm-kubeconform) allows running Kubeconform on `helm_chart` and `helm_deployment` targets as part of the `check` goal. + +**Deprecations**: + +- The `helm_deployment` target should now specify the [new `chart` field](https://www.pantsbuild.org/v2.18/docs/reference-helm_deployment#codechartcode) to explicitly indicate which chart is being deployed. +- The `create_namespace` field for `helm_deployment` will not be supported in future, use the passthrough argument `--create-namespace` instead. +- The `{env.VAR_NAME}` interpolation syntax some fields of `helm_deployment` has been replaced by the more [general `env` build file function](https://www.pantsbuild.org/v2.18/docs/targets#environment-variables); for instance `"text-{env.VAR_NAME}"` can become `f"text-{env('VAR_NAME')}"`. +- The `[helm].tailor` option has been renamed to [`tailor_charts`](https://www.pantsbuild.org/v2.18/docs/reference-helm#tailor_charts). + +Additional features and bug fixes: + +- Relative target addresses for `docker_image`s can be passed like `helm_deployment(values={"some_image": ":target-name"})`, and are expanded in the same way as non-relative addreses `path/to:target-name`. +- If the passthrough `--debug` argument is specified, like `pants experimental-deploy path/to:helm-deployment -- --debug`, that flag is now passed to all Helm invocations pants does. +- The Helm binary has been upgraded to 3.12.3 by default. +- [The new `version` field to `helm_chart`](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-chart-version) allows overriding the version in `Chart.yaml`. + + +#### JavaScript + +The `node_build_script` function now supports `extra_env_vars` to specify additional environment variables when executing. + +Node-based tools can now install from a user-provided 'resolve'/`package.json`, similar to Python tools. + +The dependency inference for JavaScript has been rewritten into Rust, and thus runs much faster. + +#### Python + +The functions-as-a-service (FaaS) backends, [`pants.backend.awslambda.python`](https://www.pantsbuild.org/v2.18/docs/awslambda-python) and [`pants.backend.google_cloud_function.python`](https://www.pantsbuild.org/v2.18/docs/google-cloud-function-python) have seen more improvements in 2.18: + +- Deprecation: the `python_awslambda` target has been renamed to `python_aws_lambda_function`. +- Deprecation: the `[lambdex].layout = "zip"` value in `pants.toml` is now the default, and the `[lambdex]` section should be removed. +- New: [the `python_aws_lambda_layer` target](https://www.pantsbuild.org/v2.18/docs/awslambda-python#building-a-lambda-layer) can be used to build Layers for AWS Lambda. +- New: the `runtime` field is no longer necessary when the interpreter constraints unambiguously refer to an entire single major version. For instance, with `[python].interpreter_constraints = ["==3.11.*"]`, one doesn't need to specify `runtime="python3.11"` to `python_aws_lambda_function` or `runtime="python311"` to `python_google_cloud_function`, as it will be inferred. +- New: for AWS Lambda targets, the `complete_platforms` argument now has default values provided by Pants, which gives more reliable builds, especially when building on a different platform than the AWS Lambda itself. This change also means that only one of the `complete_platforms` or `platforms` fields should be provided. + +The new, faster parser for dependency inference is now the default, so the `[python-infer].use_rust_parser` option can be removed from `pants.toml`, if it is being explicitly set to `true`. The old parser is deprecated and will be removed: follow the warnings in 2.17 to move to the new parser. + +The [new `pants.backend.experimental.python.typecheck.pytype` backend](https://www.pantsbuild.org/v2.18/docs/reference-pytype) allows running the `pytype` type checker as part of the `check` goal. + +Additional features and bug fixes: + +- The `tailor` goal now supports automatically creating `python_requirements` targets for in `pyproject.toml` files that follow [PEP 621 to specify dependencies](https://peps.python.org/pep-0621/#dependencies-optional-dependencies). +- Imports within a `with contextlib.suppress(ImportError): ...` construct are now considered weak imports. +- The global coverage report now correctly handles namespaced packages. +- `pex_binary` targets that consume `python_distribution` targets now work with just the distributions, not their transitive dependencies (the files that are used to build the distribution). +- Pants now emits an error if `isort` cannot read its configuration file (NB. `isort` itself emits warnings for this, but they would not be visible when running `isort` under the default Pants configuration). +- [The `pants.backend.python.typecheck.mypy` backend](https://www.pantsbuild.org/v2.18/docs/python-check-goal) is now more resilient to its cache being removed. + +Some deprecations have expired and the supporting code has been removed: + +- the "old style" tool lockfiles are no longer supported, and instead customising the versions/installation of tools like `black`, `mypy` and `pytest` should configure [a "normal" resolve](https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools) +- using `pants export` without a `--resolve` flag is no longer supported, always pass that flag + +#### Go + +Memory usage has been reduced. + +Go processes are now cached using the full version of the Go compiler (for example, `go1.20.6`) so that artifacts are not incorrectly reused between different patch versions. + +Building with coverage no longer has an exponential blow-up when preparing the build requests. + +#### JVM + +The deprecation for the `excludes` field on `jvm_artifact` has expired, use `exclusions` instead. + +[The coursier tool](https://www.pantsbuild.org/v2.18/docs/reference-coursier) now uses v2.1.6 by default, and, for this version, supports a native binary on ARM macOS (Apple Silicon). + +The `deploy_jar` target now supports [an `exclude_files` field](https://www.pantsbuild.org/v2.18/docs/reference-deploy_jar#codeexclude_filescode). + +#### NEW: Rust + +The new `pants.backend.experimental.rust` backend has been added, with support for using `rustfmt` to format Rust source files. + +#### Scala + +The [new `scala_artifact` target](https://www.pantsbuild.org/v2.18/docs/reference-scala_artifact) can be used to track third-party artifacts from Scala, with Pants then understanding how Scala artifacts include the Scala version in their coordinates. + +#### Shell + +The `shellcheck` binary for [the `pants.backend.shell.lint.shellcheck` backend](https://www.pantsbuild.org/v2.18/docs/shell#shellcheck-linter) is now fetched from `vscode-shellcheck`, and thus now supports AArch64 macOS (Apple Silicon) natively. + +The deprecations for the pre-2.16 target names have expired, and thus these have been removed: + +- `experimental_shell_command`: use `shell_command` +- `experimental_run_shell_command`: use `run_shell_command` + +#### Terraform + +The [new `terraform_deployment` target](https://www.pantsbuild.org/v2.18/docs/reference-terraform_deployment) allows configuring a `terraform_module` to be deployed with [the `experimental-deploy` goal](https://www.pantsbuild.org/v2.18/docs/reference-experimental-deploy). + +A new `pants.backend.experimental.terraform.lint.tfsec` backend has been added to run the `tfsec` linter as part of the `lint` goal. + +The `check` goal now runs `terraform init` to ensure modules are installed before validating. + +#### Visibility + +[The `pants.backend.experimental.visibility` backend](https://www.pantsbuild.org/v2.18/docs/validating-dependencies) is now also runs as a linter, such as when running `pants lint ::`, to report all visibility violations at one time. + +Visibility rules about dependencies in the root of the repository are now supported. + +### Plugin API Changes + +Pants no longer publishes wheels to PyPI. The only supported way to depend on pants itself is [the `pants_requirements` target](https://www.pantsbuild.org/v2.18/docs/reference-pants_requirements), which now supports a new `version_spec` field if one needs to depend on a different version of Pants than the currently executing one. + +The `include_special_cased_deps` flag (on `DependenciesRequest`, `TransitiveTargetsRequest`, and `CoarsenedTargetsRequest`) is replaced with `should_traverse_deps_predicate`. If set to `True`, use `should_traverse_deps_predicate=pants.engine.target.AlwaysTraverseDeps()` instead. See [#19272](https://github.com/pantsbuild/pants/pull/19272) and [#19387](https://github.com/pantsbuild/pants/pull/19387) for details. + +The `TestResult` `stdout` and `stderr` fields have been renamed to `stdout_bytes` and `stderr_bytes`, and store `bytes` instead of `str`, to handle non-UTF-8 data without crashing. + +Other changes: + +- Plugins can now declare additional requirements in a `requirements.txt` file next to `register.py`. +- Pants only supports running on Python 3.9 now. +- Named caches can now used digits in addition to lower-case letters and underscores. +- The `pants.core.goals.package.TraverseIfNotPackageTarget` type can be used with the new `should_traverse_deps_predicate` to treat packageable targets as "leaves" when finding dependencies; for instance, stopping at a `pex_binary` without also surfacing the `python_sources` that are used for it. + +The deprecations for many request types has expired (follow instructions in warnings in 2.17 to resolve), so they are now removed: `AllAssetTargetsRequest`, `AllTargetsRequest`, `BashBinaryRequest`, `CatBinaryRequest`, `CGoCompilerWrapperScriptRequest`, `ChmodBinaryRequest`, `DiffBinaryRequest`, `DjangoAppsRequest`, `DockerBinaryRequest`, `GitBinaryRequest`, `GunzipBinaryRequest`, `MkdirBinaryRequest`, `PythonBinary`, `ReadlinkBinaryRequest`, `TarBinaryRequest`, `UnzipBinaryRequest`, `ZipBinaryRequest`. + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/docs/notes/2.19.x.md b/docs/notes/2.19.x.md new file mode 100644 index 000000000..5db704aa4 --- /dev/null +++ b/docs/notes/2.19.x.md @@ -0,0 +1,170 @@ +# 2.19.x Release Series + +Pants 2 is a fast, scalable, user-friendly build system for codebases of all sizes. It's currently focused on Python, Go, Java, Scala, Kotlin, Shell, and Docker, with support for other languages and frameworks coming soon. + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- Test retries for flaky Python tests. +- Using the `parametrize` to set multiple fields at once when generating new groups of targets. +- `buildx` support in the Docker backend. +- New backends for running semgrep and openapi-format. + +Keep reading to see the details and what's also included. + +### Overall + +The `.pids/` internal directory is now under `.pants.d/` by default, rather that adjacent to it (this can be controlled via [the `[GLOBAL].pants_subprocessdir` option](https://www.pantsbuild.org/2.19/reference/global-options#pants_subprocessdir)). + +[The new `[system-binaries]` subsystem](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries) allows controlling where Pants searches for binaries like `bash`, `zip`, `tar` that is uses as part of normal operation. Set [the `system_binaries_paths`](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries#system_binary_paths) as appropriate, potentially using the `` special value. This can also be set on specific [environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) using the `system_binaries_system_binary_paths` field. + +Additional features and fixes: + +- New versions of [the `get-pants.sh` script](https://www.pantsbuild.org/2.19/docs/getting-started/installing-pants) install to `~/.local/bin`, not `~/bin`. +- Environment variables that aren't valid UTF-8 no longer cause Pants to crash (note, `PANTS_...` environment variables that Pants needs to read but aren't UTF-8 will be ignored). +- Reference documentation for subsystem options includes how to set them in `pants.toml`, in addition to the environment variable and CLI arguments. +- [Environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) are now more resilient to being (partially) defined via macros, although this is not recommended. +- [Docker environments](https://www.pantsbuild.org/2.19/reference/targets/docker_environment) can now pull public images without credentials, and can now handle docker images without Python. +- The `fix` goal now partitions files across multiple processes in a way that's more similar to the partitioning of the `lint` goal, which can work around some spurious linting failures. + +### BUILD files + +[The `parametrize` helper](https://www.pantsbuild.org/2.19/docs/using-pants/key-concepts/targets-and-build-files#field-default-values#parametrizing-targets) now supports parametrizing multiple fields together, in lock step. For instance: + +``` python +# Creates two targets: +# +# example:tests@parametrize=py2 +# example:tests@parametrize=py3 + +python_test( + name="tests", + source="tests.py", + **parametrize("py2", interpreter_constraints=["==2.7.*"], resolve="lock-a"), + **parametrize("py3", interpreter_constraints=[">=3.6,<3.7"], resolve="lock-b"), +) +``` + +In addition, `parametrize` can now be used with a single value (`field=parametrize("for-consistency")`), and now works on target generations in more cases (particularly those with "plugin" fields). + +### Performance + +Some processes are run with more consistent "color" configuration which may result in more cache hits: Pytest, Helm unittest and shunit2 processes now always run with colored output enabled. If [`[GLOBAL].colors`](https://www.pantsbuild.org/2.19/reference/global-options#colors) is not enabled, Pants removes the coloring before displaying. + +### Remote caching/execution + +Large files that need to be stored to a remote cache are now streamed to it directly from disk, in a way that should reduce overhead and increase concurrency ([#19711](https://github.com/pantsbuild/pants/pull/19711)). + +The deprecation has expired for the `[GLOBAL].remote_store_chunk_upload_timeout_seconds` and `[GLOBAL].remote_cache_read_timeout_millis` options. Use [`[GLOBAL].remote_store_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_store_rpc_timeout_millis) and [`[GLOBAL].remote_cache_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_cache_rpc_timeout_millis) instead. + +### Backends + +#### Docker + +The [docker backend](https://www.pantsbuild.org/2.19/docs/docker) now has explicit [support for using `buildx`](https://www.pantsbuild.org/2.19/docs/docker#buildx-support) (and thus BuildKit), via the new [`use_buildx` option](https://www.pantsbuild.org/2.19/reference/subsystems/docker#use_buildx). This also allows adding few additional fields for [`docker_image` targets](https://www.pantsbuild.org/2.19/reference/targets/docker_image), for `buildx`-specific functionality: + +- [`cache_from` and `cache_to`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#cache_to) for using external cache storage backends +- [`build_platform`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#build_platform) for configuring multi-platform builds +- [`output`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#output) to control how/where `buildx` outputs an image when running `pants package ::` + +#### JVM + +JVM lock-files are more reliable, handling [some cases](https://github.com/pantsbuild/pants/issues/20162) of Coursier not including dependencies when expected. + +Using [`shading_rules`](https://www.pantsbuild.org/2.19/reference/targets/deploy_jar#shading_rules) is now supported on `deploy_jar` targets defined in directories of the build root. + +##### Kotlin + +The Kotlin analyzer now runs using the Zulu JDK, to be able to run natively on Apple Silicon (arm64 macOS). + +##### Java + +Dependency inference for Java now supports code using recently added syntax like `sealed class` & `permits`, `switch` expressions and `yield`. + +##### Scala + +Scala 3 is now supported when using [the BSP in an IDE](https://www.pantsbuild.org/2.19/docs/jvm/java-and-scala#working-in-an-ide). + +#### OpenAPI + +[The new `pants.backend.experimental.openapi.lint.openapi_format` backend](https://www.pantsbuild.org/2.19/reference/subsystems/openapi-format) supports running [openapi-format](https://github.com/thim81/openapi-format) to format `openapi_...` targets. + +#### Protobuf + +[The `pants.backend.codegen.protobuf.python` backend](https://www.pantsbuild.org/2.19/docs/python/integrations/protobuf-and-grpc) now supports: + +- `protobuf_sources` targets that are part of multiple Python resolves, like `python_resolve=parametrize("first-resolve", "second-resolve")`. +- `[python-infer].ambiguity_resolution = "by_source_root"` to infer dependencies without warnings or errors in more cases. + +Version 24.4 of [the `protoc` compiler](https://www.pantsbuild.org/2.19/reference/subsystems/protoc) is included as a known version (but is not the default). It can be selected by setting `[protoc].version = "24.4"`. This version has native support for Apple Silicon (arm64 macOS). + +[Buf (`pants.backend.codegen.protobuf.lint.buf`)](https://www.pantsbuild.org/2.19/reference/subsystems/buf) now correctly ignores `buf.work.yaml`, `buf.lock`, `buf.gen.lock` when running as a linter. + +#### Python + +**Deprecation**: Using the `platforms` field on `pex_binary` is now deprecated. It is not a recommended way to build for platforms other than the local one, as it is a lossy abbreviation of the target platform and often leads to binaries that don't work. To replace this, either [use `complete_platforms` to continue cross-compiling](https://www.pantsbuild.org/2.19/docs/python/overview/pex#setting-the-target-platforms-for-a-pex) or use [an environment matching the target platform](https://www.pantsbuild.org/2.19/docs/using-pants/environments). + +Python tests can now be [attempted multiple times](https://www.pantsbuild.org/2.19/docs/using-pants/using-pants-in-ci#tip-automatically-retry-failed-tests), if they fail. This can help with limiting the impact of flaky tests. For instance, to require tests to fail three times before the overall `pants test` goal fails, set [`[test].attempts_default = 3`](https://www.pantsbuild.org/2.19/reference/goals/test#attempts_default). In this case, a very flaky test might fail on the first and second runs but finally pass on the third run, and thus the overall Pants invocation would pass. + +Pants now uses version 2.1.148 of the PEX CLI by default, which includes support for Python 3.12. To use Python 3.12, you will need to set [`[python].pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) to `23.2` or newer (or `latest`), and ensure all of your tools use resolves generated with this new version (Pants' built-in ones are not, yet). + +Python interpreters provided by ASDF are now searched by default, in addition those provided by pyenv and on the system `PATH`, by being included in the [`[python-bootstrap].search_path`](https://www.pantsbuild.org/2.19/reference/subsystems/python-bootstrap#search_path) option. + +Many more "groups" of PyPI dependencies have default module mappings that guide how an `import` statement in code matches particular `python_requirement`s. All packages from the `azure-...`, `django-...`, `google-cloud-...`, `opentelemetry-instrumentation-...`, `oslo-...` ecosystems are now matched to modules matching their usual conventions. In addition, packages starting with `python-...` now have that `python-` prefix removed by default: for instance, a package like `python-example-name` will be implicitly assumed to be imported like `import example_name`. [The value of any `module_mapping` field](https://www.pantsbuild.org/2.19/reference/targets/python_requirements#module_mapping) can thus be tweaked (hopefully simplified!). + +[The `[generate-lockfiles].diff` option](https://www.pantsbuild.org/2.19/reference/goals/generate-lockfiles#diff) is now `True` by default, so running `pants generate-lockfiles` now pretty-prints any differences in the dependencies and their versions. + +Additional features and fixes: + +- [Additional arguments](https://www.pantsbuild.org/2.19/reference/goals/repl#args) can be passed to the IPython REPL, like `pants repl --shell=ipython :: -- -i helloworld/main.py`. +- Additional arguments can be passed to the underlying PEX invocations when building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via the new [`pex3_venv_create_extra_args`](https://www.pantsbuild.org/2.19/reference/targets/python_aws_lambda_function#pex3_venv_create_extra_args) field. For instance, if dependencies have packaged files in unexpected locations, passing `pex3_venv_create_extra_args=["--collisions-ok"]` can side-step collision errors. +- The [`pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) field no longer restricts the values, and so allows more flexibility when upgrading the PEX CLI if it supports newer Pip versions. +- Running tests or `pants run` a source file now make binaries provided by `python_requirement` available for execution as normal processes (for instance, using `subprocess.run(["name-of-binary", ...])`). +- The `PATH` environment variable can now be set using [`[subprocess-environment].env_vars`](https://www.pantsbuild.org/2.19/reference/subsystems/subprocess-environment#env_vars) +- Import statements within a `with contextlib.suppress(ImportError)` context are now weak, and so no longer warn if not provided by a dependency. +- Computing an aggregate coverage sandbox report is now more reliable in the presence of name collisions in files created via code-generation (including `relocated_files`). +- Pyright (`pants.backend.experimental.python.typecheck.pyright`) now runs with an appropriately initialised environment and so runs more reliably (especially in transient CI environments, where "named caches" might not be preserved). +- [Ruff (`pants.backend.experimental.python.lint.ruff`)](https://www.pantsbuild.org/2.19/reference/subsystems/ruff) now properly respects any `exclude` configuration from `ruff.toml` or `pyproject.toml`. + +The following code has been removed, because deprecations have expired: + +- Support for building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via Lambdex has been fully replaced with the new `zip` layout: remove the `[lambdex]` section and its `layout` setting from `pants.toml`. +- Passing both `runtime` and `complete_platforms` to a FaaS target (`python_aws_lambda_function`, `python_google_cloud_function`) is now longer supported, as `complete_platforms` fully overrides `runtime`. +- Dependency inference now only supports running with the new Rust-based parser. That is, the `[python-infer].use_rust_parser` option cannot be disabled and is now unnecessary. + +#### NEW: Semgrep + +[The new `pants.backend.experimental.tools.semgrep` backend](https://www.pantsbuild.org/2.19/reference/subsystems/semgrep) supports running [Semgrep](https://semgrep.dev) as a local linter on all files that Pants knows about (any target with a `source` or `sources` field). Configuration files are automatically discovered. + +#### Shell + +[The `experimental_test_shell_command` target](https://www.pantsbuild.org/2.19/reference/targets/experimental_test_shell_command) now obeys its `environment` field, and thus runs the command within the specified environment instead of the host. + +#### Terraform + +The `check` goal runs `terraform validate` on [`terraform_module`s targets](https://www.pantsbuild.org/2.19/reference/targets/terraform_module) by default, again. For modules for which this doesn't work and/or isn't desirable, use [the new `skip_terraform_validate` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_module#skip_terraform_validate). (This restores the behaviour from Pants 2.17 and earlier, with the addition of the `skip` field, based on feedback about Pants 2.18.0 which switched to only validating `terraform_deployment`s.) + +[`terraform_deployment`'s `var_files` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_deployment#var_files) now supports files in a different directory to the `root_module`. + +Transitive dependencies are now automatically included, in addition to direct dependencies. + +### Plugin API changes + +Processes, especially tests, can now be run with retries on failure using `ProcessWithRetries` ([#20378](https://github.com/pantsbuild/pants/issues/20378)). In addition, to support tests that have been retried multiple times, `TestResult.from_fallible_process_result` now accepts a tuple of multiple `FallibleProcessResult`s, instead of just one. ([#19760](https://github.com/pantsbuild/pants/pull/19760)). + +Some `@rule`s may now need to pass `canonical_name_suffix` in preparation for ["call by name"](https://github.com/pantsbuild/pants/issues/19730). ([#19755](https://github.com/pantsbuild/pants/pull/19755)) + +The new `TransitivelyExcludeDependenciesRequest` can be used to emulate transitive excludes (`!!
`). ([#20080](https://github.com/pantsbuild/pants/pull/20080)) + +The `TestResult.stdout` and `TestResult.stderr` fields are now removed, in favour of `stdout_bytes` and `stderr_bytes`. ([#19768](https://github.com/pantsbuild/pants/pull/19768)) + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/docs/notes/2.2.x.md b/docs/notes/2.2.x.md new file mode 100644 index 000000000..bd0c83037 --- /dev/null +++ b/docs/notes/2.2.x.md @@ -0,0 +1,257 @@ +# 2.2.x Stable Releases + +See https://www.pantsbuild.org/v2.2/docs/release-notes-2-2 for an overview of the changes in this release series. + +This is the first release to require having a Python 3.7 or 3.8 interpreter to run Pants. Run `curl -L -o ./pants +https://raw.githubusercontent.com/pantsbuild/setup/2f079cbe4fc6a1d9d87decba51f19d7689aee69e/pants` to update your +`./pants` script to choose the correct interpreter. + +## 2.2.4 (Jun 16, 2021) + +The fifth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.4rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12161](https://github.com/pantsbuild/pants/pull/12161)) + +## 2.2.3 (May 6, 2021) + +The fourth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.3rc0 (Apr 29, 2021) + +### User API Changes + +* Revert deprecation of `interpreter_constraints` field for `pex_binary` and `python_awslambda` ([#11981](https://github.com/pantsbuild/pants/pull/11981)) + +## 2.2.2 (Apr 20, 2021) + +The third stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.2rc1 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11918](https://github.com/pantsbuild/pants/pull/11918)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11906](https://github.com/pantsbuild/pants/pull/11906)) + +## 2.2.2rc0 (April 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11881](https://github.com/pantsbuild/pants/pull/11881)) + +## 2.2.1 (Mar 18, 2021) + +The second stable release in the `2.2.x` series, with no changes since the previous rc. + +## 2.2.1rc2 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11725](https://github.com/pantsbuild/pants/pull/11725)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (cherrypick of #11711) ([#11714](https://github.com/pantsbuild/pants/pull/11714)) + +## 2.2.1rc1 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (Cherry-pick of #11673) ([#11676](https://github.com/pantsbuild/pants/pull/11676)) + +## 2.2.1rc0 (March 10, 2021) + +### Bug fixes + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11661](https://github.com/pantsbuild/pants/pull/11661)) + +* Fix MyPy to work by default with Python 3.9+ (Cherry-pick of #11537) ([#11542](https://github.com/pantsbuild/pants/pull/11542)) + +* Fix excessive mmap-ing in LMDB (cherrypick of #11513) ([#11516](https://github.com/pantsbuild/pants/pull/11516)) + +## 2.2.0 (Jan 20, 2021) + +The first stable release in the `2.2.x` series, with no changes since the previous `rc`! + +## 2.2.0rc2 (Jan 11, 2021) + +### Bug fixes + +* Fix `--opt` options in constraints.txt files erroring (#11407) ([#11425](https://github.com/pantsbuild/pants/pull/11425)) + +* Fix older versions of `tar` not working when creating an `archive` (#11413) ([#11419](https://github.com/pantsbuild/pants/pull/11419)) + +## 2.2.0rc1 (Dec 30, 2020) + +### Bug fixes + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +* Fix docstring deprecation warning for Bandit. ([#11395](https://github.com/pantsbuild/pants/pull/11395)) + +## 2.2.0rc0 (Dec 28, 2020) + +### New Features + +* Infer imports of the style `__import__("string_literal")`. ([#11326](https://github.com/pantsbuild/pants/pull/11326)) + +* Make the number of threads used to run @rules in the Engine configurable. ([#11325](https://github.com/pantsbuild/pants/pull/11325)) + +* Expose `--resolver-version` to support using the new pip resolver, deprecate `--cache-ttl`. ([#11349](https://github.com/pantsbuild/pants/pull/11349)) + +### User API Changes + +* Bump default version of Pytest to 6.2.x ([#11381](https://github.com/pantsbuild/pants/pull/11381)) + +* Upgrade packaging from 20.7 to 20.8 ([#11343](https://github.com/pantsbuild/pants/pull/11343)) + +* Deprecate the `sources` field for `pex_binary` and `python_awslambda` ([#11332](https://github.com/pantsbuild/pants/pull/11332)) + +### Plugin API Changes + +* Deprecate Subsystems as global singletons ([#11388](https://github.com/pantsbuild/pants/pull/11388)) + +* Add shortcut public API method to return cumulative timings data. ([#11385](https://github.com/pantsbuild/pants/pull/11385)) + +* Remove unused get_critical_path_timings() API ([#11387](https://github.com/pantsbuild/pants/pull/11387)) + +* Deprecate not setting `help` for Targets, Fields, and Subsystems ([#11380](https://github.com/pantsbuild/pants/pull/11380)) + +* RunTracker: add goals property ([#11382](https://github.com/pantsbuild/pants/pull/11382)) + +### Bug fixes + +* Explicitly flush stdio in the nailgun client. ([#11383](https://github.com/pantsbuild/pants/pull/11383)) + +* Ignore exit on the nailgun Client output_stream. ([#11358](https://github.com/pantsbuild/pants/pull/11358)) + +### Performance + +* avoid unnecessary copy in cache code path ([#11348](https://github.com/pantsbuild/pants/pull/11348)) + +* use Bytes instead of Vec for protobuf binary fields ([#11342](https://github.com/pantsbuild/pants/pull/11342)) + +* refactor all gRPC usages to use Tonic instead of grpcio ([#11307](https://github.com/pantsbuild/pants/pull/11307)) + +* fs.Snapshot is declared in Rust ([#11328](https://github.com/pantsbuild/pants/pull/11328)) + +* Interrupt Graph tasks on Ctrl+C ([#11322](https://github.com/pantsbuild/pants/pull/11322)) + +### Documentation + +* Pin references to docs to the current version ([#11369](https://github.com/pantsbuild/pants/pull/11369)) + +* Generate docs references for target types ([#11340](https://github.com/pantsbuild/pants/pull/11340)) + +## 2.2.0.dev2 (Dec 16, 2020) + +### Plugin API Changes + +* Upgrade packaging from 20.4 to 20.7 ([#11302](https://github.com/pantsbuild/pants/pull/11302)) + +* Update default values for run tracker and streaming work unit handlers to more commonly used values. ([#11292](https://github.com/pantsbuild/pants/pull/11292)) + +### Bug fixes + +* Fix filtering of log messages generated in native code. ([#11313](https://github.com/pantsbuild/pants/pull/11313)) + +* Upgrade to Pex 2.1.24 to fix macOS Big Sur. ([#11312](https://github.com/pantsbuild/pants/pull/11312)) + +* Clean the graph speculatively, and cancel nodes when interest is lost ([#11308](https://github.com/pantsbuild/pants/pull/11308)) + +* Implement native Process cache scoping to fix --test-force ([#11291](https://github.com/pantsbuild/pants/pull/11291)) + +## 2.2.0.dev1 (Dec 09, 2020) + +### New Features + +* Add shorthand to use a file name for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` field ([#11261](https://github.com/pantsbuild/pants/pull/11261)) + +* Add dependency inference for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` fields ([#11245](https://github.com/pantsbuild/pants/pull/11245)) + +* Allow file arguments to work with the `app.py` shorthand for `pex_binary` and `python_awslambda` ([#11263](https://github.com/pantsbuild/pants/pull/11263)) + +* Warn if `package` and `test` have no matching files/targets ([#11240](https://github.com/pantsbuild/pants/pull/11240)) + +### User API Changes + +* 2.2.0.dev1 deprecations. ([#11281](https://github.com/pantsbuild/pants/pull/11281)) + +* Require `pex_binary`'s `platforms` field to be a list ([#11246](https://github.com/pantsbuild/pants/pull/11246)) + +* Remove deprecated `--pants-distdir-legacy-paths` option ([#11247](https://github.com/pantsbuild/pants/pull/11247)) + +### Bug fixes + +* Increase Pants' python recursion limit by default, and allow it to be overridden. ([#11271](https://github.com/pantsbuild/pants/pull/11271)) + +* Stop logging if Pyenv not installed ([#11243](https://github.com/pantsbuild/pants/pull/11243)) + +### Performance + +* Reduce interning overhead ([#11262](https://github.com/pantsbuild/pants/pull/11262)) + +* Parallelize the `Owners` rule more ([#11260](https://github.com/pantsbuild/pants/pull/11260)) + +### Documentation + +* Update Pants prerequisites facts. ([#11265](https://github.com/pantsbuild/pants/pull/11265)) + +## 2.2.0.dev0 (Nov 24, 2020) + +### New Features + +* Add dependency inference for Protobuf <-> Protobuf imports ([#11205](https://github.com/pantsbuild/pants/pull/11205)) + +* Add dependency inference for Python imports of Protobuf/gRPC ([#11195](https://github.com/pantsbuild/pants/pull/11195)) + +* Allow setting the entry point for a `pex_binary` to `` ([#11199](https://github.com/pantsbuild/pants/pull/11199)) + +* Add support for filtering file vs BUILD targets ([#11126](https://github.com/pantsbuild/pants/pull/11126)) + +* Cancel sessions rather than killing pantsd ([#11123](https://github.com/pantsbuild/pants/pull/11123)) + +* Remoting: allow timeout parameters to be configured ([#11125](https://github.com/pantsbuild/pants/pull/11125)) + +### User API Changes + +* Require Python 3.7 or 3.8 to run Pants ([#11135](https://github.com/pantsbuild/pants/pull/11135)) + +* Deprecate `mypy_source_plugin` and `pylint_source_plugin` targets in favor of `python_library` ([#11233](https://github.com/pantsbuild/pants/pull/11233)) + +* Remove deprecated `compatibility` field in favor of `interpreter_constraints` ([#11225](https://github.com/pantsbuild/pants/pull/11225)) + +* Upgrade to Pex 2.1.21. ([#11131](https://github.com/pantsbuild/pants/pull/11131)) + +### Plugin API Changes + +* Remove `PrimitiveField` and align `AsyncField` with `Field` ([#11231](https://github.com/pantsbuild/pants/pull/11231)) + +* Change `AsyncField` to be `AsyncFieldMixin` ([#11232](https://github.com/pantsbuild/pants/pull/11232)) + +* Deprecate `TransitiveTargetsRequestLite` and `DependenciesRequestLite` now that graph cycle is fixed ([#11188](https://github.com/pantsbuild/pants/pull/11188)) + +### Bug fixes + +* Fix dependency inference parsing of Python 3.8 and 3.9 syntax ([#11213](https://github.com/pantsbuild/pants/pull/11213)) + +* Set the soft ulimit value more conservatively to fix macOS Big Sur issue ([#11194](https://github.com/pantsbuild/pants/pull/11194)) + +* Move graph cycle detection to Rust to fix recursion limit. ([#11202](https://github.com/pantsbuild/pants/pull/11202)) + +* Fix relative imports in dependency inference ([#11181](https://github.com/pantsbuild/pants/pull/11181)) + +* Remove extraneous info level log line ([#11228](https://github.com/pantsbuild/pants/pull/11228)) + +* Fix Coverage not finding resource files when generating a report ([#11129](https://github.com/pantsbuild/pants/pull/11129)) + +* Fix `test` results showing up twice by removing `TargetsWithOrigin` ([#11128](https://github.com/pantsbuild/pants/pull/11128)) + +* Make a few minor reliability fixes to remote caching code ([#11130](https://github.com/pantsbuild/pants/pull/11130)) + +### Documentation + +* Improve error message for no applicable targets ([#11215](https://github.com/pantsbuild/pants/pull/11215)) diff --git a/docs/notes/2.20.x.md b/docs/notes/2.20.x.md new file mode 100644 index 000000000..e224bb98f --- /dev/null +++ b/docs/notes/2.20.x.md @@ -0,0 +1 @@ +# 2.20.x Placeholder diff --git a/docs/notes/2.3.x.md b/docs/notes/2.3.x.md new file mode 100644 index 000000000..5fb472fd6 --- /dev/null +++ b/docs/notes/2.3.x.md @@ -0,0 +1,241 @@ +# 2.3.x Stable Releases + +See https://www.pantsbuild.org/v2.3/docs/release-notes-2-3 for an overview of the changes in this release series. + +## 2.3.3 (Jun 16, 2021) + +The fourth stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.3rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12160](https://github.com/pantsbuild/pants/pull/12160)) + +## 2.3.2 (May 6, 2021) + +The third stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.2rc0 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11980](https://github.com/pantsbuild/pants/pull/11980)) + +## 2.3.1 (Apr 20, 2021) + +The second stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.1rc3 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11917](https://github.com/pantsbuild/pants/pull/11917)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11903](https://github.com/pantsbuild/pants/pull/11903)) + +## 2.3.1rc2 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11882](https://github.com/pantsbuild/pants/pull/11882)) + +### Documentation + +* Fix typo in `tags` help message ([#11838](https://github.com/pantsbuild/pants/pull/11838)) + +## 2.3.1rc1 (Mar 25, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.35 to fix interpreter-rexec loop. (cherrypick of #11799) ([#11801](https://github.com/pantsbuild/pants/pull/11801)) + +* Kill `SETTABLE_ENV_VARS` allow list to allow passing ssh-agent config. (cherrypick of #11743) ([#11791](https://github.com/pantsbuild/pants/pull/11791)) + +## 2.3.1rc0 (Mar 21, 2021) + +### Bug fixes + +* Fix remote execution: use `append_only_caches` in Pex processes. (#11760) ([#11765](https://github.com/pantsbuild/pants/pull/11765)) + +## 2.3.0 (Mar 18, 2021) + +The first stable release in the `2.3.x` series, with no changes since the previous rc. + +## 2.3.0rc4 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11726](https://github.com/pantsbuild/pants/pull/11726)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (#11711) ([#11713](https://github.com/pantsbuild/pants/pull/11713)) + +## 2.3.0rc3 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (#11673) ([#11675](https://github.com/pantsbuild/pants/pull/11675)) + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11660](https://github.com/pantsbuild/pants/pull/11660)) + +## 2.3.0rc2 (Mar 08, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. (Cherry-pick of #11647) ([#11651](https://github.com/pantsbuild/pants/pull/11651)) + +* Ensure that ancestor files at the buildroot are found (Cherry-pick of #11632) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +* Handle two edge cases with `./pants tailor` (Cherry-pick of #11625) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +## 2.3.0rc1 (Feb 25, 2021) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv shebangs being too long for some Linux systems. (Cherry-pick of #11604) ([#11606](https://github.com/pantsbuild/pants/pull/11606)) + +### Documentation + +* Less chatty plugin resolution logging (Cherry-pick of #11593) ([#11595](https://github.com/pantsbuild/pants/pull/11595)) + +## 2.3.0rc0 (Feb 23, 2021) + +### New Features + +* A `tailor` goal to generate BUILD file targets automatically ([#11517](https://github.com/pantsbuild/pants/pull/11517)) + +* Generate `protobuf_library` targets with `./pants tailor` ([#11582](https://github.com/pantsbuild/pants/pull/11582)) + +* Support `--venv` mode for `pex_binary` targets. ([#11510](https://github.com/pantsbuild/pants/pull/11510)) + +* Auto-discover CA certs if TLS is used and `--remote-ca-certs-path` is unset ([#11572](https://github.com/pantsbuild/pants/pull/11572)) + +### User API Changes + +* Deprecate --setuptools-{entry-point,interpreter-constraints} ([#11539](https://github.com/pantsbuild/pants/pull/11539)) + +* Deprecate `--remote-store-server` and `--remote-execution-server` in favor of `--remote-store-address` and `--remote-execution-address` ([#11570](https://github.com/pantsbuild/pants/pull/11570)) + +* Deprecate unused `--remote-store-initial-timeout`, `--remote-store-timeout-multiplier`, `--remote-store-maximum-timeout`, `--remote-store-connection-limit`, and `--remote-store-thread-count` ([#11577](https://github.com/pantsbuild/pants/pull/11577)) + +* Upgrade Pex to 2.1.31. ([#11588](https://github.com/pantsbuild/pants/pull/11588)) + +### Bug fixes + +* Fix Black to work by default with Python 3.9 ([#11541](https://github.com/pantsbuild/pants/pull/11541)) + +* Fix MyPy to work by default with Python 3.9 ([#11537](https://github.com/pantsbuild/pants/pull/11537)) + +### Performance + +* Use --venv mode for internal PEXes. ([#11557](https://github.com/pantsbuild/pants/pull/11557)) + +### Documentation + +* Improve error message for unrecognized BUILD file symbols ([#11564](https://github.com/pantsbuild/pants/pull/11564)) + +## 2.3.0.dev3 (Feb 3, 2021) + +### New Features + +* Add `--remote-auth-plugin` ([#11503](https://github.com/pantsbuild/pants/pull/11503)) + +### User API Changes + +* Stop pinning `zipp` by default in `[pytest].pytest_plugins` ([#11512](https://github.com/pantsbuild/pants/pull/11512)) + +* Change default for `[pytest].pytest_plugins` to use pytest-cov 2.11.x ([#11514](https://github.com/pantsbuild/pants/pull/11514)) + +* Change default versions for `setuptools` options ([#11515](https://github.com/pantsbuild/pants/pull/11515)) + +### Plugin API Changes + +* Upgrade packaging from 20.8 to 20.9 ([#11508](https://github.com/pantsbuild/pants/pull/11508)) + +## 2.3.0.dev2 (Jan 31, 2021) + +### New Features + +* Allow specifying files with `--url-template`. ([#11499](https://github.com/pantsbuild/pants/pull/11499)) + +### User API Changes + +* Bump default MyPy version to 0.800 ([#11506](https://github.com/pantsbuild/pants/pull/11506)) + +* Add `--remote-store-headers` and fix `--remote-execution-headers` to not impact remote caching ([#11501](https://github.com/pantsbuild/pants/pull/11501)) + +* Deprecate `[python-setup].resolver_version` defaulting to pip legacy resolver ([#11497](https://github.com/pantsbuild/pants/pull/11497)) + +### Performance + +* Make remote cache writes async ([#11479](https://github.com/pantsbuild/pants/pull/11479)) + +## 2.3.0.dev1 (Jan 21, 2021) + +### New Features + +* Support Pex CLI `--unzip` and `--include-tools`. ([#11483](https://github.com/pantsbuild/pants/pull/11483)) + +### User API Changes + +* Remove deprecated `--pants-bootstrapdir` and `--pants-configdir` options ([#11491](https://github.com/pantsbuild/pants/pull/11491)) + +### Plugin API Changes + +* Remove `RunInfo` class ([#11456](https://github.com/pantsbuild/pants/pull/11456)) + +### Bug fixes + +* Fix use of remote store when in eager cache mode ([#11468](https://github.com/pantsbuild/pants/pull/11468)) + +* Workaround Rust 1.49 breaking macOS processes with a materialized argv0 ([#11452](https://github.com/pantsbuild/pants/pull/11452)) + +### Performance + +* Use speculation for remote cache reads ([#11429](https://github.com/pantsbuild/pants/pull/11429)) + +### Documentation + +* Change logging level for Scrubbed PYTHONPATH to be debug ([#11480](https://github.com/pantsbuild/pants/pull/11480)) + +* Add failure logging to the StoreGCService. ([#11460](https://github.com/pantsbuild/pants/pull/11460)) + +* Document address storage in AsyncFieldMixin. ([#11448](https://github.com/pantsbuild/pants/pull/11448)) + +## 2.3.0.dev0 (Jan 10, 2021) + +### User API Changes + +* Remove support for pex_binary sources. ([#11445](https://github.com/pantsbuild/pants/pull/11445)) + +* Remove custom targets for Pylint and MyPy. ([#11441](https://github.com/pantsbuild/pants/pull/11441)) + +* Remove deprecated --pantsd-pailgun-quit-timeout option. ([#11440](https://github.com/pantsbuild/pants/pull/11440)) + +* Remove DeprecatedRunTracker. ([#11439](https://github.com/pantsbuild/pants/pull/11439)) + +* Remove deprecated PythonAwsLambda fields. ([#11438](https://github.com/pantsbuild/pants/pull/11438)) + +### Plugin API Changes + +* Remove support for 'Lite' request object hacks. ([#11444](https://github.com/pantsbuild/pants/pull/11444)) + +* Remove support for docstring help. ([#11442](https://github.com/pantsbuild/pants/pull/11442)) + +* Remove deprecated v1 Subsystem facilities ([#11424](https://github.com/pantsbuild/pants/pull/11424)) + +* Remove python workunits ([#11416](https://github.com/pantsbuild/pants/pull/11416)) + +### Bug fixes + +* Add `--remote-cache-eager-fetch` to reduce unreliability ([#11396](https://github.com/pantsbuild/pants/pull/11396)) + +* Fix older versions of `tar` not working when creating an `archive` ([#11413](https://github.com/pantsbuild/pants/pull/11413)) + +* Fix `--opt` options in constraints.txt files erroring ([#11407](https://github.com/pantsbuild/pants/pull/11407)) + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +### Documentation + +* docs: fix simple typo, processs -> process ([#11402](https://github.com/pantsbuild/pants/pull/11402)) diff --git a/docs/notes/2.4.x.md b/docs/notes/2.4.x.md new file mode 100644 index 000000000..a2e3a10f3 --- /dev/null +++ b/docs/notes/2.4.x.md @@ -0,0 +1,248 @@ +# 2.4.x Stable Releases + +See https://www.pantsbuild.org/v2.4/docs/release-notes-2-4 for an overview of the changes in this release series. + +## 2.4.2 (June 16, 2021) + +The third stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.2rc1 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12159](https://github.com/pantsbuild/pants/pull/12159)) + +## 2.4.2rc0 (May 25, 2021) + +### Performance + +* Halve memory usage for remote cache writes (Cherry-pick of #12083) ([#12118](https://github.com/pantsbuild/pants/pull/12118)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12117](https://github.com/pantsbuild/pants/pull/12117)) + +## 2.4.1 (May 6, 2021) + +The second stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.1rc1 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11979](https://github.com/pantsbuild/pants/pull/11979)) + +* Revert "Run MyPy only on specified files, not transitive closure" ([#11969](https://github.com/pantsbuild/pants/pull/11969)) + +### Documentation + +* Make remote cache warning less chatty for missing files (Cherry-pick of #11976) ([#11983](https://github.com/pantsbuild/pants/pull/11983)) + +## 2.4.1rc0 (Apr 20, 2021) + +### User API Changes + +* Run MyPy only on specified files, not transitive closure (Cherry-pick of #11936) ([#11938](https://github.com/pantsbuild/pants/pull/11938)) + +### Bug fixes + +* Fix remote cache writes to not block the Pants run (Cherry-pick of #11947) ([#11950](https://github.com/pantsbuild/pants/pull/11950)) + +## 2.4.0 (Apr 19, 2021) + +The first stable release of the `2.4.x` series, with no changes since the previous `rc`! + +## 2.4.0rc5 (Apr 17, 2021) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown (cherrypick of #11929) ([#11934](https://github.com/pantsbuild/pants/pull/11934)) + +* Retrieve RunTracker args from the OptionsBootstrapper. (cherrypick of #11931) ([#11932](https://github.com/pantsbuild/pants/pull/11932)) + +## 2.4.0rc4 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11916](https://github.com/pantsbuild/pants/pull/11916)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11904](https://github.com/pantsbuild/pants/pull/11904)) + +* Fix remote cache storing of `output_directories` (Cherry-pick of #11895) ([#11896](https://github.com/pantsbuild/pants/pull/11896)) + +## 2.4.0rc3 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11883](https://github.com/pantsbuild/pants/pull/11883)) + +## 2.4.0rc2 (Apr 08, 2021) + +### New Features + +* Add `--remote-cache-warnings` and make remote cache warnings less chatty (Cherry-pick of #11859) ([#11863](https://github.com/pantsbuild/pants/pull/11863)) + +## 2.4.0rc1 (Apr 05, 2021) + +### Bug fixes + +* Fix transitive excludes for generating setup.py (Cherry-pick of #11811) ([#11839](https://github.com/pantsbuild/pants/pull/11839)) + +### Documentation + +* Escape generated markdown values (Cherry-pick of #11841) ([#11846](https://github.com/pantsbuild/pants/pull/11846)) + +* Fix typo in `tags` help message (Cherry-pick of #11838) ([#11837](https://github.com/pantsbuild/pants/pull/11837)) + +## 2.4.0rc0 (Mar 25, 2021) + +### New Features + +* Warn when dependency inference is not used due to ambiguity from >1 target exporting the same Python module. ([#11792](https://github.com/pantsbuild/pants/pull/11792)) + +* Dependency inference: can disambiguate modules with multiple owners via `!` ignores ([#11786](https://github.com/pantsbuild/pants/pull/11786)) + +### User API Changes + +* Deprecate `--process-execution-cleanup-local-dirs` in favor of `--process-execution-local-cleanup` ([#11785](https://github.com/pantsbuild/pants/pull/11785)) + +* Deprecate `--process-execution-use-local-cache` in favor of `--process-execution-local-cache` ([#11781](https://github.com/pantsbuild/pants/pull/11781)) + +### Bug fixes + +* Do not infer dependencies in some edge cases with ambiguity ([#11780](https://github.com/pantsbuild/pants/pull/11780)) + +* Ensure that metrics are gathered during abnormal exits ([#11793](https://github.com/pantsbuild/pants/pull/11793)) + +* Enable configuration of local store size limits ([#11777](https://github.com/pantsbuild/pants/pull/11777)) + +* Fix remote execution of Pexes by properly using `append_only_caches`. ([#11760](https://github.com/pantsbuild/pants/pull/11760)) + +## 2.4.0.dev3 (Mar 19, 2021) + +### New Features + +* Add support for gRPC mypy stub files ([#11658](https://github.com/pantsbuild/pants/pull/11658)) + +* Support extra test runner output. ([#11741](https://github.com/pantsbuild/pants/pull/11741)) + +* Send opt-in anonymous telemetry to bugout ([#11697](https://github.com/pantsbuild/pants/pull/11697)) + +* Add `[python-setup].requirement_constraints_target` for upcoming Poetry macro ([#11724](https://github.com/pantsbuild/pants/pull/11724)) + +### User API Changes + +* Kill `SETTABLE_ENV_VARS` allow list. ([#11743](https://github.com/pantsbuild/pants/pull/11743)) + +### Plugin API Changes + +* Implement the IO methods required for `input`, and add `Console.input`. ([#11703](https://github.com/pantsbuild/pants/pull/11703)) + +* Mutually exclusive options no longer change the `dest` ([#11718](https://github.com/pantsbuild/pants/pull/11718)) + +### Bug fixes + +* Invalidate all files in the graph when file watching receives a rescan event. ([#11734](https://github.com/pantsbuild/pants/pull/11734)) + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. ([#11723](https://github.com/pantsbuild/pants/pull/11723)) + +* Fix source root stripping to not strip `requirements.txt` files in plugins ([#11712](https://github.com/pantsbuild/pants/pull/11712)) + +* Fix the mypy-protobuf interpreter constraint. ([#11695](https://github.com/pantsbuild/pants/pull/11695)) + +### Documentation + +* Make `-ldebug` less chatty when using remote caching ([#11667](https://github.com/pantsbuild/pants/pull/11667)) + +* Improve error message for unmatched globs ([#11699](https://github.com/pantsbuild/pants/pull/11699)) + +## 2.4.0.dev2 (Mar 12, 2021) + +### New Features + +* Add a default `module_mapping` for Python 3rd-party dependency inference. ([#11635](https://github.com/pantsbuild/pants/pull/11635)) + +### User API Changes + +* Warn when depending on `files` targets in a `pex_binary` or `python_awslambda` ([#11659](https://github.com/pantsbuild/pants/pull/11659)) + +* Bump default for `[python-protobuf].mypy_plugin_version` to 2.4 ([#11662](https://github.com/pantsbuild/pants/pull/11662)) + +### Plugin API Changes + +* Require subclassing `WorkunitsCallback` ([#11677](https://github.com/pantsbuild/pants/pull/11677)) + +### Bug fixes + +* Fix the `local_only` option to properly disable remote execution and caching ([#11678](https://github.com/pantsbuild/pants/pull/11678)) + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` ([#11673](https://github.com/pantsbuild/pants/pull/11673)) + +* Fix streaming workunit handler plugins to log to console during run ([#11674](https://github.com/pantsbuild/pants/pull/11674)) + +* Avoid std::io::std usage in UI fallback. ([#11671](https://github.com/pantsbuild/pants/pull/11671)) + +* Improve phrasing for "unknown goal" and "unknown flag" errors. ([#11664](https://github.com/pantsbuild/pants/pull/11664)) + +* Do not interpret passthrough args. ([#11656](https://github.com/pantsbuild/pants/pull/11656)) + +### Performance + +* Streaming workunit handler can finalize async when pantsd used ([#11683](https://github.com/pantsbuild/pants/pull/11683)) + +## 2.4.0.dev1 (Mar 08, 2021) + +### New Features + +* Add support for Pytest config files ([#11624](https://github.com/pantsbuild/pants/pull/11624)) + +### Plugin API Changes + +* Add Python tool support for console scripts. ([#11620](https://github.com/pantsbuild/pants/pull/11620)) + +* Require explicit environment usage ([#11641](https://github.com/pantsbuild/pants/pull/11641)) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. ([#11647](https://github.com/pantsbuild/pants/pull/11647)) + +* Ensure that ancestor files at the buildroot are found. ([#11632](https://github.com/pantsbuild/pants/pull/11632)) + +* Handle two edge cases with `./pants tailor` ([#11625](https://github.com/pantsbuild/pants/pull/11625)) + +### Documentation + +* Wrap `./pants help` based on actual terminal width ([#11378](https://github.com/pantsbuild/pants/pull/11378)) + +* Fix references to the deprecated pants log location. ([#11636](https://github.com/pantsbuild/pants/pull/11636)) + +## 2.4.0.dev0 (Feb 27, 2021) + +### New Features + +* Add `--stats-log` to log metrics at end of run ([#11599](https://github.com/pantsbuild/pants/pull/11599)) + +### User API Changes + +* Deprecate --python-setup-resolver-version option. ([#11611](https://github.com/pantsbuild/pants/pull/11611)) + +* Remove deprecated --remote-store options. ([#11609](https://github.com/pantsbuild/pants/pull/11609)) + +* Remove deprecated --process-execution-speculation options. ([#11610](https://github.com/pantsbuild/pants/pull/11610)) + +* Remove deprecated `--remote-execution-server` and `--remote-store-server` options ([#11603](https://github.com/pantsbuild/pants/pull/11603)) + +* Deprecate unused `--process-execution-local-enable-nailgun` ([#11600](https://github.com/pantsbuild/pants/pull/11600)) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv script shebangs being too long for some Linux systems. ([#11604](https://github.com/pantsbuild/pants/pull/11604)) + +### Performance + +* Release the Pants PEX in `--venv` mode. ([#11591](https://github.com/pantsbuild/pants/pull/11591)) + +### Documentation + +* Less chatty plugin resolution logging ([#11593](https://github.com/pantsbuild/pants/pull/11593)) + diff --git a/docs/notes/2.5.x.md b/docs/notes/2.5.x.md new file mode 100644 index 000000000..a17920088 --- /dev/null +++ b/docs/notes/2.5.x.md @@ -0,0 +1,307 @@ +# 2.5.x Stable Releases + +See https://www.pantsbuild.org/v2.5/docs/release-notes-2-5 for an overview of the changes in this release series. + +## 2.5.2 (Aug 23, 2021) + +The third stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.2rc3 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (cherrypick of #12547) ([#12550](https://github.com/pantsbuild/pants/pull/12550)) + +## 2.5.2rc2 (Aug 06, 2021) + +### Bug fixes + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12505](https://github.com/pantsbuild/pants/pull/12505)) + +## 2.5.2rc1 (Jul 28, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12398](https://github.com/pantsbuild/pants/pull/12398)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12401](https://github.com/pantsbuild/pants/pull/12401)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12440](https://github.com/pantsbuild/pants/pull/12440)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12403](https://github.com/pantsbuild/pants/pull/12403)) + +## 2.5.2rc0 (Jul 20, 2021) + +### Bug fixes + +* Fix anonymous telemetry logging. ([#12345](https://github.com/pantsbuild/pants/pull/12345)) + +## 2.5.1 (Jul 12, 2021) + +The second stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.1rc6 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12309](https://github.com/pantsbuild/pants/pull/12309)) + +* Hash the repo_id in the tag. ([#12306](https://github.com/pantsbuild/pants/pull/12306)) + +## 2.5.1rc5 (Jul 7, 2021) + +### Bug fixes + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12270](https://github.com/pantsbuild/pants/pull/12270)) + +## 2.5.1rc4 (Jun 30, 2021) + +### Bug fixes + +* Fix dependency inference to be ambiguous when >1 type stub for same module (Cherry-pick of #12244) ([#12245](https://github.com/pantsbuild/pants/pull/12245)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped (Cherry-pick of #12230) ([#12233](https://github.com/pantsbuild/pants/pull/12233)) + +## 2.5.1rc3 (Jun 16, 2021) + +### Bug fixes + +* Fix Process output capture re: `working_directory`. (#12197) ([#12198](https://github.com/pantsbuild/pants/pull/12198)) + +## 2.5.1rc2 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12158](https://github.com/pantsbuild/pants/pull/12158)) + +## 2.5.1rc1 (May 28, 2021) + +### Bug fixes + +* Fix `[python-setup].resolver_jobs` default value to recognize containers (Cherry-pick of #12139) ([#12140](https://github.com/pantsbuild/pants/pull/12140)) + +* Fix `[coverage-py].global_report` for >9 test files. (Cherry-pick of #12144) ([#12146](https://github.com/pantsbuild/pants/pull/12146)) + +### Performance + +* Add retries for reads and writes from remote CAS (Cherry pick of #12132) ([#12136](https://github.com/pantsbuild/pants/pull/12136)) + +## 2.5.1rc0 (May 25, 2021) + +### New Features + +* Add support for global coverage reports. (Cherry-pick of #12080) ([#12088](https://github.com/pantsbuild/pants/pull/12088)) + +### User API Changes + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default (Cherry-pick of #12099) ([#12101](https://github.com/pantsbuild/pants/pull/12101)) + +### Performance + +* Halve memory usage for remote cache writes. (Cherry-pick of #12083) ([#12084](https://github.com/pantsbuild/pants/pull/12084)) + +* Fix remote cache writes memory exhaustion. (Cherry-pick of #12087) ([#12089](https://github.com/pantsbuild/pants/pull/12089)) + +* Add retries with exponential back-off for remote cache (Cherry pick of #12102) ([#12124](https://github.com/pantsbuild/pants/pull/12124)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12116](https://github.com/pantsbuild/pants/pull/12116)) + +* Clarify the default values for parallelism options (Cherry-pick of #12119) ([#12126](https://github.com/pantsbuild/pants/pull/12126)) + +* Make timeouts in tests less confusing (Cherry-pick of #12120) ([#12125](https://github.com/pantsbuild/pants/pull/12125)) + +* Fix scheduler initialization log (Cherry-pick of #12105) ([#12111](https://github.com/pantsbuild/pants/pull/12111)) + +## 2.5.0 (May 15, 2021) + +The first stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.0rc3 (May 14, 2021) + +### Bug fixes + +* Fix constraints resolves to pass additional args. (Cherry-pick of #12076) ([#12077](https://github.com/pantsbuild/pants/pull/12077)) + +* Fix `skip_tool` fields not working with `./pants fmt` (Cherry-pick of #12073) ([#12074](https://github.com/pantsbuild/pants/pull/12074)) + +## 2.5.0rc2 (May 12, 2021) + +### Bug fixes + +* Fix module_mapping to work regardless of capitalization and `-` vs `_` (Cherry-pick of #12068) ([#12070](https://github.com/pantsbuild/pants/pull/12070)) + +* Fix PEX_ROOT leak for run and repl goals. (Cherry-pick of #12066) ([#12067](https://github.com/pantsbuild/pants/pull/12067)) + +* Fix Python run for apps that re-exec themselves (Cherry-pick of #12060) ([#12063](https://github.com/pantsbuild/pants/pull/12063)) + +* Fix Shell dependency inference not caching (Cherry-pick of #12052) ([#12056](https://github.com/pantsbuild/pants/pull/12056)) + +## 2.5.0rc1 (May 10, 2021) + +### New Features + +* Add `extra_env_vars` field to `python_tests` target (Cherry-pick of #12022) ([#12023](https://github.com/pantsbuild/pants/pull/12023)) + +### Plugin API Changes + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` (Cherry-pick of #12029) ([#12046](https://github.com/pantsbuild/pants/pull/12046)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd (#12020) ([#12031](https://github.com/pantsbuild/pants/pull/12031)) + +## 2.5.0rc0 (May 04, 2021) + +### New Features + +* Allow skipping linters/formatters/typecheckers by target ([#12008](https://github.com/pantsbuild/pants/pull/12008)) + +* Add `runtime_package_dependencies` field to `shunit2_tests` ([#11997](https://github.com/pantsbuild/pants/pull/11997)) + +* Tell isort to use the config file at `[isort].config` when safe to do so ([#11994](https://github.com/pantsbuild/pants/pull/11994)) + +* Support `[coverage.py]` config files using `pyproject.toml`, `setup.cfg`, and `tox.ini` ([#11993](https://github.com/pantsbuild/pants/pull/11993)) + +* Check parent directories too for config files for tools Pants runs ([#11992](https://github.com/pantsbuild/pants/pull/11992)) + +### User API Changes + +* Make python-setup resolve_all_constraints a bool. ([#11985](https://github.com/pantsbuild/pants/pull/11985)) + +* Add back `interpreter_constraints` field to `python_awslambda` ([#11982](https://github.com/pantsbuild/pants/pull/11982)) + +* Add back `interpreter_constraints` field to `pex_binary` ([#11977](https://github.com/pantsbuild/pants/pull/11977)) + +### Plugin API Changes + +* Add mechanism for targets to opt out of field sets ([#12002](https://github.com/pantsbuild/pants/pull/12002)) + +* Add `TriBoolField` field template ([#12004](https://github.com/pantsbuild/pants/pull/12004)) + +* Discover config files automatically for tools Pants runs ([#11995](https://github.com/pantsbuild/pants/pull/11995)) + +* Don't require a kwarg for `Target` and `Field` constructors ([#11984](https://github.com/pantsbuild/pants/pull/11984)) + +### Performance + +* Don't parse string imports if not enabled ([#11975](https://github.com/pantsbuild/pants/pull/11975)) + +### Documentation + +* Don't include file name in deprecation warnings ([#12007](https://github.com/pantsbuild/pants/pull/12007)) + +* Stop falling back to docstring for help messages for `Target` and `Field` ([#12003](https://github.com/pantsbuild/pants/pull/12003)) + +* Suggest using `./pants tailor` when target doesn't exist for a file argument ([#11996](https://github.com/pantsbuild/pants/pull/11996)) + +* Make remote cache warning less chatty for missing files ([#11976](https://github.com/pantsbuild/pants/pull/11976)) + +## 2.5.0.dev3 (Apr 23, 2021) + +### User API Changes + +* Upgrade the default mypy to a version that works with namespace packages ([#11945](https://github.com/pantsbuild/pants/pull/11945)) + +* Run MyPy only on specified files, not transitive closure ([#11936](https://github.com/pantsbuild/pants/pull/11936)) + +### Plugin API Changes + +* Upgrade Pants to Pex 2.1.40. ([#11964](https://github.com/pantsbuild/pants/pull/11964)) + +### Bug fixes + +* Release pants.pex in `--unzip` mode to workaround not loading properly ([#11955](https://github.com/pantsbuild/pants/pull/11955)) + +* Fix remote cache writes to not block the Pants run ([#11947](https://github.com/pantsbuild/pants/pull/11947)) + +* Fix python process name extraction. ([#11966](https://github.com/pantsbuild/pants/pull/11966)) + +## 2.5.0.dev2 (Apr 16, 2021) + +### New Features + +* Handle URL requirements with constraints files. ([#11907](https://github.com/pantsbuild/pants/pull/11907)) + +* Release Pants with Python 3.9 ([#11858](https://github.com/pantsbuild/pants/pull/11858)) + +* Allow Python files without a file ending ([#11905](https://github.com/pantsbuild/pants/pull/11905)) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown ([#11929](https://github.com/pantsbuild/pants/pull/11929)) + +* Fix bug in Python 2.7 string dep inference. ([#11900](https://github.com/pantsbuild/pants/pull/11900)) + +* Fix remote cache storing of `output_directories` ([#11895](https://github.com/pantsbuild/pants/pull/11895)) + +### Documentation + +* Finesse some docgen markdown<->html issues. ([#11927](https://github.com/pantsbuild/pants/pull/11927)) + +## 2.5.0.dev1 (Apr 10, 2021) + +### New Features + +* Add dependency inference for Shell ([#11857](https://github.com/pantsbuild/pants/pull/11857)) + +* Add Shell support with Shellcheck, shmft, and shunit2 test runner ([#11844](https://github.com/pantsbuild/pants/pull/11844)) + +* Warn if config files detected but not wired up to Pants ([#11852](https://github.com/pantsbuild/pants/pull/11852)) + +* Warn when dependency inference fails for `protobuf_library` targets due to ambiguity ([#11849](https://github.com/pantsbuild/pants/pull/11849)) + +### User API Changes + +* Remove deprecated `unzip` field for `pex_binary` ([#11868](https://github.com/pantsbuild/pants/pull/11868)) + +* Deprecate `--ignore-pants-warnings` in favor of `--ignore-warnings` ([#11851](https://github.com/pantsbuild/pants/pull/11851)) + +### Plugin API changes + +* Require `WorkunitsCallback` to set `can_finish_async` ([#11687](https://github.com/pantsbuild/pants/pull/11687)) + +### Documentation + +* Fix type in tags help message ([#11836](https://github.com/pantsbuild/pants/pull/11836)) + +## 2.5.0.dev0 (Apr 02, 2021) + +### New Features + +* Subset lockfile resolves. ([#11773](https://github.com/pantsbuild/pants/pull/11773)) + +### User API Changes + +* Remove deprecated `--process-execution-cleanup-local-dirs`, `--process-execution-use-local-cache`, and `--process-execution-local-enable-nailgun` ([#11821](https://github.com/pantsbuild/pants/pull/11821)) + +* Always use new pip resolver and remove deprecated `[python-setup].resolver_version` ([#11819](https://github.com/pantsbuild/pants/pull/11819)) + +* Remove deprecated `[setuptools].entry_point` and `[setuptools].interpreter_constraints` ([#11822](https://github.com/pantsbuild/pants/pull/11822)) + +* Remove deprecated `--mypy-plugin-version`, `pantsd.log` file, `--plugin-cache-dir` + +### Plugin API Changes + +* Remove deprecated `InteractiveProcess.hermetic_env`. + +* Add `RuleRunner.write_files()` for more declarative tests ([#11817](https://github.com/pantsbuild/pants/pull/11817)) + +* Upgrade Pex to 2.1.38. ([#11829](https://github.com/pantsbuild/pants/pull/11829)) + +### Bug fixes + +* Fix transitive excludes for generating setup.py ([#11811](https://github.com/pantsbuild/pants/pull/11811)) + +* Fix workunit visibility calculation. ([#11816](https://github.com/pantsbuild/pants/pull/11816)) + +* Fix `__run.sh` to respect working_directory. ([#11814](https://github.com/pantsbuild/pants/pull/11814)) + +### Documentation + +* Fix misleading docs for `[mypy].skip` ([#11810](https://github.com/pantsbuild/pants/pull/11810)) diff --git a/docs/notes/2.6.x.md b/docs/notes/2.6.x.md new file mode 100644 index 000000000..6caac4975 --- /dev/null +++ b/docs/notes/2.6.x.md @@ -0,0 +1,287 @@ +# 2.6.x Stable Releases + +## 2.6.1 (Sep 15, 2021) + +The second stable release of the `2.6.x` series, with no changes since the previous rc! + +## 2.6.1rc3 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12752](https://github.com/pantsbuild/pants/pull/12752)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` (#12711) ([#12730](https://github.com/pantsbuild/pants/pull/12730)) + +### Documentation + +* Fix Toolchain plugin being included in generated reference docs (Cherry-pick of #12642) ([#12647](https://github.com/pantsbuild/pants/pull/12647)) + +## 2.6.1rc2 (Aug 24, 2021) + +### New Features + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs (Cherry-pick of #12598) ([#12600](https://github.com/pantsbuild/pants/pull/12600)) + +### Bug fixes + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS (Cherry-pick of #12581) ([#12631](https://github.com/pantsbuild/pants/pull/12631)) + +* pyenv should fall back to $HOME/.pyenv (Cherry-pick of #12527) ([#12628](https://github.com/pantsbuild/pants/pull/12628)) + +### Documentation + +* Embrace that help strings are markdown. (#12606) ([#12608](https://github.com/pantsbuild/pants/pull/12608)) + +## 2.6.1rc1 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (#12547) ([#12551](https://github.com/pantsbuild/pants/pull/12551)) + +### Performance + +* Stream files into the local store while capturing them (cherrypick of #12563) ([#12572](https://github.com/pantsbuild/pants/pull/12572)) + +## 2.6.1rc0 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations (Cherry-pick of #12510) ([#12511](https://github.com/pantsbuild/pants/pull/12511)) + +* Adds support for Poetry group dependencies (Cherry-pick of #12492) ([#12497](https://github.com/pantsbuild/pants/pull/12497)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv (Cherry-pick of #12506) ([#12507](https://github.com/pantsbuild/pants/pull/12507)) + +### Bug fixes + +* Make the pantsd crash error message more precise. (#12512) ([#12513](https://github.com/pantsbuild/pants/pull/12513)) + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12504](https://github.com/pantsbuild/pants/pull/12504)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. (cherrypick of #12483) ([#12485](https://github.com/pantsbuild/pants/pull/12485)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used (Cherry-pick of #12488) ([#12490](https://github.com/pantsbuild/pants/pull/12490)) + +## 2.6.0 (Jul 30, 2021) + +The first stable release of the `2.6.x` series, with no changes since the previous `rc`! + +## 2.6.0rc4 (Jul 27, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12399](https://github.com/pantsbuild/pants/pull/12399)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12400](https://github.com/pantsbuild/pants/pull/12400)) + +* Do not upload Action inputs for remote cache writes. (Cherry-pick of #12443) ([#12444](https://github.com/pantsbuild/pants/pull/12444)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12439](https://github.com/pantsbuild/pants/pull/12439)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12402](https://github.com/pantsbuild/pants/pull/12402)) + +## 2.6.0rc3 (Jul 20, 2021) + +### User API Changes + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters (Cherry-pick of #12379) ([#12383](https://github.com/pantsbuild/pants/pull/12383)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers` and`extras`) (Cherry-pick of #12323) ([#12385](https://github.com/pantsbuild/pants/pull/12385)) + +* Mark workunits blocked, and skip rendering completed workunits (#12369) ([#12376](https://github.com/pantsbuild/pants/pull/12376)) + +* Fix anonymous telemetry logging. ([#12344](https://github.com/pantsbuild/pants/pull/12344)) + +### Performance + +* Reduce # of resolves when packaging pex_binary and python_awslambda targets (Cherry-pick of #12343) ([#12350](https://github.com/pantsbuild/pants/pull/12350)) + +## 2.6.0rc2 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12303](https://github.com/pantsbuild/pants/pull/12303)) + +## 2.6.0rc1 (Jul 7, 2021) + +### New Features + +* Add support for MyPy report files (Cherry-pick of #12271) ([#12289](https://github.com/pantsbuild/pants/pull/12289)) + +### Bug fixes + +* Hotfix `poetry_requirements` not being recognized as a macro in BUILD files (Cherry-pick of #12263) ([#12264](https://github.com/pantsbuild/pants/pull/12264)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12269](https://github.com/pantsbuild/pants/pull/12269)) + +* Fix poetry_requirements: ignore internal projects. (Cherry-pick of #12280) ([#12296](https://github.com/pantsbuild/pants/pull/12296)) + +* Fix poetry_requirements handling of python. (#12278) ([#12282](https://github.com/pantsbuild/pants/pull/12282)) + +* Include experimental Go backends in pantsbuild.pants (Cherry-pick of #12290) ([#12291](https://github.com/pantsbuild/pants/pull/12291)) + +### Documentation + +* Change how we embed docsite links in help text (Cherry-pick of #12261) ([#12266](https://github.com/pantsbuild/pants/pull/12266)) + +## 2.6.0rc0 (Jun 30, 2021) + +### New Features + +* Add dependency inference for Python third-party type stubs ([#12248](https://github.com/pantsbuild/pants/pull/12248)) + +* Add `poetry_requirements` macro for Poetry support ([#12174](https://github.com/pantsbuild/pants/pull/12174)) + +### User API Changes + +* Update default MyPy to 0.910 ([#12249](https://github.com/pantsbuild/pants/pull/12249)) + +* Update linter versions for `pylint`, `black`, `bandit` ([#12135](https://github.com/pantsbuild/pants/pull/12135)) + +* Upgrade Go distribution to v1.16.5 ([#12247](https://github.com/pantsbuild/pants/pull/12247)) + +### Plugin API Changes + +* Set default user-agent header on gRPC requests with Pants version ([#12241](https://github.com/pantsbuild/pants/pull/12241)) + +* Increment counter on missing file digests ([#12235](https://github.com/pantsbuild/pants/pull/12235)) + +### Bug fixes + +* Add support for multiple requirements for a single package name in the `python_requirements` macro ([#12232](https://github.com/pantsbuild/pants/pull/12232)) + +* Fix dependency inference to be ambiguous when >1 type stub for same module ([#12244](https://github.com/pantsbuild/pants/pull/12244)) + +* Hash the `repo_id` in the tag. ([#12151](https://github.com/pantsbuild/pants/pull/12151)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped ([#12230](https://github.com/pantsbuild/pants/pull/12230)) + +## 2.6.0.dev2 (Jun 16, 2021) + +### New Features + +* Adds `--[no-]watch-filesystem` switch ([#12210](https://github.com/pantsbuild/pants/pull/12210)) + +### User API Changes + +* Deprecate unused `interpreter_constraints` field for `python_awslambda` ([#12208](https://github.com/pantsbuild/pants/pull/12208)) + +### Plugin API Changes + +* Rename remote cache write start and finished metrics ([#12202](https://github.com/pantsbuild/pants/pull/12202)) + +* Support for custom target types in tailor. ([#12156](https://github.com/pantsbuild/pants/pull/12156)) + +### Bug fixes + +* Fallback to `[python-setup].interpreter_constraints` for `python_distribution` targets with no first-party dependencies ([#12207](https://github.com/pantsbuild/pants/pull/12207)) + +* Fix remote cache write attempts metric to record even if write does not finish ([#12204](https://github.com/pantsbuild/pants/pull/12204)) + +* Fix Process output capture re: working_directory. ([#12197](https://github.com/pantsbuild/pants/pull/12197)) + +* Fix `Key` interning race. ([#12152](https://github.com/pantsbuild/pants/pull/12152)) + +### Documentation + +* Fix relocated files help display. ([#12185](https://github.com/pantsbuild/pants/pull/12185)) + +* Suggest `-ldebug` and `--no-process-execution-local-cleanup` in exception messages ([#12180](https://github.com/pantsbuild/pants/pull/12180)) + +## 2.6.0.dev1 (May 29, 2021) + +### New Features + +* Allow setting `--pantsd-max-memory-usage` with `GiB`, `MiB`, and `KiB` units ([#12123](https://github.com/pantsbuild/pants/pull/12123)) + +* Register `strip_pex_env` field with pex_binary. ([#12147](https://github.com/pantsbuild/pants/pull/12147)) + +### User API Changes + +* Fix `[python-setup].resolver_jobs` default value to better recognize containers ([#12139](https://github.com/pantsbuild/pants/pull/12139)) + +* Deprecate broken [lint].reports_dir and make mechanism more flexible ([#12122](https://github.com/pantsbuild/pants/pull/12122)) + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default ([#12099](https://github.com/pantsbuild/pants/pull/12099)) + +### Plugin API Changes + +* Allow overriding option default help display. ([#12128](https://github.com/pantsbuild/pants/pull/12128)) + +* Rename `ProcessCacheScope.NEVER` to `ProcessCacheScope.PER_SESSION` ([#12100](https://github.com/pantsbuild/pants/pull/12100)) + +* Replace `ProcessCacheScope.PER_RESTART` with `ProcessCacheScope.PER_RESTART_ALWAYS` and `ProcessCacheScope.PER_RESTART_SUCCESSFUL` ([#12094](https://github.com/pantsbuild/pants/pull/12094)) + +### Performance + +* add retries for reads and writes from remote CAS ([#12132](https://github.com/pantsbuild/pants/pull/12132)) + +* Fix --coverage-py-global-report for >9 test files. ([#12144](https://github.com/pantsbuild/pants/pull/12144)) + +### Documentation + +* Clarify the default values for parallelism options ([#12119](https://github.com/pantsbuild/pants/pull/12119)) + +* Make timeouts in tests less confusing ([#12120](https://github.com/pantsbuild/pants/pull/12120)) + +* Rewrite error message when Pantsd is shut down during run ([#12107](https://github.com/pantsbuild/pants/pull/12107)) + +* Fix scheduler initialization log ([#12105](https://github.com/pantsbuild/pants/pull/12105)) + +## 2.6.0.dev0 (May 19, 2021) + +### New Features + +* Add support for global coverage reports. ([#12080](https://github.com/pantsbuild/pants/pull/12080)) + +* Add `extra_env_vars` capability to `python_tests()` ([#12022](https://github.com/pantsbuild/pants/pull/12022)) + +* Add `pex_binary` support for `--no-strip-pex-env`. ([#12061](https://github.com/pantsbuild/pants/pull/12061)) + +### User API Changes + +* Remove deprecated `[pytest].config` in favor of `[pytest].config_discovery` ([#12033](https://github.com/pantsbuild/pants/pull/12033)) + +* Remove deprecated `ignore_pants_warnings` in favor of `ignore_warnings` ([#12032](https://github.com/pantsbuild/pants/pull/12032)) + +* Enforce `[python-setup].resolve_all_constraints` being a bool option ([#12034](https://github.com/pantsbuild/pants/pull/12034)) + +* Remove experimental and unused `[python-setup].requirement_constraints_target` option and `_python_constraints` target ([#11998](https://github.com/pantsbuild/pants/pull/11998)) + +### Plugin API Changes + +* Rename `PexInterpreterConstraints` to `InterpreterConstraints` and move to dedicated file ([#12021](https://github.com/pantsbuild/pants/pull/12021)) + +* Add plugin hook for setting up Pytest context ([#12091](https://github.com/pantsbuild/pants/pull/12091)) + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` ([#12029](https://github.com/pantsbuild/pants/pull/12029)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd ([#12020](https://github.com/pantsbuild/pants/pull/12020)) + +* Fix `module_mapping` to work regardless of capitalization and `-` vs `_` ([#12068](https://github.com/pantsbuild/pants/pull/12068)) + +* Fix `PEX_ROOT` leak with run and repl goals. ([#12066](https://github.com/pantsbuild/pants/pull/12066)) + +* Fix constraints resolves to pass additional args. ([#12076](https://github.com/pantsbuild/pants/pull/12076)) + +* Fix `skip_tool` fields not working with `./pants fmt` ([#12073](https://github.com/pantsbuild/pants/pull/12073)) + +* Fix Python run for apps that re-exec themselves. ([#12060](https://github.com/pantsbuild/pants/pull/12060)) + +* Fix remote cache writes memory exhaustion. ([#12087](https://github.com/pantsbuild/pants/pull/12087)) + +* Halve memory usage for remote cache writes. ([#12083](https://github.com/pantsbuild/pants/pull/12083)) + +* Fix Shell dependency inference not caching ([#12052](https://github.com/pantsbuild/pants/pull/12052)) diff --git a/docs/notes/2.7.x.md b/docs/notes/2.7.x.md new file mode 100644 index 000000000..aa8a42028 --- /dev/null +++ b/docs/notes/2.7.x.md @@ -0,0 +1,379 @@ +# 2.7.x Stable Releases + +## 2.7.2 (Nov 17, 2021) + +The third stable release of the `2.7.x` series, with no changes since the previous release candidate. + +## 2.7.2rc2 (Nov 10, 2021) + +### Bug fixes + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13540](https://github.com/pantsbuild/pants/pull/13540)) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13560](https://github.com/pantsbuild/pants/pull/13560)) + +## 2.7.2rc1 (Nov 02, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13460](https://github.com/pantsbuild/pants/pull/13460)) + +## 2.7.2rc0 (Oct 28, 2021) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13402](https://github.com/pantsbuild/pants/pull/13402)) + +## 2.7.1 (Oct 27, 2021) + +The second stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.1rc1 (Oct 11, 2021) + +### User API Changes + +* Add `[mypy].extra_type_stubs` (Cherry-pick of #13180) ([#13211](https://github.com/pantsbuild/pants/pull/13211)) + +### Bug fixes + +* `pantsd` falls back to socket usage if it cannot open a TTY. (cherrypick of #13155) ([#13157](https://github.com/pantsbuild/pants/pull/13157)) + +* Release the GIL while creating a Session. (cherrypick of #13127) ([#13158](https://github.com/pantsbuild/pants/pull/13158)) + +* Do not change working directory when extracting archives (cherrypick of #12497 and #13077) ([#13159](https://github.com/pantsbuild/pants/pull/13159)) + +## 2.7.1rc0 (Oct 04, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.51. (#13098) (Cherry picks of 513647c1 b1d7ab9d) ([#13102](https://github.com/pantsbuild/pants/pull/13102)) + +* Upgrade to Pex 2.1.50 and leverage packed layout. (Cherry picks of 433a4dd 0d36002 7ba06a5) ([#13078](https://github.com/pantsbuild/pants/pull/13078)) + +* Don't invalidate the scheduler when piping output. (cherrypick of #13028) ([#13030](https://github.com/pantsbuild/pants/pull/13030)) + +* Ensure that `Tree` contents are uploaded after creation. (cherrypick of #13008) ([#13009](https://github.com/pantsbuild/pants/pull/13009)) + +## 2.7.0 (Sep 24, 2021) + +The first stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.0rc5 (Sep 22, 2021) + +### Bug fixes + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` (Cherry-pick of #12980) ([#12981](https://github.com/pantsbuild/pants/pull/12981)) + +* Fix spurious "Scheduling: ..." workunits with remote caching (cherrypick of #12973) ([#12975](https://github.com/pantsbuild/pants/pull/12975)) + +## 2.7.0rc4 (Sep 17, 2021) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (cherry-pick of #12842) ([#12861](https://github.com/pantsbuild/pants/pull/12861)) + +### Bug fixes + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile (Cherry-pick of #12900) ([#12905](https://github.com/pantsbuild/pants/pull/12905)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile (#12807) ([#12836](https://github.com/pantsbuild/pants/pull/12836)) + +## 2.7.0rc3 (Sep 10, 2021) + +### User API Changes + +* Add `version` to lockfile metadata headers (cherry-pick of #12788) ([#12816](https://github.com/pantsbuild/pants/pull/12816)) + +### Bug fixes + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference (Cherry-pick of #12818) ([#12819](https://github.com/pantsbuild/pants/pull/12819)) + +* Properly include file dependencies in docker build context (cherrypick of #12758) ([#12823](https://github.com/pantsbuild/pants/pull/12823)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation (cherrypick of #12800) ([#12828](https://github.com/pantsbuild/pants/pull/12828)) + +## 2.7.0rc2 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12750](https://github.com/pantsbuild/pants/pull/12750)) + +## 2.7.0rc1 (Sep 01, 2021) + +### Bug fixes + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile (cherrypick of #12738) ([#12741](https://github.com/pantsbuild/pants/pull/12741)) + +* Add specific and actionable instructions to stale lockfile errors (cherrypick of #12699). ([#12717](https://github.com/pantsbuild/pants/pull/12717)) + +* Improve descriptions of the process executions for PEX_PATH composition. (cherrypick of #12736) ([#12737](https://github.com/pantsbuild/pants/pull/12737)) + +* Absolutize all of the execute_pex_args in the venv script. (cherrypick of #12727) ([#12729](https://github.com/pantsbuild/pants/pull/12729)) + +## 2.7.0rc0 (Aug 31, 2021) + +### New Features + +* Add `[tool].lockfile` (e.g. `[black].lockfile`) for Python tools and activate `./pants generate-lockfiles` by default ([#12684](https://github.com/pantsbuild/pants/pull/12684)) + +* Add `--generate-lockfiles-resolve` to allow generating for only certain tools ([#12676](https://github.com/pantsbuild/pants/pull/12676)) + +* Add `[generate-lockfiles].custom_command` ([#12687](https://github.com/pantsbuild/pants/pull/12687)) + +* Add experimental Docker build rules. ([#12467](https://github.com/pantsbuild/pants/pull/12467)) + +### User API Changes + +* Use Pants's default tool lockfiles by default for Python tools like Black, Pytest, and Flake8 ([#12689](https://github.com/pantsbuild/pants/pull/12689)) + +* Set `[python-setup].invalid_lockfile_behavior` to `error` by default ([#12686](https://github.com/pantsbuild/pants/pull/12686)) + +* Bump default for `pytest-cov` (`[pytest].extra_requirements`) and `[coverage-py].version` so both use `coverage 5.5` ([#12690](https://github.com/pantsbuild/pants/pull/12690)) + +* Pin `GitPython==3.1.18` by default with Bandit to ensure yanked release isn't used in lockfile generation ([#12691](https://github.com/pantsbuild/pants/pull/12691)) + +* Stop pinning `stevedore<3` by default for Bandit ([#12681](https://github.com/pantsbuild/pants/pull/12681)) + +* Stop installing `setuptools` by default with Black, Flake8, Isort, and Yapf ([#12673](https://github.com/pantsbuild/pants/pull/12673)) + +* Stop using `[python-setup].requirements_constraints` when installing tools like Black and MyPy ([#12639](https://github.com/pantsbuild/pants/pull/12639)) + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs ([#12598](https://github.com/pantsbuild/pants/pull/12598)) + +* Type stubs should be registered as normal requirements, not in `[mypy].extra_requirements` ([#12597](https://github.com/pantsbuild/pants/pull/12597)) + +### Plugin API Changes + +* Support indivisible Sources fields ([#12685](https://github.com/pantsbuild/pants/pull/12685)) + +* Render EngineAware parameters in cycle errors from Graph. ([#12668](https://github.com/pantsbuild/pants/pull/12668)) + +* Split PexRequirements into three unioned types ([#12644](https://github.com/pantsbuild/pants/pull/12644)) + +* Add `__repr__` impl for PySnapshot ([#12622](https://github.com/pantsbuild/pants/pull/12622)) + +* Remove the `rationale` field from BashBinaryRequest. ([#12624](https://github.com/pantsbuild/pants/pull/12624)) + +### Bug fixes + +* The `pex_binary` "venv" mode now sees bin scripts. ([#12664](https://github.com/pantsbuild/pants/pull/12664)) + +* Fix UI rendering when multiple tasks have the same label. ([#12659](https://github.com/pantsbuild/pants/pull/12659)) + +* tailor: do not append comma to kwarg with empty tuple ([#12653](https://github.com/pantsbuild/pants/pull/12653)) + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS ([#12581](https://github.com/pantsbuild/pants/pull/12581)) + +* Fix coloring of stderr logs with pantsd ([#12585](https://github.com/pantsbuild/pants/pull/12585)) + +### Performance + +* Decompose requirements pexes ([#12675](https://github.com/pantsbuild/pants/pull/12675)) + +### Documentation + +* Switch log warning rendering to yellow. ([#12596](https://github.com/pantsbuild/pants/pull/12596)) + +* Align `Enriched*Result` colors, sigils, and log levels. ([#12645](https://github.com/pantsbuild/pants/pull/12645)) + +* Fix Toolchain plugin being included in generated reference docs ([#12642](https://github.com/pantsbuild/pants/pull/12642)) + +## 2.7.0.dev4 (Aug 15, 2021) + +### New Features + +* Add additional Google Cloud libraries to dependency inference's default module mapping ([#12553](https://github.com/pantsbuild/pants/pull/12553)) + +* Validate that `pytest-cov` is installed when `[test].use_coverage` is set ([#12534](https://github.com/pantsbuild/pants/pull/12534)) + +### User API Changes + +* Deprecate `--pants-supportdir`, rename `--engine-visualize-to`, and fix help for `--loop`. ([#12558](https://github.com/pantsbuild/pants/pull/12558)) + +* Change the PythonProtobufMypyPlugin option scope. ([#12525](https://github.com/pantsbuild/pants/pull/12525)) + +### Plugin API Changes + +* Upgrade packaging from 20.9 to 21.0 ([#12561](https://github.com/pantsbuild/pants/pull/12561)) + +* Allow newer versions of setuptools and wheel. ([#12555](https://github.com/pantsbuild/pants/pull/12555)) + +* Deprecate an options scope with underscores. ([#12532](https://github.com/pantsbuild/pants/pull/12532)) + +* Remove `TestResult.skip()` in favor of `TestFieldSet.opt_out()` ([#12516](https://github.com/pantsbuild/pants/pull/12516)) + +* Finally get rid of Optionable entirely. ([#12538](https://github.com/pantsbuild/pants/pull/12538)) + +### Bug fixes + +* Fix `shfmt` and `--test-open-coverage` to handle CPU architecture `Platform` changes ([#12546](https://github.com/pantsbuild/pants/pull/12546)) + +* Fix asdf directory lookup. ([#12528](https://github.com/pantsbuild/pants/pull/12528)) + +* Fix shlexing of passthrough args. ([#12547](https://github.com/pantsbuild/pants/pull/12547)) + +* pyenv should fall back to $HOME/.pyenv ([#12527](https://github.com/pantsbuild/pants/pull/12527)) + +### Performance + +* Stream files into the local store while capturing them ([#12563](https://github.com/pantsbuild/pants/pull/12563)) + +* use REAPI batch API for small blob writes ([#12537](https://github.com/pantsbuild/pants/pull/12537)) + +* add capabilties cache for remote store client ([#12522](https://github.com/pantsbuild/pants/pull/12522)) + +## 2.7.0.dev3 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations ([#12510](https://github.com/pantsbuild/pants/pull/12510)) + +* Adds support for Poetry group dependencies ([#12492](https://github.com/pantsbuild/pants/pull/12492)) + +* Tailor pex_binary targets for entry points. ([#12478](https://github.com/pantsbuild/pants/pull/12478)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv ([#12506](https://github.com/pantsbuild/pants/pull/12506)) + +### Plugin API Changes + +* Refactor Pex working directory handling. ([#12479](https://github.com/pantsbuild/pants/pull/12479)) + +### Bug fixes + +* Make the pantsd crash error message more precise. ([#12512](https://github.com/pantsbuild/pants/pull/12512)) + +* Resolve plugins using the PEX --python option. ([#12500](https://github.com/pantsbuild/pants/pull/12500)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. ([#12483](https://github.com/pantsbuild/pants/pull/12483)) + +* Fix default coverage collection. ([#12477](https://github.com/pantsbuild/pants/pull/12477)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used ([#12488](https://github.com/pantsbuild/pants/pull/12488)) + +## 2.7.0.dev2 (Jul 30, 2021) + +### New Features + +* Provide a peek goal to easily view BUILD metadata from command line ([#11347](https://github.com/pantsbuild/pants/pull/11347)) + +* Add `entry_points` field to python_distribution ([#11872](https://github.com/pantsbuild/pants/pull/11872)) + +* Add hadolint to lint Docker files ([#12426](https://github.com/pantsbuild/pants/pull/12426)) + +* Add experimental Docker target type and tailor ([#12431](https://github.com/pantsbuild/pants/pull/12431)) + +* Support `pex_binary` addresses in `provides=setup_py(entry_points)` field ([#12414](https://github.com/pantsbuild/pants/pull/12414)) + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers ([#12392](https://github.com/pantsbuild/pants/pull/12392)) + +* Dependency inference for `pex_binary` and `python_awslambda` can disambiguate ambiguous modules based on file paths ([#12326](https://github.com/pantsbuild/pants/pull/12326)) + +### User API Changes + +* Deprecate `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12450](https://github.com/pantsbuild/pants/pull/12450)) + +* Deprecate `setup_py().with_binaries()` in favor of `entry_points` field ([#12413](https://github.com/pantsbuild/pants/pull/12413)) + +* Add instruction set architecture awareness to platforms and `--url-platform-mapping` options ([#12367](https://github.com/pantsbuild/pants/pull/12367)) + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters ([#12379](https://github.com/pantsbuild/pants/pull/12379)) + +* Upgrade to Lambdex 0.1.5. ([#12461](https://github.com/pantsbuild/pants/pull/12461)) + +* Upgrade to Pex 2.1.44. ([#12342](https://github.com/pantsbuild/pants/pull/12342)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers`, and`extras`) ([#12323](https://github.com/pantsbuild/pants/pull/12323)) + +* Mark workunits blocked, and skip rendering completed workunits ([#12369](https://github.com/pantsbuild/pants/pull/12369)) + +### Performance + +* Do not upload Action inputs for remote cache writes. ([#12443](https://github.com/pantsbuild/pants/pull/12443)) + +* Skip preparation of workunit log messages which will never be rendered. ([#12396](https://github.com/pantsbuild/pants/pull/12396)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies ([#12435](https://github.com/pantsbuild/pants/pull/12435)) + +* Add counters for blob bytes uploaded/downloaded to/from CAS ([#12471](https://github.com/pantsbuild/pants/pull/12471)) + +* Add cache and runtime metadata to Process workunits ([#12469](https://github.com/pantsbuild/pants/pull/12469)) + +* Fix the content type for Pants' wheel long_descriptions. ([#12391](https://github.com/pantsbuild/pants/pull/12391)) + +## 2.7.0.dev1 (Jul 16, 2021) + +### New Features + +* Allow restricting which versions are valid for `ExternalTools`. ([#12332](https://github.com/pantsbuild/pants/pull/12332)) + +* Add yapf Python formatter ([#12317](https://github.com/pantsbuild/pants/pull/12317)) + +* Add ASDF support to interpreter-search-paths ([#12028](https://github.com/pantsbuild/pants/pull/12028)) + +### Plugin API Changes + +* Validate option default values to be of correct type. ([#12331](https://github.com/pantsbuild/pants/pull/12331)) + +### Bug fixes + +* Do not leak subsystems as goals to the command line interface ([#12337](https://github.com/pantsbuild/pants/pull/12337)) + +* Fix anonymous telemetry logging. ([#12340](https://github.com/pantsbuild/pants/pull/12340)) + +* Fixup incorrect platform help message. ([#12320](https://github.com/pantsbuild/pants/pull/12320)) + +### Documentation + +* Improve wording for `pex_binary` `platforms` field help ([#12304](https://github.com/pantsbuild/pants/pull/12304)) + +-------------------------------------------------------------------- + +## 2.7.0.dev0 (Jul 09, 2021) + +### New Features + +* Add skimage module mapping for dependency inference ([#12301](https://github.com/pantsbuild/pants/pull/12301)) + +* Add experimental terraform plugin with fmt and lint rules ([#11973](https://github.com/pantsbuild/pants/pull/11973)) + +* Add support for MyPy report files ([#12271](https://github.com/pantsbuild/pants/pull/12271)) + +* Support running tailor on subdirs. ([#12262](https://github.com/pantsbuild/pants/pull/12262)) + +* Support building dists from preexisting setup.py. ([#12250](https://github.com/pantsbuild/pants/pull/12250)) + +### User API Changes + +* Don't tailor a python_library for a solitary __init__.py. ([#12288](https://github.com/pantsbuild/pants/pull/12288)) + +* Apply a concurrency limit to remote store/cache/execution gRPC requests ([#12256](https://github.com/pantsbuild/pants/pull/12256)) + +### Bug fixes + +* Fix poetry_requirements: ignore internal projects. ([#12280](https://github.com/pantsbuild/pants/pull/12280)) + +* Fix poetry_requirements handling of python. ([#12278](https://github.com/pantsbuild/pants/pull/12278)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` ([#12268](https://github.com/pantsbuild/pants/pull/12268)) + +* Hotfix for `poetry_requirements` not being recognized as a macro in build files ([#12263](https://github.com/pantsbuild/pants/pull/12263)) + +* Include experimental Go backends in pantsbuild.pants ([#12290](https://github.com/pantsbuild/pants/pull/12290)) + +### Documentation + +* Improve error for out-of-line Gets. ([#12305](https://github.com/pantsbuild/pants/pull/12305)) diff --git a/docs/notes/2.8.x.md b/docs/notes/2.8.x.md new file mode 100644 index 000000000..1605905e9 --- /dev/null +++ b/docs/notes/2.8.x.md @@ -0,0 +1,498 @@ +# 2.8.x Release Series + +## 2.8.1 (May 13, 2022) + +The second stable release of the `2.8.x` series, with no changes since the previous `rc`! + +## 2.8.1rc2 (Jan 03, 2022) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14036](https://github.com/pantsbuild/pants/pull/14036)) + +* Fix bug when `docker push`ing multiple tags. (cherrypick of #13764) ([#14042](https://github.com/pantsbuild/pants/pull/14042)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13941](https://github.com/pantsbuild/pants/pull/13941)) + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13923](https://github.com/pantsbuild/pants/pull/13923)) + +* Fix `.pyi` files not automatically depending on `__init__.py` (Cherry-pick of #13844) ([#13858](https://github.com/pantsbuild/pants/pull/13858)) + +## 2.8.1rc1 (Nov 30, 2021) + +### Bug fixes + +* [bugfix] Pass Docker env vars to `docker publish`. (cherrypick of #13669) ([#13752](https://github.com/pantsbuild/pants/pull/13752)) + +* Make tailor generate correct fields for `python_requirements`. (cherrypick of #13687) ([#13688](https://github.com/pantsbuild/pants/pull/13688)) + + +## 2.8.1rc0 (Nov 17, 2021) + +### Bug fixes + +* Fix download URL for `grpc_python_plugin` on macos (cherrypick of #13656) ([#13659](https://github.com/pantsbuild/pants/pull/13659)) + +## 2.8.0 (Nov 17, 2021) + +The first stable release of the `2.8.x` series, with no changes since the previous release candidate! + +## 2.8.0rc6 (Nov 16, 2021) + +### New features + +* Add `[twine].ca_certs_path` option (Cherry-pick of #13593) ([#13642](https://github.com/pantsbuild/pants/pull/13642)) + +### User API Changes + +* Ban `*` globs and `!` ignores in `source: str` field (Cherry-pick of #13629) ([#13636](https://github.com/pantsbuild/pants/pull/13636)) + +* Bump twine to 3.6.0 and add tool lockfile (Cherry-pick of #13594) ([#13640](https://github.com/pantsbuild/pants/pull/13640)) + +### Bug fixes + +* Fix Python dependency inference breaking with `python_source` targets (Cherry-pick of #13627) ([#13633](https://github.com/pantsbuild/pants/pull/13633)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. (Cherry-pick of #13616) ([#13623](https://github.com/pantsbuild/pants/pull/13623)) + +## 2.8.0rc5 (Nov 10, 2021) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13561](https://github.com/pantsbuild/pants/pull/13561)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets (cherrypick of #13574) ([#13582](https://github.com/pantsbuild/pants/pull/13582)) + +## 2.8.0rc4 (Nov 09, 2021) + +### Bug fixes + +* Don't duplicate Go error logs when dependency failed to compile (Cherry-pick of #13502) ([#13538](https://github.com/pantsbuild/pants/pull/13538)) + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13541](https://github.com/pantsbuild/pants/pull/13541)) + +### Documentation + +* Fix formatting of overrides field in docs (Cherry-pick of #13549) ([#13552](https://github.com/pantsbuild/pants/pull/13552)) + +## 2.8.0rc3 (Nov 04, 2021) + +### Performance + +* Go: improve performance of first-party package analysis (Cherry-pick of #13476) ([#13486](https://github.com/pantsbuild/pants/pull/13486)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go (Cherry-pick of #13492) ([#13493](https://github.com/pantsbuild/pants/pull/13493)) + +## 2.8.0rc2 (Nov 02, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements (Cherry-pick of #13458) ([#13475](https://github.com/pantsbuild/pants/pull/13475)) + +* Add `--tailor-check` (Cherry-pick of #13432) ([#13457](https://github.com/pantsbuild/pants/pull/13457)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` (Cherry-pick of #13422) ([#13454](https://github.com/pantsbuild/pants/pull/13454)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` (Cherry-pick of #13420) ([#13446](https://github.com/pantsbuild/pants/pull/13446)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value (Cherry-pick of #13456) ([#13466](https://github.com/pantsbuild/pants/pull/13466)) + +### Bug fixes + +* Do not cache Docker invocations between Pants runs (Cherry-pick of #13464) ([#13467](https://github.com/pantsbuild/pants/pull/13467)) + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13459](https://github.com/pantsbuild/pants/pull/13459)) + +## 2.8.0rc1 (Oct 28, 2021) + +### Bug fixes + +* Assume version 1 for older lockfiles without `version` key (cherrypick of #13399) ([#13406](https://github.com/pantsbuild/pants/pull/13406)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13394](https://github.com/pantsbuild/pants/pull/13394)) + +* Go: don't error for unsupported third-party sources with project introspection (Cherry-pick of #13377) ([#13381](https://github.com/pantsbuild/pants/pull/13381)) + +* Don't error for invalid Go third-party packages unless building them (Cherry-pick of #13405) ([#13410](https://github.com/pantsbuild/pants/pull/13410)) + +* Fix missing field for `tffmt` in `lint`. (cherrypick of #13355) ([#13356](https://github.com/pantsbuild/pants/pull/13356)) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13403](https://github.com/pantsbuild/pants/pull/13403)) + +* Don't download Go third-party dependencies multiple times (Cherry-pick of #13352) ([#13378](https://github.com/pantsbuild/pants/pull/13378)) + +### Documentation + +* Make `check` output more useful for Go and Java (cherrypick of #13379) ([#13388](https://github.com/pantsbuild/pants/pull/13388)) + +## 2.8.0rc0 (Oct 24, 2021) + +### New Features + +* `update-build-files` goal formats BUILD files with Black ([#13279](https://github.com/pantsbuild/pants/pull/13279)) + +* Add `overrides` field to `files` and `resources` targets ([#13304](https://github.com/pantsbuild/pants/pull/13304)) + +* Add `overrides` field to `shell_sources`, `shunit2_sources`, and `protobuf_sources` ([#13298](https://github.com/pantsbuild/pants/pull/13298)) + +* Add `overrides` field to `python_sources` and `python_tests` target ([#13270](https://github.com/pantsbuild/pants/pull/13270)) + +* Depending on a `python_distribution` with `pex_binary` now includes the built dist ([#13306](https://github.com/pantsbuild/pants/pull/13306)) + +* Support arbitrary PEP-517 build systems. ([#13285](https://github.com/pantsbuild/pants/pull/13285)) + +### User API Changes + +* Pants's CLI output uses the full address `dir:dir` instead of the shorthand `dir` ([#13274](https://github.com/pantsbuild/pants/pull/13274)) + +* Rename `[python-setup]` to `[python]` and move into the python backend. ([#13345](https://github.com/pantsbuild/pants/pull/13345)) + +* The default `sources` for `conftest.py` and `*_test.pyi` now belong to new target generator `python_test_utils`, not `python_tests` ([#13299](https://github.com/pantsbuild/pants/pull/13299)) + +* Deprecate including `conftest.py` and `.pyi` files in `python_tests` target's `sources` field ([#13320](https://github.com/pantsbuild/pants/pull/13320)) + +* Rename `docker_image` field `sources` to `source` ([#13327](https://github.com/pantsbuild/pants/pull/13327)) + +* Merge docker `version` field into the `image_tags` field. ([#13308](https://github.com/pantsbuild/pants/pull/13308)) + +* Upgrade default black version from 21.8b0 to 21.9b0 ([#13326](https://github.com/pantsbuild/pants/pull/13326)) + +* Terraform: move `terraform validate` from `lint` to `check` ([#13301](https://github.com/pantsbuild/pants/pull/13301)) + +* Autoflake and Pyupgrade are now activated by experimental backends ([#13317](https://github.com/pantsbuild/pants/pull/13317)) + +* Add google cloud logging to default Python module map ([#13305](https://github.com/pantsbuild/pants/pull/13305)) + +### Plugin API Changes + +* Add support for structured output from `publish` goal. ([#13292](https://github.com/pantsbuild/pants/pull/13292)) + +### Bug fixes + +* Do not choke on `.` in tool names for `experimental_shell_command`s. ([#13293](https://github.com/pantsbuild/pants/pull/13293)) + +### Documentation + +* Fix documentation for `file:` URLs, and add an assist for malformed URLs. ([#13272](https://github.com/pantsbuild/pants/pull/13272)) + +## 2.8.0.dev5 (Oct 17, 2021) + +### New Features + +* Add `./pants update-build-files` to automate fixing some deprecation warnings ([#13273](https://github.com/pantsbuild/pants/pull/13273)) + +* Add `[cli.alias]` config section for command line alias support. ([#13228](https://github.com/pantsbuild/pants/pull/13228)) + +* Add `run` support for new `experimental_run_shell_command` target. ([#13229](https://github.com/pantsbuild/pants/pull/13229)) + +* Add `azure` to default Python module mapping ([#13275](https://github.com/pantsbuild/pants/pull/13275)) + +* Support linux arm64 binary tools. ([#13249](https://github.com/pantsbuild/pants/pull/13249)) + +* Add minimal Scala backend ([#13130](https://github.com/pantsbuild/pants/pull/13130)) + +### User API Changes + +* Fix `dir:` and `dir::` to include generated targets ([#13263](https://github.com/pantsbuild/pants/pull/13263)) + +* Merge Docker `image_name` into the `repository` field. ([#13225](https://github.com/pantsbuild/pants/pull/13225)) + +* `python_sources` and `python_tests` targets no longer use dependency inference, only `python_source` and `python_test` targets ([#13231](https://github.com/pantsbuild/pants/pull/13231)) + +### Plugin API Changes + +* Verify each observed URL and Digest pair ([#13266](https://github.com/pantsbuild/pants/pull/13266)) + +### Bug fixes + +* Fix pyupgrade alias name conflict ([#13282](https://github.com/pantsbuild/pants/pull/13282)) + +* Fix generate_all_lockfiles. ([#13280](https://github.com/pantsbuild/pants/pull/13280)) + +* Don't invalidate dependency inference when unrelated file names change ([#13248](https://github.com/pantsbuild/pants/pull/13248)) + +* Fix `./pants help targets` to not include deprecated target names ([#13236](https://github.com/pantsbuild/pants/pull/13236)) + +## 2.8.0.dev4 (Oct 11, 2021) + +### New Features + +* Add support for pyupgrade ([#13063](https://github.com/pantsbuild/pants/pull/13063)) + +* Support optionally restarting interactive processes when input files change ([#13178](https://github.com/pantsbuild/pants/pull/13178)) + +* Package dependencies for shell command. ([#13168](https://github.com/pantsbuild/pants/pull/13168)) + +* Add `help tools` ([#13135](https://github.com/pantsbuild/pants/pull/13135)) + +* Docker build args config option ([#13147](https://github.com/pantsbuild/pants/pull/13147)) + +* Add `[docker].env_vars` option. ([#13146](https://github.com/pantsbuild/pants/pull/13146)) + +* Support for directly `run`ning a Docker image ([#13120](https://github.com/pantsbuild/pants/pull/13120)) + +* Docker image version tag ([#13097](https://github.com/pantsbuild/pants/pull/13097)) + +* Docker `publish` support ([#13085](https://github.com/pantsbuild/pants/pull/13085)) + +* New `publish` goal ([#13057](https://github.com/pantsbuild/pants/pull/13057)) + +### User API Changes + +* Add `[mypy].extra_type_stubs` ([#13180](https://github.com/pantsbuild/pants/pull/13180)) + +* Deprecate `requirements_relpath` and `pyproject_toml_relpath` in favor of `source` for `python_requirements` and `poetry_requirements` ([#13204](https://github.com/pantsbuild/pants/pull/13204)) + +* Deprecate `module_mapping` and `type_stubs_module_mapping` fields for `python_requirement` in favor of `modules` and `type_stub_modules` ([#13197](https://github.com/pantsbuild/pants/pull/13197)) + +* Deprecate `python_library`, `protobuf_library`, and `shell_library` in favor of `python_sources`, `protobuf_sources`, and `shell_sources` ([#13196](https://github.com/pantsbuild/pants/pull/13196)) + +* Add `scikit-learn` to the default module mapping ([#13198](https://github.com/pantsbuild/pants/pull/13198)) + +* Deprecate `python_requirement_library` in favor of `python_requirement` ([#13133](https://github.com/pantsbuild/pants/pull/13133)) + +* An explicit `generate_setup` field on `python_distribution`. ([#13111](https://github.com/pantsbuild/pants/pull/13111)) + +* Upgrade to Pex 2.1.51. ([#13098](https://github.com/pantsbuild/pants/pull/13098)) + +### Plugin API Changes + +* Deprecate `Sources` in favor of `SourcesField`, `SingleSourceField`, and `MultipleSourcesField` ([#13202](https://github.com/pantsbuild/pants/pull/13202)) + +* Rename `ResourcesSources` and split target into generator vs. atom ([#13194](https://github.com/pantsbuild/pants/pull/13194)) + +* Rename `FilesSources` and split target into target generator vs. atom target ([#13190](https://github.com/pantsbuild/pants/pull/13190)) + +* Add `engine_error()` context manager for testing plugin exceptions ([#13108](https://github.com/pantsbuild/pants/pull/13108)) + +### Bug fixes + +* [jvm] Ignore symbols exposed by unnamed packages. ([#13214](https://github.com/pantsbuild/pants/pull/13214)) + +* `f.ext` is now a file argument, not a goal ([#13212](https://github.com/pantsbuild/pants/pull/13212)) + +* `pantsd` falls back to socket usage if it cannot open a TTY. ([#13155](https://github.com/pantsbuild/pants/pull/13155)) + +* Do not change working directory when extracting archives ([#13077](https://github.com/pantsbuild/pants/pull/13077)) + +* Release the GIL while creating a Session. ([#13127](https://github.com/pantsbuild/pants/pull/13127)) + +### Performance + +* Changing global options doesn't invalidate as much ([#13144](https://github.com/pantsbuild/pants/pull/13144)) + +### Documentation + +* Improve a couple of log messages. ([#13121](https://github.com/pantsbuild/pants/pull/13121)) + +* [Docs] Filter out self from list of related subsystems. ([#13148](https://github.com/pantsbuild/pants/pull/13148)) + +## 2.8.0.dev3 (Oct 01, 2021) + +### New Features + +* Make the number of dots in string dep inference an option. ([#13059](https://github.com/pantsbuild/pants/pull/13059)) + +* Docker image name tags ([#13048](https://github.com/pantsbuild/pants/pull/13048)) + +* Add a `--closed` option to the dependencies goal. ([#13043](https://github.com/pantsbuild/pants/pull/13043)) + +* Support multiple Docker registries per image. ([#13047](https://github.com/pantsbuild/pants/pull/13047)) + +* Add Docker registry field ([#13017](https://github.com/pantsbuild/pants/pull/13017)) + +* Support for PEP-517/518 builds. ([#13012](https://github.com/pantsbuild/pants/pull/13012)) + +* Add autoflake unused import remover to Python lint tools. ([#13010](https://github.com/pantsbuild/pants/pull/13010)) + +* Support tailoring non-addressable macros. ([#12989](https://github.com/pantsbuild/pants/pull/12989)) + +* Implement Java dep inference mapper and rules ([#12978](https://github.com/pantsbuild/pants/pull/12978)) + +* Include the experimental java backend in the Pants distribution. ([#13003](https://github.com/pantsbuild/pants/pull/13003)) + +* Have `peek` emit expanded sources and dependencies ([#12882](https://github.com/pantsbuild/pants/pull/12882)) + +* New experimental_shell_command ([#12878](https://github.com/pantsbuild/pants/pull/12878)) + +* Support tailoring with an alternative BUILD file name ([#12979](https://github.com/pantsbuild/pants/pull/12979)) + +* Add Java dependency analysis types and launcher using javaparser library. ([#12890](https://github.com/pantsbuild/pants/pull/12890)) + +### User API Changes + +* Remove Gofmt backend and activate it with `pants.experimental.go` ([#13014](https://github.com/pantsbuild/pants/pull/13014)) + +* Register terraform lint & validate backends when the terraform backend is registered ([#13002](https://github.com/pantsbuild/pants/pull/13002)) + +* Deprecate --type in the dependencies goal. ([#12998](https://github.com/pantsbuild/pants/pull/12998)) + +### Plugin API Changes + +* Add `RuleRunner.write_digest()` ([#13044](https://github.com/pantsbuild/pants/pull/13044)) + +* Change `BinaryNotFoundError` constructor to be more generic ([#13001](https://github.com/pantsbuild/pants/pull/13001)) + +### Bug fixes + +* Don't invalidate the scheduler when piping output. ([#13028](https://github.com/pantsbuild/pants/pull/13028)) + +* Ensure that `Tree` contents are uploaded after creation. ([#13008](https://github.com/pantsbuild/pants/pull/13008)) + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` ([#12980](https://github.com/pantsbuild/pants/pull/12980)) + +* Fix spurious "Scheduling: ..." workunits with remote caching ([#12973](https://github.com/pantsbuild/pants/pull/12973)) + +* Fix `./pants dependencies --transitive` when run on a target generator like `python_library` ([#12956](https://github.com/pantsbuild/pants/pull/12956)) + +### Performance + +* Use nailgun for javac and import parser ([#12982](https://github.com/pantsbuild/pants/pull/12982)) + +## 2.8.0.dev2 (Sep 17, 2021) + +### New Features + +* Build and install `python_distribution` deps for test, run, and repl ([#12573](https://github.com/pantsbuild/pants/pull/12573)) + +* Tailor `python_requirements` macro invocations. ([#12862](https://github.com/pantsbuild/pants/pull/12862)) + +* Add `script` field to `pex_binary` for console scripts ([#12849](https://github.com/pantsbuild/pants/pull/12849)) + +* Add option to `[python-setup]` to handle a quirk when building `python_distribution` on MacOS Big Sur. ([#12857](https://github.com/pantsbuild/pants/pull/12857)) + +### User API Changes + +* Rename the `typecheck` goal to `check` ([#12858](https://github.com/pantsbuild/pants/pull/12858)) + +* Ban `#` in an address's target name ([#12940](https://github.com/pantsbuild/pants/pull/12940)) + +* Upgrade to Pex 2.1.50. ([#12888](https://github.com/pantsbuild/pants/pull/12888)) + +* Add new version of `LockfileMetadata` to support checking for identically specified requirements ([#12782](https://github.com/pantsbuild/pants/pull/12782)) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 ([#12842](https://github.com/pantsbuild/pants/pull/12842)) + +### Bug fixes + +* Fix "file-level dependencies" on `files` and `resources` targets to not pull in sibling files ([#12941](https://github.com/pantsbuild/pants/pull/12941)) + +* Add google_cloud_function to plugin dependencies. Fix typo. ([#12932](https://github.com/pantsbuild/pants/pull/12932)) + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile ([#12900](https://github.com/pantsbuild/pants/pull/12900)) + +### Performance + +* Don't find `tar`, `unzip`, and `zip` as frequently ([#12947](https://github.com/pantsbuild/pants/pull/12947)) + +## 2.8.0.dev1 (Sep 10, 2021) + +### New Features + +* Support --fail-under on merged coverage. ([#12778](https://github.com/pantsbuild/pants/pull/12778)) + +* Add python-docx to the module mapping dictionary ([#12775](https://github.com/pantsbuild/pants/pull/12775)) + +* Add python-pptx to the module mapping dictionary ([#12776](https://github.com/pantsbuild/pants/pull/12776)) + +* Add `opencv-python` to the default Python module mapping ([#12777](https://github.com/pantsbuild/pants/pull/12777)) + +* Add `PyMuPDF` to the default Python module mapping ([#12774](https://github.com/pantsbuild/pants/pull/12774)) + +### User API Changes + +* Deprecate `--list-provides` option. ([#12759](https://github.com/pantsbuild/pants/pull/12759)) + +* Upgrade default `isort` to latest `isort==5.9.3` ([#12756](https://github.com/pantsbuild/pants/pull/12756)) + +* Add `version` to lockfile metadata headers ([#12788](https://github.com/pantsbuild/pants/pull/12788)) + +### Plugin API Changes + +* `OutputPathField.value_or_default()` no longer has an `Address` argument ([#12837](https://github.com/pantsbuild/pants/pull/12837)) + +### Bug fixes + +* Properly include file dependencies in docker build context ([#12758](https://github.com/pantsbuild/pants/pull/12758)) + +* DigestSubset should not short-circuit when there are ignores involved. ([#12648](https://github.com/pantsbuild/pants/pull/12648)) + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference ([#12818](https://github.com/pantsbuild/pants/pull/12818)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile ([#12807](https://github.com/pantsbuild/pants/pull/12807)) + +* Upgrade to Pex 2.1.48 and leverage packed layout. ([#12808](https://github.com/pantsbuild/pants/pull/12808)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation ([#12800](https://github.com/pantsbuild/pants/pull/12800)) + +* Fix a markdown issue in a help string. ([#12766](https://github.com/pantsbuild/pants/pull/12766)) + +## 2.8.0.dev0 (Sep 03, 2021) + +### New Features + +* Add support for creating GCP Cloud Functions. ([#12735](https://github.com/pantsbuild/pants/pull/12735)) + +* [experimental] Add proof-of-concept Java junit test rule. ([#12177](https://github.com/pantsbuild/pants/pull/12177)) + +* Support TOML tables for dict options in pants.toml ([#12707](https://github.com/pantsbuild/pants/pull/12707)) + +### User API Changes + +* Remove undocumented `pants_version()` symbol from BUILD files ([#12745](https://github.com/pantsbuild/pants/pull/12745)) + +* Remove deprecated `[python-protobuf.mypy-plugin]` in favor of `[mypy-protobuf]` ([#12743](https://github.com/pantsbuild/pants/pull/12743)) + +* Stop interpolating `pants_supportdir` in `pants.toml` and deprecate the option ([#12705](https://github.com/pantsbuild/pants/pull/12705)) + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile ([#12738](https://github.com/pantsbuild/pants/pull/12738)) + +* Remove deprecated `.with_binaries()`. ([#12724](https://github.com/pantsbuild/pants/pull/12724)) + +* Update default `[black].version` to 21.8b0 ([#12718](https://github.com/pantsbuild/pants/pull/12718)) + +* Update `futures` to` 0.3.17`. ([#12722](https://github.com/pantsbuild/pants/pull/12722)) + +* Upgrade to Pex 2.1.47. ([#12715](https://github.com/pantsbuild/pants/pull/12715)) + +* Remove deprecated `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12704](https://github.com/pantsbuild/pants/pull/12704)) + +* Remove deprecated `[grpc_python_plugin]` in favor of `[grpc-python-plugin]` ([#12706](https://github.com/pantsbuild/pants/pull/12706)) + +### Plugin API Changes + +* Add intrinsic to produce a `DigestEntries` from a `Digest` which reference file content by hash ([#12693](https://github.com/pantsbuild/pants/pull/12693)) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children ([#12748](https://github.com/pantsbuild/pants/pull/12748)) + +* Improve descriptions of the process executions for `PEX_PATH` composition. ([#12736](https://github.com/pantsbuild/pants/pull/12736)) + +* Absolutize all of the `execute_pex_args` in the venv script. ([#12727](https://github.com/pantsbuild/pants/pull/12727)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` ([#12711](https://github.com/pantsbuild/pants/pull/12711)) + +### Performance + +* Simplify implementation of materialize directories ([#12696](https://github.com/pantsbuild/pants/pull/12696)) + +### Documentation + +* Fix rendering of the ABOUT file. ([#12744](https://github.com/pantsbuild/pants/pull/12744)) + +* Add specific and actionable instructions to stale lockfile errors ([#12699](https://github.com/pantsbuild/pants/pull/12699)) + +* Link to pants slack from pypi project page ([#12701](https://github.com/pantsbuild/pants/pull/12701)) diff --git a/docs/notes/2.9.x.md b/docs/notes/2.9.x.md new file mode 100644 index 000000000..a7bfa3a32 --- /dev/null +++ b/docs/notes/2.9.x.md @@ -0,0 +1,471 @@ +# 2.9.x Release Series + +## 2.9.2 (May 13, 2022) + +The third stable release of the `2.9.x` series, with no changes since the previous `rc`! + +## 2.9.2rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15029](https://github.com/pantsbuild/pants/pull/15029)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14961](https://github.com/pantsbuild/pants/pull/14961)) + +## 2.9.1 (Mar 25, 2022) + +The second stable release of the `2.9.x` series, with no changes since the previous `rc`. + +## 2.9.1rc2 (Mar 14, 2022) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (Cherry-pick of #14768) ([#14770](https://github.com/pantsbuild/pants/pull/14770)) + +## 2.9.1rc1 (Mar 04, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.70. (#14700) ([#14704](https://github.com/pantsbuild/pants/pull/14704)) + +### Bug fixes + +* Fix dropped output race during UI teardown (cherrypick of #14093) ([#14690](https://github.com/pantsbuild/pants/pull/14690)) + +## 2.9.1rc0 (Feb 26, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.65. (Cherry-pick of #14256) ([#14617](https://github.com/pantsbuild/pants/pull/14617)) + +### Bug fixes + +* Fix coverage base global report creation bug. (cherrypick of #14547) ([#14550](https://github.com/pantsbuild/pants/pull/14550)) + +* Fix executability of materialized files for non-owners. (cherrypick of #14298) ([#14308](https://github.com/pantsbuild/pants/pull/14308)) + +* Fix bad default module mapping for PyMongo (Cherry-pick of #14284) ([#14285](https://github.com/pantsbuild/pants/pull/14285)) + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 (Cherry-pick of #14232) ([#14233](https://github.com/pantsbuild/pants/pull/14233)) + +### Performance + +* add timeout for remote cache lookups (cherry-pick of #14224) ([#14226](https://github.com/pantsbuild/pants/pull/14226)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14628](https://github.com/pantsbuild/pants/pull/14628)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14593](https://github.com/pantsbuild/pants/pull/14593)) + +* Add some missing backends to generated docs (Cherry-pick of #14290) ([#14292](https://github.com/pantsbuild/pants/pull/14292)) + +## 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](https://github.com/pantsbuild/pants/pull/14131)) + +## 2.9.0rc5 (Jan 07, 2022) + +### Bug fixes + +* Hook up Scalafmt and Google Java Format to `./pants lint` (cherrypick of #14108) ([#14117](https://github.com/pantsbuild/pants/pull/14117)) + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. (cherrypick of #14109) ([#14118](https://github.com/pantsbuild/pants/pull/14118)) + +## 2.9.0rc4 (Jan 06, 2022) + +### New Features + +* JVM Resources support (cherrypick of #13908) ([#14088](https://github.com/pantsbuild/pants/pull/14088)) + +## 2.9.0rc3 (Jan 05, 2022) + +### Bug fixes + +* Fix incorrectly setting `name` on `python_requirements` macro (Cherry-pick of #14065) ([#14067](https://github.com/pantsbuild/pants/pull/14067)) + +* Fix help strings which were accidentally tuples, and add a validation. (cherrypick of #14057) ([#14068](https://github.com/pantsbuild/pants/pull/14068)) + +## 2.9.0rc2 (Jan 03, 2022) + +### New Features + +* Add duration and cache source to test output. (cherrypick of #13889) ([#14002](https://github.com/pantsbuild/pants/pull/14002)) + +* Support Docker build target stage (Cherry pick of #13956) ([#13997](https://github.com/pantsbuild/pants/pull/13997)) + +* Support `test --debug` with scalatest and junit. (cherrypick of #13958 and #13966) ([#14000](https://github.com/pantsbuild/pants/pull/14000)) + +* Docker context troubleshooter (Cherry pick of #13896) ([#13953](https://github.com/pantsbuild/pants/pull/13953)) + +### User API Changes + +* Upgrade to Pex 2.1.61 and use `--venv` copies. (Cherry pick of #13979) ([#13980](https://github.com/pantsbuild/pants/pull/13980)) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14035](https://github.com/pantsbuild/pants/pull/14035)) + +* Restore the `pants` namespace package. (Cherry picked from #13972) ([#13977](https://github.com/pantsbuild/pants/pull/13977)) + +* Fix deprecated `[python-setup].interpreter_search_paths` and `[pex].bootstrap_interpreter_names` not working ([#14009](https://github.com/pantsbuild/pants/pull/14009)) + +* Fix file sources codegen for the Docker build context. (Cherry pick of #14024) ([#14025](https://github.com/pantsbuild/pants/pull/14025)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (cherrypick of #14038) ([#14046](https://github.com/pantsbuild/pants/pull/14046)) + +* [jvm] Parse maven coordinates using regular expression (cherrypick of #14010) ([#14015](https://github.com/pantsbuild/pants/pull/14015)) + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. (cherrypick of #13996) ([#13998](https://github.com/pantsbuild/pants/pull/13998)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (cherrypick of #14012) ([#14014](https://github.com/pantsbuild/pants/pull/14014)) + +## 2.9.0rc1 (Dec 21, 2021) + +### User API Changes + +* Set a default for `[jvm].resolves` and `[jvm].default_resolve` (cherrypick of #13925) ([#13930](https://github.com/pantsbuild/pants/pull/13930)) + +* [jvm] Normalize the layout of JVM subsystems and add support for compiler options (cherrypick of #13926) ([#13931](https://github.com/pantsbuild/pants/pull/13931)) + +* Upgrade Pex to 2.1.59. (#13932) ([#13933](https://github.com/pantsbuild/pants/pull/13933)) + +### Bug fixes + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13924](https://github.com/pantsbuild/pants/pull/13924)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13940](https://github.com/pantsbuild/pants/pull/13940)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) (cherrypick of #13944) ([#13946](https://github.com/pantsbuild/pants/pull/13946)) + +* [jvm] Expose additional JVM backends and symbols (cherrypick of #13943) ([#13947](https://github.com/pantsbuild/pants/pull/13947)) + +## 2.9.0rc0 (Dec 17, 2021) + +### New Features + +* Add `--docker-run-args` option to support `docker run [args] `. ([#13818](https://github.com/pantsbuild/pants/pull/13818)) + +* An include_requirements field on pex_binary. ([#13894](https://github.com/pantsbuild/pants/pull/13894)) + +* Add new `secrets` field to `docker_image`. ([#13830](https://github.com/pantsbuild/pants/pull/13830)) + +* [jvm] Add support for Scalatest ([#13872](https://github.com/pantsbuild/pants/pull/13872)) + +### Bug fixes + +* [jvm] Apply the resolve for `deploy_jar` and restore validation of resolve compatibility ([#13911](https://github.com/pantsbuild/pants/pull/13911)) + +* Fix `java_junit_test` and `scala_junit_test` targets to use `resolve` instead of `compatible_resolves` ([#13870](https://github.com/pantsbuild/pants/pull/13870)) + +* [jvm] Fix `tailor` for the addition of `Scalatest`. ([#13887](https://github.com/pantsbuild/pants/pull/13887)) + +* Fix `setup_py` resource packaging. ([#13878](https://github.com/pantsbuild/pants/pull/13878)) + +### Documentation + +* Fix rendering of default field values in reference docs. ([#13891](https://github.com/pantsbuild/pants/pull/13891)) + +* Provide helpful error message in case of undefined Docker build arg. ([#13880](https://github.com/pantsbuild/pants/pull/13880)) + +* [docs] Enable `Java` and `Scala` backends on the docsite. ([#13909](https://github.com/pantsbuild/pants/pull/13909)) + +* Update the project description. ([#13906](https://github.com/pantsbuild/pants/pull/13906)) + +* Add warning when building AWS Lambdas and Google Cloud Functions on macOS. ([#13790](https://github.com/pantsbuild/pants/pull/13790)) + +## 2.9.0.dev4 (Dec 13, 2021) + +### New Features + +* [jvm] Hook up the ability to run JUnit tests written in Scala ([#13868](https://github.com/pantsbuild/pants/pull/13868)) + +* scala: add `scalafmt` support for `fmt` and `lint` goals ([#13814](https://github.com/pantsbuild/pants/pull/13814)) + +* scala: add protobuf codegen support via `scalapb` ([#13853](https://github.com/pantsbuild/pants/pull/13853)) + +* Add support for global `scalac` plugins. ([#13827](https://github.com/pantsbuild/pants/pull/13827)) + +* JVM: Adds `jar` field to `jvm_artifact` ([#13834](https://github.com/pantsbuild/pants/pull/13834)) + +### User API Changes + +* `relocate_files` no longer used with `export-codegen` goal ([#13829](https://github.com/pantsbuild/pants/pull/13829)) + +* Include `shell_source(s)` in `docker_image` build context. ([#13761](https://github.com/pantsbuild/pants/pull/13761)) + +### Plugin API Changes + +* Codegen plugins can turn off `export-codegen` integration. ([#13828](https://github.com/pantsbuild/pants/pull/13828)) + +* Deprecate `testutil.RuleRunner.create_files()` `.create_file()` and `.add_to_build_file()` ([#13817](https://github.com/pantsbuild/pants/pull/13817)) + +### Bug fixes + +* Fix `.pyi` files not automatically depending on `__init__.py` ([#13844](https://github.com/pantsbuild/pants/pull/13844)) + +### Performance + +* [jvm] Use `immutable_inputs` to provide the compiletime classpath ([#13862](https://github.com/pantsbuild/pants/pull/13862)) + +### Documentation + +* Improve Docker undefined build arg behavior ([#13723](https://github.com/pantsbuild/pants/pull/13723)) + +* Add missing backtick ([#13861](https://github.com/pantsbuild/pants/pull/13861)) + +* Do not log extra deprecation info when there are no changes for `update-build-files --check`. ([#13855](https://github.com/pantsbuild/pants/pull/13855)) + +## 2.9.0.dev3 (Dec 06, 2021) + +### New Features + +* java: add support for Google Java Format ([#13811](https://github.com/pantsbuild/pants/pull/13811)) + +* Adds support for remote jvm artifact urls ([#13793](https://github.com/pantsbuild/pants/pull/13793)) + +* Go tests can depend on `file` targets (e.g. `testdata` folder) ([#13781](https://github.com/pantsbuild/pants/pull/13781)) + +* An option to test/run/repl against the entire lockfile. ([#13732](https://github.com/pantsbuild/pants/pull/13732)) + +* Add `test_timeout` fields to `go_package` ([#13707](https://github.com/pantsbuild/pants/pull/13707)) + +* Added the `paths` goal to render all paths between two targets ([#13778](https://github.com/pantsbuild/pants/pull/13778)) + +* Add support for inferring relative imports from Scala ([#13775](https://github.com/pantsbuild/pants/pull/13775)) + +* go: add `go vet` linter ([#13438](https://github.com/pantsbuild/pants/pull/13438)) + +* Support interpolating Docker build args into the `repository` field of `docker_image` targets. ([#13721](https://github.com/pantsbuild/pants/pull/13721)) + +* Expose Pex `--resolve-local-platforms` option. ([#13715](https://github.com/pantsbuild/pants/pull/13715)) + +* Expose Pex `--layout` option for `pex_binary`. ([#13714](https://github.com/pantsbuild/pants/pull/13714)) + +* Add `skip_tests` field to `go_package` and `shunit2_test` ([#13708](https://github.com/pantsbuild/pants/pull/13708)) + +* JVM: Support strong first-party declarations of provided types ([#13698](https://github.com/pantsbuild/pants/pull/13698)) + +* scala: add `repl` support ([#13576](https://github.com/pantsbuild/pants/pull/13576)) + +* Capture pylint reports. ([#13689](https://github.com/pantsbuild/pants/pull/13689)) + +### User API Changes + +* Rename `pypi_repositories` field to `repositories` ([#13794](https://github.com/pantsbuild/pants/pull/13794)) + +* Add `--local-cache` and `--process-cleanup` to replace `--process-execution-local-cache` and `--process-execution-local-cleanup` ([#13769](https://github.com/pantsbuild/pants/pull/13769)) + +* Add `pants_requirements` target generator and deprecate `pants_requirement` macro ([#13512](https://github.com/pantsbuild/pants/pull/13512)) + +* Stop generating `go_package` targets from `go_mod` ([#13702](https://github.com/pantsbuild/pants/pull/13702)) + +* Rename `go_first_party_package` target to `go_package` ([#13681](https://github.com/pantsbuild/pants/pull/13681)) + +* Upgrade default version of Black from 21.9b0 to 21.12b0 ([#13816](https://github.com/pantsbuild/pants/pull/13816)) + +* Upgrade to Pex 2.1.56. ([#13713](https://github.com/pantsbuild/pants/pull/13713)) + +### Plugin API Changes + +* `IntField` and `FloatField` can ban negative numbers and zero ([#13705](https://github.com/pantsbuild/pants/pull/13705)) + +### Bug fixes + +* Support materializing files through file symlinks. ([#13789](https://github.com/pantsbuild/pants/pull/13789)) + +* Fix duplicate error message for `publish` with no matching targets ([#13776](https://github.com/pantsbuild/pants/pull/13776)) + +* Fix bug when `docker push`ing multiple tags. ([#13764](https://github.com/pantsbuild/pants/pull/13764)) + +* Fix Java / Scala cycle artifact filename collision. ([#13759](https://github.com/pantsbuild/pants/pull/13759)) + +* Fix `run` goal for `pex_binary` with a script entry point from a 3rdparty dependency. ([#13748](https://github.com/pantsbuild/pants/pull/13748)) + +* Fix hadolint SIGSEGV. ([#13736](https://github.com/pantsbuild/pants/pull/13736)) + +* Fix `--resolve-local-platforms` help. ([#13722](https://github.com/pantsbuild/pants/pull/13722)) + +* Avoid calling disabled stream handlers. ([#13680](https://github.com/pantsbuild/pants/pull/13680)) + +* Fix Go compilation failures causing `test` goal to error ([#13711](https://github.com/pantsbuild/pants/pull/13711)) + +* Fix UI rendering of Go packages with no tests ([#13710](https://github.com/pantsbuild/pants/pull/13710)) + +* Fix dup 3rdparty dists introduced by local dists. ([#13690](https://github.com/pantsbuild/pants/pull/13690)) + +* Make tailor generate correct fields for python_requirements. ([#13687](https://github.com/pantsbuild/pants/pull/13687)) + +* Interactive processes kill the process and its children on Ctrl+C. ([#13678](https://github.com/pantsbuild/pants/pull/13678)) + +## 2.9.0.dev2 (Nov 18, 2021) + +### New Features + +* [jvm] Add support for compiling cycles between Java and Scala ([#13653](https://github.com/pantsbuild/pants/pull/13653)) + +* [jvm]: Add Export types to dependency inference code and include exports in compile results for Java sources ([#13603](https://github.com/pantsbuild/pants/pull/13603)) + +* Allow tailor to pick up `docker_image` targets for any file with "Dockerfile" in it ([#13601](https://github.com/pantsbuild/pants/pull/13601)) + +* [jvm] Add Scala consumed-symbols inference. ([#13632](https://github.com/pantsbuild/pants/pull/13632)) + +* [jvm] Add basic extraction of consumed symbols for Scala ([#13628](https://github.com/pantsbuild/pants/pull/13628)) + +### User API Changes + +* Report standard backends in anonymous telemetry ([#13670](https://github.com/pantsbuild/pants/pull/13670)) + +* Add `[twine].ca_certs_path` option. ([#13593](https://github.com/pantsbuild/pants/pull/13593)) + +* Bump twine to 3.6.0 and add tool lockfile ([#13594](https://github.com/pantsbuild/pants/pull/13594)) + +* Ban `*` globs and `!` ignores in `source: str` field ([#13629](https://github.com/pantsbuild/pants/pull/13629)) + +### Bug fixes + +* Pass Docker env vars to `docker publish`. ([#13669](https://github.com/pantsbuild/pants/pull/13669)) + +* Fix download URL for `grpc_python_plugin` on macos. ([#13656](https://github.com/pantsbuild/pants/pull/13656)) + +* Fix Python dependency inference breaking with `python_source` targets ([#13627](https://github.com/pantsbuild/pants/pull/13627)) + +* Fix swallowing of git stderr. ([#13626](https://github.com/pantsbuild/pants/pull/13626)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. ([#13616](https://github.com/pantsbuild/pants/pull/13616)) + +## 2.9.0.dev1 (Nov 13, 2021) + +### New Features + +* Add `instructions` field to `docker_image` to support generating the Dockerfile ([#13386](https://github.com/pantsbuild/pants/pull/13386)) + +* Add `--unowned-dependency-behavior` option for Python ([#13491](https://github.com/pantsbuild/pants/pull/13491)) + +### User API Changes + +* Upgrade default pylint to v2.11.1 ([#13585](https://github.com/pantsbuild/pants/pull/13585)) + +### Plugin API Changes + +* [plugin-api] Add `default_glob_match_error_behavior` to `SourcesField`. ([#13578](https://github.com/pantsbuild/pants/pull/13578)) + +### Bug fixes + +* Fix `--no-print-stacktrace`. ([#13539](https://github.com/pantsbuild/pants/pull/13539)) + +### Performance + +* Do not invalidate parent paths when only file content has changed ([#13566](https://github.com/pantsbuild/pants/pull/13566)) + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes ([#13559](https://github.com/pantsbuild/pants/pull/13559)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go ([#13492](https://github.com/pantsbuild/pants/pull/13492)) + +* Go: improve performance of first-party package analysis ([#13476](https://github.com/pantsbuild/pants/pull/13476)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets ([#13574](https://github.com/pantsbuild/pants/pull/13574)) + +## 2.9.0.dev0 (Nov 03, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements ([#13458](https://github.com/pantsbuild/pants/pull/13458)) + +* Add `--tailor-check` ([#13432](https://github.com/pantsbuild/pants/pull/13432)) + +* An option to not clean up the binary chroot for the run goal. ([#13427](https://github.com/pantsbuild/pants/pull/13427)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` ([#13422](https://github.com/pantsbuild/pants/pull/13422)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` ([#13420](https://github.com/pantsbuild/pants/pull/13420)) + +### User API Changes + +* Remove deprecated `pex_binary` fields. ([#13479](https://github.com/pantsbuild/pants/pull/13479)) + +* Remove deprecated --pants-supportdir. ([#13473](https://github.com/pantsbuild/pants/pull/13473)) + +* Remove setup_py_commands from python_distribution. ([#13450](https://github.com/pantsbuild/pants/pull/13450)) + +* Remove deprecated `InferredDependencies.sibling_dependencies_inferrable` kwarg ([#13440](https://github.com/pantsbuild/pants/pull/13440)) + +* `CheckResults` no longer accepts deprecated `typechecker_name` kwarg ([#13434](https://github.com/pantsbuild/pants/pull/13434)) + +* Remove deprecated `[pytest].junit_xml_dir` option. ([#13444](https://github.com/pantsbuild/pants/pull/13444)) + +* Remove deprecated `--list-provides` option ([#13441](https://github.com/pantsbuild/pants/pull/13441)) + +* Remove deprecated `module_mapping` and `type_stubs_module_mapping` fields ([#13442](https://github.com/pantsbuild/pants/pull/13442)) + +* Remove `entry_point=` for `pex_binary` in favor of leaving off the field ([#13443](https://github.com/pantsbuild/pants/pull/13443)) + +* Remove deprecated `Sources` type in favor of `SourcesField` ([#13439](https://github.com/pantsbuild/pants/pull/13439)) + +* Remove deprecated `requirements_relpath` from `python_requirements` macro ([#13437](https://github.com/pantsbuild/pants/pull/13437)) + +* Remove deprecated `protobuf_library`, `python_library`, `shell_library`, and `python_requirement_library` target aliases ([#13429](https://github.com/pantsbuild/pants/pull/13429)) + +* Remove deprecated `--peek-output` ([#13433](https://github.com/pantsbuild/pants/pull/13433)) + +* Remove dependencies goal deprecated --type option. ([#13431](https://github.com/pantsbuild/pants/pull/13431)) + +* Remove dependees `--output-format` option. ([#13430](https://github.com/pantsbuild/pants/pull/13430)) + +* Validate `python_test` and `python_tests` targets not used for `conftest.py` and `test_foo.pyi` ([#13436](https://github.com/pantsbuild/pants/pull/13436)) + +* Move `[python] interpreter_search_paths` to `[python-bootstrap] search_path`, and add support for sandboxed Python scripts in `@rule`s ([#13340](https://github.com/pantsbuild/pants/pull/13340)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value ([#13456](https://github.com/pantsbuild/pants/pull/13456)) + +* Add support for extracting `.gz` files. ([#13335](https://github.com/pantsbuild/pants/pull/13335)) + +### Bug fixes + +* [bugfix] Do not cache Docker invocations between pants runs. Fixes #13461. ([#13464](https://github.com/pantsbuild/pants/pull/13464)) + +* Fix Python bootstrap interpreter search. ([#13278](https://github.com/pantsbuild/pants/pull/13278)) + +* Upgrade to Pex 2.1.54. ([#13426](https://github.com/pantsbuild/pants/pull/13426)) + +* Upgrade to Pex 2.1.53. ([#13423](https://github.com/pantsbuild/pants/pull/13423)) + +* Consume the `go` directive when compiling ([#13387](https://github.com/pantsbuild/pants/pull/13387)) + +* Don't error for invalid Go third-party packages unless building them ([#13405](https://github.com/pantsbuild/pants/pull/13405)) + +* assume version 1 for older lockfiles without `version` key ([#13399](https://github.com/pantsbuild/pants/pull/13399)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13375](https://github.com/pantsbuild/pants/pull/13375)) + +* Go: don't error for unsupported third-party sources with project introspection ([#13377](https://github.com/pantsbuild/pants/pull/13377)) + +* Fix missing field for `tffmt` in `lint`. ([#13355](https://github.com/pantsbuild/pants/pull/13355)) + +* Use strict resolves by default for the JVM ([#13353](https://github.com/pantsbuild/pants/pull/13353)) + +* Parse SSH git requirements in poetry config. ([#13344](https://github.com/pantsbuild/pants/pull/13344)) + +### Performance + +* Check for `@rule` graph cycles asynchronously ([#13370](https://github.com/pantsbuild/pants/pull/13370)) + +* Use `--layout=packed` for all monolithic resolves. ([#13400](https://github.com/pantsbuild/pants/pull/13400)) + +### Documentation + +* Improve dynamic UI for Go ([#13412](https://github.com/pantsbuild/pants/pull/13412)) + +* Make `check` output more useful for Go and Java ([#13379](https://github.com/pantsbuild/pants/pull/13379)) diff --git a/docusaurus.config.js b/docusaurus.config.js index b5405ddfc..f8c4d89d2 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -171,10 +171,10 @@ const config = { // @TODO: This should throw on prod onBrokenLinks: isDev ? "warn" : "warn", - onBrokenMarkdownLinks: isDev ? "warn" : "warn", + onBrokenMarkdownLinks: isDev ? "warn" : "warn", markdown: { - format: "detect", + format: "detect", }, webpack: { @@ -248,6 +248,12 @@ const config = { sidebarId: "referenceSidebar", label: "Reference", }, + { + type: "docSidebar", + position: "left", + sidebarId: "releaseNotesSidebar", + label: "Release Notes", + }, { to: "/blog", label: "Blog", position: "left" }, { to: "/sponsorship", label: "Sponsor", position: "left" }, // Right diff --git a/sidebars.js b/sidebars.js index 73fa8aa8a..61c623f9d 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,3 +1,5 @@ +import versions from "./versions.json"; + const sidebars = { docsSidebar: [ { type: "autogenerated", dirName: "docs" }, @@ -25,6 +27,18 @@ const sidebars = { label: "Docs", }, ], + releaseNotesSidebar: [ + { + type: "category", + label: "Release Notes", + link: { + type: "doc", + id: "notes/" + versions[0] + ".x", + }, + items: versions + .map((v) => ({ type: "doc", id: "notes/" + v + ".x" })), + }, + ], }; module.exports = sidebars; diff --git a/versioned_docs/version-2.19/notes/2.0.x.md b/versioned_docs/version-2.19/notes/2.0.x.md new file mode 100644 index 000000000..0cf383584 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.0.x.md @@ -0,0 +1,1257 @@ +# 2.0.x Stable Releases + +This document describes releases leading up to the `2.0.x` `stable` +series. + +See for an +overview of the changes in this release, and + for a plugin +upgrade guide. + +## 2.0.2 (2/3/2020) + +The third stable release in the 2.0.x series, with no changes since +`2.0.2rc0`. + +## 2.0.2rc0 (1/14/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11417](https://github.com/pantsbuild/pants/pull/11417)) + +## 2.0.1 (12/18/2020) + +The second stable release in the 2.0.x series, with no changes since +`rc4`. + +Thank you for everyone's feedback! + +## 2.0.1rc4 (12/16/2020) + +### Bugfixes([11310](https://github.com/pantsbuild/pants/pull/11310)) + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11318](https://github.com/pantsbuild/pants/pull/11318)) +- Upgrade to Pex 2.1.24 to fix macOS Big Sur. (cherrypick of #11312) + ([#11314](https://github.com/pantsbuild/pants/pull/11314)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11310](https://github.com/pantsbuild/pants/pull/11310)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11299](https://github.com/pantsbuild/pants/pull/11299)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11277](https://github.com/pantsbuild/pants/pull/11277)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11276](https://github.com/pantsbuild/pants/pull/11276)) + +## 2.0.1rc3 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) + +## 2.0.1rc2 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11216](https://github.com/pantsbuild/pants/pull/11216)) + +### Bugfixes + +- Move graph cycle detection to rust to fix recursion limit. + (cherrypick of #11202) ([#11203](https://github.com/pantsbuild/pants/pull/11203)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11196](https://github.com/pantsbuild/pants/pull/11196)) + +## 2.0.1rc1 (11/16/2020) + +### User API Changes + +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11177](https://github.com/pantsbuild/pants/pull/11177)) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11190](https://github.com/pantsbuild/pants/pull/11190)) + +## 2.0.1rc0 (11/11/2020) + +### User API Changes + +- Add a specific error for target names containing slashes (cherrypick + of #11115) ([#11122](https://github.com/pantsbuild/pants/pull/11122)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached (Cherry-pick of #11111) ([#11116](https://github.com/pantsbuild/pants/pull/11116)) +- Fix `pytest.pex` leaking into coverage data (Cherry-pick + of #11110) ([#11112](https://github.com/pantsbuild/pants/pull/11112)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11139](https://github.com/pantsbuild/pants/pull/11139)) +- Fix `!!` transitive excludes when used multiple times in + a repo (Cherry-pick of #11103) ([#11104](https://github.com/pantsbuild/pants/pull/11104)) +- Fix `setup_py().with_binaries()` to properly inject + dependencies ([#11098](https://github.com/pantsbuild/pants/pull/11098)) +- Upgrade to Pex 2.1.21 to fix interpreter selection and race + condition (Cherry-pick of #11131) ([#11133](https://github.com/pantsbuild/pants/pull/11133)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX (Cherry-pick of #11108) ([#11120](https://github.com/pantsbuild/pants/pull/11120)) + +## 2.0.0 (10/27/2020) + +The first stable release in the 2.0.x series, with no changes since +`rc3`. + +Thank you for everyone's feedback! + +## 2.0.0rc3 (10/25/2020) + +### User API Changes + +- Deprecate several unused options (Cherry-pick of #11041) ([#11043](https://github.com/pantsbuild/pants/pull/11043)) +- Deprecate unused `run-tracker` options (Cherry-pick of + #11038) ([#11039](https://github.com/pantsbuild/pants/pull/11039)) + +### Bugfixes + +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` (Cherry-pick of #11040) ([#11042](https://github.com/pantsbuild/pants/pull/11042)) +- Eagerly validate entry points for + `setup_py().with_binaries()` (Cherry-pick of #11034) + ([#11036](https://github.com/pantsbuild/pants/pull/11036)) + +### Documentation + +- Improve several help messages (Cherry-pick of #11029) ([#11035](https://github.com/pantsbuild/pants/pull/11035)) + +## 2.0.0rc2 (10/22/2020) + +### User API Changes + +- Fold target help into the help system. (Cherry-pick of #11022) + ([#11028](https://github.com/pantsbuild/pants/pull/11028)) +- Rename pex-binary/python-distribution subsystems to avoid naming + collisions. (Cherry-pick of #11007) ([#11010](https://github.com/pantsbuild/pants/pull/11010)) +- Increase default `[python-setup].resolver_jobs` to + `cpu_count / 2` (Cherry-pick of #11006) ([#11011](https://github.com/pantsbuild/pants/pull/11011)) +- Include `` in + `[python-setup].interpreter_search_paths` default + (Cherry-pick of #10998) ([#11008](https://github.com/pantsbuild/pants/pull/11008)) +- Upgrade Pex to 2.1.20 (Cherry-pick of #11014) ([#11016](https://github.com/pantsbuild/pants/pull/11016)) + +### Plugin API Changes + +- Validate that option scopes and target aliases don't collide. + (Cherry-pick of #11004) ([#11015](https://github.com/pantsbuild/pants/pull/11015)) + +### New Features + +- Allow changing the versioning scheme for + `python_distribution` first-party dependencies + (Cherry-pick of #10977) ([#10989](https://github.com/pantsbuild/pants/pull/10989)) +- Add `[python-setup].resolver_http_cache_ttl` option + (Cherry-pick of #10997) ([#11002](https://github.com/pantsbuild/pants/pull/11002)) +- Allow changing the URL to download tools like PEX and Protoc + (Cherry-pick of #11013) ([#11024](https://github.com/pantsbuild/pants/pull/11024)) + +### Bugfixes + +- Revert using libCST for dep inference due to performance + (Cherry-pick of #11001) ([#11005](https://github.com/pantsbuild/pants/pull/11005)) +- Fix resource leak warning with stdio (Cherry-pick of #10995) + ([#10996](https://github.com/pantsbuild/pants/pull/10996)) +- Fix `./pants repl` to use global constrains when no + targets specified (Cherry-pick of #10991) ([#10992](https://github.com/pantsbuild/pants/pull/10992)) +- Fix `setup_py().with_binaries()` to use the default + entry point (Cherry-pick of #11021) ([#11026](https://github.com/pantsbuild/pants/pull/11026)) +- Fix overly verbose `FieldSet` in stack traces + (Cherry-pick of #10978) ([#10990](https://github.com/pantsbuild/pants/pull/10990)) +- Fix several bad usages of `itertools.groupby()` + (Cherry-pick of #10976) ([#10979](https://github.com/pantsbuild/pants/pull/10979)) + +## 2.0.0rc1 (10/15/2020) + +### User API Changes + +- Restore several removed targets and fields to help with upgrading + ([#10970](https://github.com/pantsbuild/pants/pull/10970)) + +### New Features + +- Add `./pants target-types --all` (Cherry-pick of + #10957) ([#10961](https://github.com/pantsbuild/pants/pull/10961)) + +### Bugfixes + +- Fix interpreter selection when building a PEX to use + `[python-setup].interpreter_search_paths` (Cherry-pick + of #10965) ([#10967](https://github.com/pantsbuild/pants/pull/10967)) +- Fix linter targets being skipped when repo has multiple interpreter + constraints (Cherry-pick of #10974) ([#10975](https://github.com/pantsbuild/pants/pull/10975)) +- Automatically set setuptools interpreter constraints if unspecified + (Cherry-pick of #10951) ([#10958](https://github.com/pantsbuild/pants/pull/10958)) +- Fix config validation not erroring on global options in wrong scope + (Cherry-pick of #10950) ([#10956](https://github.com/pantsbuild/pants/pull/10956)) +- Fix logging of lint result files (Cherry-pick of #10959) ([#10968](https://github.com/pantsbuild/pants/pull/10968)) + +## 2.0.0rc0 (10/11/2020) + +### User API Changes + +- Deprecate `python_binary` in favor of + `pex_binary` ([#10939](https://github.com/pantsbuild/pants/pull/10939)) +- Deprecate `[protoc].runtime_targets` in favor of + `[python-protobuf].runtime_dependencies` ([#10926](https://github.com/pantsbuild/pants/pull/10926)) +- Use the `package` goal to build setup-py dists. ([#10919](https://github.com/pantsbuild/pants/pull/10919)) +- Deprecate `--print-exception-stacktrace` to + `--print-stacktrace` ([#10912](https://github.com/pantsbuild/pants/pull/10912)) + +### Plugin API Changes + +- Use `TransitiveTargetsRequest` as input for resolving + `TransitiveTargets` ([#10915](https://github.com/pantsbuild/pants/pull/10915)) +- Add `await Get(Addresses, UnparsedAddressInputs)` + ([#10913](https://github.com/pantsbuild/pants/pull/10913)) +- Upgrade to Pex 2.1.18. ([#10938](https://github.com/pantsbuild/pants/pull/10938)) + +### New Features + +- Add gRPC Python code generation ([#10937](https://github.com/pantsbuild/pants/pull/10937)) +- Add MyPy Protobuf plugin support ([#10931](https://github.com/pantsbuild/pants/pull/10931)) +- Add `output_path` field to `python_binary`, + `python_awslambda`, and `archive` ([#10899](https://github.com/pantsbuild/pants/pull/10899)) + +### Bugfixes + +- Fix for log messages/dynamic UI teardown conflict ([#10940](https://github.com/pantsbuild/pants/pull/10940)) +- Fix some dependencies-like fields not showing up with project + introspection ([#10923](https://github.com/pantsbuild/pants/pull/10923)) +- Send SIGTERM to child processes upon SIGINT ([#10930](https://github.com/pantsbuild/pants/pull/10930)) +- Fix Python 3.8 syntax not working with dependency inference ([#10907](https://github.com/pantsbuild/pants/pull/10907)) +- Plumb `ca_certs_path` to the plugin resolver. ([#10910](https://github.com/pantsbuild/pants/pull/10910)) + +### Documentation + +- Differentiate between User API vs. Plugin API changes in changelog + ([#10916](https://github.com/pantsbuild/pants/pull/10916)) +- Streamline some goal descriptions. ([#10911](https://github.com/pantsbuild/pants/pull/10911)) + +## 2.0.0b3 (10/3/2020) + +### API Changes + +- Add a FileDigest type to differentiate file APIs from directory APIs + ([#10900](https://github.com/pantsbuild/pants/pull/10900)) +- Deprecate `awslambda` and `binary` goals in + favor of new `package` goal ([#10881](https://github.com/pantsbuild/pants/pull/10881)) + +### New Features + +- Add `archive` target type to replace + `python_app` ([#10895](https://github.com/pantsbuild/pants/pull/10895)) +- Add `relocated_files` target type ([#10880](https://github.com/pantsbuild/pants/pull/10880)) +- Add support for `.pyi` type stubs (including for + first-party) ([#10759](https://github.com/pantsbuild/pants/pull/10759)) + +### Bugfixes + +- Upgrade Pex to 2.1.17. ([#10901](https://github.com/pantsbuild/pants/pull/10901)) +- Add back `blocked` flag on BoundedCommandRunner workunit + ([#10873](https://github.com/pantsbuild/pants/pull/10873)) + +### Refactoring, Improvements, and Tooling + +- Log long running workunits when the dynamic UI is disabled ([#10890](https://github.com/pantsbuild/pants/pull/10890)) +- Add a `'coverage_'` prefix to artifact key ([#10891](https://github.com/pantsbuild/pants/pull/10891)) +- Remove unused Nailgun code ([#10883](https://github.com/pantsbuild/pants/pull/10883)) +- Add several rule descriptions and debug hints ([#10878](https://github.com/pantsbuild/pants/pull/10878)) +- fs_util Directory subsetting ignores non-matches ([#10854](https://github.com/pantsbuild/pants/pull/10854)) +- Clean up trace logging ([#10875](https://github.com/pantsbuild/pants/pull/10875)) +- A new mechanism for showing "did you mean" help. ([#10872](https://github.com/pantsbuild/pants/pull/10872)) +- Check in the Pants logo. ([#10871](https://github.com/pantsbuild/pants/pull/10871)) +- Improved type annotations for OrderedSet and FrozenOrderedSet, + removed code duplication ([#10868](https://github.com/pantsbuild/pants/pull/10868)) + +### Documentation + +- Prepare 1.30.2rc1 ([#10887](https://github.com/pantsbuild/pants/pull/10887)) + +## 2.0.0b2 (9/25/2020) + +### API Changes + +- Remove .*/ from --build-ignore defaults ([#10856](https://github.com/pantsbuild/pants/pull/10856)) + +### New Features + +- Partition MyPy based on interpreter constraints ([#10817](https://github.com/pantsbuild/pants/pull/10817)) + +### Bugfixes + +- Fix dependency inference AST parsing to include file names ([#10857](https://github.com/pantsbuild/pants/pull/10857)) +- Validate the names of directory children, and normalize output + directory/file names ([#10850](https://github.com/pantsbuild/pants/pull/10850)) +- Fix empty key for global options in run tracker ([#10807](https://github.com/pantsbuild/pants/pull/10807)) +- Locate bash before using it to locate BinaryPaths for other tools + ([#10858](https://github.com/pantsbuild/pants/pull/10858)) + +### Refactoring, Improvements, and Tooling + +- Move `PantsEnvironment` into `SessionValues` + ([#10862](https://github.com/pantsbuild/pants/pull/10862)) +- Delete binaries/ and net/. ([#10861](https://github.com/pantsbuild/pants/pull/10861)) +- Add `RuleRunner.set_options()` ([#10859](https://github.com/pantsbuild/pants/pull/10859)) +- Improve support of MyPy requirements when Python 2 used ([#10853](https://github.com/pantsbuild/pants/pull/10853)) +- A script to download rust build helper binaries. ([#10851](https://github.com/pantsbuild/pants/pull/10851)) +- Hotfix merge conflict in MyPy tests. ([#10867](https://github.com/pantsbuild/pants/pull/10867)) + +## 2.0.0b1 (9/23/2020) + +### API Changes + +- Default to setting `LC_ALL` and `LANG` in + subprocesses again ([#10800](https://github.com/pantsbuild/pants/pull/10800)) +- Default to `[python-infer].inits = false` ([#10813](https://github.com/pantsbuild/pants/pull/10813)) +- Deprecate `--interpreter-constraints` option where it + no-ops ([#10833](https://github.com/pantsbuild/pants/pull/10833)) +- Upgrade setuptools from 49.6.0 to 50.3.0 and wheel from 0.31.1 to + 0.35.1 ([#10803](https://github.com/pantsbuild/pants/pull/10803)) + +### New Features + +- Restore support for third-party requirements with MyPy ([#10811](https://github.com/pantsbuild/pants/pull/10811)) + +### Bugfixes + +- Plumb the custom certs file through to Pip (via Pex) ([#10837](https://github.com/pantsbuild/pants/pull/10837)) +- Fix MyPy with Python 2-only third-party requirements ([#10820](https://github.com/pantsbuild/pants/pull/10820)) +- Fix `setup_py.with_binaries()` to automatically inject + `dependencies` ([#10829](https://github.com/pantsbuild/pants/pull/10829)) +- Fix run not working with foo:main entry point. ([#10821](https://github.com/pantsbuild/pants/pull/10821)) +- Fix `internal_only` PEXes runtime interpreter diverging + from buildtime ([#10818](https://github.com/pantsbuild/pants/pull/10818)) +- Local process cache validates that digests exist locally before + hitting ([#10789](https://github.com/pantsbuild/pants/pull/10789)) +- Better Ctrl-C handling in the `test --debug` case + ([#10835](https://github.com/pantsbuild/pants/pull/10835)) +- Fix --pants-ignore-warnings behavior ([#10845](https://github.com/pantsbuild/pants/pull/10845)) +- Fix display of "Snapshotting" in dynamic UI ([#10797](https://github.com/pantsbuild/pants/pull/10797)) + +### Refactoring, Improvements, and Tooling + +- Change Display impl of Key ([#10848](https://github.com/pantsbuild/pants/pull/10848)) +- OptionsBootstrapper is provided via a new SessionValues facility + rather than a Param ([#10827](https://github.com/pantsbuild/pants/pull/10827)) +- Internally stop ignoring missing imports with MyPy ([#10828](https://github.com/pantsbuild/pants/pull/10828)) +- Make `get_options_to_record` a 'public' api. ([#10808](https://github.com/pantsbuild/pants/pull/10808)) +- Useful equality for relevant options types ([#10815](https://github.com/pantsbuild/pants/pull/10815)) +- Clean nodes with uncacheable dependencies once per session ([#10814](https://github.com/pantsbuild/pants/pull/10814)) +- Disable pantsd when piping output for internal script ([#10810](https://github.com/pantsbuild/pants/pull/10810)) +- Simplify logging initialization ([#10812](https://github.com/pantsbuild/pants/pull/10812)) +- Remove support for "weak" Gets ([#10805](https://github.com/pantsbuild/pants/pull/10805)) +- Un-revert Add cache_failures option to Process type ([#10796](https://github.com/pantsbuild/pants/pull/10796)) +- Remove reset_interactive_output_stream ([#10791](https://github.com/pantsbuild/pants/pull/10791)) +- Allow creating empty directories with the engine ([#10760](https://github.com/pantsbuild/pants/pull/10760)) +- Use "output" and "input" instead of "product" and "subject" + ([#10790](https://github.com/pantsbuild/pants/pull/10790)) +- Add graph test for UncacheableDeps nodes only running once ([#10795](https://github.com/pantsbuild/pants/pull/10795)) +- Fix our release script to use the correct Python ([#10841](https://github.com/pantsbuild/pants/pull/10841)) +- Refactor `core/util_rules/archive.py` to use + `BinaryPaths` ([#10836](https://github.com/pantsbuild/pants/pull/10836)) +- Work around trailing slash issue with protobuf codegen ([#10849](https://github.com/pantsbuild/pants/pull/10849)) +- Consolidate "runner" PEXes into "tool" PEXes ([#10852](https://github.com/pantsbuild/pants/pull/10852)) + +### Testing + +- Re-export `QueryRule` from + `pants.testutil.rule_runner` ([#10806](https://github.com/pantsbuild/pants/pull/10806)) + +### Documentation + +- Add documentation for the `graph` crate. ([#10793](https://github.com/pantsbuild/pants/pull/10793)) +- Prepare 1.30.1 ([#10843](https://github.com/pantsbuild/pants/pull/10843)) +- Prepare 1.30.2rc0 ([#10846](https://github.com/pantsbuild/pants/pull/10846)) + +## 2.0.0b0 (9/15/2020) + +### API Changes + +- Upgrade to Pex 2.1.16. ([#10782](https://github.com/pantsbuild/pants/pull/10782)) +- Restore running internal only PEXes via discovered Python (#10779) + ([#10788](https://github.com/pantsbuild/pants/pull/10779)) + +### Bugfixes + +- @rules consume params to prevent some types of ambiguity ([#10764](https://github.com/pantsbuild/pants/pull/10764)) +- Fix xdg-open. ([#10773](https://github.com/pantsbuild/pants/pull/10773)) +- Hide BinaryPath test processes from TUI by default. ([#10774](https://github.com/pantsbuild/pants/pull/10774)) +- Signal handling fixes ([#10758](https://github.com/pantsbuild/pants/pull/10758)) +- Fix UUIDRequest scoping. ([#10780](https://github.com/pantsbuild/pants/pull/10780)) +- Fix `DictStringToStringField` not working with default + values ([#10776](https://github.com/pantsbuild/pants/pull/10776)) +- Sandbox Pex temporary files. ([#10772](https://github.com/pantsbuild/pants/pull/10772)) + +### Refactoring, Improvements, and Tooling + +- remoting: move target_platform property into environment variable + ([#10713](https://github.com/pantsbuild/pants/pull/10713)) +- Add the ability to capture all known scope options in run tracker. + ([#10778](https://github.com/pantsbuild/pants/pull/10778)) +- fs_util cat-proto has --child-dir arg ([#10228](https://github.com/pantsbuild/pants/pull/10228)) +- Simplify --print-exception-stacktrace logic ([#10786](https://github.com/pantsbuild/pants/pull/10786)) +- Various ExceptionSink improvements ([#10781](https://github.com/pantsbuild/pants/pull/10781)) +- Revert "Run internal only pexes via discovered python. (#10779)" + ([#10785](https://github.com/pantsbuild/pants/pull/10785)) +- Support volatile processes. ([#10768](https://github.com/pantsbuild/pants/pull/10768)) +- Run internal only pexes via discovered python. ([#10779](https://github.com/pantsbuild/pants/pull/10779)) +- Fix a leaking pytest-cov abstraction. ([#10775](https://github.com/pantsbuild/pants/pull/10775)) +- Support tests for BinaryPaths. ([#10770](https://github.com/pantsbuild/pants/pull/10770)) + +### Documentation + +- Prepare 1.30.1rc2 ([#10783](https://github.com/pantsbuild/pants/pull/10783)) +- Prepare 1.30.1rc1 ([#10766](https://github.com/pantsbuild/pants/pull/10766)) +- Explain how to fix dependency cycles ([#10761](https://github.com/pantsbuild/pants/pull/10761)) + +## 2.0.0a3 (9/11/2020) + +### API Changes + +- Replace `cloc` with `count-loc`, using much + faster SCC program ([#10740](https://github.com/pantsbuild/pants/pull/10740)) +- Upgrade default isort from 4.6 to 5.5 ([#10737](https://github.com/pantsbuild/pants/pull/10737)) +- Disambiguate binary and lambda output. ([#10735](https://github.com/pantsbuild/pants/pull/10735)) + +### New Features + +- Add `runtime_binary_dependencies` field to + `python_tests` target ([#10756](https://github.com/pantsbuild/pants/pull/10756)) +- Pass proxy-related env vars through to Pex calls. ([#10762](https://github.com/pantsbuild/pants/pull/10762)) +- Support custom CA bundles. ([#10757](https://github.com/pantsbuild/pants/pull/10757)) +- Add support to MyPy for first-party plugins ([#10755](https://github.com/pantsbuild/pants/pull/10755)) +- Filter log levels by target ([#10729](https://github.com/pantsbuild/pants/pull/10729)) + +### Bugfixes + +- fix incorrect mapping of parameters into PyRemotingOptions struct + ([#10752](https://github.com/pantsbuild/pants/pull/10752)) +- Fix MyPy to work by default with Python 3.6+ code and Black with + 3.8+ code ([#10750](https://github.com/pantsbuild/pants/pull/10750)) +- Temporarily disable 3rd-party requirements support for MyPy ([#10765](https://github.com/pantsbuild/pants/pull/10765)) + +### Refactoring, Improvements, and Tooling + +- Support binary dependencies in tests. ([#10744](https://github.com/pantsbuild/pants/pull/10744)) +- Add support to MyPy for third-party requirements and stubs (PEP 561) + ([#10753](https://github.com/pantsbuild/pants/pull/10753)) +- Add new intrinsic `Paths` to avoid snapshotting ([#10741](https://github.com/pantsbuild/pants/pull/10741)) +- Remove unused FFI types and `tar_api.rs` ([#10742](https://github.com/pantsbuild/pants/pull/10742)) +- Remove daemonize method + tests ([#10749](https://github.com/pantsbuild/pants/pull/10749)) +- Some refactoring around pantsd and warning filtering ([#10748](https://github.com/pantsbuild/pants/pull/10748)) +- Refactor `pytest_runner_integration_test.py` ([#10736](https://github.com/pantsbuild/pants/pull/10736)) +- Switch the backend of AsyncSemaphore to tokio's Semaphore. ([#10738](https://github.com/pantsbuild/pants/pull/10738)) +- Refactor find_valid_field_sets. ([#10732](https://github.com/pantsbuild/pants/pull/10732)) +- Upgrade to Rust v1.46.0 ([#10694](https://github.com/pantsbuild/pants/pull/10694)) + +### Documentation + +- Fix `./pants help $goal` showing the goal in "related + subsystems" ([#10754](https://github.com/pantsbuild/pants/pull/10754)) + +## 2.0.0a2 (9/3/2020) + +### New Features + +- Support adding arbitrary env vars to test processes ([#10715](https://github.com/pantsbuild/pants/pull/10715)) +- Add a plugin hook for `setup-py` kwargs ([#10721](https://github.com/pantsbuild/pants/pull/10721)) + +### Bugfixes + +- Fix the `testutil` wheel's imports not working due to + namespace packages ([#10725](https://github.com/pantsbuild/pants/pull/10725)) +- Fix Pipenv not parsing requirement extras ([#10722](https://github.com/pantsbuild/pants/pull/10722)) +- Fix invalid shebang for `BinaryPaths` script ([#10710](https://github.com/pantsbuild/pants/pull/10710)) +- Fix retrieval of bytes from artifacts in StreamingWorkunitHandler + ([#10698](https://github.com/pantsbuild/pants/pull/10698)) + +### Refactoring, Improvements, and Tooling + +- Improve Pylint to use + `--python-setup-resolve-all-constraints` ([#10726](https://github.com/pantsbuild/pants/pull/10726)) +- Reorganize `pants/backend/python` ([#10724](https://github.com/pantsbuild/pants/pull/10724)) +- Improve RuleGraph convergence time slightly ([#10700](https://github.com/pantsbuild/pants/pull/10700)) +- Snapshots of single files store normalized paths. ([#10707](https://github.com/pantsbuild/pants/pull/10707)) +- Add product type to the Rule trait to simplify unit testing. + ([#10720](https://github.com/pantsbuild/pants/pull/10720)) + +### Testing + +- Add `RuleRunner.get_target()` ([#10714](https://github.com/pantsbuild/pants/pull/10714)) +- Port more tests from `TestBase` to + `RuleRunner` ([#10704](https://github.com/pantsbuild/pants/pull/10704)) + +### Documentation + +- Formalize support for VCS-style requirements via PEP 440 ([#10728](https://github.com/pantsbuild/pants/pull/10728)) + +## 2.0.0a1 (8/28/2020) + +### API Changes + +- Upgrade default Black version to 20.8b1 ([#10696](https://github.com/pantsbuild/pants/pull/10696)) + +### Bugfixes + +- Fix `test --debug` to be hermetic, but keep + `run` and `repl` non-hermetic ([#10701](https://github.com/pantsbuild/pants/pull/10701)) +- Properly fix setting a custom coverage config file ([#10692](https://github.com/pantsbuild/pants/pull/10692)) +- remoting: output directories in action results reference trees + ([#10691](https://github.com/pantsbuild/pants/pull/10691)) + +### Refactoring, Improvements, and Tooling + +- Unify logging implementations and remove simplelog ([#10686](https://github.com/pantsbuild/pants/pull/10686)) + +### Testing + +- Rename `run_rule` to `run_rule_with_mocks` + ([#10702](https://github.com/pantsbuild/pants/pull/10702)) +- Add `RuleRunner` as a Pytest-style replacement to + `TestBase` ([#10699](https://github.com/pantsbuild/pants/pull/10699)) +- Remove unused `TestBase` setup ([#10697](https://github.com/pantsbuild/pants/pull/10697)) + +### Documentation + +- Fix stale comments in `logger.rs` ([#10695](https://github.com/pantsbuild/pants/pull/10695)) +- Document rule graph construction and open issues ([#10690](https://github.com/pantsbuild/pants/pull/10690)) + +## 2.0.0a0 (8/24/2020) + +### API Changes + +- Temporarily disable protobuf support. ([#10685](https://github.com/pantsbuild/pants/pull/10685)) +- Simplify `python_requirement_library` by deprecating the + `python_requirement` object ([#10669](https://github.com/pantsbuild/pants/pull/10669)) +- Updated default version of pytest to 6.0.1 ([#10328](https://github.com/pantsbuild/pants/pull/10328)) + +### New Features + +- Adds a `pipenv_requirements` macro ([#10654](https://github.com/pantsbuild/pants/pull/10654)) +- Add transitive excludes for `dependencies` with + `!!` ([#10663](https://github.com/pantsbuild/pants/pull/10663)) + +### Bugfixes + +- Fix Coverage loading a custom config file ([#10670](https://github.com/pantsbuild/pants/pull/10670)) +- Fix Rust 3rdparty logs showing up with `--dynamic-ui` + ([#10640](https://github.com/pantsbuild/pants/pull/10640)) +- Fix logging deadlock when trace logging is used ([#10635](https://github.com/pantsbuild/pants/pull/10635)) +- Fix project name canonicalization. ([#10628](https://github.com/pantsbuild/pants/pull/10628)) + +### Refactoring, Improvements, and Tooling + +- Revert "Fix `run`, `repl`, and [test + --debug` to have hermetic environments (#10668)" + ([#10688](https://github.com/pantsbuild/pants/pull/10688)) +- Implement RuleGraph construction using data flow analysis ([#10645](https://github.com/pantsbuild/pants/pull/10645)) +- Fix `run`, `repl`, and [test + --debug` to have hermetic environments ([#10668](https://github.com/pantsbuild/pants/pull/10668)) +- Handle workunits corresponding to canceled Nodes. ([#10659](https://github.com/pantsbuild/pants/pull/10659)) +- Add support for JSON coverage reports ([#10625](https://github.com/pantsbuild/pants/pull/10625)) +- Add an FFI function for reading a `FrozenDict` ([#10666](https://github.com/pantsbuild/pants/pull/10666)) +- Stream output of `typecheck`, rather than dumping at the + end ([#10656](https://github.com/pantsbuild/pants/pull/10656)) +- Allow `binary` to be implemented without implementing + `run` ([#10660](https://github.com/pantsbuild/pants/pull/10660)) +- Reduce noisy log messages from `@rule` params ([#10658](https://github.com/pantsbuild/pants/pull/10658)) +- Add type hints to `TestBase` ([#10647](https://github.com/pantsbuild/pants/pull/10647)) +- Refactoring in graph ([#10637](https://github.com/pantsbuild/pants/pull/10637)) +- Stream output of `test`, rather than dumping at the end + ([#10634](https://github.com/pantsbuild/pants/pull/10634)) +- Preserve Pytest's exit code with `./pants test` + ([#10632](https://github.com/pantsbuild/pants/pull/10632)) +- Rename `--per-target-caching` to + `--per-file-caching` for `lint` and + `fmt` ([#10630](https://github.com/pantsbuild/pants/pull/10630)) +- Upgrade setuptools from 49.2.0 to 49.60 ([#10626](https://github.com/pantsbuild/pants/pull/10626)) +- Allow `test --debug` to run on multiple targets + sequentially ([#10629](https://github.com/pantsbuild/pants/pull/10629)) +- Stream output of `fmt`, rather than dumping at the end + ([#10627](https://github.com/pantsbuild/pants/pull/10627)) +- Stream output of `lint`, rather than dumping at the end + ([#10538](https://github.com/pantsbuild/pants/pull/10538)) +- Add coverage reports as artifacts on the test goal workunit ([#10623](https://github.com/pantsbuild/pants/pull/10623)) + +### Testing + +- Change `TestBase.request_product()` to take an iterable + of subjects ([#10682](https://github.com/pantsbuild/pants/pull/10682)) +- Only use `TestBase` for tests that run rules ([#10680](https://github.com/pantsbuild/pants/pull/10680)) +- Change `pants_integration_test.py` to use Pytest-style + functions ([#10675](https://github.com/pantsbuild/pants/pull/10675)) +- Consolidate `GoalRuleTestBase` into + `TestBase` ([#10679](https://github.com/pantsbuild/pants/pull/10679)) +- Rename `TestBase.request_single_product` to + `TestBase.request_product` ([#10678](https://github.com/pantsbuild/pants/pull/10678)) +- Reorganize `testutil/` ([#10674](https://github.com/pantsbuild/pants/pull/10674)) +- Add `PantsIntegrationTest.setup_tmpdir()` ([#10673](https://github.com/pantsbuild/pants/pull/10673)) +- Change `PantsIntegrationTest` to be hermetic by default + ([#10672](https://github.com/pantsbuild/pants/pull/10672)) +- Remove unused `pytest-timeout` plugin from default + `--pytest-plugins` ([#10631](https://github.com/pantsbuild/pants/pull/10631)) +- Rename `PantsRunIntegrationTest` to + `PantsIntegrationTest` ([#10664](https://github.com/pantsbuild/pants/pull/10664)) +- Add tests for HTML and XML coverage reports. ([#10211](https://github.com/pantsbuild/pants/pull/10211)) + +### Documentation/Logging + +- Provide better debugging information for rule parameters ([#10665](https://github.com/pantsbuild/pants/pull/10665)) +- Stop including the origin module in Debug logs ([#10642](https://github.com/pantsbuild/pants/pull/10642)) +- Change log level for rules and filesystem intrinsics to trace + ([#10639](https://github.com/pantsbuild/pants/pull/10639)) +- Change some remote execution log messages to debug level ([#10643](https://github.com/pantsbuild/pants/pull/10643)) + +## 2.0.0.dev9 (8/15/2020) + +### API Changes + +- Deprecate `--option-name-check-distance` ([#10611](https://github.com/pantsbuild/pants/pull/10611)) + +### New Features + +- Allow restricting use of resolve_all_constraints. ([#10614](https://github.com/pantsbuild/pants/pull/10614)) + +### Bugfixes + +- Revert #10603 so that `conftest.py` belongs to + `python_tests` again ([#10619](https://github.com/pantsbuild/pants/pull/10619)) +- Spawning against materialized binaries works. ([#10577](https://github.com/pantsbuild/pants/pull/10577)) +- Fix linter reports when there are multiple generated ([#10612](https://github.com/pantsbuild/pants/pull/10612)) +- Fix log not always showing up when `--dynamic-ui` is + set ([#10616](https://github.com/pantsbuild/pants/pull/10616)) + +### Refactoring, Improvements, and Tooling + +- Simplify `core/goals/test.py` ([#10622](https://github.com/pantsbuild/pants/pull/10622)) +- Remove passive options mechanism ([#10621](https://github.com/pantsbuild/pants/pull/10621)) +- Speed up resolving requirements through + `--use-first-matching-interpreter` Pex flag ([#10442](https://github.com/pantsbuild/pants/pull/10442)) + +## 2.0.0.dev8 (8/13/2020) + +### API Changes + +- Change `conftest.py` to default to + `python_library` rather than `python_tests` + ([#10603](https://github.com/pantsbuild/pants/pull/10603)) +- Deprecate `--python-setup-platforms` ([#10596](https://github.com/pantsbuild/pants/pull/10596)) +- Make `zip_safe` default to False for + `python_binary` targets. ([#10608](https://github.com/pantsbuild/pants/pull/10608)) + +### New Features + +- Add `--python-infer-string-imports` ([#10609](https://github.com/pantsbuild/pants/pull/10609)) +- Add `--pex-verbosity` option to facilitate debugging + ([#10604](https://github.com/pantsbuild/pants/pull/10604)) + +### Bugfixes + +- Fix binary running to correctly work with source roots. ([#10607](https://github.com/pantsbuild/pants/pull/10607)) +- Fix issues with REPL implementation ([#10597](https://github.com/pantsbuild/pants/pull/10597)) +- Fix regression in unmatched globs error message ([#10595](https://github.com/pantsbuild/pants/pull/10595)) +- Require `provides` field for a + `python_distribution` target ([#10591](https://github.com/pantsbuild/pants/pull/10591)) + +### Refactoring, Improvements, and Tooling + +- Rename `determine_source_files.py` and + `strip_source_roots.py` ([#10588](https://github.com/pantsbuild/pants/pull/10588)) +- Add XML test results as artifacts on the test goal workunit ([#10606](https://github.com/pantsbuild/pants/pull/10606)) +- Add non-root pantsbuild user to remote execution image ([#10583](https://github.com/pantsbuild/pants/pull/10583)) +- Move `--files-not-found-behavior` and BUILD file + options out of bootstrap options ([#10586](https://github.com/pantsbuild/pants/pull/10586)) +- Remoting: limit retries for execution requests. ([#10600](https://github.com/pantsbuild/pants/pull/10600)) +- Ensure MyPy always runs with at least Python 3.6 internally. + ([#10602](https://github.com/pantsbuild/pants/pull/10602)) + +### Documentation + +- Improve errors for invalid `Get` objects ([#10593](https://github.com/pantsbuild/pants/pull/10593)) + +## 2.0.0.dev7 (8/10/2020) + +### API Changes + +- A python_distribution target. ([#10565](https://github.com/pantsbuild/pants/pull/10565)) +- Enable Python dependency inference by default ([#10520](https://github.com/pantsbuild/pants/pull/10520)) +- Targets act as aliases for their files ([#10511](https://github.com/pantsbuild/pants/pull/10511)) + +### New Features + +- Allow using file addresses on the command line ([#10573](https://github.com/pantsbuild/pants/pull/10573)) +- Add `--build-patterns` option ([#10559](https://github.com/pantsbuild/pants/pull/10559)) +- Allow protobuf_library targets to specify a python source root. + ([#10549](https://github.com/pantsbuild/pants/pull/10549)) +- Restore the missing init injection logic. ([#10517](https://github.com/pantsbuild/pants/pull/10517)) +- Add `--pex-executable-search-path` ([#10489](https://github.com/pantsbuild/pants/pull/10489)) +- Add support for bandit output file. ([#10412](https://github.com/pantsbuild/pants/pull/10412)) + +### Bugfixes + +- Sync before executing a process if running in Docker ([#10568](https://github.com/pantsbuild/pants/pull/10568)) +- Fix some issues from #10535 Address changes ([#10555](https://github.com/pantsbuild/pants/pull/10555)) +- Remove self-inflicted invalidation caused by exception logging. + ([#10521](https://github.com/pantsbuild/pants/pull/10521)) +- Fix bug that caused setup-py to hang if src root==buildroot. + ([#10509](https://github.com/pantsbuild/pants/pull/10509)) +- Fix ExternalTool to use relative paths ([#10503](https://github.com/pantsbuild/pants/pull/10503)) +- Fix `./pants binary` not outputting the full output path + ([#10506](https://github.com/pantsbuild/pants/pull/10506)) + +### Refactoring, Improvements, and Tooling + +- Stop validating that `!` dependency ignores are used + ([#10585](https://github.com/pantsbuild/pants/pull/10585)) +- Lower the default for `--python-setup-resolver-jobs` + ([#10584](https://github.com/pantsbuild/pants/pull/10584)) +- Automatically inject dependencies on sibling files when dependency + inference is unused ([#10582](https://github.com/pantsbuild/pants/pull/10582)) +- Use a constraints file in this repo. ([#10579](https://github.com/pantsbuild/pants/pull/10579)) +- Disable speculation by default ([#10581](https://github.com/pantsbuild/pants/pull/10581)) +- upgrade to Rust v1.45.2 ([#10556](https://github.com/pantsbuild/pants/pull/10556)) +- Move `--tag` and `--exclude-target-regexp` + out of bootstrap options ([#10569](https://github.com/pantsbuild/pants/pull/10569)) +- Allow for disabling pantsrc in OptionsBootstrapper independently of + options values ([#10562](https://github.com/pantsbuild/pants/pull/10562)) +- Refactor rule to resolve address specs ([#10563](https://github.com/pantsbuild/pants/pull/10563)) +- Stop using `AddressWithOrigin` for precise file + arguments ([#10551](https://github.com/pantsbuild/pants/pull/10551)) +- Always use generated subtargets with file arguments ([#10550](https://github.com/pantsbuild/pants/pull/10550)) +- Remove unused `SymbolTable` ([#10544](https://github.com/pantsbuild/pants/pull/10544)) +- Support and require disambiguated file addresses ([#10535](https://github.com/pantsbuild/pants/pull/10535)) +- Revert "Add cache_failures option to Process type (#10433)" + ([#10534](https://github.com/pantsbuild/pants/pull/10534)) +- Simplify source root stripping. ([#10543](https://github.com/pantsbuild/pants/pull/10543)) +- Improve source root stripping performance. ([#10533](https://github.com/pantsbuild/pants/pull/10533)) +- ArgSplitter operates relative to the buildroot. ([#10540](https://github.com/pantsbuild/pants/pull/10540)) +- Simplify the setup-py rules. ([#10529](https://github.com/pantsbuild/pants/pull/10529)) +- Allow `Process` to set its workunit level ([#10528](https://github.com/pantsbuild/pants/pull/10528)) +- Rely on the init-injection rules to trigger errors for + un-depended-on-and-relevant `__init__.py` files. ([#10524](https://github.com/pantsbuild/pants/pull/10524)) +- Remove rust source include from integration tests. ([#10522](https://github.com/pantsbuild/pants/pull/10522)) +- upgrade to rust v1.45.1 ([#10523](https://github.com/pantsbuild/pants/pull/10523)) +- Store SpanIds as integers ([#10512](https://github.com/pantsbuild/pants/pull/10512)) +- Remove `tarutil.py` ([#10516](https://github.com/pantsbuild/pants/pull/10516)) +- Refactor Pex usage through new helper rules ([#10514](https://github.com/pantsbuild/pants/pull/10514)) +- Get rid of the remote backend subsystems. ([#10502](https://github.com/pantsbuild/pants/pull/10502)) +- Move subsystem.py and its test into pants.option. ([#10500](https://github.com/pantsbuild/pants/pull/10500)) +- Lower the default local parallelism, and align the number of + swimlanes to it. ([#10499](https://github.com/pantsbuild/pants/pull/10499)) +- Rotate travis aws creds. ([#10496](https://github.com/pantsbuild/pants/pull/10496)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) +- Deprecate `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10493](https://github.com/pantsbuild/pants/pull/10493)) +- Simplify script to check `__init__.py` files + ([#10488](https://github.com/pantsbuild/pants/pull/10488)) +- Merge interactive_process.py into process.py ([#10495](https://github.com/pantsbuild/pants/pull/10495)) +- Export `Get` and `MultiGet` from + `rules.py` ([#10485](https://github.com/pantsbuild/pants/pull/10485)) +- Simplify `engine/internals/nodes.py` ([#10487](https://github.com/pantsbuild/pants/pull/10487)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) + +### Testing + +- Disable remote execution due to RBE shutdown. ([#10566](https://github.com/pantsbuild/pants/pull/10566)) +- remoting: use non-RBE pants remote execution image ([#10539](https://github.com/pantsbuild/pants/pull/10539)) +- Avoid Python 3.8+ for Pylint test ([#10548](https://github.com/pantsbuild/pants/pull/10548)) +- avoid Py 3.8 for BanditIntegrationTest.test_3rdparty_plugin ([#10546](https://github.com/pantsbuild/pants/pull/10546)) +- set locale vars for remoting image ([#10541](https://github.com/pantsbuild/pants/pull/10541)) +- Test for rule graph issues with each distinct backend ([#10519](https://github.com/pantsbuild/pants/pull/10519)) +- docker image for remote execution without GCP/RBE ([#10515](https://github.com/pantsbuild/pants/pull/10515)) + +### Documentation/Logging + +- Update docs urls to pantsbuild.org. ([#10580](https://github.com/pantsbuild/pants/pull/10580)) +- Improve log message when resolving entire lockfile. ([#10578](https://github.com/pantsbuild/pants/pull/10578)) +- Improve error message when the path component does not exist + ([#10570](https://github.com/pantsbuild/pants/pull/10570)) +- Prepare 1.30.1rc0 ([#10554](https://github.com/pantsbuild/pants/pull/10554)) +- Improve error message for unrecognized BUILD file symbols ([#10531](https://github.com/pantsbuild/pants/pull/10531)) +- Reduce verbosity of finding binaries ([#10525](https://github.com/pantsbuild/pants/pull/10525)) +- Render all frames of a failure in Engine tracebacks ([#10510](https://github.com/pantsbuild/pants/pull/10510)) +- Fix bad indent of default in option help. ([#10501](https://github.com/pantsbuild/pants/pull/10501)) +- Fix display of default/current values in help. ([#10490](https://github.com/pantsbuild/pants/pull/10490)) +- Stop warning when return code != 0 or 1 ([#10486](https://github.com/pantsbuild/pants/pull/10486)) + +## 2.0.0.dev6 (7/28/2020) + +### API Changes + +- Upgrade to Pex 2.1.14 ([#10437](https://github.com/pantsbuild/pants/pull/10437)) + +### New Features + +- Improve test output and allow it be configured. ([#10484](https://github.com/pantsbuild/pants/pull/10484)) + +### Bugfixes + +- Make independent owners requests per file to improve memoization + ([#10491](https://github.com/pantsbuild/pants/pull/10491)) +- Fix `PluginField` not working in production ([#10469](https://github.com/pantsbuild/pants/pull/10469)) +- Allow for more cyclic cases with file dependencies ([#10475](https://github.com/pantsbuild/pants/pull/10475)) +- Fix Protobuf when using source roots ([#10453](https://github.com/pantsbuild/pants/pull/10453)) +- Fix fromfile expansion to skip passthrough args. ([#10457](https://github.com/pantsbuild/pants/pull/10457)) +- Fix `--print-exception-stacktrace` not invalidating + pantsd ([#10451](https://github.com/pantsbuild/pants/pull/10451)) +- fixes in async_semaphore for concurrency ID calculation ([#10436](https://github.com/pantsbuild/pants/pull/10436)) + +### Refactoring, Improvements, and Tooling + +- Eliminate most rule registration boilerplate. ([#10477](https://github.com/pantsbuild/pants/pull/10477)) +- Remove unused `util/` and `base/` code + ([#10462](https://github.com/pantsbuild/pants/pull/10462)) +- Rename `UrlToFetch` to `DownloadFile` + ([#10468](https://github.com/pantsbuild/pants/pull/10468)) +- Change the `PathGlobs`, `SnapshotSubset`, + and `UrlToFetch` intrinsics to return + `Digest` ([#10449](https://github.com/pantsbuild/pants/pull/10449)) +- Unify accessing options for a `GoalSubsystem` with + `Subsystem` ([#10456](https://github.com/pantsbuild/pants/pull/10456)) +- Rename `Workspace.materialize_directory()` to + `Workspace.write_digest()` ([#10448](https://github.com/pantsbuild/pants/pull/10448)) +- Remove unused `SingleFileExecutable` ([#10443](https://github.com/pantsbuild/pants/pull/10443)) +- Remove support for Protoc 2 ([#10439](https://github.com/pantsbuild/pants/pull/10439)) +- Make GoalSubsystem subclass Subsystem. ([#10483](https://github.com/pantsbuild/pants/pull/10483)) +- Tweaks to help output: ([#10466](https://github.com/pantsbuild/pants/pull/10466)) +- Cleanup `fs.py` ([#10474](https://github.com/pantsbuild/pants/pull/10474)) +- Add `UnionMembership.from_rules()` ([#10472](https://github.com/pantsbuild/pants/pull/10472)) +- Kill Reporting (mostly). ([#10463](https://github.com/pantsbuild/pants/pull/10463)) +- Add dependencies on conftest and init files via inference ([#10441](https://github.com/pantsbuild/pants/pull/10441)) +- Kill ./pants literals. ([#10465](https://github.com/pantsbuild/pants/pull/10465)) +- Remove Options <-> Parser cycle. ([#10464](https://github.com/pantsbuild/pants/pull/10464)) +- Revert "Use isort v5.x as the default version (#10258)" ([#10460](https://github.com/pantsbuild/pants/pull/10460)) +- Demystify get_all_scoped_flag_names mypy kludges. ([#10459](https://github.com/pantsbuild/pants/pull/10459)) +- Optimize generated subtargets' interaction with + `SpecifiedSourceFiles` ([#10454](https://github.com/pantsbuild/pants/pull/10454)) +- Simplify Collection. ([#10450](https://github.com/pantsbuild/pants/pull/10450)) +- Improvements to help output. ([#10444](https://github.com/pantsbuild/pants/pull/10444)) +- Fixes to get the process_executor CLI tool working again. ([#10435](https://github.com/pantsbuild/pants/pull/10435)) +- Rename argument in streaming workunit callback ([#10432](https://github.com/pantsbuild/pants/pull/10432)) + +### Testing + +- Only skip building wheels on PR builds ([#10482](https://github.com/pantsbuild/pants/pull/10482)) +- Skip building wheels if no release files have changed ([#10481](https://github.com/pantsbuild/pants/pull/10481)) +- Skip flaky GoalRuleIntegrationTest ([#10479](https://github.com/pantsbuild/pants/pull/10479)) +- A script to create an index.html for pants wheels on S3. ([#10458](https://github.com/pantsbuild/pants/pull/10458)) +- Get rid of remaining uses of init_subsystem. ([#10427](https://github.com/pantsbuild/pants/pull/10427)) + +## 2.0.0.dev5 (7/22/2020) + +### API Changes + +- Use isort v5.x as the default version ([#10258](https://github.com/pantsbuild/pants/pull/10258)) +- Don't register any options as recursive. ([#10415](https://github.com/pantsbuild/pants/pull/10415)) + +### New Features + +- Speed up `repl` to no longer rebuild a Pex on source + file changes ([#10418](https://github.com/pantsbuild/pants/pull/10418)) + +### Refactoring, Improvements, and Tooling + +- Implement cycle detection in transitive_targets, and tolerate cycles + in file-addresses. ([#10409](https://github.com/pantsbuild/pants/pull/10409)) +- Stop using cargo-ensure-installed ([#10400](https://github.com/pantsbuild/pants/pull/10400)) +- Remove use of "quiet" in logging init ([#10417](https://github.com/pantsbuild/pants/pull/10417)) + +### Testing + +- Port the plugin resolver test to v2 test style. ([#10424](https://github.com/pantsbuild/pants/pull/10424)) +- Refactor flake8 integration test to use create_options_bootstrapper + ([#10422](https://github.com/pantsbuild/pants/pull/10422)) +- Increase timeout on project_info tests. ([#10421](https://github.com/pantsbuild/pants/pull/10421)) + +## 2.0.0.dev4 (7/21/2020) + +### API Changes + +- Upgrade default mypy from 0.781 to 0.782 ([#10404](https://github.com/pantsbuild/pants/pull/10404)) +- Remove unused `--fmt-only` option ([#10388](https://github.com/pantsbuild/pants/pull/10388)) +- Don't turn on branch coverage by default. ([#10386](https://github.com/pantsbuild/pants/pull/10386)) +- access store server for action cache ([#10329](https://github.com/pantsbuild/pants/pull/10329)) +- Upgrade setuptools from 49.1.0 to 49.2.0 ([#10347](https://github.com/pantsbuild/pants/pull/10347)) +- Move `target.py` rules to + `engine/internals/graph.py` ([#10372](https://github.com/pantsbuild/pants/pull/10372)) + +### New Features + +- Speed up `run` to no longer rebuild a Pex on source file + changes ([#10410](https://github.com/pantsbuild/pants/pull/10410)) +- Support for using a single global resolve. ([#10405](https://github.com/pantsbuild/pants/pull/10405)) +- Flake8 output file support. ([#10371](https://github.com/pantsbuild/pants/pull/10371)) +- A flag to force rerunning tests, bypassing the cache. ([#10403](https://github.com/pantsbuild/pants/pull/10403)) +- Support for injecting ancestor conftest.py files. ([#10378](https://github.com/pantsbuild/pants/pull/10378)) +- Allow ignoring dependencies with `!` ([#10385](https://github.com/pantsbuild/pants/pull/10385)) +- Allow dependencies on files in BUILD files ([#10381](https://github.com/pantsbuild/pants/pull/10381)) +- Unify generated subtargets with file arguments and + `--changed-since` ([#10356](https://github.com/pantsbuild/pants/pull/10356)) +- Use colors for log messages ([#10278](https://github.com/pantsbuild/pants/pull/10278)) + +### Bugfixes + +- Print initial logs from pantsd using local time format [Issue + #10128](https://github.com/pantsbuild/pants/issues/10128) +- Fix using relative paths with `--local-cache-dir` and + `--named-caches-dir` ([#10398](https://github.com/pantsbuild/pants/pull/10398)) +- Fix validation of dependencies ignores breaking with generated + subtargets ([#10407](https://github.com/pantsbuild/pants/pull/10407)) +- close write stream for CAS writes via ByteStream API ([#10395](https://github.com/pantsbuild/pants/pull/10395)) +- Fix recently added n^2 edge collection. ([#10392](https://github.com/pantsbuild/pants/pull/10392)) +- Align cache directory calculation so that the LMDB store location is + uniformly configurable. ([#10391](https://github.com/pantsbuild/pants/pull/10391)) +- remoting: use debug level for RE client workunits saved from remote + ([#10382](https://github.com/pantsbuild/pants/pull/10382)) +- Always include types in the engine's definition of equality. + ([#10377](https://github.com/pantsbuild/pants/pull/10377)) +- Have help respond to color ([#10357](https://github.com/pantsbuild/pants/pull/10357)) +- Display multiline help nicely. ([#10366](https://github.com/pantsbuild/pants/pull/10366)) + +### Refactoring, Improvements, and Tooling + +- Add a hint about adjusting max_user_watches on Linux. ([#10413](https://github.com/pantsbuild/pants/pull/10413)) +- Delete unused v1 sources. ([#10411](https://github.com/pantsbuild/pants/pull/10411)) +- upgrade to Rust 1.45.0 ([#10396](https://github.com/pantsbuild/pants/pull/10396)) +- Tolerate target cycles when using dependency inference ([#10393](https://github.com/pantsbuild/pants/pull/10393)) +- Revert "Tolerate target cycles when using dependency inference + (#10393)" ([#10401](https://github.com/pantsbuild/pants/pull/10401)) +- Add support for cycle-tolerant "weak" Gets ([#10230](https://github.com/pantsbuild/pants/pull/10230)) +- Make fetching wheels more resilient to network errors. ([#10376](https://github.com/pantsbuild/pants/pull/10376)) +- Avoid undefined behaviour around f64/u64 casts ([#10374](https://github.com/pantsbuild/pants/pull/10374)) +- Fix when an explicitly provided dependency supersedes an inferred + dependency ([#10375](https://github.com/pantsbuild/pants/pull/10375)) +- Fix dependency inference handling of dependencies on self ([#10373](https://github.com/pantsbuild/pants/pull/10373)) +- Render local process infrastructure errors more verbosely. ([#10368](https://github.com/pantsbuild/pants/pull/10368)) +- Use our validate goal instead of the custom header check. ([#10361](https://github.com/pantsbuild/pants/pull/10361)) +- Delete some unused testprojects code. ([#10364](https://github.com/pantsbuild/pants/pull/10364)) + +### Testing + +- Upload coverage data to coveralls ([#10299](https://github.com/pantsbuild/pants/pull/9919)) + +### Documentation + +- A script to generate options reference pages for the docsite. + ([#10387](https://github.com/pantsbuild/pants/pull/10387)) + +## 2.0.0.dev3 (7/15/2020) + +### New Features + +- Allow specifying address and file arguments at the same time + ([#10345](https://github.com/pantsbuild/pants/pull/10345)) +- Make help-all dump a JSON blob containing all help info. ([#10336](https://github.com/pantsbuild/pants/pull/10336)) +- Integrate option value derivation into help. ([#10313](https://github.com/pantsbuild/pants/pull/10313)) +- Generate subtargets with file-level precision for dependency + inference ([#10305](https://github.com/pantsbuild/pants/pull/10305)) +- Add option for specifying environment variable with concurrency slot + ([#10297](https://github.com/pantsbuild/pants/pull/10297)) +- Add support for specifying a custom coverage config file + (.coveragerc) ([#10289](https://github.com/pantsbuild/pants/pull/10289)) + +### Bugfixes + +- Fix generated subtargets not working with `dependees` + ([#10355](https://github.com/pantsbuild/pants/pull/10355)) +- Ignore dead symlinks on Linux as well as OSX ([#10339](https://github.com/pantsbuild/pants/pull/10339)) +- Fix bug where workunit completion was not reported correctly + ([#10277](https://github.com/pantsbuild/pants/pull/10277)) +- Fix collision in workunit affecting patches. ([#10350](https://github.com/pantsbuild/pants/pull/10350)) +- Pass stream workunit context to all callbacks calls instead of just + passing it in the last call. ([#10340](https://github.com/pantsbuild/pants/pull/10340)) +- Fix awslambda configuration of Pex. ([#10323](https://github.com/pantsbuild/pants/pull/10323)) +- Hotfix Bandit breaking from stevedore 3.0 release ([#10319](https://github.com/pantsbuild/pants/pull/10319)) + +### Refactoring, Improvements, and Tooling + +- Render only leaf rule graph errors, and improve error messages + ([#10311](https://github.com/pantsbuild/pants/pull/10311)) +- Tweak `any_matches_filespec` to return which paths + matched ([#10358](https://github.com/pantsbuild/pants/pull/10358)) +- Add check for invalid concrete time dates ([#10349](https://github.com/pantsbuild/pants/pull/10349)) +- Explicit error on missing descriptions in the `goals` + goal. ([#10348](https://github.com/pantsbuild/pants/pull/10348)) +- Add module to default rule names. ([#10341](https://github.com/pantsbuild/pants/pull/10341)) +- add artifacts infrastructure on relevant types ([#10344](https://github.com/pantsbuild/pants/pull/10344)) +- Revert modernization of virtualenv to fix pants.pex deploy in CI. + ([#10343](https://github.com/pantsbuild/pants/pull/10343)) +- Represent generated subtarget addresses as file names ([#10338](https://github.com/pantsbuild/pants/pull/10338)) +- Remove unusued RunTracker code ([#10315](https://github.com/pantsbuild/pants/pull/10315)) +- Minor wording change in help message ([#10335](https://github.com/pantsbuild/pants/pull/10335)) +- Display whether a scope is a goal or subsystem in help. ([#10332](https://github.com/pantsbuild/pants/pull/10332)) +- Fix `run_virtualenv` to target the current + `$PY`. ([#10331](https://github.com/pantsbuild/pants/pull/10331)) +- Modernize virtualenv. ([#10330](https://github.com/pantsbuild/pants/pull/10330)) +- Stop differentiating between constructors and types in FFI. ([#10327](https://github.com/pantsbuild/pants/pull/10327)) +- Use generated subtargets internally ([#10312](https://github.com/pantsbuild/pants/pull/10312)) +- Remove `Revision` ([#10318](https://github.com/pantsbuild/pants/pull/10318)) +- Bump to nails 0.6.0 to lay groundwork for cancelation of pantsd + runs. ([#10320](https://github.com/pantsbuild/pants/pull/10320)) +- remove polling remote execution client ([#10306](https://github.com/pantsbuild/pants/pull/10306)) +- Remove `Struct` and `@addressable` + abstractions ([#10309](https://github.com/pantsbuild/pants/pull/10309)) +- Move SubprocessProcessHandler near its single use. ([#10307](https://github.com/pantsbuild/pants/pull/10307)) +- No longer special case the `dependencies` field with + TargetAdaptor ([#10303](https://github.com/pantsbuild/pants/pull/10303)) +- Use with_workunit everywhere ([#10300](https://github.com/pantsbuild/pants/pull/10300)) +- refactor execution strategy options into separate struct ([#10304](https://github.com/pantsbuild/pants/pull/10304)) +- Remove -q from the release run of reversion. ([#10301](https://github.com/pantsbuild/pants/pull/10301)) +- Simplify BUILD file parsing ([#10298](https://github.com/pantsbuild/pants/pull/10298)) + +### Testing + +- Fix tests that relied on the docsite CNAME file. ([#10337](https://github.com/pantsbuild/pants/pull/10337)) +- Run unit tests and integration tests in CI in the same Pants run + ([#10333](https://github.com/pantsbuild/pants/pull/10333)) +- Merge the unit and integration tests ([#10302](https://github.com/pantsbuild/pants/pull/10302)) +- Run code coverage on v2 unit tests. ([#9919](https://github.com/pantsbuild/pants/pull/9919)) + +## 2.0.0.dev2 (7/8/2020) + +### API Changes + +- Rename `FilesContent` to `DigestContents` + and `InputFilesContent` to `CreateDigest` + ([#10290](https://github.com/pantsbuild/pants/pull/10290)) +- remoting: default is streaming client ([#10260](https://github.com/pantsbuild/pants/pull/10260)) +- Upgrade setuptools from 47.3.1 to 49.1.0 ([#10255](https://github.com/pantsbuild/pants/pull/10255)) +- Upgrade packaging from 20.3 to 20.4 ([#10256](https://github.com/pantsbuild/pants/pull/10256)) +- Deprecate the --v1/--v2 global options. ([#10245](https://github.com/pantsbuild/pants/pull/10245)) + +### New Features + +- Preserve source roots with Pytest output ([#10165](https://github.com/pantsbuild/pants/pull/10165)) + +### Bugfixes + +- Downgrade to tokio 0.2.20 to fix + `materialize_directories`. ([#10294](https://github.com/pantsbuild/pants/pull/10294)) +- Expose method to bring down dynamic UI ([#10234](https://github.com/pantsbuild/pants/pull/10234)) +- Fix double-workunit-completion print ([#10247](https://github.com/pantsbuild/pants/pull/10179)) + +### Refactoring, Improvements, and Tooling + +- Remove v1 `source/` abstractions like + `EagerFileSet` ([#10292](https://github.com/pantsbuild/pants/pull/10292)) +- Use f-strings in engine/util.py ([#10288](https://github.com/pantsbuild/pants/pull/10288)) +- Use dependency inference internally ([#10283](https://github.com/pantsbuild/pants/pull/10283)) +- Unify `LegacyPythonCallbackParser` and + `Parser` ([#10281](https://github.com/pantsbuild/pants/pull/10281)) +- Lower the default max-memory usage of pantsd. ([#10287](https://github.com/pantsbuild/pants/pull/10287)) +- Improvements and refactoring of help system. ([#10280](https://github.com/pantsbuild/pants/pull/10280)) +- Refactor WorkunitStore struct ([#10242](https://github.com/pantsbuild/pants/pull/10242)) +- remoting: check action cache for cached result before submitting a + request ([#10253](https://github.com/pantsbuild/pants/pull/10253)) +- Remove leftover v1 Target API bindings ([#10276](https://github.com/pantsbuild/pants/pull/10276)) +- Fix remaining internal dependency cycles ([#10254](https://github.com/pantsbuild/pants/pull/10254)) +- Remove `build_graph.Target` ([#10266](https://github.com/pantsbuild/pants/pull/10266)) +- Remove `cache/` and `invalidation/` ([#10262](https://github.com/pantsbuild/pants/pull/10262)) +- Remove obsolete root patterns. ([#10263](https://github.com/pantsbuild/pants/pull/10263)) +- Remove `Task`, `Goal`, and + `Context` ([#10252](https://github.com/pantsbuild/pants/pull/10252)) +- Simplify `git.py` and `scm.py` ([#10251](https://github.com/pantsbuild/pants/pull/10251)) +- Remove the internal tags `type_checked` and + `partially_type_checked` ([#10244](https://github.com/pantsbuild/pants/pull/10244)) +- Remove `HydratedTarget`, `AddressMapper`, + and `BuildGraph` ([#10250](https://github.com/pantsbuild/pants/pull/10250)) +- Remove all remaining v1 Targets ([#10246](https://github.com/pantsbuild/pants/pull/10246)) +- Remove `TestBase.context()` ([#10248](https://github.com/pantsbuild/pants/pull/10248)) +- Delete the rest of v1 `pants.backend.python` ([#10240](https://github.com/pantsbuild/pants/pull/10240)) +- Remove the concept of a scope category. ([#10224](https://github.com/pantsbuild/pants/pull/10224)) + +### Testing + +- Remove stale "pants.pex for integration tests" mechanism ([#10279](https://github.com/pantsbuild/pants/pull/10279)) +- Re-enable RBE ([#10284](https://github.com/pantsbuild/pants/pull/10284)) +- Temporarily disable remote execution in CI ([#10268](https://github.com/pantsbuild/pants/pull/10268)) +- Upgrade responses from 0.10.14 to 0.10.15 ([#10257](https://github.com/pantsbuild/pants/pull/10257)) +- Increase pylint integration tests timeout. ([#10261](https://github.com/pantsbuild/pants/pull/10261)) +- Fix broken Pylint test from new isort release ([#10259](https://github.com/pantsbuild/pants/pull/10259)) +- Simplify ci.py now that we have no v1 tests ([#10241](https://github.com/pantsbuild/pants/pull/10241)) + +## 2.0.0.dev1 (7/2/2020) + +### API Changes + +- Get rid of --plugins2/--backend-packages2 ([#10231](https://github.com/pantsbuild/pants/pull/10231)) +- Deprecate `--changed-include-dependees` in favor of + `--changed-dependees` ([#10217](https://github.com/pantsbuild/pants/pull/10217)) +- Remove `pants.contrib.mypy` plugin in favor of v2 + implementation ([#10157](https://github.com/pantsbuild/pants/pull/10157)) +- Remove `--coverage-py-omit-test-sources` ([#10202](https://github.com/pantsbuild/pants/pull/10202)) +- Gets rid of the v1 GoalRunner. ([#10167](https://github.com/pantsbuild/pants/pull/10167)) +- Remove `pants.backend.jvm` ([#10218](https://github.com/pantsbuild/pants/pull/10218)) +- Remove --zipkin-trace-v2 option ([#10184](https://github.com/pantsbuild/pants/pull/10184)) +- Remove `core_tasks/` and most of `task/` + ([#10236](https://github.com/pantsbuild/pants/pull/10236)) +- Remove v1 portions of `backend/native` and + `ipex` ([#10187](https://github.com/pantsbuild/pants/pull/10187)) +- Delete v1 python backend task code ([#10223](https://github.com/pantsbuild/pants/pull/10223)) +- Remove v1 Python `unpack_whls`, `bundle`, + and `repl` ([#10204](https://github.com/pantsbuild/pants/pull/10204)) +- Remove Thrift ([#10171](https://github.com/pantsbuild/pants/pull/10171)) +- Remove `TestBase.create_library()` and + `TestBase.target()` ([#10237](https://github.com/pantsbuild/pants/pull/10237)) +- Remove some v1 parts of `testutil/` ([#10233](https://github.com/pantsbuild/pants/pull/10233)) + +### New Features + +- Add new `typecheck` goal for MyPy ([#10212](https://github.com/pantsbuild/pants/pull/10212)) +- Properly handle PEP 420 namespace packages ([#10183](https://github.com/pantsbuild/pants/pull/10183)) +- Add support for creating multiple coverage reports ([#9997](https://github.com/pantsbuild/pants/pull/9997)) +- Add the ability to write/output the raw coverage file. ([#10195](https://github.com/pantsbuild/pants/pull/10195)) +- Log Coverage report name as part of the console message. ([#10194](https://github.com/pantsbuild/pants/pull/10194)) +- Attempt to adjust file handle limits and warn if they cannot be + adjusted ([#10174](https://github.com/pantsbuild/pants/pull/10174)) + +### Bugfixes + +- Fix `--changed-dependees` to work when v1 is disabled + ([#10235](https://github.com/pantsbuild/pants/pull/10235)) +- Teach `pants_requirement()` to work with dependency + inference ([#10232](https://github.com/pantsbuild/pants/pull/10232)) +- Remove indentation in process errors. ([#10181](https://github.com/pantsbuild/pants/pull/10181)) +- Automatically include `__init__.py` files ([#10166](https://github.com/pantsbuild/pants/pull/10166)) +- Fix AddPrefix to correctly add arbitrarily many parent components + ([#10189](https://github.com/pantsbuild/pants/pull/10189)) +- Fix `dependencies --transitive` to include target roots + that are also dependencies ([#10186](https://github.com/pantsbuild/pants/pull/10186)) +- Fix MyPy to include `resources`, but still not + `files` ([#10168](https://github.com/pantsbuild/pants/pull/10168)) + +### Refactoring, Improvements, and Tooling + +- Reduce time spend grabbing locks in workunit code ([#10179](https://github.com/pantsbuild/pants/pull/10179)) +- local_cas supports an instance-name ([#10225](https://github.com/pantsbuild/pants/pull/10225)) +- local_cas supports GetCapabilities request ([#10226](https://github.com/pantsbuild/pants/pull/10226)) +- Refactor remoting options into separate struct ([#10215](https://github.com/pantsbuild/pants/pull/10215)) +- remoting: log RE capabilities and refresh REv2 proto ([#10155](https://github.com/pantsbuild/pants/pull/10155)) +- Fix stray type error in fs.py ([#10182](https://github.com/pantsbuild/pants/pull/10182)) +- Remove redundant cast call ([#10196](https://github.com/pantsbuild/pants/pull/10196)) +- Use debug level for remote store workunits ([#10238](https://github.com/pantsbuild/pants/pull/10238)) +- Simplify Get implementation. ([#10178](https://github.com/pantsbuild/pants/pull/10178)) +- Delete the old BinaryTool mechanism. ([#10239](https://github.com/pantsbuild/pants/pull/10239)) +- Delete more v1 task-related integration tests. ([#10210](https://github.com/pantsbuild/pants/pull/10210)) +- Refactor coverage integration tests ([#10209](https://github.com/pantsbuild/pants/pull/10209)) +- Stop using deprecated assertEquals ([#10197](https://github.com/pantsbuild/pants/pull/10197)) +- Remove `ivy/` and most of `java/` ([#10222](https://github.com/pantsbuild/pants/pull/10222)) +- Remove Bundle and App code ([#10221](https://github.com/pantsbuild/pants/pull/10221)) +- Remove more zipkin-related code ([#10207](https://github.com/pantsbuild/pants/pull/10207)) +- Remove unused `list_backends.py` ([#10205](https://github.com/pantsbuild/pants/pull/10205)) +- Remove internal `contrib/` infrastructure ([#10177](https://github.com/pantsbuild/pants/pull/10177)) +- Rewrite/delete some tests that involve v1 tasks. ([#10219](https://github.com/pantsbuild/pants/pull/10219)) +- Remove JVM testprojects ([#10216](https://github.com/pantsbuild/pants/pull/10216)) +- Stop testing `testprojects::` ([#10170](https://github.com/pantsbuild/pants/pull/10170)) +- Remove the src/{scala|java} directories. ([#10201](https://github.com/pantsbuild/pants/pull/10201)) +- Delete examples/src/{java,scala}. ([#10198](https://github.com/pantsbuild/pants/pull/10198)) +- Stop running JVM tests written in Java/Scala ([#10175](https://github.com/pantsbuild/pants/pull/10175)) +- Move `scm/` and `util/` tests to + `src` ([#10176](https://github.com/pantsbuild/pants/pull/10176)) +- Nuke more v1 tests ([#10172](https://github.com/pantsbuild/pants/pull/10172)) +- upgrade tokio to 0.2.21 ([#10191](https://github.com/pantsbuild/pants/pull/10191)) +- upgrade futures crate to 0.3.5 ([#10190](https://github.com/pantsbuild/pants/pull/10190)) +- upgrade async-trait crate to 0.1.36 ([#10193](https://github.com/pantsbuild/pants/pull/10193)) +- upgrade crossbeam-channel create so only one copy ([#10192](https://github.com/pantsbuild/pants/pull/10192)) +- upgrade indexmap crate ([#10199](https://github.com/pantsbuild/pants/pull/10199)) +- upgrade parking_lot crate ([#10200](https://github.com/pantsbuild/pants/pull/10200)) + +### Documentation + +- Prepare 1.30.0rc1. ([#10188](https://github.com/pantsbuild/pants/pull/10188)) + +## 2.0.0.dev0 (6/25/2020) + +### API Changes + +- Remove v1 JVM backend Tasks. ([#10142](https://github.com/pantsbuild/pants/pull/10142)) +- Remove `targets` goal in favor of + `target-types` goal ([#10145](https://github.com/pantsbuild/pants/pull/10145)) +- Remove deprecated `Get[P](S)` syntax in favor of + `Get(P, S)` ([#10148](https://github.com/pantsbuild/pants/pull/10148)) +- Remove v1 `login`, `server`, and + `killserver` goals ([#10144](https://github.com/pantsbuild/pants/pull/10144)) +- Remove v1 `minimize`, `filemap`, + `paths`, `sort`, and `depmap` + goals ([#10135](https://github.com/pantsbuild/pants/pull/10135)) +- Replace v1 `dependees`, `dependencies`, + `filedeps`, and `filter` with v2 ([#10117](https://github.com/pantsbuild/pants/pull/10117)) +- Remove the v1 scrooge contrib plugin. ([#10127](https://github.com/pantsbuild/pants/pull/10127)) +- Remove support for `pants.ini` ([#10123](https://github.com/pantsbuild/pants/pull/10123)) +- Remove the v1 `export` goal ([#10122](https://github.com/pantsbuild/pants/pull/10122)) +- Remove `pants.backend.docgen` ([#10121](https://github.com/pantsbuild/pants/pull/10121)) +- Remove v1 `idea-plugin` goal ([#10115](https://github.com/pantsbuild/pants/pull/10115)) +- Remove v1 Java Protobuf implementation ([#10111](https://github.com/pantsbuild/pants/pull/10111)) +- Remove `pants.contrib.node` plugin ([#10113](https://github.com/pantsbuild/pants/pull/10113)) +- Remove v1 `bash-completion` goal ([#10112](https://github.com/pantsbuild/pants/pull/10112)) +- Remove watchman. ([#10114](https://github.com/pantsbuild/pants/pull/10114)) +- Upgrade default mypy version from 0.780 to 0.781 ([#10109](https://github.com/pantsbuild/pants/pull/10109)) +- Remove `pants.contrib.go` plugin ([#10107](https://github.com/pantsbuild/pants/pull/10107)) +- Remove v1 Python Grpcio codegen backend ([#10108](https://github.com/pantsbuild/pants/pull/10108)) +- Remove deprecated `--v2-ui` in favor of + `--dynamic-ui` ([#10105](https://github.com/pantsbuild/pants/pull/10105)) +- Remove deprecated `--enable-pantsd` in favor of + `--pantsd` ([#10104](https://github.com/pantsbuild/pants/pull/10104)) +- Remove deprecated `pytest-coverage` scope in favor of + `coverage-py` ([#10103](https://github.com/pantsbuild/pants/pull/10103)) +- Remove `pants.contrib.confluence` ([#10106](https://github.com/pantsbuild/pants/pull/10106)) + +### New Features + +- Add support for MyPy to Pants v2 ([#10132](https://github.com/pantsbuild/pants/pull/10132)) +- Changes to support Django. ([#10088](https://github.com/pantsbuild/pants/pull/10088)) +- Add support for enum list options. ([#10083](https://github.com/pantsbuild/pants/pull/10083)) + +### Bugfixes + +- Do not render pytest at info by default, but give it a description. + ([#10164](https://github.com/pantsbuild/pants/pull/10164)) +- Preserve source roots in MyPy and Pylint output ([#10159](https://github.com/pantsbuild/pants/pull/10159)) +- Do not include resource targets in v2 MyPy chroot ([#10154](https://github.com/pantsbuild/pants/pull/10154)) +- Set dynamic-ui default based on CI ([#10140](https://github.com/pantsbuild/pants/pull/10140)) +- Fix Pytest XML reports and Coverage breaking with remote execution + ([#10136](https://github.com/pantsbuild/pants/pull/10136)) +- Retry for filesystem changes more quickly, indefinitely, and with + logging ([#10139](https://github.com/pantsbuild/pants/pull/10139)) +- Normalize paths before determining whether we can watch them. + ([#10130](https://github.com/pantsbuild/pants/pull/10130)) + +### Refactoring, Improvements, and Tooling + +- Remove use of importlib for native_engine loading ([#10161](https://github.com/pantsbuild/pants/pull/10161)) +- Update sha2 crate dependency ([#10163](https://github.com/pantsbuild/pants/pull/10163)) +- Remove unused rust deps. ([#10162](https://github.com/pantsbuild/pants/pull/10162)) +- Add message field on workunits and use it to replace some explicit + logging ([#10158](https://github.com/pantsbuild/pants/pull/10158)) +- Expose the types consumed to produce a type in a RuleGraph. ([#10153](https://github.com/pantsbuild/pants/pull/10153)) +- Upgrade setuptools from 44.0.0 to 47.3.1 ([#10149](https://github.com/pantsbuild/pants/pull/10149)) +- Support for using unstripped python sources ([#10138](https://github.com/pantsbuild/pants/pull/10138)) +- fix snapshot subset testing and unrevert #9779 ([#10146](https://github.com/pantsbuild/pants/pull/10146)) +- Revert "Make SnapshotSubset() faster (#9779)" ([#10143](https://github.com/pantsbuild/pants/pull/10143)) +- Make SnapshotSubset() faster ([#9779](https://github.com/pantsbuild/pants/pull/9779)) +- upgrade to rust v1.44.1 ([#10125](https://github.com/pantsbuild/pants/pull/10125)) +- Remove `BuildFile` ([#10102](https://github.com/pantsbuild/pants/pull/10102)) + +### Testing + +- Enable test timeouts for python in v2. ([#10147](https://github.com/pantsbuild/pants/pull/10147)) +- Delete many v1 tests. ([#10116](https://github.com/pantsbuild/pants/pull/10116)) +- enable REv2 streaming client in CI ([#9989](https://github.com/pantsbuild/pants/pull/9989)) + +### Documentation + +- Remove the v1 docsite ([#10120](https://github.com/pantsbuild/pants/pull/10120)) diff --git a/versioned_docs/version-2.19/notes/2.1.x.md b/versioned_docs/version-2.19/notes/2.1.x.md new file mode 100644 index 000000000..2e2247f86 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.1.x.md @@ -0,0 +1,233 @@ +# 2.1.x Stable Releases + +This document describes releases leading up to the `2.1.x` `stable` +series. + +See for an +overview of the changes in this release. + +## 2.1.2 (2/9/2020) + +The third stable release in the 2.1.x series, with no changes since +`2.1.2rc0`. + +## 2.1.2rc0 (2/4/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11418](https://github.com/pantsbuild/pants/pull/11418)) + +## 2.1.1 (12/18/2020) + +The second stable release in the 2.1.x series, with no changes since +`rc2`. + +Thank you to everyone who helped test the rcs! + +## 2.1.1rc2 (12/16/2020) + +### Bugfixes + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11316](https://github.com/pantsbuild/pants/pull/11316)) +- Upgrade to Pex 2.1.24. (cherrypick of #11312) ([#11315](https://github.com/pantsbuild/pants/pull/11315)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11311](https://github.com/pantsbuild/pants/pull/11311)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11298](https://github.com/pantsbuild/pants/pull/11298)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11274](https://github.com/pantsbuild/pants/pull/11274)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11275](https://github.com/pantsbuild/pants/pull/11202)) [PR + #11275](https://github.com/pantsbuild/pants/pull/11275) + +## 2.1.1rc1 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) +- Remove extraneous INFO level log line (Cherry-pick of #11228) + ([#11229](https://github.com/pantsbuild/pants/pull/11229)) + +## 2.1.1rc0 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11217](https://github.com/pantsbuild/pants/pull/11217)) + +### Bugfixes + +- Move graph cycle detection to Rust to fix recursion limit. + (cherrypick of #11202) ([#11204](https://github.com/pantsbuild/pants/pull/11204)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11197](https://github.com/pantsbuild/pants/pull/11197)) + +## 2.1.0 (11/17/2020) + +The first stable release of the `2.1.x` series, with no changes since +the previous release candidate. + +## 2.1.0rc3 (11/16/2020) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11189](https://github.com/pantsbuild/pants/pull/11189)) + +## 2.1.0rc2 (11/13/2020) + +### New Features + +- Remoting: allow timeout parameters to be configured (Cherry-pick of + #11125) ([#11158](https://github.com/pantsbuild/pants/pull/11158)) + +### User API Changes + +- Deprecate running Pants with Python 3.6 ([#11173](https://github.com/pantsbuild/pants/pull/11173)) +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11178](https://github.com/pantsbuild/pants/pull/11178)) + +### Bugfixes + +- make a few minor reliability fixes to remote caching code + (Cherry-pick of #11130) ([#11159](https://github.com/pantsbuild/pants/pull/11159)) + +## 2.1.0rc1 (11/11/2020) + +### Bugfixes + +- Upgrade to Pex 2.1.21 (Cherry-pick of #11131) ([#11134](https://github.com/pantsbuild/pants/pull/11134)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11138](https://github.com/pantsbuild/pants/pull/11138)) + +## 2.1.0rc0 (11/9/2020) + +### New Features + +- Add `export-codegen` goal ([#11107](https://github.com/pantsbuild/pants/pull/11107)) +- Add `./pants py-constraints --summary` for project + overview ([#11099](https://github.com/pantsbuild/pants/pull/11099)) +- Add `./pants help subsystems` ([#11088](https://github.com/pantsbuild/pants/pull/11088)) +- Improve performance of dependency inference ([#11094](https://github.com/pantsbuild/pants/pull/11094)) + +### User API Changes + +- Change default for `--pants-distdir-legacy-paths` and + deprecate it ([#11096](https://github.com/pantsbuild/pants/pull/11096)) +- Clarify that process cache namespacing works for all runners + ([#11095](https://github.com/pantsbuild/pants/pull/11095)) +- Deprecate target names containing slashes and colons ([#11115](https://github.com/pantsbuild/pants/pull/11115)) + +### Plugin API Changes + +- Rename `SourcesSnapshot` to `SpecsSnapshot` + ([#11114](https://github.com/pantsbuild/pants/pull/11114)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached ([#11111](https://github.com/pantsbuild/pants/pull/11111)) +- Fix `pytest.pex` leaking into coverage data ([#11110](https://github.com/pantsbuild/pants/pull/11110)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX ([#11108](https://github.com/pantsbuild/pants/pull/11108)) +- Fix `!!` transitive excludes when used multiple times in + a repo ([#11103](https://github.com/pantsbuild/pants/pull/11103)) +- Fix `setup_py.with_provides()` to respect the + `:func` entry-point shorthand ([#11093](https://github.com/pantsbuild/pants/pull/11093)) +- Include a host fingerprint in pantsd's identity ([#11092](https://github.com/pantsbuild/pants/pull/11092)) + +### Documentation + +- Improve error message for invalid unions in `Get()`s ([#11102](https://github.com/pantsbuild/pants/pull/11102)) + +## 2.1.0.dev0 (10/30/2020) + +### User API Changes + +- Do not error if `./pants package` does not match any + targets ([#11051](https://github.com/pantsbuild/pants/pull/11051)) +- Deprecate the `compatibility` field in favor of + `interpreter_constraints` ([#11074](https://github.com/pantsbuild/pants/pull/11074)) +- Remove deprecated `awslambda`, `binary`, and + `setup-py` goals in favor of `package` + ([#11048](https://github.com/pantsbuild/pants/pull/11048)) +- Rename pex-binary/python-distribution to avoid naming collisions. + ([#11007](https://github.com/pantsbuild/pants/pull/11007)) +- Remove deprecated `--{fmt,lint}-per-target-caching` in + favor of `--per-file-caching` ([#11062](https://github.com/pantsbuild/pants/pull/11062)) +- Remove post_stats from RunTracker ([#11068](https://github.com/pantsbuild/pants/pull/11068)) +- Remove stats_version in runtracker ([#11065](https://github.com/pantsbuild/pants/pull/11065)) +- Remove deprecated `--lang` and `--lc-all` + options in favor of `--env-vars` ([#11066](https://github.com/pantsbuild/pants/pull/11066)) +- Remove deprecated `--protoc-runtime-targets` option + ([#11083](https://github.com/pantsbuild/pants/pull/11083)) +- Remove deprecated `--interpreter-constraints` option + for some Python tools ([#11082](https://github.com/pantsbuild/pants/pull/11082)) +- Remove deprecated `runtime_binary_dependencies` field + ([#11079](https://github.com/pantsbuild/pants/pull/11079)) +- Remove deprecated `--spec-file` option in favor of + `--spec-files` ([#11076](https://github.com/pantsbuild/pants/pull/11076)) +- Remove deprecated `[basic-auth]`, + `[reporter]`, and `run-tracker` + options ([#11078](https://github.com/pantsbuild/pants/pull/11078)) +- Remove deprecated `--print-exception-stacktrace` in + favor of `--print-stacktrace` ([#11085](https://github.com/pantsbuild/pants/pull/11085)) +- Remove unused global options ([#11077](https://github.com/pantsbuild/pants/pull/11077)) +- Remove deprecated `python_requirement` BUILD file symbol + ([#11055](https://github.com/pantsbuild/pants/pull/11055)) +- Deprecate the `platforms` field allowing a bare string + ([#11073](https://github.com/pantsbuild/pants/pull/11073)) +- Deprecate several unused options ([#11041](https://github.com/pantsbuild/pants/pull/11041)) +- Deprecate unused `run-tracker` options ([#11038](https://github.com/pantsbuild/pants/pull/11038)) +- Remove deprecated `python-setup` options ([#10984](https://github.com/pantsbuild/pants/pull/10984)) +- Remove deprecated `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10986](https://github.com/pantsbuild/pants/pull/10986)) +- Remove deprecated global options like `--v2` and + `--backend-packages2` ([#10985](https://github.com/pantsbuild/pants/pull/10985)) +- Remove deprecated `--changed-*` options ([#10982](https://github.com/pantsbuild/pants/pull/10982)) +- Remove deprecated `./pants filter` options ([#10983](https://github.com/pantsbuild/pants/pull/10983)) + +### New Features + +- Add `[python-setup].resolver_http_cache_ttl` option + ([#10997](https://github.com/pantsbuild/pants/pull/10997)) +- Add new `py-constraints` goal through new + `pants.backend.python.mixed_interpreter_constraints` + backend ([#11075](https://github.com/pantsbuild/pants/pull/11075)) +- Add `:my_func` shorthand for the + `entry_point` field ([#11064](https://github.com/pantsbuild/pants/pull/11064)) +- Add new EngineAware method metadata() ([#11030](https://github.com/pantsbuild/pants/pull/11030)) +- remote caching support ([#10960](https://github.com/pantsbuild/pants/pull/10960)) +- Store per-run logs on RunTracker ([#11025](https://github.com/pantsbuild/pants/pull/11025)) +- Allow changing the URL to download tools like PEX and Protoc + ([#11013](https://github.com/pantsbuild/pants/pull/11013)) +- Add mechanism to deprecate target types and fields ([#10966](https://github.com/pantsbuild/pants/pull/10966)) + +### Bugfixes + +- remote caching: upload stdout/stderr content to remote cache + ([#11049](https://github.com/pantsbuild/pants/pull/11049)) +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` ([#11040](https://github.com/pantsbuild/pants/pull/11040)) +- Fix `setup_py().with_binaries()` to use the default + entry point ([#11021](https://github.com/pantsbuild/pants/pull/11021)) +- Fix resource leak warning with stdio ([#10995](https://github.com/pantsbuild/pants/pull/10995)) +- Fix `./pants repl` to use global constrains when no + targets specified ([#10991](https://github.com/pantsbuild/pants/pull/10991)) +- Fix overly verbose `FieldSet` in stack traces ([#10978](https://github.com/pantsbuild/pants/pull/10978)) +- Fix several bad usages of `itertools.groupby()` ([#10976](https://github.com/pantsbuild/pants/pull/10976)) +- Fix bug with linter targets being skipped ([#10974](https://github.com/pantsbuild/pants/pull/10974)) +- Fix config validation not erroring on global options in wrong scope + ([#10950](https://github.com/pantsbuild/pants/pull/10950)) +- Automatically set setuptools interpreter constraints if unspecified + ([#10951](https://github.com/pantsbuild/pants/pull/10951)) + +### Documentation + +- Improve error message for invalid input in `Get()`s ([#11081](https://github.com/pantsbuild/pants/pull/11081)) +- Improve several help messages ([#11029](https://github.com/pantsbuild/pants/pull/11029)) +- Fold target help into the help system. ([#11022](https://github.com/pantsbuild/pants/pull/11022)) diff --git a/versioned_docs/version-2.19/notes/2.10.x.md b/versioned_docs/version-2.19/notes/2.10.x.md new file mode 100644 index 000000000..3533af034 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.10.x.md @@ -0,0 +1,481 @@ +# 2.10.x Release Series + +## 2.10.1 (May 13, 2022) + +The second stable release of the `2.10.x` series, with no changes since the previous `rc`! + +## 2.10.1rc1 (Apr 30, 2022) + +### New Features + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15215](https://github.com/pantsbuild/pants/pull/15215)) + +### Bug fixes + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15259](https://github.com/pantsbuild/pants/pull/15259)) + +* Clean PID-specific exception file if empty on process exit (Cherry pick of #15086) ([#15112](https://github.com/pantsbuild/pants/pull/15112)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15233](https://github.com/pantsbuild/pants/pull/15233)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15232](https://github.com/pantsbuild/pants/pull/15232)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15182](https://github.com/pantsbuild/pants/pull/15182)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15128](https://github.com/pantsbuild/pants/pull/15128)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15130](https://github.com/pantsbuild/pants/pull/15130)) + +## 2.10.1rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15028](https://github.com/pantsbuild/pants/pull/15028)) + +### Bug fixes + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15033](https://github.com/pantsbuild/pants/pull/15033)) + +* Fix Pylint config check strings (Cherry-pick of #14946) ([#14948](https://github.com/pantsbuild/pants/pull/14948)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14902](https://github.com/pantsbuild/pants/pull/14902)) + +### Documentation + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15023](https://github.com/pantsbuild/pants/pull/15023)) + +## 2.10.0 (Mar 23, 2022) + +The first stable release of the `2.10.x` branch, with no changes since the previous `rc`! + +## 2.10.0rc5 (Mar 16, 2022) + +### User API Changes + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` ([#14815](https://github.com/pantsbuild/pants/pull/14815)) + +### Bug fixes + +* Fix exclusive spawn mechanism for relative paths and working directories. (cherrypick of #14812) ([#14816](https://github.com/pantsbuild/pants/pull/14816)) + +* Fix a coverage config rewriting bug. (cherrypick of #14784) ([#14785](https://github.com/pantsbuild/pants/pull/14785)) + +* Fix empty sys.path entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14822](https://github.com/pantsbuild/pants/pull/14822)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators (Cherry-pick of #14829) ([#14831](https://github.com/pantsbuild/pants/pull/14831)) + +## 2.10.0rc4 (Mar 14, 2022) + +### New Features + +* Python dependency inference supports multiple resolves for first-party targets (Cherry-pick of #14486) ([#14765](https://github.com/pantsbuild/pants/pull/14765)) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (#14768) ([#14769](https://github.com/pantsbuild/pants/pull/14769)) + +### Documentation + +* Update `[python]` docs with updates to the resolves feature ([#14775](https://github.com/pantsbuild/pants/pull/14775)) + +* Switch from Aegean Check Mark to Multiplication X (Cherry-pick of #14764) ([#14767](https://github.com/pantsbuild/pants/pull/14767)) + +* Improve documentation for `python_test_utils` (Cherry-pick of #14739) ([#14748](https://github.com/pantsbuild/pants/pull/14748)) + +* Improve REPL multiple resolves error to mention [python].default_resolve (Cherry-pick of #14778) ([#14780](https://github.com/pantsbuild/pants/pull/14780)) + +## 2.10.0rc3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles (Cherry-pick of #14675) ([#14706](https://github.com/pantsbuild/pants/pull/14706)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14693](https://github.com/pantsbuild/pants/pull/14693)) + +### User API Changes + +* Deprecate `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14691](https://github.com/pantsbuild/pants/pull/14691)) + +* Move `--memory-summary` to `--stats-memory-summary` (Cherry-pick of #14652) ([#14655](https://github.com/pantsbuild/pants/pull/14655)) + +* Upgrade Pex to 2.1.70. (#14700) ([#14703](https://github.com/pantsbuild/pants/pull/14703)) + +### Bug fixes + +* Fix address parse bug in `update-build-files --fix-python-macros`. (Cherry-pick of #14485) ([#14696](https://github.com/pantsbuild/pants/pull/14696)) + +* Don't show no-op regex-lint output. (Cherry-pick of #14656) ([#14671](https://github.com/pantsbuild/pants/pull/14671)) + +* Invalidate Go cache when Go version changes (Cherry-pick of #14661) ([#14672](https://github.com/pantsbuild/pants/pull/14672)) + +### Performance + +* Reduce memory usage by interning Tasks and RuleGraph entries. (cherrypick of #14683) ([#14689](https://github.com/pantsbuild/pants/pull/14689)) + +## 2.10.0rc2 (Feb 26, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. (Cherry pick of #14557) ([#14597](https://github.com/pantsbuild/pants/pull/14597)) + +* Support include_requirements & complete_platforms for `python_awslambda`. (Cherry-picks of #14532 & #14469) ([#14533](https://github.com/pantsbuild/pants/pull/14533)) + +* Support complete_platforms for Python GCFs. (#14530) ([#14531](https://github.com/pantsbuild/pants/pull/14531)) + +* Plumb Pex's `--complete-platform` for pex_binary. (#14526) ([#14528](https://github.com/pantsbuild/pants/pull/14528)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination (Cherry-pick of #14607) ([#14611](https://github.com/pantsbuild/pants/pull/14611)) + +* Upgrade Pex to 2.1.67. (Cherry-pick of #14544) ([#14546](https://github.com/pantsbuild/pants/pull/14546)) + +### Bug fixes + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others (cherry-pick of #14620) ([#14626](https://github.com/pantsbuild/pants/pull/14626)) + +* Coursier caches are now determined by `-repos` configuration (#14603) ([#14606](https://github.com/pantsbuild/pants/pull/14606)) + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache (Cherry-pick of #14582) ([#14590](https://github.com/pantsbuild/pants/pull/14590)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos (#14581) ([#14584](https://github.com/pantsbuild/pants/pull/14584)) + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (Cherry-pick of #14394) ([#14568](https://github.com/pantsbuild/pants/pull/14568)) + +* Avoid duplicated deprecation warnings by memoization. (Cherry-pick of #14511) ([#14553](https://github.com/pantsbuild/pants/pull/14553)) + +* Fix coverage base global report creation bug (cherypick of #14547) ([#14549](https://github.com/pantsbuild/pants/pull/14549)) + +### Performance + +* Add support for rendering a summary of objects held by the graph (cherrypick of #14638) ([#14644](https://github.com/pantsbuild/pants/pull/14644)) + +* Shortcircuit source subsetting if there are no distributions. (cherrypick of #14564) ([#14566](https://github.com/pantsbuild/pants/pull/14566)) + +* Calculate local distribution contents once per distribution (cherrypick of #14551) ([#14555](https://github.com/pantsbuild/pants/pull/14555)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14627](https://github.com/pantsbuild/pants/pull/14627)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14592](https://github.com/pantsbuild/pants/pull/14592)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation (Cherry-pick of #14475) ([#14479](https://github.com/pantsbuild/pants/pull/14479)) + +## 2.10.0rc1 (Feb 14, 2022) + +### New Features + +* Improve `export` goal to handle multiple Python resolves (Cherry-pick of #14436) ([#14454](https://github.com/pantsbuild/pants/pull/14454)) + +### User API Changes + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` (Cherry-pick of #14420) ([#14435](https://github.com/pantsbuild/pants/pull/14435)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. (Cherry-pick of #14376) ([#14403](https://github.com/pantsbuild/pants/pull/14403)) + +### Bug fixes + +* Fix handling of Go version for third-party packages (Cherry-pick of #14457) ([#14459](https://github.com/pantsbuild/pants/pull/14459)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. (Cherry-pick of #14447) ([#14456](https://github.com/pantsbuild/pants/pull/14456)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves (Cherry-pick of #14418) ([#14439](https://github.com/pantsbuild/pants/pull/14439)) + +* Fix `pants_requirements` target generator to use resolves (Cherry-pick of #14417) ([#14423](https://github.com/pantsbuild/pants/pull/14423)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` (Cherry-pick of #14404) ([#14424](https://github.com/pantsbuild/pants/pull/14424)) + +## 2.10.0rc0 (Feb 07, 2022) + +### New Features + +* Add `--fmt-only`, `--check-only`, and `--lint-only` ([#14356](https://github.com/pantsbuild/pants/pull/14356)) + +* Add support for building PyOxidizer apps ([#14183](https://github.com/pantsbuild/pants/pull/14183)) + +* Adds `run` support for `deploy_jar` targets ([#14352](https://github.com/pantsbuild/pants/pull/14352)) + +* New `[docker].executable_search_paths` option. ([#14360](https://github.com/pantsbuild/pants/pull/14360)) + +* Support Go 1.18 fuzz test targets ([#14357](https://github.com/pantsbuild/pants/pull/14357)) + +* Validate Python user lockfiles & improve tool lockfile error message ([#14353](https://github.com/pantsbuild/pants/pull/14353)) + +* Allow using Yapf with `update-build-files` rather than Black ([#14378](https://github.com/pantsbuild/pants/pull/14378)) + +* Graduate Thrift Python support to be stable with `pants.backend.codegen.thrift.apache.python` ([#14389](https://github.com/pantsbuild/pants/pull/14389)) + +### User API Changes + +* Graduate Docker backend from experimental status. ([#14310](https://github.com/pantsbuild/pants/pull/14310)) + +* Graduate the Dockerfile linter Hadolint from experimental status. ([#14311](https://github.com/pantsbuild/pants/pull/14311)) + +* Merge `validate` goal with `lint` goal ([#14102](https://github.com/pantsbuild/pants/pull/14102)) + +* Rename Python resolve options and fields to not say "experimental" ([#14326](https://github.com/pantsbuild/pants/pull/14326)) + +* Add Thrift, Protobuf, Java, and Scala folders to default for `[source].root_patterns` ([#14363](https://github.com/pantsbuild/pants/pull/14363)) + +* Rename the `download-pex-bin` scope to `pex-cli`. ([#14344](https://github.com/pantsbuild/pants/pull/14344)) + +* Upgrade default Black version to 22.1.0 ([#14324](https://github.com/pantsbuild/pants/pull/14324)) + +* Upgrade default Pytest version to 7 ([#14380](https://github.com/pantsbuild/pants/pull/14380)) + +### Plugin API Changes + +* Rename `LintRequest` to `LintTargetsRequest` ([#14312](https://github.com/pantsbuild/pants/pull/14312)) + +* New (optional) API for MyPy-friendly options registration ([#14331](https://github.com/pantsbuild/pants/pull/14331)) + +* Remove `PexFromTargetsRequest.additional_requirements` ([#14350](https://github.com/pantsbuild/pants/pull/14350)) + +* `ReplImplementation` now passes root targets, not transitive closure ([#14323](https://github.com/pantsbuild/pants/pull/14323)) + +* `LintRequest`, `FmtRequest`, and `CheckRequest` must set `name: ClassVar[str]` ([#14304](https://github.com/pantsbuild/pants/pull/14304)) + +### Bug fixes + +* Warn when `[python-protobuf].runtime_dependencies` needs to use new target generator syntax ([#14391](https://github.com/pantsbuild/pants/pull/14391)) + +* Fix native cycle detection error message. ([#14381](https://github.com/pantsbuild/pants/pull/14381)) + +* Fix import parsing regression ([#14349](https://github.com/pantsbuild/pants/pull/14349)) + +* Include link dest in symlink error. ([#14384](https://github.com/pantsbuild/pants/pull/14384)) + +### Performance + +* Lazy load help info ([#14305](https://github.com/pantsbuild/pants/pull/14305)) + +### Documentation + +* Standardize how we reference formatters, linters, and checkers in goal summary ([#14355](https://github.com/pantsbuild/pants/pull/14355)) + +* Don't enumerate deprecated scopes in help. ([#14345](https://github.com/pantsbuild/pants/pull/14345)) + +* Don't render skipped tools in final summary with `fmt`, `lint`, `check`, and `test` ([#14303](https://github.com/pantsbuild/pants/pull/14303)) + +## 2.10.0.dev3 (Jan 28, 2022) + +### New Features + +* Support multiple disjoint Python resolves via `[python].experimental_resolves` ([#14299](https://github.com/pantsbuild/pants/pull/14299)) + +* Optionally render the `--dynamic-ui` with Prodash ([#14221](https://github.com/pantsbuild/pants/pull/14221)) + +* Add `context_root` field to `docker_image` and `default_context_root` option to `[docker]` scope. ([#14165](https://github.com/pantsbuild/pants/pull/14165)) + +### User API Changes + +* Deprecate `generate-user-lockfile` and `[python].experimental_lockfile` in favor of `[python].experimental_resolves` ([#14288](https://github.com/pantsbuild/pants/pull/14288)) + +* Bump versions & regenerate lockfiles for several Python tools, including Twine, PyUpgrade, and MyPy Protobuf ([#14277](https://github.com/pantsbuild/pants/pull/14277)) + +* Upgrade Pex to 2.1.65. ([#14256](https://github.com/pantsbuild/pants/pull/14256)) + +### Plugin API Changes + +* Remove `PexFromTargetsRequest(direct_deps_only: bool)` ([#14291](https://github.com/pantsbuild/pants/pull/14291)) + +* Rename `GenerateToolLockfileSentinel.options_scope` to `resolve_name` ([#14231](https://github.com/pantsbuild/pants/pull/14231)) + +* Rename `PythonModule` to `PythonModuleOwnersRequest` ([#14276](https://github.com/pantsbuild/pants/pull/14276)) + +### Bug fixes + +* Fix plugin resolution running twice. ([#14294](https://github.com/pantsbuild/pants/pull/14294)) + +* Fix Pylint to consider transitive third-party dependencies ([#14289](https://github.com/pantsbuild/pants/pull/14289)) + +* Fix bad default module mapping for PyMongo ([#14284](https://github.com/pantsbuild/pants/pull/14284)) + +* go: filter out `vendor` directories in tailor ([#14259](https://github.com/pantsbuild/pants/pull/14259)) + +* Fix packaged file names for `pex_binaries` target generator ([#14269](https://github.com/pantsbuild/pants/pull/14269)) + +* Cap number of UI bars to terminal height ([#14228](https://github.com/pantsbuild/pants/pull/14228)) + +* Fix executability of materialized files for non-owners. ([#14298](https://github.com/pantsbuild/pants/pull/14298)) + +### Performance + +* Dynamically choose per-process concurrency for supported processes ([#14184](https://github.com/pantsbuild/pants/pull/14184)) + +### Documentation + +* Add some missing backends to generated docs ([#14290](https://github.com/pantsbuild/pants/pull/14290)) + +## 2.10.0.dev2 (Jan 22, 2022) + +### New Features + +* JVM lockfile invalidation headers and verification ([#14185](https://github.com/pantsbuild/pants/pull/14185)) + +* Add new `api-types` help goal ([#14081](https://github.com/pantsbuild/pants/pull/14081)) + +* Add line numbers to `--unowned-dependency-behavior` errors ([#14169](https://github.com/pantsbuild/pants/pull/14169)) + +* Add Flake8 first-party plugin support ([#14027](https://github.com/pantsbuild/pants/pull/14027)) + +* add runtime dependencies field for Apache Thrift for Python ([#14158](https://github.com/pantsbuild/pants/pull/14158)) + +* Add `#pants: no-infer-dep` pragma for ignoring imports ([#14059](https://github.com/pantsbuild/pants/pull/14059) and [#14225](https://github.com/pantsbuild/pants/pull/14225)) + +* Add local `.pants.rc` support ([#14142](https://github.com/pantsbuild/pants/pull/14142)) + +* thrift: add scrooge java backend ([#14043](https://github.com/pantsbuild/pants/pull/14043)) + +* add Avro codegen support for Java ([#13990](https://github.com/pantsbuild/pants/pull/13990)) + +### User API Changes + +* add timeout for remote cache lookups ([#14224](https://github.com/pantsbuild/pants/pull/14224)) + +* Replace `coursier-resolve` goal with `generate-lockfiles` ([#14211](https://github.com/pantsbuild/pants/pull/14211)) + +* Replace `jvm-generate-lockfiles` goal with `generate-lockfiles` ([#14176](https://github.com/pantsbuild/pants/pull/14176)) + +* Deprecate `sourcefile-validation` in favor of `regex-lint` ([#14173](https://github.com/pantsbuild/pants/pull/14173)) + +* Deprecate `python_requirements` and `poetry_requirements` using old macro in favor of target generation ([#14075](https://github.com/pantsbuild/pants/pull/14075)) + +* Add try/except parsing to import_parser to avoid failing strict checks for optional imports ([#14216](https://github.com/pantsbuild/pants/pull/14216)) + +* Don't error on string imports with `[python-infer].unowned_dependency_behavior` ([#14179](https://github.com/pantsbuild/pants/pull/14179)) + +### Plugin API Changes + +* Remove per-language indirection for formatter plugins. ([#14166](https://github.com/pantsbuild/pants/pull/14166)) + +### Bug fixes + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 ([#14232](https://github.com/pantsbuild/pants/pull/14232)) + +* `LockfileMetadata` - Replace flaky `_header_dict()` mechanism with more robust `header_attrs` mechanism ([#14229](https://github.com/pantsbuild/pants/pull/14229)) + +* More accurate reported runtime when `pantsd` is in use. ([#14177](https://github.com/pantsbuild/pants/pull/14177)) + +* Fix Pylint to run on transitive dependencies to avoid underreporting issues ([#13918](https://github.com/pantsbuild/pants/pull/13918)) + +* [Docker] Fix bug when a putative target address did not exist. ([#14125](https://github.com/pantsbuild/pants/pull/14125)) + +* Fix immutable inputs DCL bug. ([#14016](https://github.com/pantsbuild/pants/pull/14016)) + +### Performance + +* Batching of `lint` and `fmt` invokes ([#14186](https://github.com/pantsbuild/pants/pull/14186)) + +### Documentation + +* [Doc] Include backend source for goals, subsystems and targets in generated docsite. ([#14126](https://github.com/pantsbuild/pants/pull/14126)) + +## 2.10.0.dev1 (Jan 07, 2022) + +### New Features + +* JVM Resources support ([#13908](https://github.com/pantsbuild/pants/pull/13908)) + +* Expose Docker build context hash for image tag interpolation. ([#13959](https://github.com/pantsbuild/pants/pull/13959)) + +* Add Thrift IDL codegen using Apache Thrift for Python and Java and Scrooge for Scala ([#13987](https://github.com/pantsbuild/pants/pull/13987)) + +* Add new `image_labels` field to `docker_image`. ([#13973](https://github.com/pantsbuild/pants/pull/13973)) + +### User API Changes + +* Deprecate `[validate].detail_level` in favor of `[sourcefile-validation].detail_level` ([#14103](https://github.com/pantsbuild/pants/pull/14103)) + +* Upgrade Hadolint (dockerfile linter) to from 2.6.0 to 2.8.0 ([#14110](https://github.com/pantsbuild/pants/pull/14110)) + +* Change third party module mapping to consider resolves ([#14034](https://github.com/pantsbuild/pants/pull/14034)) + +### Plugin API Changes + +* Fix `@rule` effect validation for `not cacheable` types. ([#14069](https://github.com/pantsbuild/pants/pull/14069)) + +* Allow plugins to use range requirements by applying constraints to plugin resolution ([#14058](https://github.com/pantsbuild/pants/pull/14058)) + +### Bug fixes + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. ([#14109](https://github.com/pantsbuild/pants/pull/14109)) + +* Hook up Scalafmt and Google Java Format to `./pants lint` ([#14108](https://github.com/pantsbuild/pants/pull/14108)) + +* Fix `validate` goal crashing if not configured ([#14104](https://github.com/pantsbuild/pants/pull/14104)) + +* Fix dropped output race during UI teardown ([#14093](https://github.com/pantsbuild/pants/pull/14093)) + +* Fix incorrectly setting `name` on `python_requirements` macro ([#14065](https://github.com/pantsbuild/pants/pull/14065)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. ([#14038](https://github.com/pantsbuild/pants/pull/14038)) + +* Fix `.pyi` type stubs to show up in `python_distribution` ([#14033](https://github.com/pantsbuild/pants/pull/14033)) + +* Fix file sources codegen for the Docker build context. ([#14024](https://github.com/pantsbuild/pants/pull/14024)) + +* [jvm] Parse maven coordinates using regular expression ([#14010](https://github.com/pantsbuild/pants/pull/14010)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries ([#14012](https://github.com/pantsbuild/pants/pull/14012)) + +### Documentation + +* Include provider info in help output for subsystems and target types. ([#13993](https://github.com/pantsbuild/pants/pull/13993)) + +* Fix help strings which were accidentally tuples, and add a validation. ([#14057](https://github.com/pantsbuild/pants/pull/14057)) + +## 2.10.0.dev0 (Dec 27, 2021) + +### New Features + +* Add duration and cache source to test output. ([#13889](https://github.com/pantsbuild/pants/pull/13889)) + +* Add `pex_binaries` target generator ([#13910](https://github.com/pantsbuild/pants/pull/13910)) + +* Support Docker build target stage ([#13956](https://github.com/pantsbuild/pants/pull/13956)) + +* Add `ssh` field to `docker_image`. ([#13957](https://github.com/pantsbuild/pants/pull/13957)) + +* Docker `FROM` target dep inference ([#13921](https://github.com/pantsbuild/pants/pull/13921)) + +* Docker context troubleshooter ([#13896](https://github.com/pantsbuild/pants/pull/13896)) + +* java: add protobuf code generation support using `protoc` ([#13989](https://github.com/pantsbuild/pants/pull/13989)) + +* Support `test --debug` with scalatest and junit. ([#13966](https://github.com/pantsbuild/pants/pull/13966)) + +### User API Changes + +* Update shellcheck default version to v0.8.0 ([#13983](https://github.com/pantsbuild/pants/pull/13983)) + +* Upgrade to Pex 2.1.61 and use `--venv` copies. ([#13979](https://github.com/pantsbuild/pants/pull/13979)) + +* Remove deprecated `[python-setup]` in favor of `[python]` ([#14004](https://github.com/pantsbuild/pants/pull/14004)) + +* Remove deprecated `typecheck` goal as alias for `check` ([#13929](https://github.com/pantsbuild/pants/pull/13929)) + +* Remove deprecated `pants_requirement` in favor of `pants_requirements` ([#13927](https://github.com/pantsbuild/pants/pull/13927)) + +* Remove deprecated `--process-execution-local-cleanup` and `--process-execution-local-cache` in favor of `--process-cleanup` and `--local-cache` ([#13928](https://github.com/pantsbuild/pants/pull/13928)) + +### Plugin API Changes + +* Add `OptionalSingleSourceField` ([#13982](https://github.com/pantsbuild/pants/pull/13982)) + +* Remove deprecated RuleRunner methods `create_file(s)` and `add_to_build_file`. ([#13954](https://github.com/pantsbuild/pants/pull/13954)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) ([#13944](https://github.com/pantsbuild/pants/pull/13944)) + +### Bug fixes + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. ([#13996](https://github.com/pantsbuild/pants/pull/13996)) + +* Restore the `pants` namespace package. ([#13972](https://github.com/pantsbuild/pants/pull/13972)) + +* Fix `--log-levels-by-target` not working for logs from Python code ([#13939](https://github.com/pantsbuild/pants/pull/13939)) + +* Fix `tailor` not setting the `name` field ([#13913](https://github.com/pantsbuild/pants/pull/13913)) diff --git a/versioned_docs/version-2.19/notes/2.11.x.md b/versioned_docs/version-2.19/notes/2.11.x.md new file mode 100644 index 000000000..72b4f776f --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.11.x.md @@ -0,0 +1,523 @@ +# 2.11.x Release Series + +## 2.11.1 (Jun 28, 2022) + +The second stable release in the `2.11.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15972](https://github.com/pantsbuild/pants/pull/15972)) + +## 2.11.1rc3 (Jun 23, 2022) + +### Bug fixes + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15794](https://github.com/pantsbuild/pants/pull/15794)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15844](https://github.com/pantsbuild/pants/pull/15844)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15822](https://github.com/pantsbuild/pants/pull/15822)) + +## 2.11.1rc2 (May 31, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15659](https://github.com/pantsbuild/pants/pull/15659)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15708](https://github.com/pantsbuild/pants/pull/15708)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15678](https://github.com/pantsbuild/pants/pull/15678)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15679](https://github.com/pantsbuild/pants/pull/15679)) + +## 2.11.1rc1 (May 23, 2022) + +### User API Changes + +* Revert `tags` changes, except for the `python_tests` bug fix ([#15553](https://github.com/pantsbuild/pants/pull/15553)) + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15486](https://github.com/pantsbuild/pants/pull/15486)) + +### Bug fixes + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15574](https://github.com/pantsbuild/pants/pull/15574)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15572](https://github.com/pantsbuild/pants/pull/15572)) + +* Improve `name=` used for Python requirement target generators with `tailor` (Cherry-pick of #15507) ([#15520](https://github.com/pantsbuild/pants/pull/15520)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15497](https://github.com/pantsbuild/pants/pull/15497)) + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15610](https://github.com/pantsbuild/pants/pull/15610)) + +## 2.11.1rc0 (May 13, 2022) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15413](https://github.com/pantsbuild/pants/pull/15413)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15404](https://github.com/pantsbuild/pants/pull/15404)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15402](https://github.com/pantsbuild/pants/pull/15402)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15371](https://github.com/pantsbuild/pants/pull/15371)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15369](https://github.com/pantsbuild/pants/pull/15369)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15357](https://github.com/pantsbuild/pants/pull/15357)) + +* Fix a bug in the python venv export logic. (cherrypick of #15294) ([#15307](https://github.com/pantsbuild/pants/pull/15307)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15300](https://github.com/pantsbuild/pants/pull/15300)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15309](https://github.com/pantsbuild/pants/pull/15309)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15440](https://github.com/pantsbuild/pants/pull/15440)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15389](https://github.com/pantsbuild/pants/pull/15389)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15367](https://github.com/pantsbuild/pants/pull/15367)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15365](https://github.com/pantsbuild/pants/pull/15365)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15349](https://github.com/pantsbuild/pants/pull/15349)) + +## 2.11.0 (May 02, 2022) + +The first stable release of the `2.11.x` series, with no changes since the previous `rc`! + +## 2.11.0rc6 (Apr 30, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.84. (Cherry-picks of #15200, #15281 & #15288) ([#15289](https://github.com/pantsbuild/pants/pull/15289)) + +### Bug fixes + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. (Cherry-pick of #15277) ([#15278](https://github.com/pantsbuild/pants/pull/15278)) + +## 2.11.0rc5 (Apr 26, 2022) + +### Bug fixes + +* Fix issue with Docker publish when using `[docker] tools`. (Cherry pick of #15255) ([#15261](https://github.com/pantsbuild/pants/pull/15261)) + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15260](https://github.com/pantsbuild/pants/pull/15260)) + +* Fix the placement of the pex verbosity args. (Cherry-pick of #15243) ([#15249](https://github.com/pantsbuild/pants/pull/15249)) + +## 2.11.0rc4 (Apr 25, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.80. (Cherry-pick of #15179) ([#15180](https://github.com/pantsbuild/pants/pull/15180)) + +### Bug fixes + +* golang: add more cache keys based on tool IDs (Cherry-pick of #15205) ([#15209](https://github.com/pantsbuild/pants/pull/15209)) + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15214](https://github.com/pantsbuild/pants/pull/15214)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15231](https://github.com/pantsbuild/pants/pull/15231)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15230](https://github.com/pantsbuild/pants/pull/15230)) + +### Documentation + +* Don't log set up of binary shims (Cherry-pick of #15203) ([#15206](https://github.com/pantsbuild/pants/pull/15206)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15181](https://github.com/pantsbuild/pants/pull/15181)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` (Cherry-pick of #15141) ([#15244](https://github.com/pantsbuild/pants/pull/15244)) + +## 2.11.0rc3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets (Cherry pick of #15126) ([#15148](https://github.com/pantsbuild/pants/pull/15148)) + +### User API Changes + +* Upgrade Pex to 2.1.79. (Cherry-pick of #15125) ([#15129](https://github.com/pantsbuild/pants/pull/15129)) + +* Ban `terraform_module` referring to subdirectories (Cherry-pick of #15106) ([#15122](https://github.com/pantsbuild/pants/pull/15122)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15131](https://github.com/pantsbuild/pants/pull/15131)) + +### Bug fixes + +* Clean PID-specific exception file if empty on process exit (#15086) ([#15113](https://github.com/pantsbuild/pants/pull/15113)) + +* Allow dashes in inferred asset strings (Cherry-pick of #15123) ([#15154](https://github.com/pantsbuild/pants/pull/15154)) + +* Fix typo in Pylint description (Cherry-pick of #14945) ([#15157](https://github.com/pantsbuild/pants/pull/15157)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15127](https://github.com/pantsbuild/pants/pull/15127)) + +* fix missing field check in go protobuf rules (Cherry pick of #15105) ([#15118](https://github.com/pantsbuild/pants/pull/15118)) + +* files/dirs swapped in Snapshot's repr (Cherry-pick of #15101) ([#15114](https://github.com/pantsbuild/pants/pull/15114)) + +* Preserve tombstones for workunits which complete while they still have children (cherrypick of #15088) ([#15103](https://github.com/pantsbuild/pants/pull/15103)) + +### Documentation + +* Add some codegen and terraform backends to docs generator (Cherry-pick of #15036) ([#15156](https://github.com/pantsbuild/pants/pull/15156)) + +## 2.11.0rc2 (Apr 08, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.78. (Cherry-pick of #15078) ([#15079](https://github.com/pantsbuild/pants/pull/15079)) + +* terraform: remove `terraform_modules` generator target type (Cherry pick of #15035) ([#15063](https://github.com/pantsbuild/pants/pull/15063)) + +### Bug fixes + +* Clean the export dir under dist/ before populating it. (cherrypick #15068) ([#15075](https://github.com/pantsbuild/pants/pull/15075)) + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15034](https://github.com/pantsbuild/pants/pull/15034)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles (cherrypick of #15014) ([#15032](https://github.com/pantsbuild/pants/pull/15032)) + +* Pin pytest 7.0.1 (cherrypick of #14997) ([#15013](https://github.com/pantsbuild/pants/pull/15013)) + +### Documentation + +* Text in angle brackets needs to be escaped for the docsite. (Cherry pick of #15046) ([#15056](https://github.com/pantsbuild/pants/pull/15056)) + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15024](https://github.com/pantsbuild/pants/pull/15024)) + +## 2.11.0rc1 (Mar 31, 2022) + +### New Features + +* Add Protobuf formatting using buf format (Cherry pick of #14907) ([#14917](https://github.com/pantsbuild/pa + +* Add registration for the Go Protobuf backend (Cherry pick of #14874) ([#14900](https://github.com/pantsbuild/pants/pull/14900)) + +* Restore experimental codegen backends disabled for 2.10 release (Cherry-pick of #14407) ([#14932](https://github.com/pantsbuild/pants/pull/14932)) + +* Add support for parsing address parameters to CLI specs parsing (cherrypick of #14949) ([#14957](https://github.com/pantsbuild/pants/pull/14957)) + +### User API Changes + +* Upgrade to Pex 2.1.75 for VCS lock support and deadlock fix (Cherry-pick of #14970) ([#14976](https://github.com/pantsbuild/pants/pull/14976)) + +### Plugin API Changes + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. (cherrypick of #14959) ([#14962](https://github.com/pantsbuild/pants/pull/14962)) + +### Bug fixes + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields (Cherry-pick of #14847) ([#14930](https://github.com/pantsbuild/pants/pull/14930)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves (cherrypick of #14854, #14856, #14934) ([#14942](https://github.com/pantsbuild/pants/pull/14942)) + +* Upgrade Pex to 2.1.73. (#14875) ([#14880](https://github.com/pantsbuild/pants/pull/14880)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting (cherrypick of #14889) ([#14896](https://github.com/pantsbuild/pants/pull/14896)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled (#14891) ([#14894](https://github.com/pantsbuild/pants/pull/14894)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14901](https://github.com/pantsbuild/pants/pull/14901)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators (#14893) ([#14895](https://github.com/pantsbuild/pants/pull/14895)) + +### Performance + +* Make PEX lockfile subsetting incremental (cherry-pick of #14944) ([#14956](https://github.com/pantsbuild/pants/pull/14956)) + +## 2.11.0rc0 (Mar 17, 2022) + +### New Features + +* Generate and compile Go from Protobuf ([#14714](https://github.com/pantsbuild/pants/pull/14714)) + +* Add the ability to infer assets from strings for Python ([#14049](https://github.com/pantsbuild/pants/pull/14049)) + +* Add `[python].lockfile_generator` to allow using Pex for lockfile generation ([#14740](https://github.com/pantsbuild/pants/pull/14740)) + +* Add protobuf linting using Buf with `pants.backend.codegen.protobuf.lint.buf` backend ([#14540](https://github.com/pantsbuild/pants/pull/14540)) + +* Add `run` support to `pyoxidizer_binary` ([#14646](https://github.com/pantsbuild/pants/pull/14646)) + +* Add new `[docker].tools` option ([#14361](https://github.com/pantsbuild/pants/pull/14361)) + +* Add `build_file_dir()` symbol to BUILD files ([#14827](https://github.com/pantsbuild/pants/pull/14827)) + +* Adds `excludes` field to `jvm_artifact` targets ([#14715](https://github.com/pantsbuild/pants/pull/14715)) + +* Basic support for Helm charts ([#14658](https://github.com/pantsbuild/pants/pull/14658)) + +* Support `package` goal for Helm charts ([#14797](https://github.com/pantsbuild/pants/pull/14797)) + +* Python dependency inference supports multiple resolves for first-party targets ([#14486](https://github.com/pantsbuild/pants/pull/14486)) + +* Default the parameters of `parametrize`d dependencies on `parametrize`d targets ([#14788](https://github.com/pantsbuild/pants/pull/14788)) + +* Allow for codegen targets to be used directly by JVM compiler requests ([#14751](https://github.com/pantsbuild/pants/pull/14751)) + +### User API Changes + +* Update default Python interpreter constraints to not use Python 3.6 ([#14803](https://github.com/pantsbuild/pants/pull/14803)) + +* `python_sources` and `python_tests` target generators no longer impact interpreter constraints calculations ([#14821](https://github.com/pantsbuild/pants/pull/14821)) + +* Target generators (like `python_sources`) now only directly depend on their generated targets ([#14766](https://github.com/pantsbuild/pants/pull/14766)) + +* Deprecate not explicitly setting `[python].lockfile_generator` ([#14817](https://github.com/pantsbuild/pants/pull/14817)) + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` (Cherry-pick of #14815) ([#14818](https://github.com/pantsbuild/pants/pull/14818)) + +* Swap the order of generated names and parameters in Addresses. ([#14814](https://github.com/pantsbuild/pants/pull/14814)) + +* Rename `_python_requirements_file` target to `_generator_sources_helper` ([#14727](https://github.com/pantsbuild/pants/pull/14727)) + +* Add `SSL_CERT_DIR` and `SSL_CERT_FILE` to the default for `[subprocess-environment].env_vars` ([#14808](https://github.com/pantsbuild/pants/pull/14808)) + +* Upgrade Pex to 2.1.72. ([#14795](https://github.com/pantsbuild/pants/pull/14795)) + +### Plugin API Changes + +* Deprecate `Subsystem.register_options` in favor of the new attribute-based Option types ([#14772](https://github.com/pantsbuild/pants/pull/14772)) + +* New util rule for isolating binary tools. ([#14374](https://github.com/pantsbuild/pants/pull/14374)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. ([#14819](https://github.com/pantsbuild/pants/pull/14819)) + +* Fix exclusive spawn mechanism for relative paths and working directories. ([#14812](https://github.com/pantsbuild/pants/pull/14812)) + +* Fix a coverage config rewriting bug. ([#14784](https://github.com/pantsbuild/pants/pull/14784)) + +* golang: fix regression in analysis code ([#14733](https://github.com/pantsbuild/pants/pull/14733)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators ([#14829](https://github.com/pantsbuild/pants/pull/14829)) + +* Switch default tool lockfiles to Pex lockfiles for faster installation ([#14811](https://github.com/pantsbuild/pants/pull/14811)) + +* Port `Process` operations to use of `DigestTrie` ([#14723](https://github.com/pantsbuild/pants/pull/14723)) + +### Documentation + +* Improve REPL multiple resolves error to mention `[python].default_resolve` ([#14778](https://github.com/pantsbuild/pants/pull/14778)) + +* Switch from Aegean Check Mark to Multiplication X ([#14764](https://github.com/pantsbuild/pants/pull/14764)) + +* Improve documentation for `python_test_utils` ([#14739](https://github.com/pantsbuild/pants/pull/14739)) + +## 2.11.0.dev3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles ([#14675](https://github.com/pantsbuild/pants/pull/14675)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14698](https://github.com/pantsbuild/pants/pull/14698)) + +* JVM: add war file packaging ([#13888](https://github.com/pantsbuild/pants/pull/13888)) + +* Improve `export` to include pip in the venv. ([#14640](https://github.com/pantsbuild/pants/pull/14640)) + +### User API Changes + +* Remove `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14695](https://github.com/pantsbuild/pants/pull/14695)) + +* Upgrade Pex to 2.1.70. ([#14700](https://github.com/pantsbuild/pants/pull/14700)) + +### Plugin API Changes + +* Add `SkipOption` and improve `ArgsListOption` ([#14660](https://github.com/pantsbuild/pants/pull/14660)) + +* Move `BinaryPath` and `BashBinary` from `pants.engine.process` to `pants.core.util_rules.system_binaries` ([#14629](https://github.com/pantsbuild/pants/pull/14629)) + +### Bug fixes + +* Fix rendering of "Scheduling: ..." workunits introduced by workunit filtering. ([#14681](https://github.com/pantsbuild/pants/pull/14681)) + +* Give interactive processes a chance to gracefully shutdown ([#14580](https://github.com/pantsbuild/pants/pull/14580)) + +* Don't show no-op regex-lint output. ([#14656](https://github.com/pantsbuild/pants/pull/14656)) + +* Go: introduce cache key for compile actions ([#14661](https://github.com/pantsbuild/pants/pull/14661)) + +* Go: Properly disable CGo ([#14623](https://github.com/pantsbuild/pants/pull/14623)) + +### Performance + +* Add support for rendering a summary of objects held by the graph ([#14638](https://github.com/pantsbuild/pants/pull/14638)) + +* Reduce memory usage by interning Tasks and RuleGraph entries. ([#14683](https://github.com/pantsbuild/pants/pull/14683)) + +* Skip capture of `TRACE` workunits by default ([#13483](https://github.com/pantsbuild/pants/pull/13483)) + +## 2.11.0.dev2 (Feb 25, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. ([#14557](https://github.com/pantsbuild/pants/pull/14557)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination ([#14607](https://github.com/pantsbuild/pants/pull/14607)) + +* Upgrade `terraform-hcl2-parser` to version 3.0.3 ([#14554](https://github.com/pantsbuild/pants/pull/14554)) + +### Plugin API Changes + +* Rename `pants.python.binares` to `pants.core.subsystems.python_bootstrap` ([#14613](https://github.com/pantsbuild/pants/pull/14613)) + +* Add `PythonToolBase.to_pex_request()` to DRY tool installation ([#14610](https://github.com/pantsbuild/pants/pull/14610)) + +* Move `PythonBinary` from `python.binaries` to `core.util_rules.system_binaries` ([#14609](https://github.com/pantsbuild/pants/pull/14609)) + +* Add `core/util_rules/system_binaries.py` and relocate `archive.py` types like `UnzipBinary` to it ([#14601](https://github.com/pantsbuild/pants/pull/14601)) + +### Bug fixes + +* Show a helpful error message if a 3rdparty jar isn't available. ([#14595](https://github.com/pantsbuild/pants/pull/14595)) + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others ([#14620](https://github.com/pantsbuild/pants/pull/14620)) + +* Coursier caches are now determined by `-repos` configuration ([#14603](https://github.com/pantsbuild/pants/pull/14603)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos ([#14581](https://github.com/pantsbuild/pants/pull/14581)) + +### Performance + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache ([#14582](https://github.com/pantsbuild/pants/pull/14582)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets ([#14621](https://github.com/pantsbuild/pants/pull/14621)) + +* Don't leak local paths into generated docs. ([#14591](https://github.com/pantsbuild/pants/pull/14591)) + +## 2.11.0.dev1 (Feb 22, 2022) + +### New Features + +* Support for `file`/`files` in JVM tests ([#14537](https://github.com/pantsbuild/pants/pull/14537)) + +* Support complete_platforms for `python_awslambda`. ([#14532](https://github.com/pantsbuild/pants/pull/14532)) + +* Support complete_platforms for Python GCFs. ([#14530](https://github.com/pantsbuild/pants/pull/14530)) + +* Properly support filesystem specs in the `paths` goal. ([#14518](https://github.com/pantsbuild/pants/pull/14518)) + +* Plumb Pex's `--complete-platform` for pex_binary. ([#14526](https://github.com/pantsbuild/pants/pull/14526)) + +* Adds the plugin names field to scala sources ([#14508](https://github.com/pantsbuild/pants/pull/14508)) + +* jvm: teach dependency inference about multiple resolves ([#14491](https://github.com/pantsbuild/pants/pull/14491)) + +* scala: add implicit dependency on scala-library ([#14450](https://github.com/pantsbuild/pants/pull/14450)) + +* py_awslambda: pass through `include_requirements:bool` to `pex_binary` ([#14469](https://github.com/pantsbuild/pants/pull/14469)) + +### User API Changes + +* Upgrade Pex to 2.1.67. ([#14544](https://github.com/pantsbuild/pants/pull/14544)) + +* Create per-parametrization aliases for generator targets ([#14529](https://github.com/pantsbuild/pants/pull/14529)) + +* Per-resolve scala plugins ([#14497](https://github.com/pantsbuild/pants/pull/14497)) + +### Plugin API Changes + +* Replace `GoalSubsystem.required_union_implementations` with `GoalSubsystem.activated()` ([#14313](https://github.com/pantsbuild/pants/pull/14313)) + +* Add dynamic help ([#14543](https://github.com/pantsbuild/pants/pull/14543)) + +* Add global counters, and deprecate per-workunit counters. ([#14541](https://github.com/pantsbuild/pants/pull/14541)) + +### Bug fixes + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (#14394) + +* Fix coverage base global report creation bug. ([#14547](https://github.com/pantsbuild/pants/pull/14547)) + +* Tests scala local plugins, and makes it work properly on `scala_sources` targets ([#14512](https://github.com/pantsbuild/pants/pull/14512)) + +* Allow use of `parametrize` with the `jdk=` field of JVM targets ([#14510](https://github.com/pantsbuild/pants/pull/14510)) + +* Fix address parse bug in `update-build-files --fix-python-macros`. ([#14485](https://github.com/pantsbuild/pants/pull/14485)) + +### Performance + +* Shortcircuit source subsetting if there are no distributions. ([#14564](https://github.com/pantsbuild/pants/pull/14564)) + +* Calculate local distribution contents once per distribution ([#14551](https://github.com/pantsbuild/pants/pull/14551)) + +### Documentation + +* Fix the incompatible resolve error message to include the entire checked set of targets. ([#14525](https://github.com/pantsbuild/pants/pull/14525)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation ([#14475](https://github.com/pantsbuild/pants/pull/14475)) + +## 2.11.0.dev0 (Feb 11, 2022) + +### New Features + +* Add support for long_description_path field in python_distribution ([#14448](https://github.com/pantsbuild/pants/pull/14448)) + +* Improve `export` goal to handle multiple Python resolves ([#14436](https://github.com/pantsbuild/pants/pull/14436)) + +* Add support for multiple compile/testing JDKs ([#14421](https://github.com/pantsbuild/pants/pull/14421)) + +* Add initial support for a `parametrize` builtin to generate multiple copies of a target ([#14408](https://github.com/pantsbuild/pants/pull/14408)) + +* scala: support multiple scala versions ([#14425](https://github.com/pantsbuild/pants/pull/14425)) + +### User API Changes + +* Remove support for JSON-encoded JVM lockfiles. ([#14458](https://github.com/pantsbuild/pants/pull/14458)) + +* Remove deprecated `.tag` version values. ([#14453](https://github.com/pantsbuild/pants/pull/14453)) + +* Remove deprecated `[scala] version` option. ([#14455](https://github.com/pantsbuild/pants/pull/14455)) + +* Replace `compatible_resolves` with `resolve` for JVM targets ([#14441](https://github.com/pantsbuild/pants/pull/14441)) + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` ([#14420](https://github.com/pantsbuild/pants/pull/14420)) + +* Remove options, goals, and backends deprecated in Pants 2.10 ([#14396](https://github.com/pantsbuild/pants/pull/14396)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. ([#14376](https://github.com/pantsbuild/pants/pull/14376)) + +* Default to `use_deprecated_python_macros = false` and deprecate the option ([#14399](https://github.com/pantsbuild/pants/pull/14399)) + +### Plugin API Changes + +* Adding DictOptions and WorkspacePathOption to the declarative options ([#14433](https://github.com/pantsbuild/pants/pull/14433)) + +* More declarative target generators for plugins ([#14377](https://github.com/pantsbuild/pants/pull/14377)) + +### Bug fixes + +* Fix handling of Go version for third-party packages ([#14457](https://github.com/pantsbuild/pants/pull/14457)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. ([#14447](https://github.com/pantsbuild/pants/pull/14447)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves ([#14418](https://github.com/pantsbuild/pants/pull/14418)) + +* Fix `pants_requirements` target generator to use resolves ([#14417](https://github.com/pantsbuild/pants/pull/14417)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` ([#14404](https://github.com/pantsbuild/pants/pull/14404)) + +### Documentation + +* `help` command reminds users about `help-advanced` ([#14402](https://github.com/pantsbuild/pants/pull/14402)) diff --git a/versioned_docs/version-2.19/notes/2.12.x.md b/versioned_docs/version-2.19/notes/2.12.x.md new file mode 100644 index 000000000..1031ae074 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.12.x.md @@ -0,0 +1,491 @@ +# 2.12.x Release Series + +## 2.12.1 (Aug 31, 2022) + +The second stable release of 2.12, with only updates to the docs website. + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16678](https://github.com/pantsbuild/pants/pull/16678)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16651](https://github.com/pantsbuild/pants/pull/16651)) + +## 2.12.1rc4 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16619](https://github.com/pantsbuild/pants/pull/16619)) + +### Bug fixes + +* Add `grpcio` to default Python module mapping ([#16605](https://github.com/pantsbuild/pants/pull/16605)) + +* Fix `IndexError` when codegen is missing expected `python_requirement` targets ([#16590](https://github.com/pantsbuild/pants/pull/16590)) + +### Documentation + +* Fix broken link to community page (Cherry-pick of #16468) ([#16556](https://github.com/pantsbuild/pants/pull/16556)) + +## 2.12.1rc3 (Aug 14, 2022) + +### Bug fixes + +* Include Helm chart dependency inference rules (cherrypick of #16368) ([#16490](https://github.com/pantsbuild/pants/pull/16490)) + +* Fix docker invalidation bug. (cherrypick #16419) ([#16479](https://github.com/pantsbuild/pants/pull/16479)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16295](https://github.com/pantsbuild/pants/pull/16295)) + +### Documentation + +* Fix source roots docs (Cherry-pick of #16363) ([#16364](https://github.com/pantsbuild/pants/pull/16364)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16348](https://github.com/pantsbuild/pants/pull/16348)) + +## 2.12.1rc2 (Jul 20, 2022) + +### Bug fixes + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16251](https://github.com/pantsbuild/pants/pull/16251)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields (cherry-pick of #16232) ([#16248](https://github.com/pantsbuild/pants/pull/16248)) + +## 2.12.1rc1 (Jul 19, 2022) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16220](https://github.com/pantsbuild/pants/pull/16220)) + +### Bug fixes + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16233](https://github.com/pantsbuild/pants/pull/16233)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (Cherry-pick of #16197) ([#16213](https://github.com/pantsbuild/pants/pull/16213)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16211](https://github.com/pantsbuild/pants/pull/16211)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16185](https://github.com/pantsbuild/pants/pull/16185)) + +### Documentation + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16207](https://github.com/pantsbuild/pants/pull/16207)) + +## 2.12.1rc0 (Jul 14, 2022) + +### User API Changes + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16114](https://github.com/pantsbuild/pants/pull/16114)) + +### Bug fixes + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16179](https://github.com/pantsbuild/pants/pull/16179)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16153](https://github.com/pantsbuild/pants/pull/16153)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16047](https://github.com/pantsbuild/pants/pull/16047)) + +### Documentation + +* Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) ([#16157](https://github.com/pantsbuild/pants/pull/16157)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16138](https://github.com/pantsbuild/pants/pull/16138)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16059](https://github.com/pantsbuild/pants/pull/16059)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16061](https://github.com/pantsbuild/pants/pull/16061)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16021](https://github.com/pantsbuild/pants/pull/16021)) + +* Bump 2.12 install version ([#16002](https://github.com/pantsbuild/pants/pull/16002)) + +## 2.12.0 (Jun 28, 2022) + +The first stable release of the `2.12.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15973](https://github.com/pantsbuild/pants/pull/15973)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15970](https://github.com/pantsbuild/pants/pull/15970)) + +## 2.12.0rc3 (Jun 23, 2022) + +### New Features + +* Add option for max wait before terminating interactive process (Cherry-pick of #15767) ([#15908](https://github.com/pantsbuild/pants/pull/15908)) + +### User API Changes + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. (Cherry-pick of #15745) ([#15746](https://github.com/pantsbuild/pants/pull/15746)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15907](https://github.com/pantsbuild/pants/pull/15907)) + +### Bug fixes + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15906](https://github.com/pantsbuild/pants/pull/15906)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15905](https://github.com/pantsbuild/pants/pull/15905)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15793](https://github.com/pantsbuild/pants/pull/15793)) + +* Record metrics for remote cache store errors (Cherry-pick of #15744) ([#15747](https://github.com/pantsbuild/pants/pull/15747)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` (Cherry-pick of #15733) ([#15737](https://github.com/pantsbuild/pants/pull/15737)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15843](https://github.com/pantsbuild/pants/pull/15843)) + +* Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) ([#15820](https://github.com/pantsbuild/pants/pull/15820)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15823](https://github.com/pantsbuild/pants/pull/15823)) + +## 2.12.0rc2 (May 31, 2022) + +### New Features + +* Add Memory controls to JVM processes (Cherry-pick of #15224) ([#15682](https://github.com/pantsbuild/pants/pull/15682)) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15658](https://github.com/pantsbuild/pants/pull/15658)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15707](https://github.com/pantsbuild/pants/pull/15707)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15677](https://github.com/pantsbuild/pants/pull/15677)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15680](https://github.com/pantsbuild/pants/pull/15680)) + +* Choose correct dialect according to scala-version (Cherry-pick of #15649) ([#15681](https://github.com/pantsbuild/pants/pull/15681)) + +## 2.12.0rc1 (May 23, 2022) + +### New Features + +* Allow turning off `export` of Python tools like `black` (Cherry-pick of #15509) ([#15511](https://github.com/pantsbuild/pants/pull/15511)) + +* Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) ([#15468](https://github.com/pantsbuild/pants/pull/15468)) + +### User API Changes + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15485](https://github.com/pantsbuild/pants/pull/15485)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15611](https://github.com/pantsbuild/pants/pull/15611)) + +* Record Scala `package object` as provided name (Cherry-pick of #15582) ([#15608](https://github.com/pantsbuild/pants/pull/15608)) + +* Don't give a subsequent formatter an empty snapshot after skipping (Cherry-pick of #15483) ([#15602](https://github.com/pantsbuild/pants/pull/15602)) + +* Fix lockfile generation for Docker and Terraform to not require Python backend (Cherry-pick of #15453) ([#15604](https://github.com/pantsbuild/pants/pull/15604)) + +* Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) ([#15603](https://github.com/pantsbuild/pants/pull/15603)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15575](https://github.com/pantsbuild/pants/pull/15575)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15573](https://github.com/pantsbuild/pants/pull/15573)) + +* Fix `tag` filtering with `--changed-dependees` (Cherry-pick of #15546) ([#15564](https://github.com/pantsbuild/pants/pull/15564)) + +* Improve `name=` used for `python_requirements` target generators with `tailor` (Cherry-pick of #15507) ([#15519](https://github.com/pantsbuild/pants/pull/15519)) + +* jvm: don't generate default tool lockfiles (Cherry pick of #15488) ([#15498](https://github.com/pantsbuild/pants/pull/15498)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15496](https://github.com/pantsbuild/pants/pull/15496)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional (Cherry-pick of #15459) ([#15466](https://github.com/pantsbuild/pants/pull/15466)) + +* kotlin: remove stray scala references (Cherry-pick of #15461) ([#15465](https://github.com/pantsbuild/pants/pull/15465)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified (Cherry-pick of #15579) ([#15601](https://github.com/pantsbuild/pants/pull/15601)) + +## 2.12.0rc0 (May 13, 2022) + +### User API Changes + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (Cherry-pick of #15424) ([#15441](https://github.com/pantsbuild/pants/pull/15441)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' (Cherry-pick of #15373) ([#15407](https://github.com/pantsbuild/pants/pull/15407)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` (Cherry-pick of #15423) ([#15437](https://github.com/pantsbuild/pants/pull/15437)) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15412](https://github.com/pantsbuild/pants/pull/15412)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15405](https://github.com/pantsbuild/pants/pull/15405)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15403](https://github.com/pantsbuild/pants/pull/15403)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15372](https://github.com/pantsbuild/pants/pull/15372)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15370](https://github.com/pantsbuild/pants/pull/15370)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15356](https://github.com/pantsbuild/pants/pull/15356)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15299](https://github.com/pantsbuild/pants/pull/15299)) + +* Fix a bug in the python venv export logic. (#15294) ([#15297](https://github.com/pantsbuild/pants/pull/15297)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15308](https://github.com/pantsbuild/pants/pull/15308)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15439](https://github.com/pantsbuild/pants/pull/15439)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15391](https://github.com/pantsbuild/pants/pull/15391)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15368](https://github.com/pantsbuild/pants/pull/15368)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15364](https://github.com/pantsbuild/pants/pull/15364)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15348](https://github.com/pantsbuild/pants/pull/15348)) + +## 2.12.0a0 (Apr 29, 2022) + +### New Features + +* Support poetry wildcard requirements. ([#15213](https://github.com/pantsbuild/pants/pull/15213)) + +* Implement `tailor` goal for Helm charts ([#15192](https://github.com/pantsbuild/pants/pull/15192)) + +* Write virtualenvs for Python tools as part of `export` ([#15098](https://github.com/pantsbuild/pants/pull/15098)) + +### User API Changes + +* Upgrade Pex to 2.1.84. ([#15288](https://github.com/pantsbuild/pants/pull/15288)) + +### Plugin API Changes + +* Allow for arbitrary suffixes when extracting ([#15257](https://github.com/pantsbuild/pants/pull/15257)) + +* Add lz4 support to archive extraction ([#15245](https://github.com/pantsbuild/pants/pull/15245)) + +### Bug fixes + +* Simplify BSP metadata merging, and handle the empty list. ([#15283](https://github.com/pantsbuild/pants/pull/15283)) + +* BSP resolve filtering observes computed default values of resolve fields ([#15282](https://github.com/pantsbuild/pants/pull/15282)) + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. ([#15277](https://github.com/pantsbuild/pants/pull/15277)) + +* Fix ambiguity of Scala `package object`s with `class` or `object` definitions ([#15265](https://github.com/pantsbuild/pants/pull/15265)) + +* Fix issue with Docker publish when using `[docker] tools`. ([#15255](https://github.com/pantsbuild/pants/pull/15255)) + +* Do not lowercase Docker image tags. ([#15254](https://github.com/pantsbuild/pants/pull/15254)) + +* Fix the placement of the pex verbosity args. ([#15243](https://github.com/pantsbuild/pants/pull/15243)) + +* Fix use of `@` in path names. ([#15226](https://github.com/pantsbuild/pants/pull/15226)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. ([#15219](https://github.com/pantsbuild/pants/pull/15219)) + +* golang: add more cache keys based on tool IDs ([#15205](https://github.com/pantsbuild/pants/pull/15205)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` ([#15141](https://github.com/pantsbuild/pants/pull/15141)) + +### Documentation + +* Fix `ProtobufSourcesOverridesField` help message ([#15272](https://github.com/pantsbuild/pants/pull/15272)) + +* Update `help` for python resolves with recent improvements ([#15228](https://github.com/pantsbuild/pants/pull/15228)) + +* Improve cache-related error message to be less confusing ([#15202](https://github.com/pantsbuild/pants/pull/15202)) + +* Show `experimental-bsp` goal in help ([#15208](https://github.com/pantsbuild/pants/pull/15208)) + +* Mention resolve when partitioning Mypy and Pylint ([#15172](https://github.com/pantsbuild/pants/pull/15172)) + +* Don't log set up of binary shims ([#15203](https://github.com/pantsbuild/pants/pull/15203)) + +## 2.12.0.dev3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets ([#15126](https://github.com/pantsbuild/pants/pull/15126)) + +* Implement `publish` goal for Helm charts ([#15042](https://github.com/pantsbuild/pants/pull/15042)) + +* add experimental kotlin backend to distribution ([#15109](https://github.com/pantsbuild/pants/pull/15109)) + +* Support pip-style VCS requirements. ([#15097](https://github.com/pantsbuild/pants/pull/15097)) + +### User API Changes + +* Upgrade Pex to 2.1.79. ([#15125](https://github.com/pantsbuild/pants/pull/15125)) + +* Ban `terraform_module` referring to subdirectories ([#15106](https://github.com/pantsbuild/pants/pull/15106)) + +### Plugin API Changes + +* Throw a `DuplicateRuleError` when there are conflicting rules in a module. ([#15073](https://github.com/pantsbuild/pants/pull/15073)) + +* Expose `GitWorktree` as an `@rule` ([#15030](https://github.com/pantsbuild/pants/pull/15030)) + +### Bug fixes + +* Fix Requires-Python for pantsbuild.pants wheel. ([#15149](https://github.com/pantsbuild/pants/pull/15149)) + +* Allow dashes in inferred asset strings ([#15123](https://github.com/pantsbuild/pants/pull/15123)) + +* Fix when the same `python_requirement` defines both type stub and implementation ([#15121](https://github.com/pantsbuild/pants/pull/15121)) + +* Fix missing field check in go protobuf rules ([#15105](https://github.com/pantsbuild/pants/pull/15105)) + +### Documentation + +* Last round of softwrapping help strings ([#15142](https://github.com/pantsbuild/pants/pull/15142)) + +* Softwrapping a few more files ([#15138](https://github.com/pantsbuild/pants/pull/15138)) + +* Softwrap python backend help strings ([#15137](https://github.com/pantsbuild/pants/pull/15137)) + +## 2.12.0.dev2 (Apr 11, 2022) + +### New Features + +* Support for env var interpolation in config files. ([#15087](https://github.com/pantsbuild/pants/pull/15087)) + +* Support for finer control over which Docker images to push. ([#15000](https://github.com/pantsbuild/pants/pull/15000)) + +* Add a helpful hint to `lint` if a formatter fails ([#15048](https://github.com/pantsbuild/pants/pull/15048)) + +* Add support for Helm 3rd party dependencies ([#14964](https://github.com/pantsbuild/pants/pull/14964)) + +### User API Changes + +* Default `[python].lockfile_generator` to Pex ([#15074](https://github.com/pantsbuild/pants/pull/15074)) + +* Upgrade Pex to 2.1.78. ([#15078](https://github.com/pantsbuild/pants/pull/15078)) + +* terraform: remove `terraform_modules` generator target type ([#15035](https://github.com/pantsbuild/pants/pull/15035)) + +* Upgrade to Pex 2.1.77. ([#15015](https://github.com/pantsbuild/pants/pull/15015)) + +* Change JVM defaults to use Temurin JDK distribution ([#15009](https://github.com/pantsbuild/pants/pull/15009)) + +### Plugin API Changes + +* Remove deprecated `register_options` support. ([#15090](https://github.com/pantsbuild/pants/pull/15090)) + +* Remove deprecated target generator API affordances. ([#15091](https://github.com/pantsbuild/pants/pull/15091)) + +* Add `@rule_helper` decorator, which participates in awaitable collection ([#15025](https://github.com/pantsbuild/pants/pull/15025)) + +### Bug fixes + +* Enable codegen on relocated files ([#15100](https://github.com/pantsbuild/pants/pull/15100)) + +* Preserve tombstones for workunits which complete while they still have children ([#15088](https://github.com/pantsbuild/pants/pull/15088)) + +* Clean the export dir under dist/ before populating it. ([#15068](https://github.com/pantsbuild/pants/pull/15068)) + +* Do not use a repository-PEX if a PEX has platforms specified ([#15031](https://github.com/pantsbuild/pants/pull/15031)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles ([#15014](https://github.com/pantsbuild/pants/pull/15014)) + +* Pin pytest 7.0.1 ([#14997](https://github.com/pantsbuild/pants/pull/14997)) + +### Documentation + +* files/dirs swapped in Snapshot's repr ([#15101](https://github.com/pantsbuild/pants/pull/15101)) + +* Tweak deprecation messages. ([#15027](https://github.com/pantsbuild/pants/pull/15027)) + +* Add some codegen and terraform backends to docs generator ([#15036](https://github.com/pantsbuild/pants/pull/15036)) + +* Text in angle brackets needs to be escaped for the docsite. ([#15046](https://github.com/pantsbuild/pants/pull/15046)) + +* Fix presented provider backend for rules/subsystems. ([#14999](https://github.com/pantsbuild/pants/pull/14999)) + +## 2.12.0.dev1 (Apr 05, 2022) + +### New Features + +* Support restricting specific requirements to just wheels or just sdists. ([#14985](https://github.com/pantsbuild/pants/pull/14985)) + +* Add support for Helm unittest ([#14849](https://github.com/pantsbuild/pants/pull/14849)) + +* Add support for parsing address parameters to CLI specs parsing ([#14949](https://github.com/pantsbuild/pants/pull/14949)) + +### User API Changes + +* Merge list values across config files. ([#14850](https://github.com/pantsbuild/pants/pull/14850)) + +* Write test reports to a standard location under the distdir. ([#14929](https://github.com/pantsbuild/pants/pull/14929)) + +* Upgrade Pex to 2.1.76. ([#14992](https://github.com/pantsbuild/pants/pull/14992)) + +* Upgrade coursier to v2.1.0-M5-18-gfebf9838c ([#14978](https://github.com/pantsbuild/pants/pull/14978)) + +### Plugin API Changes + +* "Unify" `fmt` and `lint` rules for formatters ([#14903](https://github.com/pantsbuild/pants/pull/14903)) + +* Refactor `prior_formatter_result` and its usage ([#14987](https://github.com/pantsbuild/pants/pull/14987)) + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. ([#14959](https://github.com/pantsbuild/pants/pull/14959)) + +### Bug fixes + +* add go protobuf backend to init/BUILD ([#14979](https://github.com/pantsbuild/pants/pull/14979)) + +* Fix Pylint config check strings ([#14946](https://github.com/pantsbuild/pants/pull/14946)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves ([#14934](https://github.com/pantsbuild/pants/pull/14934)) + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields ([#14847](https://github.com/pantsbuild/pants/pull/14847)) + +### Performance + +* Make PEX lockfile subsetting incremental ([#14944](https://github.com/pantsbuild/pants/pull/14944)) + +### Documentation + +* Don't warn if no relevant targets in glob or --changed. ([#14904](https://github.com/pantsbuild/pants/pull/14904)) + +## 2.12.0.dev0 (Mar 25, 2022) + +### New Features + +* Add Protobuf formatting using buf format ([#14907](https://github.com/pantsbuild/pants/pull/14907)) + +* add registration for the Go Protobuf backend ([#14874](https://github.com/pantsbuild/pants/pull/14874)) + +### User API Changes + +* Remove `--use-deprecated-python-macros` in favor of always using target generators ([#14842](https://github.com/pantsbuild/pants/pull/14842)) + +* Add `django-dotenv`, `django-safedelete` and `factory-boy` to default Python module mapping ([#14848](https://github.com/pantsbuild/pants/pull/14848)) + +* Add cattrs to Python's DEFAULT_MODULE_MAPPING ([#14845](https://github.com/pantsbuild/pants/pull/14845)) + +* hcl parser 3.0.5 ([#14878](https://github.com/pantsbuild/pants/pull/14878)) + +### Plugin API Changes + +* FmtResult now operates on Snapshots ([#14865](https://github.com/pantsbuild/pants/pull/14865)) + +### Bug fixes + +* add cache key for all Go SDK invocations ([#14897](https://github.com/pantsbuild/pants/pull/14897)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting ([#14889](https://github.com/pantsbuild/pants/pull/14889)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators ([#14893](https://github.com/pantsbuild/pants/pull/14893)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled ([#14891](https://github.com/pantsbuild/pants/pull/14891)) diff --git a/versioned_docs/version-2.19/notes/2.13.x.md b/versioned_docs/version-2.19/notes/2.13.x.md new file mode 100644 index 000000000..3b5403966 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.13.x.md @@ -0,0 +1,717 @@ +# 2.13.x Release Series + +## 2.13.1 (Oct 27, 2022) + +The second stable release in the 2.13.x series, with no changes since 2.13.1rc2. + +## 2.13.1rc2 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17274](https://github.com/pantsbuild/pants/pull/17274)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17243](https://github.com/pantsbuild/pants/pull/17243)) + +* fixup name of opt-in flag in error message ([#17038](https://github.com/pantsbuild/pants/pull/17038)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17242](https://github.com/pantsbuild/pants/pull/17242)) + +## 2.13.1rc1 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17123](https://github.com/pantsbuild/pants/pull/17123)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17121](https://github.com/pantsbuild/pants/pull/17121)) + +* Upgrade Pex to 2.1.103. (Cherry-pick of #16426) ([#17114](https://github.com/pantsbuild/pants/pull/17114)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17156](https://github.com/pantsbuild/pants/pull/17156)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17151](https://github.com/pantsbuild/pants/pull/17151)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17149](https://github.com/pantsbuild/pants/pull/17149)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17147](https://github.com/pantsbuild/pants/pull/17147)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17110](https://github.com/pantsbuild/pants/pull/17110)) + +* Fix the [python-bootstrap].search_path option name in the docs. (Cherry-pick of #17063) ([#17066](https://github.com/pantsbuild/pants/pull/17066)) + +## 2.13.1rc0 (Sep 29, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16884](https://github.com/pantsbuild/pants/pull/16884)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17054](https://github.com/pantsbuild/pants/pull/17054)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17032](https://github.com/pantsbuild/pants/pull/17032)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17020](https://github.com/pantsbuild/pants/pull/17020)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16972](https://github.com/pantsbuild/pants/pull/16972)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16938](https://github.com/pantsbuild/pants/pull/16938)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16936](https://github.com/pantsbuild/pants/pull/16936)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16885](https://github.com/pantsbuild/pants/pull/16885)) + +### Documentation + +* Add Thales Menato's proudest contribution (Cherry-pick of #17023) ([#17024](https://github.com/pantsbuild/pants/pull/17024)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17006](https://github.com/pantsbuild/pants/pull/17006)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16981](https://github.com/pantsbuild/pants/pull/16981)) + +* Update changelog on docsite with 2.13 links (cherrypick of #16918) ([#16957](https://github.com/pantsbuild/pants/pull/16957)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16813](https://github.com/pantsbuild/pants/pull/16813)) + +* fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16810](https://github.com/pantsbuild/pants/pull/16810)) + +## 2.13.0 (Sep 7, 2022) + +The first stable release of 2.13.0, with no changes since 2.13.0rc3. + +See our [blog post](https://blog.pantsbuild.org/introducing-pants-2-13/) for a summary of what's new in Pants 2.13. + +## 2.13.0rc3 (Aug 31, 2022) + +### Bug fixes + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16699](https://github.com/pantsbuild/pants/pull/16699)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16660](https://github.com/pantsbuild/pants/pull/16660)) + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16729](https://github.com/pantsbuild/pants/pull/16729)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16652](https://github.com/pantsbuild/pants/pull/16652)) + +## 2.13.0rc2 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16618](https://github.com/pantsbuild/pants/pull/16618)) + +### Bug fixes + +* Have `run` run `__main__.py` for non-zipapp PEXs (Cherry-pick of #16568) ([#16635](https://github.com/pantsbuild/pants/pull/16635)) + +* Add `grpcio` to default Python module mapping ([#16604](https://github.com/pantsbuild/pants/pull/16604)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. (Cherry-pick of #16545) ([#16555](https://github.com/pantsbuild/pants/pull/16555)) + +### Performance + +* Improve performance of `Owners` rule (Cherry-pick of #16563) ([#16597](https://github.com/pantsbuild/pants/pull/16597)) + +* Fix performance for generating lockfiles for `pytest` and `setuptools` (Cherry-pick of #16591) ([#16596](https://github.com/pantsbuild/pants/pull/16596)) + +### Documentation + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16623](https://github.com/pantsbuild/pants/pull/16623)) + +* Use Markdown h3 for ToC support (Cherry-pick of #15964) ([#16558](https://github.com/pantsbuild/pants/pull/16558)) + +* Fix broken link to community page (Cherry-pick of #16468) ([#16557](https://github.com/pantsbuild/pants/pull/16557)) + +## 2.13.0rc1 (Aug 12, 2022) + +### User API Changes + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` (Cherry-pick of #16415) ([#16417](https://github.com/pantsbuild/pants/pull/16417)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (Cherry-pick of #16305) ([#16334](https://github.com/pantsbuild/pants/pull/16334)) + +* Upgrade Pex to 2.1.102. (Cherry-pick of #16313) ([#16323](https://github.com/pantsbuild/pants/pull/16323)) + +### Bug fixes + +* Add missing `help` message to experimental backends (Cherry-pick of #16403) ([#16500](https://github.com/pantsbuild/pants/pull/16500)) + +* Fix `CacheContentBehavior::Defer` with a remote cache (Cherry-pick of #16439) ([#16441](https://github.com/pantsbuild/pants/pull/16441)) + +* Fix docker invalidation bug (cherrypick of #16419) ([#16431](https://github.com/pantsbuild/pants/pull/16431)) + +* Set immutable_input_digests on a docker RunRequest. (Cherry-pick of #16385) ([#16396](https://github.com/pantsbuild/pants/pull/16396)) + +* go: pass -p option to `go tool asm` on Go v1.19+ (Cherry pick of #16381) ([#16395](https://github.com/pantsbuild/pants/pull/16395)) + +* consume inits part of package object within the inner scope (Cherry-pick of #16282) ([#16371](https://github.com/pantsbuild/pants/pull/16371)) + +* Add a newline at the end of `paths` output (Cherry-pick of #16302) ([#16372](https://github.com/pantsbuild/pants/pull/16372)) + +* fix kotlin tailor for junit tests (Cherry pick of #16333) ([#16341](https://github.com/pantsbuild/pants/pull/16341)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16296](https://github.com/pantsbuild/pants/pull/16296)) + +* Allow using `--import` option with Autoflake (Cherry-pick of #16192) ([#16275](https://github.com/pantsbuild/pants/pull/16275)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` (Cherry-pick of #16263) ([#16267](https://github.com/pantsbuild/pants/pull/16267)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches (Cherry-pick of #16398) ([#16409](https://github.com/pantsbuild/pants/pull/16409)) + +### Documentation + +* Update docs on how to run Pants in CI. (Cherry-pick of #16503) ([#16509](https://github.com/pantsbuild/pants/pull/16509)) + +* Fix partition description for MyPy when multiple resolves (Cherry-pick of #16486) ([#16498](https://github.com/pantsbuild/pants/pull/16498)) + +* Fix source roots docs. (Cherry-pick of #16363) ([#16365](https://github.com/pantsbuild/pants/pull/16365)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16349](https://github.com/pantsbuild/pants/pull/16349)) + +* add tailor docs for kotlin backend (Cherry pick of #16332) ([#16338](https://github.com/pantsbuild/pants/pull/16338)) + +* docs: add initial Kotlin docs (Cherry pick of #16304) ([#16329](https://github.com/pantsbuild/pants/pull/16329)) + +* Document test sharding and update plugin docs with 2.13 changes (Cherry-pick of #16293) ([#16306](https://github.com/pantsbuild/pants/pull/16306)) + +## 2.13.0rc0 (Jul 20, 2022) + +### New Features + +* allow JVM sources to have files dependencies (Cherry-pick of #16203) ([#16236](https://github.com/pantsbuild/pants/pull/16236)) + +* Add [python].default_run_goal_use_sandbox (Cherry-pick of #16239) ([#16253](https://github.com/pantsbuild/pants/pull/16253)) + +* Add `include_sources` to `pex_binary` target (Cherry-pick of #16215) ([#16252](https://github.com/pantsbuild/pants/pull/16252)) + +* Add support for extra env variables in go tests (Cherry-pick of #16013) ([#16067](https://github.com/pantsbuild/pants/pull/16067)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields (Cherry-pick of #16227) ([#16237](https://github.com/pantsbuild/pants/pull/16237)) + +* Upgrade Pex to 2.1.99. (Cherry-pick of #16184) ([#16225](https://github.com/pantsbuild/pants/pull/16225)) + +* Correct deprecation warning to 2.15 (Cherry-pick of #16056) ([#16218](https://github.com/pantsbuild/pants/pull/16218)) + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16113](https://github.com/pantsbuild/pants/pull/16113)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16219](https://github.com/pantsbuild/pants/pull/16219)) + +### Bug fixes + +* Refactors `output_field` to default to something that disambiguates on paramtrized fields (Cherry-pick of #16232) ([#16254](https://github.com/pantsbuild/pants/pull/16254)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16250](https://github.com/pantsbuild/pants/pull/16250)) + +* Remove removal of use_deprecated_pex_binary_run_semantics in 2.13.x ([#16108](https://github.com/pantsbuild/pants/pull/16108)) + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16234](https://github.com/pantsbuild/pants/pull/16234)) + +* Add overrides field to scala targets (Cherry-pick of #16204) ([#16235](https://github.com/pantsbuild/pants/pull/16235)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (#16197) ([#16214](https://github.com/pantsbuild/pants/pull/16214)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16210](https://github.com/pantsbuild/pants/pull/16210)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16186](https://github.com/pantsbuild/pants/pull/16186)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16180](https://github.com/pantsbuild/pants/pull/16180)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16154](https://github.com/pantsbuild/pants/pull/16154)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` (Cherry-pick of #16093) ([#16148](https://github.com/pantsbuild/pants/pull/16148)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins (Cherry-pick of #16106) ([#16147](https://github.com/pantsbuild/pants/pull/16147)) + +* Record ongoing backtrack attempts (Cherry-pick of #16075) ([#16080](https://github.com/pantsbuild/pants/pull/16080)) + +* Write to caches during backtracking (Cherry-pick of #16078) ([#16081](https://github.com/pantsbuild/pants/pull/16081)) + +* Fix `--changed-since` with `tailor` and `update-build-files` when no changes ([#16066](https://github.com/pantsbuild/pants/pull/16066)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16048](https://github.com/pantsbuild/pants/pull/16048)) + +### Performance + +* Port `@rule` `Get`s to rust (Cherry-pick of #16160) ([#16177](https://github.com/pantsbuild/pants/pull/16177)) + +### Documentation + +* Document `--filter` options working with any goal (Cherry-pick of #16090) ([#16209](https://github.com/pantsbuild/pants/pull/16209)) + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16208](https://github.com/pantsbuild/pants/pull/16208)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16139](https://github.com/pantsbuild/pants/pull/16139)) + +* New doc explaining vcs_version. (Cherrypick of #16092) ([#16102](https://github.com/pantsbuild/pants/pull/16102)) + +* Fix typo in warning for `[python].resolve_all_constraints` (Cherry-pick of #16068) ([#16073](https://github.com/pantsbuild/pants/pull/16073)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16058](https://github.com/pantsbuild/pants/pull/16058)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16060](https://github.com/pantsbuild/pants/pull/16060)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16020](https://github.com/pantsbuild/pants/pull/16020)) + +## 2.13.0a1 (Jun 29, 2022) + +### New Features + +* Add ability to `run` any `PythonSourceField` (Cherry-pick of #15849) ([#16022](https://github.com/pantsbuild/pants/pull/16022)) + +* Add `--debug-adapter` flag to `run` (Cherry-pick of #15829) ([#15988](https://github.com/pantsbuild/pants/pull/15988)) + +* Add repository config option to Docker registries. (Cherry pick of #15884) ([#15952](https://github.com/pantsbuild/pants/pull/15952)) + +### User API Changes + +* Deprecate not setting `tailor_pex_binary_targets` explictly (Cherry-pick of #15962) ([#16023](https://github.com/pantsbuild/pants/pull/16023)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 (Cherry-pick of #15934) ([#15938](https://github.com/pantsbuild/pants/pull/15938)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15916](https://github.com/pantsbuild/pants/pull/15916)) + +### Bug fixes + +* Backtrack through calls from `@rules` to synchronous engine methods (Cherry-pick of #15979) ([#16001](https://github.com/pantsbuild/pants/pull/16001)) + +* Assorted remote metrics fixes. (Cherry-pick of #15914) ([#15976](https://github.com/pantsbuild/pants/pull/15976)) + +* Fix bad "" description in invalid addresses error messages (Cherry-pick of #15859) ([#15936](https://github.com/pantsbuild/pants/pull/15936)) + +* Fix reporting of time spent downloading files (Cherry-pick of #15873) ([#15921](https://github.com/pantsbuild/pants/pull/15921)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15918](https://github.com/pantsbuild/pants/pull/15918)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15917](https://github.com/pantsbuild/pants/pull/15917)) + +* Increment the missing-digest backtracking level once per attempt (Cherry pick of #15889) ([#15897](https://github.com/pantsbuild/pants/pull/15897)) + +* Scala: should visit ctor args of base type (Cherry pick of #15880) ([#15892](https://github.com/pantsbuild/pants/pull/15892)) + +* Scala: mark an object that extends another type as recursive (Cherry pick of #15865) ([#15891](https://github.com/pantsbuild/pants/pull/15891)) + +### Performance + +* terraform: use immutable input for Terraform tool (Cherry-pick of #15037) ([#15998](https://github.com/pantsbuild/pants/pull/15998)) + +* Improve performance of file arguments when `--owners-not-found-behavior` not used ([#15931](https://github.com/pantsbuild/pants/pull/15931)) + +* Dedupe `load_bytes_with` calls to a remote Store (Cherry-pick of #15901) ([#15915](https://github.com/pantsbuild/pants/pull/15915)) + +### Documentation + +* Update Python documentation with 2.11 changes (Cherry-pick of #15857) ([#15981](https://github.com/pantsbuild/pants/pull/15981)) + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15974](https://github.com/pantsbuild/pants/pull/15974)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15971](https://github.com/pantsbuild/pants/pull/15971)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments (Cherry-pick of #15932) ([#15937](https://github.com/pantsbuild/pants/pull/15937)) + +## 2.13.0a0 (Jun 17, 2022) + +### New Features + +* Add option for max wait before terminating interactive process ([#15767](https://github.com/pantsbuild/pants/pull/15767)) + +### User API Changes + +* Add `[scala-infer].force_add_siblings_as_dependencies` and deprecate it defaulting to true ([#15841](https://github.com/pantsbuild/pants/pull/15841)) + +* Add `--debug-adapter` flag to `test` goal ([#15799](https://github.com/pantsbuild/pants/pull/15799)) + +### Plugin API Changes + +* Add `skip_invalid_addresses` field to `UnparsedAddressInputs` ([#15864](https://github.com/pantsbuild/pants/pull/15864)) + +* Add `MaybeAddress` for infallible evaluation of `AddressInput` ([#15863](https://github.com/pantsbuild/pants/pull/15863)) + +* Add optional `StringSequenceField.valid_choices` ([#15684](https://github.com/pantsbuild/pants/pull/15684)) + +* `WrappedTarget` now requires `WrappedTargetRequest` ([#15789](https://github.com/pantsbuild/pants/pull/15789)) + +* Move `ResolveError` from `pants.base.exceptions` to `pants.build_graph.address` ([#15790](https://github.com/pantsbuild/pants/pull/15790)) + +* `_TargetParametrizations` now requires `_TargetParametrizationsRequest` ([#15759](https://github.com/pantsbuild/pants/pull/15759)) + +* `BuildFileAddress` now requires `BuildFileAddressRequest` ([#15760](https://github.com/pantsbuild/pants/pull/15760)) + +### Bug fixes + +* Support `--help` for builtin goals. ([#15798](https://github.com/pantsbuild/pants/pull/15798)) + +* Handle venv path special chars in coursier fetch ([#15701](https://github.com/pantsbuild/pants/pull/15701)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field ([#15787](https://github.com/pantsbuild/pants/pull/15787)) + +### Performance + +* Backtrack execution for missing digests to make `eager_fetch=false` more resilient ([#15850](https://github.com/pantsbuild/pants/pull/15850)) + +* Remove synchronous remote cache lookup from remote execution ([#15854](https://github.com/pantsbuild/pants/pull/15854)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15842](https://github.com/pantsbuild/pants/pull/15842)) + +* Update docs for redesign of CLI arguments ([#15816](https://github.com/pantsbuild/pants/pull/15816)) + +* Better error message when an address does not exist ([#15788](https://github.com/pantsbuild/pants/pull/15788)) + +## 2.13.0.dev5 (Jun 08, 2022) + +### New Features + +* Add GraphQL API server backend for the experimental-explorer goal ([#15697](https://github.com/pantsbuild/pants/pull/15697)) + +* Add `extra_env_vars` field to `experimental_shell_command` target. ([#15742](https://github.com/pantsbuild/pants/pull/15742)) + +* Add `experimental-explorer` builtin goal. ([#15695](https://github.com/pantsbuild/pants/pull/15695)) + +### User API Changes + +* Always ignore paths which are not files, directories, or links. ([#15773](https://github.com/pantsbuild/pants/pull/15773)) + +* Add API types and rules to cli help info ([#14227](https://github.com/pantsbuild/pants/pull/14227)) + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. ([#15745](https://github.com/pantsbuild/pants/pull/15745)) + +* Revert "Go can use both `file` and `resource` targets (#15663)" ([#15725](https://github.com/pantsbuild/pants/pull/15725)) + +* Deprecate `--exclude-target-regexp` in favor of `--filter-address-regex` ([#15729](https://github.com/pantsbuild/pants/pull/15729)) + +### Plugin API Changes + +* Require setting `description_of_origin` with `AddressInput` and `UnparsedAddressInputs` ([#15743](https://github.com/pantsbuild/pants/pull/15743)) + +* Require keyword arguments for `AddressInput` ([#15741](https://github.com/pantsbuild/pants/pull/15741)) + +### Bug fixes + +* `tailor` should skip bad requirements targets ([#15755](https://github.com/pantsbuild/pants/pull/15755)) + +* `tailor` for Go does not add targets when no ancestor `go.mod` ([#15750](https://github.com/pantsbuild/pants/pull/15750)) + +* Record metrics for remote cache store errors ([#15744](https://github.com/pantsbuild/pants/pull/15744)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` ([#15733](https://github.com/pantsbuild/pants/pull/15733)) + +* Fix `--changed-since` with directories unknown to Pants ([#15714](https://github.com/pantsbuild/pants/pull/15714)) + +### Documentation + +* Improve error messages for invalid addresses ([#15751](https://github.com/pantsbuild/pants/pull/15751)) + +* Correctly describe the origin of invalid specs, e.g. `--paths-from` ([#15730](https://github.com/pantsbuild/pants/pull/15730)) + +## 2.13.0.dev4 (May 31, 2022) + +### New Features + +* Support running pex_binary targets directly on the in-repo sources. ([#15689](https://github.com/pantsbuild/pants/pull/15689)) + +* Go can use both `file` and `resource` targets ([#15663](https://github.com/pantsbuild/pants/pull/15663)) + +* Add ignore command line arguments, e.g. `-dir::` ([#15619](https://github.com/pantsbuild/pants/pull/15619)) + +* Allow to skip linting on Helm charts ([#15640](https://github.com/pantsbuild/pants/pull/15640)) + +* Helm charts support CRDS by default ([#15623](https://github.com/pantsbuild/pants/pull/15623)) + +* Adds dependency injection rule for protobuf-java runtime ([#15006](https://github.com/pantsbuild/pants/pull/15006)) + +### User API Changes + +* Make the global --no-process-cleanup conserve the `run` tmpdir. ([#15683](https://github.com/pantsbuild/pants/pull/15683)) + +* Upgrade Pex to 2.1.90. ([#15656](https://github.com/pantsbuild/pants/pull/15656)) + +* Remove `-d` as shorthand for `--logdir` ([#15621](https://github.com/pantsbuild/pants/pull/15621)) + +### Plugin API Changes + +* `PutativeTargetsRequest.path_globs()` can take multiple globs ([#15634](https://github.com/pantsbuild/pants/pull/15634)) + +* [Plugin API change] Remove default help message from MultipleSourcesField ([#15633](https://github.com/pantsbuild/pants/pull/15633)) + +* Don't allow multiple flag names for the same option ([#15627](https://github.com/pantsbuild/pants/pull/15627)) + +* Remove `PutativeTargetsSearchPaths` ([#15625](https://github.com/pantsbuild/pants/pull/15625)) + +* Refactor `Specs` as prework for ignore Specs ([#15620](https://github.com/pantsbuild/pants/pull/15620)) + +* Ban using short option names like `-x`, except for pre-blessed values ([#15624](https://github.com/pantsbuild/pants/pull/15624)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used ([#15706](https://github.com/pantsbuild/pants/pull/15706)) + +* `python_requirements()` can handle `-r reqs.txt` ([#15672](https://github.com/pantsbuild/pants/pull/15672)) + +* Increase RuleGraph solver loop threshold to allow for larger `@rule` sets ([#15668](https://github.com/pantsbuild/pants/pull/15668)) + +* Fix `--help` output when specs given. ([#15665](https://github.com/pantsbuild/pants/pull/15665)) + +* `update-build-files` falls back to interpreter constraints from tool lockfile for Black and Yapf ([#15666](https://github.com/pantsbuild/pants/pull/15666)) + +* Fix detection of `--help` when specs given ([#15664](https://github.com/pantsbuild/pants/pull/15664)) + +* Choose correct Scala dialect according to scala-version ([#15649](https://github.com/pantsbuild/pants/pull/15649)) + +* Fix deleted files with `--changed-since` when using target-less goals like `count-loc` ([#15662](https://github.com/pantsbuild/pants/pull/15662)) + +* Prevent collisions between attempts to materialize an immutable input digest. ([#15652](https://github.com/pantsbuild/pants/pull/15652)) + +* Fix another case of direct Coursier lockfile consumption ([#15650](https://github.com/pantsbuild/pants/pull/15650)) + +### Documentation + +* Mention language specific opt outs for `tailor` ([#15673](https://github.com/pantsbuild/pants/pull/15673)) + +* Provide more "Did you mean ..." suggestions for the CLI help. ([#15646](https://github.com/pantsbuild/pants/pull/15646)) + +* [docs] Add language specific file examples for sources help message of a target ([#15635](https://github.com/pantsbuild/pants/pull/15635)) + +* Docs: show language specific file examples in sources field in the help of targets ([#15595](https://github.com/pantsbuild/pants/pull/15595)) + +## 2.13.0.dev3 (May 23, 2022) + +### New Features + +* `dir:` and `dir::` work on target-less goals like `count-loc` ([#15577](https://github.com/pantsbuild/pants/pull/15577)) + +* `--changed-since` works on target-less goals like `count-loc` ([#14434](https://github.com/pantsbuild/pants/pull/14434)) + +* Add `--no-use-deprecated-directory-cli-args-semantics` so that directory arguments match all files/targets in the directory ([#15589](https://github.com/pantsbuild/pants/pull/15589)) + +* `filter` options work with any goal now, not only the `filter` goal ([#15599](https://github.com/pantsbuild/pants/pull/15599)) + +* Use new, consistent CLI args semantics for `tailor` if `use_deprecated_cli_args_semantics = false` ([#15612](https://github.com/pantsbuild/pants/pull/15612)) + +* Support JVM options per tool ([#15505](https://github.com/pantsbuild/pants/pull/15505)) + +* Allow turning off `export` of Python tools like `black` ([#15509](https://github.com/pantsbuild/pants/pull/15509)) + +* Adding file downloading support to asset targets ([#15457](https://github.com/pantsbuild/pants/pull/15457)) + +### User API Changes + +* Deprecate `filter` goal now that `filter` options can be used from any goal ([#15600](https://github.com/pantsbuild/pants/pull/15600)) + +* Tailor `__main__.py` files as pex binaries ([#15598](https://github.com/pantsbuild/pants/pull/15598)) + +* `update-build-files` now takes CLI args for which BUILD files to change ([#15581](https://github.com/pantsbuild/pants/pull/15581)) + +* Don't error when `dir:` and `dir::` have no targets, as long as the directories exist ([#15570](https://github.com/pantsbuild/pants/pull/15570)) + +* Deprecate `--owners-not-found-behavior` and set default to `ignore` ([#15560](https://github.com/pantsbuild/pants/pull/15560)) + +* Add `--unmatched-cli-globs`, which before was controlled by `--owners-not-found-behavior` ([#15556](https://github.com/pantsbuild/pants/pull/15556)) + +* Deprecate `files_not_found_behavior` in favor of `unmatched_build_file_globs` ([#15555](https://github.com/pantsbuild/pants/pull/15555)) + +* Remove undocumented CLI file arguments ignore syntax ([#15534](https://github.com/pantsbuild/pants/pull/15534)) + +* `go_third_party_package` targets now depend on their `go.mod` and `go.sum` ([#15521](https://github.com/pantsbuild/pants/pull/15521)) + +* `--changed-dependees` no longer runs on sibling targets from same target generator ([#15396](https://github.com/pantsbuild/pants/pull/15396)) + +* Change `_generator_sources_helper` to use `source: str` rather than `sources: list[str]` ([#15475](https://github.com/pantsbuild/pants/pull/15475)) + +* Upgrade Pex to 2.1.88. ([#15484](https://github.com/pantsbuild/pants/pull/15484)) + +* Revert "Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (#15469)" ([#15492](https://github.com/pantsbuild/pants/pull/15492)) + +### Plugin API Changes + +* Replace `SpecsSnapshot` with lazier `SpecsPaths` ([#15593](https://github.com/pantsbuild/pants/pull/15593)) + +* Rename classes in `specs.py` for unification of specs semantics ([#15538](https://github.com/pantsbuild/pants/pull/15538)) + +* Remove `addressable=` kwarg from `tailor` ([#15504](https://github.com/pantsbuild/pants/pull/15504)) + +* Remove `AbstractTestGenerator` from `pantsbuild.pants.testutil` ([#15464](https://github.com/pantsbuild/pants/pull/15464)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries ([#15571](https://github.com/pantsbuild/pants/pull/15571)) + +* Record Scala `package object` as provided name ([#15582](https://github.com/pantsbuild/pants/pull/15582)) + +* Fix deprecation message for `--filter-target-type` with deprecated target alias ([#15596](https://github.com/pantsbuild/pants/pull/15596)) + +* Fix scala inference doesn't infer name after function call ([#15565](https://github.com/pantsbuild/pants/pull/15565)) + +* Fix JVM resource classification and artifact grouping ([#15567](https://github.com/pantsbuild/pants/pull/15567)) + +* Apply `--tag` filtering to target-less goals like `count-loc` ([#15479](https://github.com/pantsbuild/pants/pull/15479)) + +* Fix `tag` filtering with `--changed-dependees` ([#15546](https://github.com/pantsbuild/pants/pull/15546)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` ([#15542](https://github.com/pantsbuild/pants/pull/15542)) + +* Support transitive file dependencies in Scalatest/JUnit ([#15501](https://github.com/pantsbuild/pants/pull/15501)) + +* Improve `name=` used for Python requirement target generators with `tailor` ([#15507](https://github.com/pantsbuild/pants/pull/15507)) + +* don't generate default tool lockfiles ([#15488](https://github.com/pantsbuild/pants/pull/15488)) + +* Don't give a subsequent formatter an empty snapshot after skipping ([#15483](https://github.com/pantsbuild/pants/pull/15483)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations ([#15494](https://github.com/pantsbuild/pants/pull/15494)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified ([#15579](https://github.com/pantsbuild/pants/pull/15579)) + +* `regex-lint` only reads files that will be checked ([#15580](https://github.com/pantsbuild/pants/pull/15580)) + +### Documentation + +* Freshen up deprecated option formatting ([#15590](https://github.com/pantsbuild/pants/pull/15590)) + +* Make required fields sort first on the docsite and in the './pants help target' output ([#15587](https://github.com/pantsbuild/pants/pull/15587)) + +* Add a few default_help_reprs ([#15588](https://github.com/pantsbuild/pants/pull/15588)) + +* Suggest a UUID when erroring about missing UUID ([#15550](https://github.com/pantsbuild/pants/pull/15550)) + +* Tweak docs to include `no-infer-dep` in a few more places ([#15547](https://github.com/pantsbuild/pants/pull/15547)) + +## 2.13.0.dev2 (May 14, 2022) + +### New Features + +* Adds JDK autoconfiguration support to scala BSP metadata setup ([#15408](https://github.com/pantsbuild/pants/pull/15408)) + +* Add `lint --skip-formatters` option ([#15427](https://github.com/pantsbuild/pants/pull/15427)) + +* Support for sharding tests. ([#15417](https://github.com/pantsbuild/pants/pull/15417)) + +* Add clang-format support for the experimental c/cpp plugin ([#15395](https://github.com/pantsbuild/pants/pull/15395)) + +* Support setting env vars in individual distribution builds. ([#15422](https://github.com/pantsbuild/pants/pull/15422)) + +* kotlin: add support for junit tests ([#15382](https://github.com/pantsbuild/pants/pull/15382)) + +### User API Changes + +* Upgrade Pex to 2.1.87. ([#15472](https://github.com/pantsbuild/pants/pull/15472)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#15469](https://github.com/pantsbuild/pants/pull/15469)) + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) ([#15424](https://github.com/pantsbuild/pants/pull/15424)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' ([#15373](https://github.com/pantsbuild/pants/pull/15373)) + +* Add `[python-infer].init_files` as more intuitive replacement for `[python-infer].inits` ([#15397](https://github.com/pantsbuild/pants/pull/15397)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` ([#15423](https://github.com/pantsbuild/pants/pull/15423)) + +### Bug fixes + +* Only infer an __init__.py dep on a python_sources-generated target. ([#15471](https://github.com/pantsbuild/pants/pull/15471)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional ([#15459](https://github.com/pantsbuild/pants/pull/15459)) + +* support relative address syntax for JVM compiler plugin artifacts ([#15462](https://github.com/pantsbuild/pants/pull/15462)) + +* Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend ([#15453](https://github.com/pantsbuild/pants/pull/15453)) + +* Fix boolean logic when merging interpreter constraints. ([#15414](https://github.com/pantsbuild/pants/pull/15414)) + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` ([#15394](https://github.com/pantsbuild/pants/pull/15394)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. ([#15401](https://github.com/pantsbuild/pants/pull/15401)) + +* Fix `[]` in file names with target generators ([#15383](https://github.com/pantsbuild/pants/pull/15383)) + +* BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. ([#15392](https://github.com/pantsbuild/pants/pull/15392)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves ([#15416](https://github.com/pantsbuild/pants/pull/15416)) + +## 2.13.0.dev1 (May 10, 2022) + +### New Features + +* Initial support for building dists using mypyc. ([#15380](https://github.com/pantsbuild/pants/pull/15380)) + +* Support dependency inference on vcs_version targets. ([#15385](https://github.com/pantsbuild/pants/pull/15385)) + +* Support for getting a version string from git. ([#15374](https://github.com/pantsbuild/pants/pull/15374)) + +* Add `tailor` for `poetry_requirements` and `pipenv_requirements` ([#15352](https://github.com/pantsbuild/pants/pull/15352)) + +### User API Changes + +* Add default mapping for pygithub ([#15361](https://github.com/pantsbuild/pants/pull/15361)) + +### Bug fixes + +* Generalize Docker dep inference for all packageables. ([#15375](https://github.com/pantsbuild/pants/pull/15375)) + +* Fix `tailor` detection of existing `python_requirements` targets ([#15363](https://github.com/pantsbuild/pants/pull/15363)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. ([#15362](https://github.com/pantsbuild/pants/pull/15362)) + +* Use abspath to sandbox in PATH for docker tool shims. ([#15341](https://github.com/pantsbuild/pants/pull/15341)) + +### Documentation + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` ([#15334](https://github.com/pantsbuild/pants/pull/15334)) + +* Disallow `!` patterns in `build_ignore`. ([#15366](https://github.com/pantsbuild/pants/pull/15366)) + +## 2.13.0.dev0 (May 05, 2022) + +### New Features + +* BSP compile exposes loose classfiles to allow IntelliJ to invoke tests ([#15347](https://github.com/pantsbuild/pants/pull/15347)) + +* Add options to turn off `tailor` on a per-language basis ([#15335](https://github.com/pantsbuild/pants/pull/15335)) + +### User API Changes + +* Upgrade hadolint to 2.10.0 and add linux arm64 support ([#15317](https://github.com/pantsbuild/pants/pull/15317)) + +* Remove `[test].xml_dir`, `[update-build-files].fix_python_macros`, and `[java-infer].third_party_imports` ([#15311](https://github.com/pantsbuild/pants/pull/15311)) + +* Deprecate `[golang].expected_version` in favor of more flexible `[golang].minimum_expected_version` ([#15306](https://github.com/pantsbuild/pants/pull/15306)) + +### Plugin API Changes + +* Add `update_env` to `process_execution::local`. ([#15340](https://github.com/pantsbuild/pants/pull/15340)) + +### Bug fixes + +* Fix error output of `parametrize()` ([#15339](https://github.com/pantsbuild/pants/pull/15339)) + +* Don't strip source roots when building dists with an existing setup.py ([#15303](https://github.com/pantsbuild/pants/pull/15303)) + +* Fix a bug in the python venv export logic. ([#15294](https://github.com/pantsbuild/pants/pull/15294)) + +* Fix non-determinism of `package_data` in generated `setup.py` files ([#15292](https://github.com/pantsbuild/pants/pull/15292)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal ([#15304](https://github.com/pantsbuild/pants/pull/15304)) + +### Documentation + +* Improve error message for resolves x interpreter constraints issues ([#15314](https://github.com/pantsbuild/pants/pull/15314)) diff --git a/versioned_docs/version-2.19/notes/2.14.x.md b/versioned_docs/version-2.19/notes/2.14.x.md new file mode 100644 index 000000000..7673b6b66 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.14.x.md @@ -0,0 +1,695 @@ +# 2.14.x Release Series + +## 2.14.2 (May 14, 2023) + +The third stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.2rc2 (Apr 23, 2023) + +### Bug Fixes + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18674](https://github.com/pantsbuild/pants/pull/18674)) + +### Documentation + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18797](https://github.com/pantsbuild/pants/pull/18797)) + +## 2.14.2rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18642](https://github.com/pantsbuild/pants/pull/18642)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18635](https://github.com/pantsbuild/pants/pull/18635)) + +## 2.14.2rc0 (Mar 24, 2023) + +### Bug fixes + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18538](https://github.com/pantsbuild/pants/pull/18538)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18060](https://github.com/pantsbuild/pants/pull/18060)) + +## 2.14.1 (Jan 16, 2023) + +The second stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.1rc0 (Dec 30, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17867](https://github.com/pantsbuild/pants/pull/17867)) + +* Fix twine env vars propagation for publish goal (Cherry-pick of #17650) ([#17658](https://github.com/pantsbuild/pants/pull/17658)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17583](https://github.com/pantsbuild/pants/pull/17583)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17547](https://github.com/pantsbuild/pants/pull/17547)) + +* Fix an unactionable `InteractiveProcessRequest` deprecation ([#17546](https://github.com/pantsbuild/pants/pull/17546)) + +* Fix dep inference from shuint2_tests targets. (Cherry-pick of #17417) ([#17421](https://github.com/pantsbuild/pants/pull/17421)) + +* Fix dirtying of uncacheable nodes (Cherry-pick of #17079) ([#17396](https://github.com/pantsbuild/pants/pull/17396)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17609](https://github.com/pantsbuild/pants/pull/17609)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17569](https://github.com/pantsbuild/pants/pull/17569)) + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17529](https://github.com/pantsbuild/pants/pull/17529)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17498](https://github.com/pantsbuild/pants/pull/17498)) + +* Fix typo in docs: debug-adaptor should be debug-adapter (Cherry-pick of #17452) ([#17453](https://github.com/pantsbuild/pants/pull/17453)) + +* Update nuke_if_too_big documentation (Cherry-pick of #17429) ([#17430](https://github.com/pantsbuild/pants/pull/17430)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17424](https://github.com/pantsbuild/pants/pull/17424)) + +* Add 2.14 blog post link to changelog page. (Cherry-pick of #17381) ([#17384](https://github.com/pantsbuild/pants/pull/17384)) + +* Document the existence of the init-pants action. (Cherry-pick of #17378) ([#17380](https://github.com/pantsbuild/pants/pull/17380)) + +* Fix linebreak issues in the targets docs page. (Cherry-pick of #17364) ([#17366](https://github.com/pantsbuild/pants/pull/17366)) + +## 2.14.0 (Oct 26, 2022) + +The first stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.0rc5 (Oct 21, 2022) + +### Bug fixes + +* Retry the streaming portion of downloads, as well as the setup. (Cherry-pick of #17298) ([#17302](https://github.com/pantsbuild/pants/pull/17302)) + +* Fix incomplete cherry-pick of #17177. ([#17312](https://github.com/pantsbuild/pants/pull/17312)) + +### Documentation + +* Fix a nit in the Getting Help docs. (Cherry-pick of #17295) ([#17296](https://github.com/pantsbuild/pants/pull/17296)) + +## 2.14.0rc4 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17275](https://github.com/pantsbuild/pants/pull/17275)) + +* Fix macros depending on macros from other files (Cherry-pick of #17183) ([#17245](https://github.com/pantsbuild/pants/pull/17245)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17244](https://github.com/pantsbuild/pants/pull/17244)) + +### Performance + +* Set PEX_ROOT for export post-processing command. (cherry-pick of #17177) ([#17200](https://github.com/pantsbuild/pants/pull/17200)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17241](https://github.com/pantsbuild/pants/pull/17241)) + +## 2.14.0rc3 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17120](https://github.com/pantsbuild/pants/pull/17120)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17113](https://github.com/pantsbuild/pants/pull/17113)) + +### Bug fixes + +* Exit normally from K8S parser with unsupported manifests (Cherry-pick of #17037) ([#17143](https://github.com/pantsbuild/pants/pull/17143)) + +* Fix dep inference with empty lines in multiline imports. (Cherry-pick of #17284) ([#17285](https://github.com/pantsbuild/pants/pull/17285)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17158](https://github.com/pantsbuild/pants/pull/17158)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17152](https://github.com/pantsbuild/pants/pull/17152)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17150](https://github.com/pantsbuild/pants/pull/17150)) + +* Fix Helm K8S parser help message (Cherry-pick of #17091) ([#17145](https://github.com/pantsbuild/pants/pull/17145)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17148](https://github.com/pantsbuild/pants/pull/17148)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17111](https://github.com/pantsbuild/pants/pull/17111)) + +* Update `pytest-xdist` docs. (Cherry-pick of #17071) ([#17072](https://github.com/pantsbuild/pants/pull/17072)) + +## 2.14.0rc2 (Sep 29, 2022) + +### User API Changes + +* Restore the deprecated `filter` goal indefinitely (Cherry-pick of #17027) ([#17052](https://github.com/pantsbuild/pants/pull/17052)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17053](https://github.com/pantsbuild/pants/pull/17053)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17033](https://github.com/pantsbuild/pants/pull/17033)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17021](https://github.com/pantsbuild/pants/pull/17021)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17010](https://github.com/pantsbuild/pants/pull/17010)) + +* Add `parametrize()` support for `__defaults__`. (Cherry-pick of #16977) ([#17008](https://github.com/pantsbuild/pants/pull/17008)) + +* go: prepend $GOROOT/bin to PATH for tests (Cherry pick of #16993) ([#16997](https://github.com/pantsbuild/pants/pull/16997)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16973](https://github.com/pantsbuild/pants/pull/16973)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16939](https://github.com/pantsbuild/pants/pull/16939)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16935](https://github.com/pantsbuild/pants/pull/16935)) + +* remove override of register_plugin_field (Cherry pick of #16919) ([#16923](https://github.com/pantsbuild/pants/pull/16923)) + +* Only request source roots for PEP-517 deps that belong on the syspath (cherrypick of #16903) ([#16917](https://github.com/pantsbuild/pants/pull/16917)) + +### Performance + +* Add an optional speculation delay when using a remote cache (Cherry-pick of #16922) ([#16956](https://github.com/pantsbuild/pants/pull/16956)) + +### Documentation + +* Improve remote cache logging for hit or miss (Cherry-pick of #16975) ([#16986](https://github.com/pantsbuild/pants/pull/16986)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16982](https://github.com/pantsbuild/pants/pull/16982)) + +* Update changelog on docsite with 2.13, 2.14 links (Cherry-pick of #16918) ([#16958](https://github.com/pantsbuild/pants/pull/16958)) + +## 2.14.0rc1 (Sep 16, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16879](https://github.com/pantsbuild/pants/pull/16879)) + +### Bug fixes + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code (Cherry-pick of #16896) ([#16904](https://github.com/pantsbuild/pants/pull/16904)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16880](https://github.com/pantsbuild/pants/pull/16880)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets (Cherry pick of #16386) ([#16799](https://github.com/pantsbuild/pants/pull/16799)) + +### Documentation + +* Don't mention a specific version in the manual install instructions (cherrypick of #16888) ([#16889](https://github.com/pantsbuild/pants/pull/16889)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16814](https://github.com/pantsbuild/pants/pull/16814)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16811](https://github.com/pantsbuild/pants/pull/16811)) + +## 2.14.0rc0 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when `--no-colors` (Cherry-pick of #16586) ([#16808](https://github.com/pantsbuild/pants/pull/16808)) + +## 2.14.0a1 (Sep 04, 2022) + +### New Features + +* Add suport for string interpolation in Helm deployments (Cherry-pick of #16611) ([#16723](https://github.com/pantsbuild/pants/pull/16723)) + +* Support Docker custom tags via plugin hook (Cherry-pick of #16662) ([#16719](https://github.com/pantsbuild/pants/pull/16719)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support (Cherry-pick of #16584) ([#16625](https://github.com/pantsbuild/pants/pull/16625)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds (Cherry-pick of #16709) ([#16725](https://github.com/pantsbuild/pants/pull/16725)) + +* Resolve properly provided symbol names for types defined at top level package (Cherry-pick of #16690) ([#16718](https://github.com/pantsbuild/pants/pull/16718)) + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16700](https://github.com/pantsbuild/pants/pull/16700)) + +* Wire BUILD file formatters in `lint` (Cherry-pick of #16666) ([#16694](https://github.com/pantsbuild/pants/pull/16694)) + +* Include type bound constraints in consumed symbols during Scala inference (Cherry-pick of #16692) ([#16698](https://github.com/pantsbuild/pants/pull/16698)) + +* Make `FilespecMatcher` case-sensitive (Cherry-pick of #16673) ([#16677](https://github.com/pantsbuild/pants/pull/16677)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16659](https://github.com/pantsbuild/pants/pull/16659)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. (Cherry-pick of #16627) ([#16701](https://github.com/pantsbuild/pants/pull/16701)) + +* Optimize `CreateDigest` implementation. (Cherry-pick of #16617) ([#16648](https://github.com/pantsbuild/pants/pull/16648)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier (Cherry-pick of #16706) ([#16742](https://github.com/pantsbuild/pants/pull/16742)) + +* Welcome community members to consider joining team (Cherry-pick of #16681) ([#16745](https://github.com/pantsbuild/pants/pull/16745)) + +* Clarify wording for `--skip` options (Cherry-pick of #16622) ([#16702](https://github.com/pantsbuild/pants/pull/16702)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16653](https://github.com/pantsbuild/pants/pull/16653)) + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16624](https://github.com/pantsbuild/pants/pull/16624)) + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16730](https://github.com/pantsbuild/pants/pull/16730)) + +## 2.14.0a0 (Aug 23, 2022) + +### New Features + +* Add Plugin hook for adding custom additional Docker image tags. ([#16077](https://github.com/pantsbuild/pants/pull/16077)) + +* Add new fmt plugins for build file formatting ([#16560](https://github.com/pantsbuild/pants/pull/16560)) + +* Add buildifier as a BUILD file formatter ([#16573](https://github.com/pantsbuild/pants/pull/16573)) + +* go: add support for test coverage ([#16550](https://github.com/pantsbuild/pants/pull/16550)) + +* Disable 80 col hard wrapping in mypy output ([#16488](https://github.com/pantsbuild/pants/pull/16488)) + +* Allow for automatic use of `pytest-xdist` ([#16499](https://github.com/pantsbuild/pants/pull/16499)) + +* Add `[pyoxidizer].lockfile` ([#16537](https://github.com/pantsbuild/pants/pull/16537)) + +* Add `[flake8].extra_files` to allow configuring plugins like Bandit ([#16470](https://github.com/pantsbuild/pants/pull/16470)) + +* Support 3rd party Helm artifacts in Helm deployments ([#16478](https://github.com/pantsbuild/pants/pull/16478)) + +### User API Changes + +* Mark `[python].requirement_constraints` as deprecated (but not planned for removal) ([#16606](https://github.com/pantsbuild/pants/pull/16606)) + +* Add `[python-repos].find_links` as preferred alias for `[python-repos].repos` ([#16582](https://github.com/pantsbuild/pants/pull/16582)) + +* Fix that running on a BUILD file expands to all of its targets ([#16546](https://github.com/pantsbuild/pants/pull/16546)) + +* Deprecate `[python].only_binary` and `[python].no_binary` in favor of more powerful `[python].resolves_to_only_binary` and `[python].resolves_to_no_binary` ([#16513](https://github.com/pantsbuild/pants/pull/16513)) + +### Plugin API Changes + +* Rename `FmtRequest` to `FmtTargetsRequest` (plus some `fix` refactoring) ([#16535](https://github.com/pantsbuild/pants/pull/16535)) + +### Bug fixes + +* Auto-detect Helm chart source roots ([#16531](https://github.com/pantsbuild/pants/pull/16531)) + +* Have `run` run `__main__.py` for non-zipapp PEXs ([#16568](https://github.com/pantsbuild/pants/pull/16568)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. ([#16545](https://github.com/pantsbuild/pants/pull/16545)) + +* Prevent running N^2 publish processes during deploy goal ([#16516](https://github.com/pantsbuild/pants/pull/16516)) + +* Track Python indexes, find-links, and manylinux in lockfile headers ([#16525](https://github.com/pantsbuild/pants/pull/16525)) + +### Performance + +* Fix performance for generating lockfiles for `pytest` and `setuptools` ([#16591](https://github.com/pantsbuild/pants/pull/16591)) + +* Improve performance of `Owners` rule ([#16563](https://github.com/pantsbuild/pants/pull/16563)) + +### Documentation + +* More succint phrasing and better formatting for cli help. ([#16549](https://github.com/pantsbuild/pants/pull/16549)) + +* Document `[python].resolves_to_constraints_file` and `[python].resolves_to_no_binary` ([#16548](https://github.com/pantsbuild/pants/pull/16548)) + +* Fix broken link to community page ([#16468](https://github.com/pantsbuild/pants/pull/16468)) + +## 2.14.0.dev6 (Aug 13, 2022) + +### New Features + +* Support adding to dict-valued options in config files. ([#16481](https://github.com/pantsbuild/pants/pull/16481)) + +* Add `[mypy].extra_type_stubs_lockfile` ([#16461](https://github.com/pantsbuild/pants/pull/16461)) + +* Proposal for a Helm Deployment goal implementation ([#15882](https://github.com/pantsbuild/pants/pull/15882)) + +* Add support for using environment variables in JVM tests ([#16455](https://github.com/pantsbuild/pants/pull/16455)) + +* Add `[python].resolves_to_constraints_file` ([#16420](https://github.com/pantsbuild/pants/pull/16420)) + +### Plugin API Changes + +* `GenerateToolLockfileSentinel` encouraged to use language-specific subclasses ([#16449](https://github.com/pantsbuild/pants/pull/16449)) + +* Allow backend packages to also register remote auth plugins ([#16444](https://github.com/pantsbuild/pants/pull/16444)) + +### Bug fixes + +* Fix `--process-cleanup` deprecation. ([#16447](https://github.com/pantsbuild/pants/pull/16447)) + +* Fix `CacheContentBehavior::Defer` with a remote cache ([#16439](https://github.com/pantsbuild/pants/pull/16439)) + +### Documentation + +* Update docs on how to run Pants in CI. ([#16503](https://github.com/pantsbuild/pants/pull/16503)) + +* Fix partition description for MyPy when multiple resolves ([#16486](https://github.com/pantsbuild/pants/pull/16486)) + +* Add IBM to user list. ([#16457](https://github.com/pantsbuild/pants/pull/16457)) + +## 2.14.0.dev5 (Aug 07, 2022) + +### New Features + +* Add `[pytest].config` to set custom config file paths ([#16423](https://github.com/pantsbuild/pants/pull/16423)) + +* java/protobuf: add support for grpc-java codegen ([#16350](https://github.com/pantsbuild/pants/pull/16350)) + +### User API Changes + +* Upgrade Pex to 2.1.103. ([#16313](https://github.com/pantsbuild/pants/pull/16426)) +* +* Deprecate `[python].lockfile_generator` ([#16418](https://github.com/pantsbuild/pants/pull/16418)) + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` ([#16415](https://github.com/pantsbuild/pants/pull/16415)) + +* Add a few popular python packages to default modules mapping ([#16330](https://github.com/pantsbuild/pants/pull/16330)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#16305](https://github.com/pantsbuild/pants/pull/16305)) + +* Upgrade Pex to 2.1.102. ([#16313](https://github.com/pantsbuild/pants/pull/16313)) + +* Enable `[python-infer].unowned_dependency_behavior="warning"` by default. ([#16281](https://github.com/pantsbuild/pants/pull/16281)) + +* Upgrade Pex to 2.1.101. ([#16297](https://github.com/pantsbuild/pants/pull/16297)) + +### Plugin API Changes + +* Add entry point support for remote auth plugin ([#16212](https://github.com/pantsbuild/pants/pull/16212)) + +* Provide foundations for a deploy goal ([#16335](https://github.com/pantsbuild/pants/pull/16335)) + +### Bug fixes + +* Fix docker invalidation bug. ([#16419](https://github.com/pantsbuild/pants/pull/16419)) + +* Add missing `help` message to experimental backends ([#16403](https://github.com/pantsbuild/pants/pull/16403)) + +* Set immutable_input_digests on a docker RunRequest. ([#16385](https://github.com/pantsbuild/pants/pull/16385)) + +* go: pass -p option to `go tool asm` on Go v1.19+ ([#16381](https://github.com/pantsbuild/pants/pull/16381)) + +* jvm: fix fetching artifacts with non-jar packaging ([#16358](https://github.com/pantsbuild/pants/pull/16358)) + +* [internal] Add missing timeout field to target generators ([#16314](https://github.com/pantsbuild/pants/pull/16314)) + +* Include Helm chart dependency inference rules ([#16368](https://github.com/pantsbuild/pants/pull/16368)) + +* [internal] Use `f_globals` instead of `inspect.getmodule` in `collect_rules` ([#16357](https://github.com/pantsbuild/pants/pull/16357)) + +* Silence mkdir, cp, and mv commands with MyPy caching ([#16340](https://github.com/pantsbuild/pants/pull/16340)) + +* fix kotlin tailor for junit tests ([#16333](https://github.com/pantsbuild/pants/pull/16333)) + +* Leverage a multiprocess-safe strategy for MyPy's cache ([#16290](https://github.com/pantsbuild/pants/pull/16290)) + +* Eagerly error for symlink loops ([#16319](https://github.com/pantsbuild/pants/pull/16319)) + +* Add a newline at the end of `paths` output ([#16302](https://github.com/pantsbuild/pants/pull/16302)) + +* Consume inits part of package object within the inner scope ([#16282](https://github.com/pantsbuild/pants/pull/16282)) + +* Explicitly add directory entries to resources JARs ([#16264](https://github.com/pantsbuild/pants/pull/16264)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches ([#16398](https://github.com/pantsbuild/pants/pull/16398)) + +### Documentation + +* Document how to use Pylint reports ([#16399](https://github.com/pantsbuild/pants/pull/16399)) + +* Fix source roots docs. ([#16363](https://github.com/pantsbuild/pants/pull/16363)) + +* Show advanced options with `help` if there are no basic options ([#16352](https://github.com/pantsbuild/pants/pull/16352)) + +* Improve a docker backend warning. ([#16355](https://github.com/pantsbuild/pants/pull/16355)) + +* Link to dev.to post on resource hub. ([#16331](https://github.com/pantsbuild/pants/pull/16331)) + +* Only show the deprecated option section with `help` if there are deprecated options ([#16339](https://github.com/pantsbuild/pants/pull/16339)) + +* add tailor docs for kotlin backend ([#16332](https://github.com/pantsbuild/pants/pull/16332)) + +* Fix the experimental_run_shell_command example. ([#16286](https://github.com/pantsbuild/pants/pull/16286)) + +* Fix typo in backend name ([#16312](https://github.com/pantsbuild/pants/pull/16312)) + +* docs: add initial Kotlin docs ([#16304](https://github.com/pantsbuild/pants/pull/16304)) + +* Document test sharding and update plugin docs with 2.13 changes ([#16293](https://github.com/pantsbuild/pants/pull/16293)) + +## 2.14.0.dev4 (Aug 05, 2022) + +There was no 2.14.0.dev4 because of technical issues. + +## 2.14.0.dev3 (Jul 22, 2022) + +### New Features + +* add Go ASDF support ([#16246](https://github.com/pantsbuild/pants/pull/16246)) + +* Add `[python].default_run_goal_use_sandbox` ([#16239](https://github.com/pantsbuild/pants/pull/16239)) + +* Add `include_sources` to `pex_binary` target ([#16215](https://github.com/pantsbuild/pants/pull/16215)) + +* allow JVM sources to have files dependencies ([#16203](https://github.com/pantsbuild/pants/pull/16203)) + +* Optionally strip metadata and timestamps from JVM jars ([#16134](https://github.com/pantsbuild/pants/pull/16134)) + +* Support timeouts in Helm unittest targets ([#16181](https://github.com/pantsbuild/pants/pull/16181)) + +* Allow for dependency inference plugins to provide excludes ([#16155](https://github.com/pantsbuild/pants/pull/16155)) + +* Add support for strict and color flags in Helm unittest ([#15947](https://github.com/pantsbuild/pants/pull/15947)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields ([#16227](https://github.com/pantsbuild/pants/pull/16227)) + +* Warn users if they set remote cache and or/execution via config while the values are provided by the auth plugin. ([#16165](https://github.com/pantsbuild/pants/pull/16165)) + +* Upgrade Pex to 2.1.99. ([#16184](https://github.com/pantsbuild/pants/pull/16184)) + +* Upgrade python reqs, upgrade default setuptools to 63.1.0 ([#16168](https://github.com/pantsbuild/pants/pull/16168)) + +* Add test timeouts to JUnit and Scalatest targets. ([#16126](https://github.com/pantsbuild/pants/pull/16126)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s ([#16206](https://github.com/pantsbuild/pants/pull/16206)) + +* Add support for auth plugin setting its name ([#16171](https://github.com/pantsbuild/pants/pull/16171)) + +* Fold dep injection into inference, and use FieldSet ([#16107](https://github.com/pantsbuild/pants/pull/16107)) + +### Bug fixes + +* Allow using `--import` option with Autoflake ([#16192](https://github.com/pantsbuild/pants/pull/16192)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` ([#16263](https://github.com/pantsbuild/pants/pull/16263)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets ([#16249](https://github.com/pantsbuild/pants/pull/16249)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields ([#16232](https://github.com/pantsbuild/pants/pull/16232)) + +* fix scala plugins args order causing cache issues ([#16228](https://github.com/pantsbuild/pants/pull/16228)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types ([#16197](https://github.com/pantsbuild/pants/pull/16197)) + +* Add `overrides` field to Scala targets ([#16204](https://github.com/pantsbuild/pants/pull/16204)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. ([#16198](https://github.com/pantsbuild/pants/pull/16198)) + +* Use filelists to make archive creation tasks more reliable ([#16183](https://github.com/pantsbuild/pants/pull/16183)) + +* Allow macros to raise builtin Errors ([#16174](https://github.com/pantsbuild/pants/pull/16174)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin ([#16176](https://github.com/pantsbuild/pants/pull/16176)) + +* java: add proper inference of Scrooge Java Thrift dependencies ([#16130](https://github.com/pantsbuild/pants/pull/16130)) + +* Fix "dependency" pluralization ([#16150](https://github.com/pantsbuild/pants/pull/16150)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes ([#16141](https://github.com/pantsbuild/pants/pull/16141)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` ([#16093](https://github.com/pantsbuild/pants/pull/16093)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins ([#16106](https://github.com/pantsbuild/pants/pull/16106)) + +### Performance + +* Port `@rule` `Get`s to rust ([#16160](https://github.com/pantsbuild/pants/pull/16160)) + +### Documentation + +* Add Vicara Solutions to the users page. ([#16221](https://github.com/pantsbuild/pants/pull/16221)) + +* Document the "fromfile" feature. ([#16205](https://github.com/pantsbuild/pants/pull/16205)) + +* Document `--filter` options working with any goal ([#16090](https://github.com/pantsbuild/pants/pull/16090)) + +* Updates installation docs to refer to the 1-step setup script ([#16149](https://github.com/pantsbuild/pants/pull/16149)) + +* Add 2.12 changelog to docsite ([#16136](https://github.com/pantsbuild/pants/pull/16136)) + +## 2.14.0.dev2 (Jul 11, 2022) + +### User API Changes + +* Revert "Upgrade Pex to 2.1.95. (#16110)" ([#16125](https://github.com/pantsbuild/pants/pull/16125)) + +* Add a lock for the Poetry tool. ([#16117](https://github.com/pantsbuild/pants/pull/16117)) + +* Upgrade Pex to 2.1.95. ([#16110](https://github.com/pantsbuild/pants/pull/16110)) + +* Fix poetry locks missing hashes. ([#16112](https://github.com/pantsbuild/pants/pull/16112)) + +* java/avro: inject runtime library dependency ([#15904](https://github.com/pantsbuild/pants/pull/15904)) + +### Bug fixes + +* Fix issue with `__defaults__` not propagating over gaps in the tree of BUILD files. ([#16089](https://github.com/pantsbuild/pants/pull/16089)) + +* Write to caches during backtracking ([#16078](https://github.com/pantsbuild/pants/pull/16078)) + +* Record ongoing backtrack attempts ([#16075](https://github.com/pantsbuild/pants/pull/16075)) + +### Documentation + +* New doc explaining vcs_version. ([#16092](https://github.com/pantsbuild/pants/pull/16092)) + +* Fix typo in warning for `[python].resolve_all_constraints` ([#16068](https://github.com/pantsbuild/pants/pull/16068)) + +## 2.14.0.dev1 (Jul 05, 2022) + +### New Features + +* Add support for extra env variables in go tests ([#16013](https://github.com/pantsbuild/pants/pull/16013)) + +* Add ability to `run` any `PythonSourceField` ([#15849](https://github.com/pantsbuild/pants/pull/15849)) + +* Add `--debug-adapter` flag to `run` ([#15829](https://github.com/pantsbuild/pants/pull/15829)) + +### User API Changes + +* Correct deprecation warning for addressing `pex_binary` targets by filename to 2.15 ([#16056](https://github.com/pantsbuild/pants/pull/16056)) + +* Default `scala-infer` `force_add_siblings_as_dependencies` to False. ([#16031](https://github.com/pantsbuild/pants/pull/16031)) + +* Upgrade Pex to 2.1.94. ([#16029](https://github.com/pantsbuild/pants/pull/16029)) + +* Remove `python-infer` `inits` option. ([#16036](https://github.com/pantsbuild/pants/pull/16036)) + +* Remove `golang` `expected_version` option. ([#16033](https://github.com/pantsbuild/pants/pull/16033)) + +* Remove the `filter` goal. ([#16032](https://github.com/pantsbuild/pants/pull/16032)) + +* Default `--use-deprecated-pex-binary-run-semantics` to `False`. ([#16034](https://github.com/pantsbuild/pants/pull/16034)) + +* Default `python` `tailor_pex_binary_targets` to `False`. ([#16035](https://github.com/pantsbuild/pants/pull/16035)) + +* Deprecate not setting `tailor_pex_binary_targets` explictly ([#15962](https://github.com/pantsbuild/pants/pull/15962)) + +* `tailor` and `update-build-files` require specifying CLI arguments ([#15941](https://github.com/pantsbuild/pants/pull/15941)) + +* Upgrade default version of black to 22.6.0 ([#15960](https://github.com/pantsbuild/pants/pull/15960)) + +* Upgrade default version of pyupgrade to 2.34.0 ([#15956](https://github.com/pantsbuild/pants/pull/15956)) + +### Plugin API Changes + +* `fmt` plugins can add new files ([#15846](https://github.com/pantsbuild/pants/pull/15846)) + +* Pants internally uses dedicated Sources and Dependencies fields ([#16037](https://github.com/pantsbuild/pants/pull/16037)) + +### Bug fixes + +* Fix pantsd TTY handling. ([#16038](https://github.com/pantsbuild/pants/pull/16038)) + +* revert REAPI batch API PRs ([#16016](https://github.com/pantsbuild/pants/pull/16016)) + +* Backtrack through calls from `@rules` to synchronous engine methods ([#15979](https://github.com/pantsbuild/pants/pull/15979)) + +### Documentation + +* Fix CI provider table rendering. ([#16051](https://github.com/pantsbuild/pants/pull/16051)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints ([#16000](https://github.com/pantsbuild/pants/pull/16000)) + +* Fix alpha release email template typo. ([#16027](https://github.com/pantsbuild/pants/pull/16027)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. ([#16015](https://github.com/pantsbuild/pants/pull/16015)) + +* Update Python documentation with 2.11 changes ([#15857](https://github.com/pantsbuild/pants/pull/15857)) + +* Update the docs for `fmt` and test report changes ([#15968](https://github.com/pantsbuild/pants/pull/15968)) + +* Use Markdown h3 for ToC support ([#15964](https://github.com/pantsbuild/pants/pull/15964)) + +* Direct people to a quick form before they join Slack. ([#15957](https://github.com/pantsbuild/pants/pull/15957)) + +## 2.14.0.dev0 (Jun 25, 2022) + +### New Features + +* Add repository config option to Docker registries. ([#15884](https://github.com/pantsbuild/pants/pull/15884)) + +* Add `__defaults__` BUILD file symbol ([#15836](https://github.com/pantsbuild/pants/pull/15836)) + +### User API Changes + +* Deprecate `--use-deprecated-directory-cli-args-semantics` and default to false ([#15939](https://github.com/pantsbuild/pants/pull/15939)) + +* Remove deprecated `[golang].expected_version` in favor of `[golang].minimum_expected_version` ([#15942](https://github.com/pantsbuild/pants/pull/15942)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 ([#15934](https://github.com/pantsbuild/pants/pull/15934)) + +* Remove deprecated `--excluded-target-regexp`, `--files-not-found-behavior`, and `--owners-not-found-behavior` global options ([#15929](https://github.com/pantsbuild/pants/pull/15929)) + +* Deprecate implicit setting of `--remote-cache-{read,write,eager-fetch}` with `--remote-execution` ([#15900](https://github.com/pantsbuild/pants/pull/15900)) + +* Upgrade Pex to 2.1.100. ([#16285](https://github.com/pantsbuild/pants/pull/16285)) + +### Plugin API Changes + +* Plugin fields should propagate to subclassed target types. ([#15876](https://github.com/pantsbuild/pants/pull/15876)) + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods ([#15890](https://github.com/pantsbuild/pants/pull/15890)) + +### Bug fixes + +* Assorted remote metrics fixes. ([#15914](https://github.com/pantsbuild/pants/pull/15914)) + +* Fix bad "" description in invalid addresses error messages ([#15859](https://github.com/pantsbuild/pants/pull/15859)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism ([#15903](https://github.com/pantsbuild/pants/pull/15903)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. ([#15899](https://github.com/pantsbuild/pants/pull/15899)) + +* Increment the missing-digest backtracking level once per attempt ([#15889](https://github.com/pantsbuild/pants/pull/15889)) + +* Scala: should visit ctor args of base type ([#15880](https://github.com/pantsbuild/pants/pull/15880)) + +* Scala: mark an object that extends another type as recursive ([#15865](https://github.com/pantsbuild/pants/pull/15865)) + +* Fix reporting of time spent downloading files ([#15873](https://github.com/pantsbuild/pants/pull/15873)) + +### Performance + +* Dedupe `load_bytes_with` calls to a remote Store ([#15901](https://github.com/pantsbuild/pants/pull/15901)) + +* Improve mypy runs by adding the "incremental" mypy cache ([#16276](https://github.com/pantsbuild/pants/pull/16276)) + +### Documentation + +* Add test debugging doc ([#15948](https://github.com/pantsbuild/pants/pull/15948)) + +* Update certificate environment variable advice for #14808. ([#15943](https://github.com/pantsbuild/pants/pull/15943)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments ([#15932](https://github.com/pantsbuild/pants/pull/15932)) + +* Fix GCF Handler documentation. ([#16284](https://github.com/pantsbuild/pants/pull/16284)) diff --git a/versioned_docs/version-2.19/notes/2.15.x.md b/versioned_docs/version-2.19/notes/2.15.x.md new file mode 100644 index 000000000..3a442e461 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.15.x.md @@ -0,0 +1,771 @@ +# 2.15.x Release Series + +## What's New + +Pants 2.15 brings support for several new features: + +### Environments + +Pants now supports alternate execution "environments" for build actions. These "environments" can be explicitly +configured as desired via several new target types (including having multiple environments of the same type). +The new `environment` field on many targets tells Pants which environment to use for a particular target. + +Pants previously supported local execution (which is now configured by the `local_environment` target type) and +remote execution via the Remote Execution API (which is now configured by the `remote_environment` target type). + +New in Pants 2.15 is support for executing build actions within a Docker container configured via the +`docker_environment` target type. + +See the [Environments documentation](https://www.pantsbuild.org/v2.15/docs/environments) for more information. + +### Test Batching + +`./pants test` now supports batching compatible tests together so that they execute in the same process. +This can improve performance of test execution by sharing test environment setup across multiple test files, +but must be balanced against the impact on caching and concurrency. + +The Python backend is the first user of the test batching support. + +### New goal: `fix` + +The `fix` goal has been added to run tools which generally will perform more invasive changes on your source +files than the `fmt` goal. The `fmt` goal remains for tools which merely format code without making +semantic changes. + +### Backends + +#### Python + +Several changes have been made to the Python backend: + +- Support for the new Environments feature. Relevant targets now have a new `environment` field +to configure which environment to use for that target. +- Batched execution of `pytest` tests. +- Support for `lcov` coverage format. +- Support for `pyright` typechecking. +- Python lockfiles are now represented in the build graph via synthetic targets. +- Upgrades to default version of several tools including coverage and Flake8. + +#### Go + +The Go backend received several changes including: + +- Basic support for Cgo +- Coverage reports can be generated in HTML and not just the raw data file used by `go tool cover`. +- Support for [the `golangci-lint` linter](https://www.pantsbuild.org/v2.15/docs/go#golangci-lint). +- Support for multiple `go_mod` targets in same repository. +- A new `go-generate` custom goal to run `go generate` on any `//go:generate` instructions in a package. +- `$GOROOT/bin` is now prepended to `PATH` when running tests to enable them to easily find the `go` binary for +the Go toolchain in use. + +Note: Due to certain changes in Go v1.20, Pants 2.15.x and earlier Pants versions will not work with Go v1.20 +and later releases. Instead, use Pants v2.16.x or later Pants versions to support Go v1.20 and later releases. + +#### New: OpenAPI + +The new OpenAPI backend provides support for linting OpenAPI API specifications using the `spectral` tool +and generating Java code from the OpenAPI specifications. + +Enable the `pants.backend.experimental.openapi` backend for base OpenAPI support, +the `pants.backend.experimental.openapi.lint.spectral` backend for linting support, and +the `pants.backend.experimental.openapi.codegen.java` backend for Java code generation support. + +### Plugin API changes + +Several changes were made to the Plugin API including the changes highlighted below. Read the +[Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#215) for a full description +of the changes highlighted below (as well as other changes not highlighted here), including how to migrate +existing plugins. + +#### Formatters / Linters + +The schema used for formatters and linters has been changed in order to allow for formatters and linters which +do not require a target on which to operate. See the [applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#lint-and-fmt-schema-changes) +for the specific changes. + +#### Batched Tests + +The plugin API used by the `test` goal has been changed significantly to support the explicit batching of tests. See the +[applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#test-schema-changes) +for the specific changes. + +#### Synthetic Targets + +Plugins may now add "synthetic targets" to the build graph to create freestanding targets programmatically. +These synthetic targets can also be generator targets in order to further create generated targets. See the +[plugin documentation for the Synthetic Targets API](https://www.pantsbuild.org/v2.15/docs/target-api-concepts#synthetic-targets-api) +for more information. + +---- + +## 2.15.2 (Jun 14, 2023) + +The third stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.2rc0 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19266](https://github.com/pantsbuild/pants/pull/19266)) + +### Documentation + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19153](https://github.com/pantsbuild/pants/pull/19153)) + +* Fix docs link to pants_from_sources script. (Cherry-pick of #19088) ([#19089](https://github.com/pantsbuild/pants/pull/19089)) + +## 2.15.1 (May 18, 2023) + +The second stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.1rc3 (May 14, 2023) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18973](https://github.com/pantsbuild/pants/pull/18973)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18947](https://github.com/pantsbuild/pants/pull/18947)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (Cherry-pick of #18917) ([#18949](https://github.com/pantsbuild/pants/pull/18949)) + +### Documentation + +* Fix `awslambda-python` documentation (Cherry-pick of #18302) ([#18929](https://github.com/pantsbuild/pants/pull/18929)) + +## 2.15.1rc2 (Apr 23, 2023) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18798](https://github.com/pantsbuild/pants/pull/18798)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18733](https://github.com/pantsbuild/pants/pull/18733)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18723](https://github.com/pantsbuild/pants/pull/18723)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18675](https://github.com/pantsbuild/pants/pull/18675)) + +### Documentation + +* Jacob Floyd/Huon Wilson updates to team page (Cherry-pick of #18221) ([#18795](https://github.com/pantsbuild/pants/pull/18795)) + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18796](https://github.com/pantsbuild/pants/pull/18796)) + +* Add Pylint post (Cherry-pick of #18079) ([#18794](https://github.com/pantsbuild/pants/pull/18794)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18651](https://github.com/pantsbuild/pants/pull/18651)) + +## 2.15.1rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18641](https://github.com/pantsbuild/pants/pull/18641)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18636](https://github.com/pantsbuild/pants/pull/18636)) + +* Fix export-codgen with multiple output types from same input type (Cherry-pick of #18373) ([#18377](https://github.com/pantsbuild/pants/pull/18377)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18603](https://github.com/pantsbuild/pants/pull/18603)) + +### Documentation + +* Fix `./pants` -> `pants` in some docs and help strings. (cherrypick of #18596) ([#18607](https://github.com/pantsbuild/pants/pull/18607)) + +## 2.15.1rc0 (Mar 24, 2023) + +### Bug fixes + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18567](https://github.com/pantsbuild/pants/pull/18567)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18550](https://github.com/pantsbuild/pants/pull/18550)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18537](https://github.com/pantsbuild/pants/pull/18537)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18467](https://github.com/pantsbuild/pants/pull/18467)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18446](https://github.com/pantsbuild/pants/pull/18446)) + +* go: skip go v1.20+ when searching for the GOROOT ([#18429](https://github.com/pantsbuild/pants/pull/18429)) + +### Documentation + +* Some doc fixes suggested by users. (Cherry-pick of #18393) ([#18394](https://github.com/pantsbuild/pants/pull/18394)) + +## 2.15.0 (Feb 24, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.15.0rc7 (Feb 22, 2023) + +### Bug fixes + +* Docker environment uses a volume for named caches (Cherry-pick of #18327) ([#18337](https://github.com/pantsbuild/pants/pull/18337)) + +* go: add backends which were missing from distribution (Cherrypick of #18312) ([#18316](https://github.com/pantsbuild/pants/pull/18316)) + +* Ensure that the pep-517 backend shim works on Python 2.7. (Cherry-pick of #18295) ([#18300](https://github.com/pantsbuild/pants/pull/18300)) + +## 2.15.0rc6 (Feb 16, 2023) + +### New Features + +* Allow exporting codegenerated files/resources (Cherry-pick of #18236) ([#18241](https://github.com/pantsbuild/pants/pull/18241)) + +### Bug fixes + +* Fix bootstrap issue with `__defaults__` and environments. (Cherry-pick of #18251) ([#18262](https://github.com/pantsbuild/pants/pull/18262)) + +* Upgrade to Lambdex 0.1.9 (Cherry-pick of #18257) ([#18261](https://github.com/pantsbuild/pants/pull/18261)) + +* Delete override of expected `exe` name for `shfmt`. (Cherry-pick of #18258) ([#18259](https://github.com/pantsbuild/pants/pull/18259)) + +* Allow breakpoints to be hit when run_in_sandbox is False (Cherry-pick of #18244) ([#18245](https://github.com/pantsbuild/pants/pull/18245)) + +### Documentation + +* docs: add What's New section for 2.15.x release notes ([#18226](https://github.com/pantsbuild/pants/pull/18226)) + +## 2.15.0rc5 (Feb 10, 2023) + +### Bug fixes + +* Fix published wheel RECORDs. (Cherry-pick of #18219) ([#18220](https://github.com/pantsbuild/pants/pull/18220)) + +* Always explicitly shutdown executors (Cherry-pick of #18216) ([#18218](https://github.com/pantsbuild/pants/pull/18218)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. (Cherry-pick of #18203) ([#18206](https://github.com/pantsbuild/pants/pull/18206)) + +* Have lambdex create a new output file. (Cherry-pick of #18200) ([#18201](https://github.com/pantsbuild/pants/pull/18201)) + +## 2.15.0rc4 (Feb 07, 2023) + +### Bug fixes + +* Shutdown all threads as part of Scheduler shutdown (Cherry-pick of #18166) ([#18188](https://github.com/pantsbuild/pants/pull/18188)) + +## 2.15.0rc3 (Feb 02, 2023) + +### New Features + +* Add `environment=` to `experimental_shell_command`. (Cherry-pick of #17575) ([#18064](https://github.com/pantsbuild/pants/pull/18064)) + +### Bug fixes + +* Add the `environment` field to most Python binary target types (Cherry-pick of #18144) ([#18150](https://github.com/pantsbuild/pants/pull/18150)) + +* Run `pyupgrade` until convergance (Cherry-pick of #18128) ([#18130](https://github.com/pantsbuild/pants/pull/18130)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18061](https://github.com/pantsbuild/pants/pull/18061)) + +* go: detect when `go.sum` needs additional entries filled in (Cherrypick of #17811) ([#18118](https://github.com/pantsbuild/pants/pull/18118)) + +* Explicitly use "python" ijson backend (cherry-pick of #17787) ([#18077](https://github.com/pantsbuild/pants/pull/18077)) + +* Fix caching of PATH lookups in remote execution (Cherry-pick of #18026) ([#18062](https://github.com/pantsbuild/pants/pull/18062)) + +### Documentation + +* Document the new get-pants.sh name. (Cherry-pick of #18137) ([#18139](https://github.com/pantsbuild/pants/pull/18139)) + +* Recommend checking the pantsup.sh script in. (Cherry-pick of #18120) ([#18134](https://github.com/pantsbuild/pants/pull/18134)) + +* Change ./pants to pants in the docs (cherry-pick of #18121) ([#18124](https://github.com/pantsbuild/pants/pull/18124)) + +* docs: fix markdown inline code typo in a docstring (Cherry-pick of #18002) ([#18103](https://github.com/pantsbuild/pants/pull/18103)) + +* docs: add tutorials to get started writing plugins (Cherry-pick) ([#18107](https://github.com/pantsbuild/pants/pull/18107)) + +* docs: mention name clashing between custom goals and options when writing plugins (Cherry-pick of #17899) ([#18105](https://github.com/pantsbuild/pants/pull/18105)) + +* docs: tidy up Writing plugins : rules-api directory files (Cherry-pick of #17710) ([#18102](https://github.com/pantsbuild/pants/pull/18102)) + +* Document new pants launcher binary, aka scie-pants. (Cherry-pick of #18056) ([#18075](https://github.com/pantsbuild/pants/pull/18075)) + +* Docs: improve docs on handling option values in cli (Cherry-pick of #17506) ([#18069](https://github.com/pantsbuild/pants/pull/18069)) + +* Update and reorganize resource hub (#17922) ([#18068](https://github.com/pantsbuild/pants/pull/18068)) + +* Add Daniel Goldman and Darcy Shen to team page (Cherry-pick of #17921) ([#18066](https://github.com/pantsbuild/pants/pull/18066)) + +* Nudge more technical support toward GH Discussions (Cherry-pick of #17906) ([#18065](https://github.com/pantsbuild/pants/pull/18065)) + +## 2.15.0rc2 (Jan 18, 2023) + +### New Features + +* Added support for discovering and patching `pyright` config files (cherry-pick of #17771) ([#18030](https://github.com/pantsbuild/pants/pull/18030)) + +### Bug fixes + +* Streamline local dist handling when running python sources. (Cherry-pick of #17742) ([#18035](https://github.com/pantsbuild/pants/pull/18035)) + +* Adds workunit for interactive processes. (Cherry-pick of #17544) ([#17996](https://github.com/pantsbuild/pants/pull/17996)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox (Cherry-pick of #17235) ([#17980](https://github.com/pantsbuild/pants/pull/17980)) + +* add `skip_pyright` field to python test targets (Cherry-pick of #17960) ([#17968](https://github.com/pantsbuild/pants/pull/17968)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. (Cherry-pick of #17939) ([#17941](https://github.com/pantsbuild/pants/pull/17941)) + +### Documentation + +* Document how to update the pants script. (Cherry-pick of #17976) ([#17979](https://github.com/pantsbuild/pants/pull/17979)) + +## 2.15.0rc1 (Dec 26, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17866](https://github.com/pantsbuild/pants/pull/17866)) + +* Restore support for :all: in `only_binary`/`no_binary`. (Cherry-pick of #17779) ([#17784](https://github.com/pantsbuild/pants/pull/17784)) + +* Test DebugAdapter requests, and fix issues (Cherry-pick of #17678) ([#17768](https://github.com/pantsbuild/pants/pull/17768)) + +* chdir in `rule_runner.run_interactive_process` (Cherry-pick of #17722) ([#17765](https://github.com/pantsbuild/pants/pull/17765)) + +### Performance + +* Run python sources with a VenvPex (Cherry-pick of #17700) ([#17761](https://github.com/pantsbuild/pants/pull/17761)) + +### Documentation + +* Document batched `pytest` execution. (Cherry-pick of #17845) ([#17853](https://github.com/pantsbuild/pants/pull/17853)) + +* Tweak the docs about __defaults__. (Cherry-pick of #17829) ([#17838](https://github.com/pantsbuild/pants/pull/17838)) + +## 2.15.0rc0 (Dec 08, 2022) + +### Bug fixes + +* More precise running workunit for processes executing remotely (Cherry-pick of #17719) ([#17725](https://github.com/pantsbuild/pants/pull/17725)) + +* Fix twine env vars propagation for `publish` goal. (Cherry-pick of #17650) ([#17659](https://github.com/pantsbuild/pants/pull/17659)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17584](https://github.com/pantsbuild/pants/pull/17584)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17548](https://github.com/pantsbuild/pants/pull/17548)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17610](https://github.com/pantsbuild/pants/pull/17610)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17568](https://github.com/pantsbuild/pants/pull/17568)) + +* Add Shantanu Kumar to Contributors list (Cherry-pick of #17579) ([#17587](https://github.com/pantsbuild/pants/pull/17587)) + +## 2.15.0a1 (Nov 11, 2022) + +### New Features + +* A --resolve flag, to specify the resolves to export. (Cherry-pick of #17416) ([#17461](https://github.com/pantsbuild/pants/pull/17461)) + +### User API Changes + +* Deprecate the old export semantics. (Cherry-pick of #17465) ([#17466](https://github.com/pantsbuild/pants/pull/17466)) + +### Bug fixes + +* Fix memoization of `CoarsenedTarget.closure` (Cherry-pick of #17516) ([#17518](https://github.com/pantsbuild/pants/pull/17518)) + +* Support parsing targets from additional paths not containing BUILD files. (Cherry-pick of #17451) ([#17513](https://github.com/pantsbuild/pants/pull/17513)) + +* Ensure lockfile target exists before injecting a dependency to it. (Cherry-pick of #17365) ([#17505](https://github.com/pantsbuild/pants/pull/17505)) + +* Ensure correct eq/hash semantics for PythonArtifact. (Cherry-pick of #17484) ([#17492](https://github.com/pantsbuild/pants/pull/17492)) + +* Flip the default for `pull` on `docker_image` to `False` (Cherry-pick of #17459) ([#17460](https://github.com/pantsbuild/pants/pull/17460)) + +* Isolate config seed values from the DEFAULT section. (Cherry-pick of #17474) ([#17485](https://github.com/pantsbuild/pants/pull/17485)) + +* Fix poorly understood stdout redirection issue. (Cherry-pick of #17471) ([#17473](https://github.com/pantsbuild/pants/pull/17473)) + +* Fix propagation of the remote-execution-append-only-caches path (Cherry-pick of #17469) ([#17472](https://github.com/pantsbuild/pants/pull/17472)) + +* Fix dep inference from `shuint2_tests` targets. (Cherry-pick of #17417) ([#17422](https://github.com/pantsbuild/pants/pull/17422)) + +* Fix `EnvironmentName` used in `test` runs (Cherry-pick of #17412) ([#17415](https://github.com/pantsbuild/pants/pull/17415)) + +* Restore debug hints for `test` execution (Cherry-pick of #17406) ([#17407](https://github.com/pantsbuild/pants/pull/17407)) + +### Performance + +* Skip loading of local cache data when possible (Cherry-pick of #17495) ([#17524](https://github.com/pantsbuild/pants/pull/17524)) + +* Symlink site-packages into `pylint` venvs when possible. (Cherry-pick of #17488) ([#17491](https://github.com/pantsbuild/pants/pull/17491)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule (Cherry-pick of #17487) ([#17490](https://github.com/pantsbuild/pants/pull/17490)) + +### Documentation + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17528](https://github.com/pantsbuild/pants/pull/17528)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17499](https://github.com/pantsbuild/pants/pull/17499)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17425](https://github.com/pantsbuild/pants/pull/17425)) + +## 2.15.0a0 (Oct 28, 2022) + +### New Features + +* Add support for batched `pytest` execution ([#17385](https://github.com/pantsbuild/pants/pull/17385)) + +* Add a `batch_size` parameter to the `test` subsystem. ([#17361](https://github.com/pantsbuild/pants/pull/17361)) + +* Replace `skip` placeholders with real `SkipOption`s in test subsystems. ([#17360](https://github.com/pantsbuild/pants/pull/17360)) + +### Plugin API Changes + +* Refactor optional typing in generic partitioning utils. ([#17371](https://github.com/pantsbuild/pants/pull/17371)) + +* Refactor plumbing for `test` goal to support batched tests. ([#17134](https://github.com/pantsbuild/pants/pull/17134)) + +* Rework partitioning types for more flexibility. ([#17288](https://github.com/pantsbuild/pants/pull/17288)) + +### Bug fixes + +* Ensure PATH to shims are absolute for the protobuf buf linter. ([#17367](https://github.com/pantsbuild/pants/pull/17367)) + +* Include process execution strategy in Process cache key ([#17340](https://github.com/pantsbuild/pants/pull/17340)) + +* Fix use of `--shard` with `--debug`/`--debug-adapter` in `test`. ([#17321](https://github.com/pantsbuild/pants/pull/17321)) + +* go: properly handle xtest packages when building ([#17307](https://github.com/pantsbuild/pants/pull/17307)) + +* Retry the streaming portion of downloads, as well as the setup. ([#17298](https://github.com/pantsbuild/pants/pull/17298)) + +### Performance + +* Implement cancellation of remote processes ([#17341](https://github.com/pantsbuild/pants/pull/17341)) + +### Documentation + +* Document Synthetic Targets API.([#17330](https://github.com/pantsbuild/pants/pull/17330)) + +* Initial documentation for Environments ([#17096](https://github.com/pantsbuild/pants/pull/17096)) + +* Add 2.14 blog post link to changelog page. ([#17381](https://github.com/pantsbuild/pants/pull/17381)) + +* Document the existence of the init-pants action. ([#17378](https://github.com/pantsbuild/pants/pull/17378)) + +* Add a section about `test` to plugin API guide. ([#17362](https://github.com/pantsbuild/pants/pull/17362)) + +* Revise the error message associated with OOM-killed events ([#17373](https://github.com/pantsbuild/pants/pull/17373)) + +* Fix linebreak issues in the targets docs page. ([#17364](https://github.com/pantsbuild/pants/pull/17364)) + +* Fix a nit in the Getting Help docs. ([#17295](https://github.com/pantsbuild/pants/pull/17295)) + +## 2.15.0.dev5 (Oct 19, 2022) + +### New Features + +* Synthesize targets for Python lockfiles ([#17097](https://github.com/pantsbuild/pants/pull/17097)) + +* Refactor `shunit2` into a proper subsystem. ([#17257](https://github.com/pantsbuild/pants/pull/17257)) + +* Add lcov support ([#17256](https://github.com/pantsbuild/pants/pull/17256)) + +* New API to create synthetic targets. ([#16998](https://github.com/pantsbuild/pants/pull/16998)) + +* Support custom post renderers in Helm deployments ([#17215](https://github.com/pantsbuild/pants/pull/17215)) + +* Add a `fix` goal ([#17202](https://github.com/pantsbuild/pants/pull/17202)) + +* Add basic support for pyright typechecking ([#17163](https://github.com/pantsbuild/pants/pull/17163)) + +### User API Changes + +* Upgrade Pex to 2.1.111. ([#17267](https://github.com/pantsbuild/pants/pull/17267)) + +* Upgrade the Pants-provided `coverage` to version 6.5.X ([#17254](https://github.com/pantsbuild/pants/pull/17254)) + +* Upgrade default Flake8 version to 5.0 ([#17226](https://github.com/pantsbuild/pants/pull/17226)) + +* Add Snowflake connector to module mapping ([#17165](https://github.com/pantsbuild/pants/pull/17165)) + +* Always include relevant params in workunit descriptions, and include descriptions in traces by default ([#17119](https://github.com/pantsbuild/pants/pull/17119)) + +### Plugin API Changes + +* Rename `SubPartition` to `Batch` in partitioning types. ([#17263](https://github.com/pantsbuild/pants/pull/17263)) + +* Make fmt/lint result types less boilerplate-y ([#17192](https://github.com/pantsbuild/pants/pull/17192)) + +* Begin migration to explicitly scoped environments ([#17155](https://github.com/pantsbuild/pants/pull/17155)) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode ([#17272](https://github.com/pantsbuild/pants/pull/17272)) + +* Remote cache reads are resilient to remote execution writing to the cache ([#17195](https://github.com/pantsbuild/pants/pull/17195)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely ([#17204](https://github.com/pantsbuild/pants/pull/17204)) + +* Declaring Javascript, Prettier, and Pyright backends/plugins in BUILD ([#17190](https://github.com/pantsbuild/pants/pull/17190)) + +* Set PEX_ROOT for export post-processing command. ([#17177](https://github.com/pantsbuild/pants/pull/17177)) + +* Fix macros depending on macros from other files ([#17183](https://github.com/pantsbuild/pants/pull/17183)) + +* go/gofmt: filter out non-go files from file list ([#17171](https://github.com/pantsbuild/pants/pull/17171)) + +* Fix dep inference with empty lines in multiline imports. ([#17284](https://github.com/pantsbuild/pants/pull/17284)) + +### Documentation + +* Change fmt/lint/check docs with latest changes ([#17133](https://github.com/pantsbuild/pants/pull/17133)) + +* Add CI talk to resources ([#17238](https://github.com/pantsbuild/pants/pull/17238)) + +## 2.15.0.dev4 (Oct 07, 2022) + +### New Features + +* Optionally export venvs via symlink into the pex_root. ([#17130](https://github.com/pantsbuild/pants/pull/17130)) + +* go: add cgo support for tailor ([#17087](https://github.com/pantsbuild/pants/pull/17087)) + +### User API Changes + +* Upgrade Pex to 2.1.108. ([#17112](https://github.com/pantsbuild/pants/pull/17112)) + +### Plugin API Changes + +* Switch `LintRequest.name` to `.tool_subsystem` ([#17103](https://github.com/pantsbuild/pants/pull/17103)) + +* Rename/Refactor `style_request` to better capture intent. ([#17084](https://github.com/pantsbuild/pants/pull/17084)) + +### Bug fixes + +* Move pyoxidized pants binary out of the main source tree ([#16703](https://github.com/pantsbuild/pants/pull/16703)) + +### Documentation + +* Generate help info about target_field_name to the docsite. ([#17138](https://github.com/pantsbuild/pants/pull/17138)) + +* Add Aiven to user list. ([#17131](https://github.com/pantsbuild/pants/pull/17131)) + +* Fix `bsp-groups.toml` example in documentation ([#17125](https://github.com/pantsbuild/pants/pull/17125)) + +* Update maintainer job description ([#17022](https://github.com/pantsbuild/pants/pull/17022)) + +## 2.15.0.dev3 (Oct 03, 2022) + +### New Features + +* Add `venv_site_packages_copies` field to `pex_binary` ([#17046](https://github.com/pantsbuild/pants/pull/17046)) + +* Add golangci-lint to go backend ([#16994](https://github.com/pantsbuild/pants/pull/16994)) + +* go: add `go-generate` goal to run `go generate` on a package ([#16909](https://github.com/pantsbuild/pants/pull/16909)) + +* Support Java codegen for the OpenAPI backend ([#16862](https://github.com/pantsbuild/pants/pull/16862)) + +* go: render coverage reports as HTML ([#16995](https://github.com/pantsbuild/pants/pull/16995)) + +* Environment-aware subsystems ([#16965](https://github.com/pantsbuild/pants/pull/16965)) + +* Environment sensitive options ([#16840](https://github.com/pantsbuild/pants/pull/16840)) + +* Add retries to NetDownload intrinsic. ([#16798](https://github.com/pantsbuild/pants/pull/16798)) + +* go: add basic support for cgo ([#16413](https://github.com/pantsbuild/pants/pull/16413)) + +* Add support for add-trailing-comma tool ([#16776](https://github.com/pantsbuild/pants/pull/16776)) + +### User API Changes + +* Upgrade Pex to 2.1.107. ([#17081](https://github.com/pantsbuild/pants/pull/17081)) + +* Restore the deprecated `filter` goal indefinitely ([#17027](https://github.com/pantsbuild/pants/pull/17027)) + +### Plugin API Changes + +* Improve usability of the `--engine-visualize-to` option ([#17080](https://github.com/pantsbuild/pants/pull/17080)) + +* Change `fmt` plugin schema to allow for targetless formatters ([#16980](https://github.com/pantsbuild/pants/pull/16980)) + +* Renames `SubsystemRule()` to `Subsystem.rules()` ([#16954](https://github.com/pantsbuild/pants/pull/16954)) + +* Introduce new schema for lint plugins ([#16735](https://github.com/pantsbuild/pants/pull/16735)) + +* `Environment`, `EnvironmentRequest`, and `CompleteEnvironment` now include `Vars` in the name ([#16851](https://github.com/pantsbuild/pants/pull/16851)) + +* `MockGet` expects `input_types` kwarg, not `input_type` ([#16839](https://github.com/pantsbuild/pants/pull/16839)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make interpreter path expansion cache-correct ([#17051](https://github.com/pantsbuild/pants/pull/17051)) + +* Add python 3.10 to acceptable GCF runtimes ([#17028](https://github.com/pantsbuild/pants/pull/17028)) + +* Don't cache VCS version outside the current pants session. ([#17017](https://github.com/pantsbuild/pants/pull/17017)) + +* Fix Pantsd not properly invalidating when `CPPFLAGS` and `LDFLAGS` change ([#17009](https://github.com/pantsbuild/pants/pull/17009)) + +* Add `parametrize()` support for `__defaults__`. ([#16977](https://github.com/pantsbuild/pants/pull/16977)) + +* go: prepend $GOROOT/bin to PATH for tests ([#16993](https://github.com/pantsbuild/pants/pull/16993)) + +* Fix for hang with redirected stdio. ([#16970](https://github.com/pantsbuild/pants/pull/16970)) + +* Fix invalid field error message for parametrized fields. ([#16911](https://github.com/pantsbuild/pants/pull/16911)) + +* Fix venv re-population race. ([#16931](https://github.com/pantsbuild/pants/pull/16931)) + +* `wait` for killed nailgun processes. ([#16924](https://github.com/pantsbuild/pants/pull/16924)) + +* remove override of register_plugin_field ([#16919](https://github.com/pantsbuild/pants/pull/16919)) + +* Only request source roots for PEP-517 deps that belong on the syspath ([#16903](https://github.com/pantsbuild/pants/pull/16903)) + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code ([#16896](https://github.com/pantsbuild/pants/pull/16896)) + +* docker: upgrade bollard crate for bug fix ([#16850](https://github.com/pantsbuild/pants/pull/16850)) + +* Preserve stdio when a local process times out. ([#16841](https://github.com/pantsbuild/pants/pull/16841)) + +### Performance + +* Add an optional speculation delay when using a remote cache ([#16922](https://github.com/pantsbuild/pants/pull/16922)) + +* Only use remote cache when cache scope is Always or Successful ([#16920](https://github.com/pantsbuild/pants/pull/16920)) + +### Documentation + +* Fix Helm K8S parser help message ([#17091](https://github.com/pantsbuild/pants/pull/17091)) + +* Update `pytest-xdist` docs. ([#17071](https://github.com/pantsbuild/pants/pull/17071)) + +* Fix the [python-bootstrap].search_path option name in the docs. ([#17063](https://github.com/pantsbuild/pants/pull/17063)) + +* Add Doron Somech's proudest contribution ([#17029](https://github.com/pantsbuild/pants/pull/17029)) + +* improve remote cache logging for hit or miss ([#16975](https://github.com/pantsbuild/pants/pull/16975)) + +* Remove bad linebreaks from python-run-goal page. ([#16976](https://github.com/pantsbuild/pants/pull/16976)) + +* Update changelog on docsite with 2.13, 2.14 links ([#16918](https://github.com/pantsbuild/pants/pull/16918)) + +* Add Marcelo to team page, move Josh Reed to Maintainer ([#16826](https://github.com/pantsbuild/pants/pull/16826)) + +* Don't mention a specific version in the manual install instructions. ([#16888](https://github.com/pantsbuild/pants/pull/16888)) + +## 2.15.0.dev2 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when --no-colors ([#16586](https://github.com/pantsbuild/pants/pull/16586)) + +* Add OpenAPI backend ([#16199](https://github.com/pantsbuild/pants/pull/16199)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets ([#16386](https://github.com/pantsbuild/pants/pull/16386)) + +### Bug fixes + +* docker: capture output once after container exits ([#16783](https://github.com/pantsbuild/pants/pull/16783)) + +* docker: lazily initialize docker connection ([#16779](https://github.com/pantsbuild/pants/pull/16779)) + +### Documentation + +* Add IBM, Coinbase, and Astranis case studies ([#16805](https://github.com/pantsbuild/pants/pull/16805)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" ([#16804](https://github.com/pantsbuild/pants/pull/16804)) + +* Add Brand24 to user list. ([#16793](https://github.com/pantsbuild/pants/pull/16793)) + +## 2.15.0.dev1 (Sep 04, 2022) + +### New Features + +* go: support placing resource files in packages (and not just embedding) ([#16688](https://github.com/pantsbuild/pants/pull/16688)) + +* "naive" docker command runner ([#16670](https://github.com/pantsbuild/pants/pull/16670)) + +* Adds `binary_name` field to PyOxidizer support ([#16696](https://github.com/pantsbuild/pants/pull/16696)) + +### Plugin API Changes + +* The environment to use becomes a context-specific parameter ([#16721](https://github.com/pantsbuild/pants/pull/16721)) + +* Deprecate `Platform.current` in favor of requesting an injected `Platform` ([#16765](https://github.com/pantsbuild/pants/pull/16765)) + +* Allow `@union`s to declare additional types which are provided to implementers ([#16717](https://github.com/pantsbuild/pants/pull/16717)) + +* Deprecate remote_auth_plugin option - plugins can use entry points now. ([#16691](https://github.com/pantsbuild/pants/pull/16691)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds ([#16709](https://github.com/pantsbuild/pants/pull/16709)) + +* Resolve properly provided symbol names for types defined at top level package ([#16690](https://github.com/pantsbuild/pants/pull/16690)) + +* Include type bound constraints in consumed symbols during Scala inference ([#16692](https://github.com/pantsbuild/pants/pull/16692)) + +* Make experimental_shell_command deterministic ([#16675](https://github.com/pantsbuild/pants/pull/16675)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier ([#16706](https://github.com/pantsbuild/pants/pull/16706)) + +* In python resource example, use importlib.resources to read assets ([#16695](https://github.com/pantsbuild/pants/pull/16695)) + +* Welcome community members to consider joining team ([#16681](https://github.com/pantsbuild/pants/pull/16681)) + +## 2.15.0.dev0 (Aug 29, 2022) + +### New Features + +* Add support for string interpolation in Helm deployments ([#16611](https://github.com/pantsbuild/pants/pull/16611)) + +* Add --squash and --pull options support for docker build ([#16607](https://github.com/pantsbuild/pants/pull/16607)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support ([#16584](https://github.com/pantsbuild/pants/pull/16584)) + +* [experimental] adds `pants_oxidized_experimental` target, creating a standalone binary distribution for Pants ([#16484](https://github.com/pantsbuild/pants/pull/16484)) + +### User API Changes + +* Remove deprecated `[python].only_binary`, `[python].no_binary`, and `[python].tailor_ignore_solitary_init_files` ([#16638](https://github.com/pantsbuild/pants/pull/16638)) + +* Remove deprecated `[python].lockfile_generator` and deprecate `poetry` subsystem (used previously for lockfile generation) ([#16633](https://github.com/pantsbuild/pants/pull/16633)) + +* Remove deprecated `use_deprecated_directory_cli_args_semantics` option ([#16630](https://github.com/pantsbuild/pants/pull/16630)) + +### Plugin API Changes + +* Add support for passing multiple input params to a `@rule` `Get` ([#16668](https://github.com/pantsbuild/pants/pull/16668)) + +* Remove deprecated `matches_filespec` and `get_git` functions ([#16629](https://github.com/pantsbuild/pants/pull/16629)) + +* Remove unnecessary type parameter from `Get` ([#16634](https://github.com/pantsbuild/pants/pull/16634)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make `FilespecMatcher` case-sensitive ([#16673](https://github.com/pantsbuild/pants/pull/16673)) + +* Ensure the sandbox distdir exists when creating dists via PEP517. ([#16647](https://github.com/pantsbuild/pants/pull/16647)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. ([#16627](https://github.com/pantsbuild/pants/pull/16627)) + +* Optimize `CreateDigest` implementation. ([#16617](https://github.com/pantsbuild/pants/pull/16617)) + +### Documentation + +* Create page of Pants team members and proudest contribs ([#16676](https://github.com/pantsbuild/pants/pull/16676)) + +* Fix example BSP groups file. ([#16649](https://github.com/pantsbuild/pants/pull/16649)) + +* Clarify wording for `--skip` options ([#16622](https://github.com/pantsbuild/pants/pull/16622)) + +* Fix `./pants help` docs on command line specs ([#16616](https://github.com/pantsbuild/pants/pull/16616)) + +* Mention team meetings as a Contributor permission ([#16543](https://github.com/pantsbuild/pants/pull/16543)) diff --git a/versioned_docs/version-2.19/notes/2.16.x.md b/versioned_docs/version-2.19/notes/2.16.x.md new file mode 100644 index 000000000..85f131154 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.16.x.md @@ -0,0 +1,1147 @@ +# 2.16.x Release Series + +## What's New + +### BUILD files + +The new `env` function in BUILD files allows access to environment variables in BUILD files. + +Run `pants help symbols` for documentation of all builtin symbols and macros provided by prelude files +which are usable in BUILD files. + +The visibility rules syntax now supports matching on target names. The rules glob syntax also now uses +the same syntax as target selectors. + +### Backends + +#### Docker + +The [`{pants.hash}`](https://www.pantsbuild.org/docs/tagging-docker-images#string-interpolation-using-placeholder-values) +generation code was changed such that the generated hash for the same input will be different in pants 2.16. + +#### Python + +The Python backend added or improved support for various tools including: + +- [`pydocstyle`](https://www.pydocstyle.org/) is now supported for linting Python doc strings. Enable the +`pants.backend.python.lint.pydocstyle` backend to add this support. + +- [`ruff`](https://github.com/charliermarsh/ruff) is now supported for linting and formatting Python code. Enable the +`pants.backend.experimental.python.lint.ruff` backend to add this support. + +- [`pyenv`](https://github.com/pyenv/pyenv) is now supported as a way for Pants to provide a hermetic version of Python +for each relevant Interpreter required to run user code. Enable the `pants.backend.python.providers.experimental.pyenv` +backend to add this support. + +- Pants now understands how to parse dependencies of projects using the OpenStack/Stevedore ((https://github.com/openstack/stevedore) +project. Enable the `pants.backend.python.framework.stevedore` backend to add this support. + +- More Python target types now have the `environment` field and thus can execute in non-local environments. + +Deprecations: + +- The default value of `CPython>=3.7,<4` for the `[python].interpreter_constraints` option is now +deprecated and will be removed in Pants v2.17.x. This options sets Python interpreter +constraints for Python-related targets which did not otherwise specify their own interpreter +constraints. Instead of relying on this default, explicitly set the +`[python].interpreter_constraints` option appropriately. We recommend constraining to a single +interpreter minor version if you can, e.g., `interpreter_constraints = ['==3.11.*']`, or at least +a small number of interpreter minor versions, e.g., `interpreter_constraints = ['>=3.10,<3.12']`. + +- The special Python "tool lockfile" functionality is deprecated. Repos can now use regular "user lockfiles" to provide custom versions of tools. + +#### Shell command improvements and support for ad-hoc tools + +The Shell backend along with the new `pants.backend.experimental.adhoc` backend have received a number of improvements so that +Pants is able to invoke workflows that include tools for which Pants does not yet have a +dedicated backend. + +In recognition of these improvements, the `experimental_shell_command` and `experimental_run_shell_command` target types have +graduated to no longer have the `experimental_` prefix; deprecating the prefixed variants with removal in 2.17. Upgrade to use +`shell_command` and `run_shell_command` respectively instead. + +The improvements include: + +- The `shell_command` continues to provide a way to run a tool for its side effects and capture +outputs from the tool invocation for consumption as dependencies by other target types, but has had several improvements: + + - the `dependencies` field has been deprecated, and separated into three fields: `execution_dependencies` for + dependencies required to execute the command, `output_dependencies` for dependencies required to + use the output, and `runnable_dependencies` for targets that need to exist as directly + executable on the sandbox's `PATH` + - the `outputs` field has been separated into `output_files` and `output_directories` + - the directory in which the command is invoked can be controlled via the new `workdir` field + - the location of the output files when consumed as a dependency can be controlled via the new `root_output_directory` field + +- Preserving symlinks as symlinks in process output, rather than resolving them to their target +file. This eliminates the need for work-arounds in `shell_command`s that happen to generate +semantically-relevant symlinks, such as the contents of `node_modules/.bin` if using `shell_command` +to invoke `npm ci` or `npm install`. + +- The new `adhoc_tool` target type supplied by the `adhoc` backend allows executing most "runnable" target types (those supported for `pants run` goal) exported by another Pants backend in an execution sandbox goal, allowing you to capture their outputs to be captured. The outputs can then be consumed by another Pants target in a similar manner to the `shell_command` target type. +"Runnable" target types include: + * Adhoc: `system_binary` + * Docker: `docker_image` + * Go: `go_binary` + * JVM: `jvm_artifact`, and `deploy_jar` + * Python: `pex_binary`, `python_requirement`, `python_source`, and `pyoxidizer_binary` + +- The new `system_binary` target type supplied by the `adhoc` backend wraps any externally-managed tool so that the +tool may be invoked as a "runnable" by the `adhoc_tool` target type, while also allowing tool versions to be pinned for reproducibility. + +- Support for running in non-local environments as specified by the `environment` field on `shell_command`, `adhoc_tool`, and related target types. + +- Defining arbitrary shell commands as tests which can be invoked using `pants test` via the +new `experimental_test_shell_command` target type. + +- The `workdir` field to `run_shell_command` has been switched to match the documented behavior: it now runs from the same directory as the `BUILD` file by default. To preserve the old behavior, explicitly set `workdir="/"`. The stabilisation also fixes other bugs with relative paths passed to the `workdir` field and thus may require updates. + +Ad-hoc tool support, with the `adhoc_tool` or `shell_command` targets, can be used to compile third party +libraries in unsupported languages, run tools from ecosystems Pants doesn't yet directly support, and other similar code-generation tasks. +These targets can be used for first-party code generation, making use of existing backends that define +"runnable" targets if needed. For instance, exporting a OpenAPI schema from a Python API server, letting Pants +manage the interpreters and dependencies required. + +Enable the `pants.backend.experimental.adhoc` backend to add the features supplied by the `adhoc` backend. +Enable the `pants.backend.shell` backend for the shell-related functionality including `shell_command` and +`run_shell_command` target types. + +#### Go + +The Go backend has received a large number of changes in order to be ready for Go v1.20 +and to make continued progress on [stabilizing the Go backend](https://github.com/pantsbuild/pants/issues/17447). + +The main change is that Pants will now compile Go SDK packages from scratch and no longer rely on +the prebuilt package archives distributed with the Go SDK. Go v1.20 will no longer ship with those +prebuilt package archives, and so this change was necessary for Pants to continue to work +with Go v1.20 and later releases. (It is also a correctness issue since Pants will now be able to +apply compiler options consistently to both first-party Go code and Go SDK packages.) + +The Pants team would appreciate if the community could try out 2.16.x with your Go code as an additional +check to ensure there are no regressions. + +The Go backend also now supports: +- Environments are supported via the `environment` field available now on `go_binary` targets. +- Code coverage can now analyze coverage for packages beyond just the package under test via the new +`--go-test-cover-packages` option. +- Numerous bug fixes to the Cgo support. +- The [data race detector](https://go.dev/doc/articles/race_detector) is supported via the `race` field now available on `go_binary` targets. +- Compiler and other flags may be set via the `compiler_flags`, `linker_flags`, and `assembler_flags` fields +available on various target types. + +#### Buf + +Pants is now able to discover and supply configuration files for the `Buf` protobuf linter. + +#### New: Preamble + +The new "preamble" plugin allows formatting/linting files to ensure they start with specific text, such as a copyright header. Enable the +`pants.backend.tools.preamble` backend to add this support. + +#### New: CUE + +Pants now have basic support for the [CUE language](https://cuelang.org/) for defining, generating, and validating configuration data. +Enable the `pants.backend.experimental.cue` backend to use this support. + +#### New: YamlLint + +Pants now the supports the [yamllint](https://yamllint.readthedocs.io) linter for YAML files. Enable the `pants.backend.experimental.tools.yamllint` backend to add this support. + +#### New: AWS S3 support for URLs + +Pants now supports referencing S3 URLs via the scheme (E.g. `s3://`), or authority (E.g. `*.s3*amazonaws.com` or `s3.*amazonaws.com`) +anywhere a URL can be specified. +Credentials are loaded similar to the AWS CLI (most regularly `~/.aws/credentials`) and attached as headers in the request (which aren't cached or logged). + +Enable the `pants.backend.url_handlers.s3` backend to add this support. + +#### New + +### Plugin API Changes + +The `URLDownloadHandler` union has been added to allow plugins to modify native URL downloading, such as transforming the URL or attaching headers for auth. + +The `frozen_after_init` decorator on dataclasses has been removed from many parts of the Pants codebase. Plugin authors should avoid use of this decorator because it will likely be removed in a future Pants version. + +The deprecated `Platform.current` has been removed. Instead, have the affected rules take a `Platform` directly as a parameter and the engine will supply the relevant `Platform` instance. + +The `ToolCustomLockfile` and `ToolDefaultLockfile` classes [have been removed](https://github.com/pantsbuild/pants/pull/17843). + +---- + +## 2.16.1rc4 (Oct 17, 2023) + +### Bug fixes + +* Fix algorithm for gathering Go build requests with coverage. (Cherry-pick of #20030) ([#20032](https://github.com/pantsbuild/pants/pull/20032)) + +## 2.16.1rc3 (Oct 06, 2023) + +### Bug fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19968](https://github.com/pantsbuild/pants/pull/19968)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19908](https://github.com/pantsbuild/pants/pull/19908)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19857](https://github.com/pantsbuild/pants/pull/19857)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19839](https://github.com/pantsbuild/pants/pull/19839)) + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19653](https://github.com/pantsbuild/pants/pull/19653)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19649](https://github.com/pantsbuild/pants/pull/19649)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19647](https://github.com/pantsbuild/pants/pull/19647)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19617](https://github.com/pantsbuild/pants/pull/19617)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19614](https://github.com/pantsbuild/pants/pull/19614)) + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19594](https://github.com/pantsbuild/pants/pull/19594)) + +* Fix the new tool lockfile deprecation message. (cherrypick of #19565) ([#19571](https://github.com/pantsbuild/pants/pull/19571)) + +* Fix `golangci-lint` runner script (Cherry-pick of #19015) ([#19472](https://github.com/pantsbuild/pants/pull/19472)) + +* Use the `package_name` variable to fix an `UnboundLocalError`. (Cherry-pick of #19433) ([#19452](https://github.com/pantsbuild/pants/pull/19452)) + +### Documentation + +* Update release docs with latest changes ([#19895](https://github.com/pantsbuild/pants/pull/19895)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19638](https://github.com/pantsbuild/pants/pull/19638)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19598](https://github.com/pantsbuild/pants/pull/19598)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19577](https://github.com/pantsbuild/pants/pull/19577)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19569](https://github.com/pantsbuild/pants/pull/19569)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19560](https://github.com/pantsbuild/pants/pull/19560)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19495](https://github.com/pantsbuild/pants/pull/19495)) + +## 2.16.1rc2 (Sep 23, 2023) + +Never released due to build issues. + +## 2.16.1rc1 (Sep 20, 2023) + +Never released due to build issues. + +## 2.16.1rc0 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19457](https://github.com/pantsbuild/pants/pull/19457)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19310](https://github.com/pantsbuild/pants/pull/19310)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19420](https://github.com/pantsbuild/pants/pull/19420)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19422](https://github.com/pantsbuild/pants/pull/19422)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19417](https://github.com/pantsbuild/pants/pull/19417)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19320](https://github.com/pantsbuild/pants/pull/19320)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19331](https://github.com/pantsbuild/pants/pull/19331)) + +## 2.16.0 (Jun 14, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.16.0rc7 (Jun 11, 2023) + +### Bug Fixes + +* Fix S3 URL Handler for good (Cherry-pick of #19285) ([#19288](https://github.com/pantsbuild/pants/pull/19288)) + +## 2.16.0rc6 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19267](https://github.com/pantsbuild/pants/pull/19267)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19110](https://github.com/pantsbuild/pants/pull/19110)) + + +## 2.16.0rc5 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version`/`extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19210](https://github.com/pantsbuild/pants/pull/19210)) + +### Bug Fixes + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19196](https://github.com/pantsbuild/pants/pull/19196)) + +* Use `{bin_name()} run` as `$0` in `run_shell_command` (Cherry-pick of #19020) ([#19036](https://github.com/pantsbuild/pants/pull/19036)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19206](https://github.com/pantsbuild/pants/pull/19206)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19108](https://github.com/pantsbuild/pants/pull/19108)) + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19154](https://github.com/pantsbuild/pants/pull/19154)) + +## 2.16.0rc4 (May 25, 2023) + +### User API Changes + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19135](https://github.com/pantsbuild/pants/pull/19135)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19086](https://github.com/pantsbuild/pants/pull/19086)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19081](https://github.com/pantsbuild/pants/pull/19081)) + +### Bug Fixes + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19137](https://github.com/pantsbuild/pants/pull/19137)) + +### Documentation + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19114](https://github.com/pantsbuild/pants/pull/19114)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19090](https://github.com/pantsbuild/pants/pull/19090)) + +## 2.16.0rc3 (May 18, 2023) + +### User API Changes + +* Support Python requirement target addrs in tool requirements. (Cherry-pick of #19014) ([#19023](https://github.com/pantsbuild/pants/pull/19023)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` (Cherry-pick of #19019) ([#19031](https://github.com/pantsbuild/pants/pull/19031)) + +* Docs tweaks for 2.16.x (Cherry-pick of #19009) ([#19012](https://github.com/pantsbuild/pants/pull/19012)) + +## 2.16.0rc2 (May 11, 2023) + +### User API Changes + +* Use the resolve's ICs for tools. (Cherry-pick of #18776) ([#18806](https://github.com/pantsbuild/pants/pull/18806)) + +* Default to using the entire tool lockfile. (Cherry-pick of #18793) ([#18807](https://github.com/pantsbuild/pants/pull/18807)) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18971](https://github.com/pantsbuild/pants/pull/18971)) + +* Make `DigestSubset` symlink-aware (Cherry-pick of #18963) ([#18970](https://github.com/pantsbuild/pants/pull/18970)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18948](https://github.com/pantsbuild/pants/pull/18948)) + +* Actually run deprecated targets fixer (Cherry-pick of #18860) ([#18893](https://github.com/pantsbuild/pants/pull/18893)) + +* Remove existing entry if any when materialising symlink (Cherry-pick of #18873) ([#18878](https://github.com/pantsbuild/pants/pull/18878)) + +* Ensure non-ambiguous args/env vars injection into PEXes (Cherry-pick of #18861) ([#18877](https://github.com/pantsbuild/pants/pull/18877)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. (Cherry-pick of #18713) ([#18866](https://github.com/pantsbuild/pants/pull/18866)) + +* help backends: Only list enabled experimental backends unless advanced help. (Cherry-pick of #18821) ([#18867](https://github.com/pantsbuild/pants/pull/18867)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. (Cherry-pick of #18826) ([#18870](https://github.com/pantsbuild/pants/pull/18870)) + +* Handle workdir="."/default properly in run_shell_command (Cherry-pick of #18840) ([#18850](https://github.com/pantsbuild/pants/pull/18850)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths (Cherry-pick of #18814) ([#18839](https://github.com/pantsbuild/pants/pull/18839)) + +* Use build root as workdir for shell_command(workdir="") (Cherry-pick of #18813) ([#18832](https://github.com/pantsbuild/pants/pull/18832)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (cherry-pick #18917) ([#18944](https://github.com/pantsbuild/pants/pull/18944)) + +### Documentation + +* update troubleshooting document about self-hosted action runner (Cherry-pick of #18900) ([#18943](https://github.com/pantsbuild/pants/pull/18943)) + +* doc: mention `use_local_alias` for the `[docker].registries` option. (Cherry-pick of #18946) ([#18950](https://github.com/pantsbuild/pants/pull/18950)) + +* Fix adhoc output_... example, document run_shell_command workdir changes (Cherry-pick of #18894) ([#18910](https://github.com/pantsbuild/pants/pull/18910)) + +* Include `symbols` as topic in usage help. (Cherry-pick of #18825) ([#18869](https://github.com/pantsbuild/pants/pull/18869)) + +* Update mypy and pytest documentation to refer to install_from_resolve (Cherry pick of #18791) ([#18858](https://github.com/pantsbuild/pants/pull/18858)) + +## 2.16.0rc1 (Apr 23, 2023) + +### User API Changes + +* Upgrade Pex to 2.1.134. (Cherry-pick of #18785) ([#18789](https://github.com/pantsbuild/pants/pull/18789)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18799](https://github.com/pantsbuild/pants/pull/18799)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests (Cherry-pick of #18692) ([#18694](https://github.com/pantsbuild/pants/pull/18694)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18734](https://github.com/pantsbuild/pants/pull/18734)) + +* Add `ruff` lint rules (Cherry-pick of #18716) ([#18739](https://github.com/pantsbuild/pants/pull/18739)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18724](https://github.com/pantsbuild/pants/pull/18724)) + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s (Cherry-pick of #18699) ([#18700](https://github.com/pantsbuild/pants/pull/18700)) + +* Add timeout to remote store calls, and adjust name of cache timeout. (Cherry-pick of #18695) ([#18697](https://github.com/pantsbuild/pants/pull/18697)) + +* Bump minimum supported version of Pex to v2.1.129. (Cherry-pick of #18678) ([#18687](https://github.com/pantsbuild/pants/pull/18687)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18676](https://github.com/pantsbuild/pants/pull/18676)) + +### Documentation + +* Update linter documentation to refer to `install_from_resolve` (Cherry-pick of #18781) ([#18782](https://github.com/pantsbuild/pants/pull/18782)) + +* Add PEP 621 `pyproject.toml` file docs (Cherry-pick of #18672) ([#18677](https://github.com/pantsbuild/pants/pull/18677)) + +* Improve lockfile consumption error message. (Cherry-pick of #18638) ([#18653](https://github.com/pantsbuild/pants/pull/18653)) + +* Document AWS CDK issue that multiple users have encountered. (Cherry-pick of #18656) ([#18666](https://github.com/pantsbuild/pants/pull/18666)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18650](https://github.com/pantsbuild/pants/pull/18650)) + +## 2.16.0rc0 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18640](https://github.com/pantsbuild/pants/pull/18640)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (Cherry-pick of #18622) ([#18634](https://github.com/pantsbuild/pants/pull/18634)) + +* Fix PexPEX invocations (Cherry-pick of #18610) ([#18633](https://github.com/pantsbuild/pants/pull/18633)) + +* narrow pex_binary files warning (Cherry-pick of #18619) ([#18628](https://github.com/pantsbuild/pants/pull/18628)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18604](https://github.com/pantsbuild/pants/pull/18604)) + +### Documentation + +* Fix a string that should have been an f-string (Cherry-pick of #18608) ([#18611](https://github.com/pantsbuild/pants/pull/18611)) + +* Fix `./pants` -> `pants` in some docs and help strings. (Cherry-pick of #18596) ([#18606](https://github.com/pantsbuild/pants/pull/18606)) + +## 2.16.0a1 (Mar 24, 2023) + +### New Features + +* Always provide Python-for-Pants-scripts (Cherry-pick of #18433) ([#18495](https://github.com/pantsbuild/pants/pull/18495)) + +* Expose environment information on process metadata (Cherry-pick of #18458) ([#18463](https://github.com/pantsbuild/pants/pull/18463)) + +### User API Changes + +* Upgrade Pex to 2.1.130. (Cherry-pick of #18576) ([#18578](https://github.com/pantsbuild/pants/pull/18578)) + +* Deprecate old-style custom tool lockfiles. (#18494) ([#18498](https://github.com/pantsbuild/pants/pull/18498)) + +* Let a user resolve shadow a tool lockfile of the same name (Cherry-pick of #18481) ([#18493](https://github.com/pantsbuild/pants/pull/18493)) + +* Audit and update requirements for Python tools. (cherrypick #18431) ([#18460](https://github.com/pantsbuild/pants/pull/18460)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. (Cherry-pick of #18575) ([#18585](https://github.com/pantsbuild/pants/pull/18585)) + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18568](https://github.com/pantsbuild/pants/pull/18568)) + +* Declare ruff outputs as files. (Cherry-pick of #18551) ([#18557](https://github.com/pantsbuild/pants/pull/18557)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18549](https://github.com/pantsbuild/pants/pull/18549)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18536](https://github.com/pantsbuild/pants/pull/18536)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18468](https://github.com/pantsbuild/pants/pull/18468)) + +* Only expose the equiv of `from typing import *` in prelude files (Cherry-pick of #18452) ([#18455](https://github.com/pantsbuild/pants/pull/18455)) + +* Support type hints in prelude files. (Cherry-pick of #18442) ([#18449](https://github.com/pantsbuild/pants/pull/18449)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18447](https://github.com/pantsbuild/pants/pull/18447)) + +### Documentation + +* First pass at `adhoc_tool` documentation (Cherry-pick of #18531) ([#18581](https://github.com/pantsbuild/pants/pull/18581)) + +* Update docs on running pants from sources with scie-pants. (Cherry-pick of #18513) ([#18514](https://github.com/pantsbuild/pants/pull/18514)) + +* Remove the superfluous updated: front matter from readme docs. (cherrypick of #18475) ([#18476](https://github.com/pantsbuild/pants/pull/18476)) + +* Expand lockfile documentation to its own page. (cherrypick of #18471) ([#18474](https://github.com/pantsbuild/pants/pull/18474)) + +## 2.16.0a0 (Mar 06, 2023) + +### New Features + +* Allow python tools to be installed from a user resolve. ([#18418](https://github.com/pantsbuild/pants/pull/18418)) + +* golang: add support for passthrough args for gofmt ([#18409](https://github.com/pantsbuild/pants/pull/18409)) + +* Add the ability for Pants to provide Python via a union (with a pyenv impl) ([#18352](https://github.com/pantsbuild/pants/pull/18352)) + +* Add `sources_fingerprint` to `peek` on source-creating targets ([#18383](https://github.com/pantsbuild/pants/pull/18383)) + +* New `BUILD` file symbols help info ([#18378](https://github.com/pantsbuild/pants/pull/18378)) + +* Visibility: support matching on target names. ([#18369](https://github.com/pantsbuild/pants/pull/18369)) + +* Support for `peek`ing at dependency/dependents rules ([#18112](https://github.com/pantsbuild/pants/pull/18112)) + +* Adds support for supplying "runnable" dependencies to the `execution_dependencies` field ([#18347](https://github.com/pantsbuild/pants/pull/18347)) + +* javascript: Support esm modules and commonjs specific javascript file extensions ([#18208](https://github.com/pantsbuild/pants/pull/18208)) + +* Adds `system_binary` target, which can be used to reproducibly find a pre-installed binary for use with `adhoc_tool` ([#18332](https://github.com/pantsbuild/pants/pull/18332)) + +* Enable running third-party Go `main` packages ([#17449](https://github.com/pantsbuild/pants/pull/17449)) + +### User API Changes + +* Add `python311` runtime to `python_google_cloud_function` target ([#18405](https://github.com/pantsbuild/pants/pull/18405)) + +* Delegate lockfile requirement validation to Pex when possible. ([#18415](https://github.com/pantsbuild/pants/pull/18415)) + +* Upgrade Pex to 2.1.126. ([#18408](https://github.com/pantsbuild/pants/pull/18408)) + +* Deprecate the default interpreter constraints. ([#18390](https://github.com/pantsbuild/pants/pull/18390)) + +* Give pantsd more RAM by default. ([#18389](https://github.com/pantsbuild/pants/pull/18389)) + +### Plugin API Changes + +* Support specifying a named resolve as the superset in a `PexRequirements`. ([#18397](https://github.com/pantsbuild/pants/pull/18397)) + +* Deprecate the `@rule_helper` decorator. ([#18330](https://github.com/pantsbuild/pants/pull/18330)) + +* Get rid of the `LockfileContent` class ([#18305](https://github.com/pantsbuild/pants/pull/18305)) + +### Bug fixes + +* python: collect files with '[tool.ruff' sections as candidates for Ruff config files ([#18413](https://github.com/pantsbuild/pants/pull/18413)) + +* Fix OSError when running pants in systemd-nspawn container ([#18398](https://github.com/pantsbuild/pants/pull/18398)) + +* Fix `paths` issue with transitive excludes. ([#18396](https://github.com/pantsbuild/pants/pull/18396)) + +* Fix export-codgen with multiple output types from same input type ([#18373](https://github.com/pantsbuild/pants/pull/18373)) + +* Errors in `--loop` wait for changes rather than re-running immediately ([#18367](https://github.com/pantsbuild/pants/pull/18367)) + +* Support using `env()` in prelude macro files ([#18273](https://github.com/pantsbuild/pants/pull/18273)) + +* Docker environment uses a volume for named caches ([#18327](https://github.com/pantsbuild/pants/pull/18327)) + +* Load `fromfile` files relative to build root ([#18311](https://github.com/pantsbuild/pants/pull/18311)) + +* Ensure that the pep-517 backend shim works on Python 2.7. ([#18295](https://github.com/pantsbuild/pants/pull/18295)) + +### Documentation + +* Update documentation on how to install the pants binary ([#18372](https://github.com/pantsbuild/pants/pull/18372)) + +* Some doc fixes suggested by users. ([#18393](https://github.com/pantsbuild/pants/pull/18393)) + +* docs: tidy up writing plugins tutorial ([#18380](https://github.com/pantsbuild/pants/pull/18380)) + +* docs: upgrade plugin writing tutorial to 2.15.0 ([#18371](https://github.com/pantsbuild/pants/pull/18371)) + +* Use valid container/app names in helm examples ([#18358](https://github.com/pantsbuild/pants/pull/18358)) + +* Remove defunct newsletter ([#18355](https://github.com/pantsbuild/pants/pull/18355)) + +* docs: mention code generation when troubleshooting missing imports from first-party code ([#18073](https://github.com/pantsbuild/pants/pull/18073)) + +* Fix documentation example for `python_awslambda` targets ([#18302](https://github.com/pantsbuild/pants/pull/18302)) + +* Change bool values to lowercase in TOML snippets ([#18299](https://github.com/pantsbuild/pants/pull/18299)) + + +## 2.16.0.dev7 (Feb 17, 2023) + +### New Features + +* Allow exporting codegenerated files/resources ([#18236](https://github.com/pantsbuild/pants/pull/18236)) + +* python: teach tailor goal to create resource targets for py.typed marker files ([#18174](https://github.com/pantsbuild/pants/pull/18174)) + +* The beginnings of a Django plugin. ([#18173](https://github.com/pantsbuild/pants/pull/18173)) + +* Add backend for projects that use openstack/stevedore ([#18132](https://github.com/pantsbuild/pants/pull/18132)) + +* [python-infer]: allow ignoring unowned imports ([#18094](https://github.com/pantsbuild/pants/pull/18094)) + +* Print diff report when generating Python lockfiles. ([#17347](https://github.com/pantsbuild/pants/pull/17347)) + +### User API Changes + +* Deprecates `experimental_run_shell_command` in favour of `run_shell_command` ([#18266](https://github.com/pantsbuild/pants/pull/18266)) + +* Deprecates `experimental_shell_command`, replacing with `shell_command` ([#18255](https://github.com/pantsbuild/pants/pull/18255)) + +* Extracts `backend.adhoc` package and `backend.experimental.adhoc` backend for `adhoc_tool` ([#18237](https://github.com/pantsbuild/pants/pull/18237)) + +* Upgrade Pex to 2.1.122. ([#18230](https://github.com/pantsbuild/pants/pull/18230)) + +* Relativize the pants_bin_name if necessary. ([#18204](https://github.com/pantsbuild/pants/pull/18204)) + +* Adjust the default for `root_output_directory` ([#18192](https://github.com/pantsbuild/pants/pull/18192)) + +* Visibility backend: adjust rule set selector syntax making path values default rather than target types. ([#18154](https://github.com/pantsbuild/pants/pull/18154)) + +* Adds fields to capture stdout/stderr to `experimental_run_in_sandbox` ([#18165](https://github.com/pantsbuild/pants/pull/18165)) + +* `shell_command`/`run_in_sandbox` workdir/output dir adjustments ([#18157](https://github.com/pantsbuild/pants/pull/18157)) + +* Default to the new "Dependents" header in the py_constraints report. ([#18142](https://github.com/pantsbuild/pants/pull/18142)) + +### Plugin API Changes + +* Improve type inference for `@rule`s ([#17947](https://github.com/pantsbuild/pants/pull/17947)) + +* deprecate `frozen_after_init` ([#18127](https://github.com/pantsbuild/pants/pull/18127)) + +### Bug fixes + +* go: support embed configuration in stdlib packages ([#18271](https://github.com/pantsbuild/pants/pull/18271)) + +* Upgrade to Lambdex 0.1.9 ([#18257](https://github.com/pantsbuild/pants/pull/18257)) + +* Delete override of expected `exe` name for `shfmt`. ([#18258](https://github.com/pantsbuild/pants/pull/18258)) + +* Fix bootstrap issue with `__defaults__` and environments. ([#18251](https://github.com/pantsbuild/pants/pull/18251)) + +* Allow breakpoints to be hit when run_in_sandbox is False ([#18244](https://github.com/pantsbuild/pants/pull/18244)) + +* Avoid bind-mounts for docker environments on macOS ([#18225](https://github.com/pantsbuild/pants/pull/18225)) + +* Move ruff from fmt to fix ([#18228](https://github.com/pantsbuild/pants/pull/18228)) + +* Stream large remote cache downloads directly to disk ([#18054](https://github.com/pantsbuild/pants/pull/18054)) + +* BUILD file target field default should respect values from `__defaults__`. ([#18172](https://github.com/pantsbuild/pants/pull/18172)) + +* Fix published wheel RECORDs. ([#18219](https://github.com/pantsbuild/pants/pull/18219)) + +* Always explicitly shutdown executors ([#18216](https://github.com/pantsbuild/pants/pull/18216)) + +* go: upgrade golangci-lint to fix issue with Go v1.20 ([#18207](https://github.com/pantsbuild/pants/pull/18207)) + +* go: disable coverage redesign experiment on Go v1.20+ ([#18205](https://github.com/pantsbuild/pants/pull/18205)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. ([#18203](https://github.com/pantsbuild/pants/pull/18203)) + +* Have lambdex create a new output file. ([#18200](https://github.com/pantsbuild/pants/pull/18200)) + +* Shutdown all threads as part of Scheduler shutdown ([#18166](https://github.com/pantsbuild/pants/pull/18166)) + +* Fix the dep inference scripts source root bug. ([#18164](https://github.com/pantsbuild/pants/pull/18164)) + +* Add the `environment` field to most Python binary target types ([#18144](https://github.com/pantsbuild/pants/pull/18144)) + +* go: don't check for `Target` attribute on stdlib packages ([#18148](https://github.com/pantsbuild/pants/pull/18148)) + +* go: fix backend to work when run in non-local environments ([#18140](https://github.com/pantsbuild/pants/pull/18140)) + +* Run `pyupgrade` until convergance ([#18128](https://github.com/pantsbuild/pants/pull/18128)) + +### Documentation + +* docs: use an example black version that does not explode ([#18270](https://github.com/pantsbuild/pants/pull/18270)) + +* docs: fix typo ([#18238](https://github.com/pantsbuild/pants/pull/18238)) + +* Update the stated release target to match our desired reality. ([#18234](https://github.com/pantsbuild/pants/pull/18234)) + +* docs: add What's New section for 2.15.x release notes (#18226) ([#18232](https://github.com/pantsbuild/pants/pull/18232)) + +* Add warning about dependency inference + `extra_type_stubs`. ([#17076](https://github.com/pantsbuild/pants/pull/17076)) + +* docs: further updates to 2.16.x What's New ([#18227](https://github.com/pantsbuild/pants/pull/18227)) + +* Jacob Floyd/Huon Wilson updates to team page ([#18221](https://github.com/pantsbuild/pants/pull/18221)) + +* docs: add "What's New" section to 2.16 release notes ([#18146](https://github.com/pantsbuild/pants/pull/18146)) + +* Document the new get-pants.sh name. ([#18137](https://github.com/pantsbuild/pants/pull/18137)) + +* Add Pylint post ([#18079](https://github.com/pantsbuild/pants/pull/18079)) + +* Change to Pantsbuild's custom YouTube url ([#18133](https://github.com/pantsbuild/pants/pull/18133)) + +* Recommend checking the pantsup.sh script in. ([#18120](https://github.com/pantsbuild/pants/pull/18120)) + +* Don't update old release notes. ([#18123](https://github.com/pantsbuild/pants/pull/18123)) + +* Change `./pants` to `pants` in the docs ([#18121](https://github.com/pantsbuild/pants/pull/18121)) + + +## 2.16.0.dev6 (Jan 29, 2023) + +### New Features + +* go: add `environment` field to `go_binary` ([#18113](https://github.com/pantsbuild/pants/pull/18113)) + +* Add experimental backend for ruff with lint and fmt goals ([#17945](https://github.com/pantsbuild/pants/pull/17945)) + +* Add support for `fmt` cue files. ([#18106](https://github.com/pantsbuild/pants/pull/18106)) + +* Add new experimental backend for CUE with initial support for the `lint` goal. ([#17943](https://github.com/pantsbuild/pants/pull/17943)) + +* Add yamllint as a lint tool for YAML sources ([#17821](https://github.com/pantsbuild/pants/pull/17821)) + +* lint: add pydocstyle python backend ([#17596](https://github.com/pantsbuild/pants/pull/17596)) + +### User API Changes + +* Upgrade Pex to 2.1.121. ([#18037](https://github.com/pantsbuild/pants/pull/18037)) + +### Plugin API Changes + +* Make the python dep inference script extensible. ([#17997](https://github.com/pantsbuild/pants/pull/17997)) + +* Remove some dead code from `lockfile.py` ([#18041](https://github.com/pantsbuild/pants/pull/18041)) + +### Bug fixes + +* Inject a path-safe target spec into `experimental_shell_command` etc processes ([#18092](https://github.com/pantsbuild/pants/pull/18092)) + +* docker: Allow overriding FROM args when determining upstream image dependencies ([#18009](https://github.com/pantsbuild/pants/pull/18009)) + +* Make mypy cache per-repo ([#18043](https://github.com/pantsbuild/pants/pull/18043)) + +* Fix caching of PATH lookups in remote execution ([#18026](https://github.com/pantsbuild/pants/pull/18026)) + +### Documentation + +* docs: make tutorials to get started writing plugins visible on readme pages ([#18083](https://github.com/pantsbuild/pants/pull/18083)) + +* Document new pants launcher binary, aka scie-pants. ([#18056](https://github.com/pantsbuild/pants/pull/18056)) + +* Front matter for new tutorial pages. ([#18074](https://github.com/pantsbuild/pants/pull/18074)) + +* Cosmetic fix for current value information in help output for pass-through arguments. ([#18051](https://github.com/pantsbuild/pants/pull/18051)) + +* docs: add pydocstyle to the docs and help reference ([#18033](https://github.com/pantsbuild/pants/pull/18033)) + +* docs: add tutorial to get started writing plugins: No 3 ([#18018](https://github.com/pantsbuild/pants/pull/18018)) + + +## 2.16.0.dev5 (Jan 16, 2023) + +### New Features + +* New `env()` BUILD file function. ([#17652](https://github.com/pantsbuild/pants/pull/17652)) + +* Support REPL command history. ([#17959](https://github.com/pantsbuild/pants/pull/17959)) + +* Resolve Python dep inference ambiguity via locality. ([#17931](https://github.com/pantsbuild/pants/pull/17931)) + +* Add targets to re-wrap source files in different `SourcesField` types. ([#17877](https://github.com/pantsbuild/pants/pull/17877)) + +* Allow plugins to add custom schema/authority URL handler rules ([#17898](https://github.com/pantsbuild/pants/pull/17898)) + +* Support freezing command line args and env vars into pex binaries. ([#17905](https://github.com/pantsbuild/pants/pull/17905)) + +* Support catching `@rule` errors ([#17911](https://github.com/pantsbuild/pants/pull/17911)) + +### User API Changes + +* Ugrade Pex to 2.1.120 ([#17957](https://github.com/pantsbuild/pants/pull/17957)) + +* Adds `workdir` field for `experimental_shell_command` and friends ([#17928](https://github.com/pantsbuild/pants/pull/17928)) + +### Bug fixes + +* Let pyright see dependencies in other source roots. ([#18014](https://github.com/pantsbuild/pants/pull/18014)) + +* go: gather and link transitive prebuilt object files for cgo mode ([#17971](https://github.com/pantsbuild/pants/pull/17971)) + +* add skip_pyright field to python test targets ([#17960](https://github.com/pantsbuild/pants/pull/17960)) + +* Allow `experimental_shell_command`/`experimental_run_in_sandbox` to specify `output_`s from anywhere under the buildroot ([#17938](https://github.com/pantsbuild/pants/pull/17938)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. ([#17939](https://github.com/pantsbuild/pants/pull/17939)) + +### Documentation + +* WSL disclaimer in Getting Started/Prerequisites ([#18000](https://github.com/pantsbuild/pants/pull/18000)) + +* Add Daniel Goldman and Darcy Shen to team page ([#17921](https://github.com/pantsbuild/pants/pull/17921)) + +* Clarify runtime vs. complete_platforms for serverless. ([#18001](https://github.com/pantsbuild/pants/pull/18001)) + +* docs: add tutorial to get started writing plugins: No 2 ([#17890](https://github.com/pantsbuild/pants/pull/17890)) + +* docs: generate a JSON schema file to be used in IDEs when editing pants.toml ([#17915](https://github.com/pantsbuild/pants/pull/17915)) + +* docs: fix markdown inline code typo in a docstring ([#18002](https://github.com/pantsbuild/pants/pull/18002)) + +* fix type in `check` help output ([#17969](https://github.com/pantsbuild/pants/pull/17969)) + +* Document how to update the pants script. ([#17976](https://github.com/pantsbuild/pants/pull/17976)) + +* Add Kaiko to "who uses Pants" page. ([#17949](https://github.com/pantsbuild/pants/pull/17949)) + +* docs: provide a link to Google Cloud Function in the backend docstring ([#17948](https://github.com/pantsbuild/pants/pull/17948)) + +* docs: add info about beta stage support of protobuf for Scala and Java ([#17935](https://github.com/pantsbuild/pants/pull/17935)) + +* docs: add the first tutorial on writing plugins to readme docs directory ([#17930](https://github.com/pantsbuild/pants/pull/17930)) + +* docs: reformat the kotlin docs to have better line breaks on readme.com ([#17929](https://github.com/pantsbuild/pants/pull/17929)) + +* Update and reorganize resource hub ([#17922](https://github.com/pantsbuild/pants/pull/17922)) + +* Add Payhere to user list. ([#17917](https://github.com/pantsbuild/pants/pull/17917)) + +* Nudge more technical support toward GH Discussions ([#17906](https://github.com/pantsbuild/pants/pull/17906)) + +* go: update docs to remove caveats about implemented features ([#17913](https://github.com/pantsbuild/pants/pull/17913)) + + +## 2.16.0.dev4 (Dec 30, 2022) + +### New Features + +* Add [buf] config and config_discovery options ([#17885](https://github.com/pantsbuild/pants/pull/17885)) + +* New help topic: `backends`. ([#17600](https://github.com/pantsbuild/pants/pull/17600)) + +* Make pants work when the uid doesn't map to a user. ([#17881](https://github.com/pantsbuild/pants/pull/17881)) + +* Make JVM sources runnable ([#17847](https://github.com/pantsbuild/pants/pull/17847)) + +* Support `python_requirement` as a `run`/`experimental_run_in_sandbox` target ([#17864](https://github.com/pantsbuild/pants/pull/17864)) + +* Support `experimental_run_in_sandbox`/`./pants run` for `jvm_artifact` targets ([#17827](https://github.com/pantsbuild/pants/pull/17827)) + +* go: support the `go test` profiling options ([#17836](https://github.com/pantsbuild/pants/pull/17836)) + +* Add output_path field to python_distribution. ([#17841](https://github.com/pantsbuild/pants/pull/17841)) + +### User API Changes + +* Upgrade default mypy-protobuf version to 3.4 ([#17887](https://github.com/pantsbuild/pants/pull/17887)) + +* allow each resolve to be exported for multiple python interpreters ([#17711](https://github.com/pantsbuild/pants/pull/17711)) + +* More default Python module mappings. ([#17879](https://github.com/pantsbuild/pants/pull/17879)) + +* Make export cleanup a subset of `dist/export`, not the whole thing ([#17849](https://github.com/pantsbuild/pants/pull/17849)) + +* Unify the messages for lockfile validation errors. ([#17842](https://github.com/pantsbuild/pants/pull/17842)) + +* Unify validation of tool and user lockfile metadata. ([#17834](https://github.com/pantsbuild/pants/pull/17834)) + +* Detect Pants-generated lockfiles before attempting to validate. ([#17833](https://github.com/pantsbuild/pants/pull/17833)) + +### Plugin API Changes + +* Remove `immutable_input_digests` from shell code ([#17886](https://github.com/pantsbuild/pants/pull/17886)) + +* Default `use_pantsd` to `False` in `run_pants` ([#17874](https://github.com/pantsbuild/pants/pull/17874)) + +* Remove the ToolCustomLockfile/ToolDefaultLockfile classes. ([#17843](https://github.com/pantsbuild/pants/pull/17843)) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts ([#17855](https://github.com/pantsbuild/pants/pull/17855)) + +### Performance + +* Bring back hardlinking big files ([#17878](https://github.com/pantsbuild/pants/pull/17878)) + +* Don't invalidate watched files if non-perms metadata changed ([#17875](https://github.com/pantsbuild/pants/pull/17875)) + +### Documentation + +* docs: mention name clashing between custom goals and options when writing plugins ([#17899](https://github.com/pantsbuild/pants/pull/17899)) + +* docs: add tutorial to get started writing plugins: No 1 ([#17732](https://github.com/pantsbuild/pants/pull/17732)) + +* Document batched `pytest` execution. ([#17845](https://github.com/pantsbuild/pants/pull/17845)) + +* Tweak the docs about __defaults__. ([#17829](https://github.com/pantsbuild/pants/pull/17829)) + +* docs: extend python test goal with info on collecting tests with pytests ([#17894](https://github.com/pantsbuild/pants/pull/17894)) + + +## 2.16.0.dev3 (Dec 16, 2022) + +### New Features + +* Allow targets that implement `RunFieldSet` to be executed in the sandbox for side-effects ([#17716](https://github.com/pantsbuild/pants/pull/17716)) + +* `python_requirements` target generator can parse PEP 621 pyproject.toml files ([#16932](https://github.com/pantsbuild/pants/pull/16932)) + +### User API Changes + +* Bump default version of shfmt from 3.2.4 to 3.6.0 ([#17777](https://github.com/pantsbuild/pants/pull/17777)) + +* An enum of Python export formats. ([#17800](https://github.com/pantsbuild/pants/pull/17800)) + +* Add export-codegen goal to more backends ([#17773](https://github.com/pantsbuild/pants/pull/17773)) + +* Adds `execution_dependencies` for `experimental_shell_command` ([#17743](https://github.com/pantsbuild/pants/pull/17743)) + +### Plugin API Changes + +* Remove boilerplate for run and test plugins ([#17774](https://github.com/pantsbuild/pants/pull/17774)) + +### Bug fixes + +* go: detect when `go.sum` needs additional entries filled in ([#17811](https://github.com/pantsbuild/pants/pull/17811)) + +* go: pass module sources through to linker if `${SRCDIR}` is referenced ([#17780](https://github.com/pantsbuild/pants/pull/17780)) + +* go: improve options passed to assembler invocations ([#17796](https://github.com/pantsbuild/pants/pull/17796)) + +* Explicitly use "python" ijson backend ([#17787](https://github.com/pantsbuild/pants/pull/17787)) + +* Do not clear the `pantsd` log while restarting ([#17783](https://github.com/pantsbuild/pants/pull/17783)) + +* Restore support for :all: in `only_binary`/`no_binary`. ([#17779](https://github.com/pantsbuild/pants/pull/17779)) + +* go: remove notion of separate `__obj__` directory ([#17775](https://github.com/pantsbuild/pants/pull/17775)) + +* Visibility: empty selector should match no target. ([#17763](https://github.com/pantsbuild/pants/pull/17763)) + +* [Visibility] `**/..` globs can match root level files ([#17681](https://github.com/pantsbuild/pants/pull/17681)) + +* Visibility: fix rules path for generated targets. ([#17760](https://github.com/pantsbuild/pants/pull/17760)) + +### Documentation + +* Documentation for the new visibility rules ([#17632](https://github.com/pantsbuild/pants/pull/17632)) + +* Add Doctrine's eng blog post and example repo to resource hub. ([#17810](https://github.com/pantsbuild/pants/pull/17810)) + +* Add Astranis to user list. ([#17812](https://github.com/pantsbuild/pants/pull/17812)) + +* Add Doctrine to user list ([#17793](https://github.com/pantsbuild/pants/pull/17793)) + +* Doc: update `Get` docstring for multiple inputs. ([#17730](https://github.com/pantsbuild/pants/pull/17730)) + + +## 2.16.0.dev2 (Dec 08, 2022) + +### New Features + +* go: use target spec for coverage output directories plus support import path ([#17734](https://github.com/pantsbuild/pants/pull/17734)) + +* go: add `assembler_flags` field for adding arbitrary extra assembler flags ([#17731](https://github.com/pantsbuild/pants/pull/17731)) + +* Expose target field defaults in BUILD files. ([#17649](https://github.com/pantsbuild/pants/pull/17649)) + +* Add a new "preamble" plugin ([#17682](https://github.com/pantsbuild/pants/pull/17682)) + +* go: support code coverage over multiple packages during single test ([#17701](https://github.com/pantsbuild/pants/pull/17701)) + +* go: add `linker_flags` field to `go_mod` and `go_binary` target types ([#17697](https://github.com/pantsbuild/pants/pull/17697)) + +* go: add `compiler_flags` field for adding arbitrary extra compiler flags ([#17683](https://github.com/pantsbuild/pants/pull/17683)) + +### User API Changes + +* Include transitive requirements missing for `python_distribution`. ([#17594](https://github.com/pantsbuild/pants/pull/17594)) + +* Extend default module mapping for Python 3rd-party dependency inference: pysocks and atlassian-python-api ([#17654](https://github.com/pantsbuild/pants/pull/17654)) + +### Bug fixes + +* Test DebugAdapter requests, and fix issues ([#17678](https://github.com/pantsbuild/pants/pull/17678)) + +* chdir in `rule_runner.run_interactive_process` ([#17722](https://github.com/pantsbuild/pants/pull/17722)) + +* More precise running workunit for processes executing remotely ([#17719](https://github.com/pantsbuild/pants/pull/17719)) + +* Don't strip the input of a `DictOption` file config ([#17705](https://github.com/pantsbuild/pants/pull/17705)) + +* Visibility rules: error if more than one declaration per BUILD file. ([#17669](https://github.com/pantsbuild/pants/pull/17669)) + +* Allow JVM source to depend on relocated_files target ([#17005](https://github.com/pantsbuild/pants/pull/17005)) + +* Fix bug in Go test result exit code interpretation. ([#17661](https://github.com/pantsbuild/pants/pull/17661)) + +### Performance + +* Immutably hardlink "large" files in a sandbox ([#17520](https://github.com/pantsbuild/pants/pull/17520)) + +* Run python sources with a VenvPex ([#17700](https://github.com/pantsbuild/pants/pull/17700)) + +### Documentation + +* Doc fixes and updates: ([#17708](https://github.com/pantsbuild/pants/pull/17708)) + +* docs: tidy up Writing plugins : rules-api directory files ([#17710](https://github.com/pantsbuild/pants/pull/17710)) + +* Update docker docs to clarify dependency handling. ([#17655](https://github.com/pantsbuild/pants/pull/17655)) + + +## 2.16.0.dev1 (Nov 27, 2022) + +### New Features + +* go: address sanitizer support ([#17651](https://github.com/pantsbuild/pants/pull/17651)) + +* go: add support for C/C++ memory sanitizer ([#17644](https://github.com/pantsbuild/pants/pull/17644)) + +* shell: add `experimental_test_shell_command` for arbitrary shell-driven tests ([#17640](https://github.com/pantsbuild/pants/pull/17640)) + +* support Go data race detector ([#17510](https://github.com/pantsbuild/pants/pull/17510)) + +* Add `Field.none_is_valid_value` bool class var option. ([#17577](https://github.com/pantsbuild/pants/pull/17577)) + +### User API Changes + +* Remove deprecated `run --cleanup` option. ([#17647](https://github.com/pantsbuild/pants/pull/17647)) + +* Upgrade Pex to 2.1.116. ([#17637](https://github.com/pantsbuild/pants/pull/17637)) + +### Plugin API Changes + +* Remove deprecated Platform.current. ([#17646](https://github.com/pantsbuild/pants/pull/17646)) + +### Bug fixes + +* Fix twine env vars propagation for `publish` goal. ([#17650](https://github.com/pantsbuild/pants/pull/17650)) + +* Support `source=None` for `docker_image` targets. ([#17578](https://github.com/pantsbuild/pants/pull/17578)) + +* Specify local environment for python source analysis goal ([#17603](https://github.com/pantsbuild/pants/pull/17603)) + +* go: allow use of `go_asm.h` assembly header in assembly files ([#17611](https://github.com/pantsbuild/pants/pull/17611)) + +* Visibility rule glob tweaks for `*` and `**` ([#17588](https://github.com/pantsbuild/pants/pull/17588)) + +### Documentation + +* Fix broken docs links to manual build instructions ([#17608](https://github.com/pantsbuild/pants/pull/17608)) + +* Docs: improve docs on handling option values in cli ([#17506](https://github.com/pantsbuild/pants/pull/17506)) + + +## 2.16.0.dev0 (Nov 19, 2022) + +### New Features + +* Add `environment=` to `experimental_shell_command`. ([#17575](https://github.com/pantsbuild/pants/pull/17575)) + +* Add debug goals to python ([#17057](https://github.com/pantsbuild/pants/pull/17057)) + +* Target visibility rules ([#17401](https://github.com/pantsbuild/pants/pull/17401)) + +* Emit a `__run.sh` into InteractiveProcess sandboxes. ([#17532](https://github.com/pantsbuild/pants/pull/17532)) + +* Support newer pip versions. ([#17555](https://github.com/pantsbuild/pants/pull/17555)) + +* New dependency rules Plugin API ([#17550](https://github.com/pantsbuild/pants/pull/17550)) + +* Export metadata about a packaged docker image ([#17299](https://github.com/pantsbuild/pants/pull/17299)) + +* Don't require hardcoded name in `python_distribution.provides` ([#17522](https://github.com/pantsbuild/pants/pull/17522)) + +* Add `per_platform` object ([#17334](https://github.com/pantsbuild/pants/pull/17334)) + +* Process output capturing is symlink-aware ([#17496](https://github.com/pantsbuild/pants/pull/17496)) + +* go: introduce `GoBuildOptions` and `cgo_enabled` field ([#17475](https://github.com/pantsbuild/pants/pull/17475)) + +* Disambiguate Python module providers by level of ancestry. ([#17489](https://github.com/pantsbuild/pants/pull/17489)) + +* go: support ".syso" prebuilt object files ([#17479](https://github.com/pantsbuild/pants/pull/17479)) + +* Add Docker registries `use_local_alias` configuration option. ([#17265](https://github.com/pantsbuild/pants/pull/17265)) + +* Proposal for supporting Jar shading rules ([#17251](https://github.com/pantsbuild/pants/pull/17251)) + +* A --resolve flag, to specify the resolves to export. ([#17416](https://github.com/pantsbuild/pants/pull/17416)) + +* Handle duplicate JAR entries in `deploy_jar` ([#17419](https://github.com/pantsbuild/pants/pull/17419)) + +### User API Changes + +* Upgrade default version of golangci-lint to 1.50.1 ([#17574](https://github.com/pantsbuild/pants/pull/17574)) + +* Deprecate the old export semantics. ([#17465](https://github.com/pantsbuild/pants/pull/17465)) + +* Add `restartable` field to `python_sources` ([#17400](https://github.com/pantsbuild/pants/pull/17400)) + +* Deprecate the `# Dependees` column name in the py-constraints summary. ([#17399](https://github.com/pantsbuild/pants/pull/17399)) + +* Rename the dependees goal to dependents. ([#17397](https://github.com/pantsbuild/pants/pull/17397)) + +* Rename --changed-dependees to --changed-dependents ([#17395](https://github.com/pantsbuild/pants/pull/17395)) + +### Bug fixes + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox ([#17566](https://github.com/pantsbuild/pants/pull/17566)) + +* Created an `NpxToolBase` as an inheritable Subsystem for `nodejs` tools ([#17567](https://github.com/pantsbuild/pants/pull/17567)) + +* Fix loading of `SymlinkNodes` from the `Store`. ([#17549](https://github.com/pantsbuild/pants/pull/17549)) + +* Do not try to create `""` output directory in `CreateArchive` ([#17538](https://github.com/pantsbuild/pants/pull/17538)) + +* Persist digests before emitting them in `fs_util` ([#17525](https://github.com/pantsbuild/pants/pull/17525)) + +* Fix memoization of `CoarsenedTarget.closure` ([#17516](https://github.com/pantsbuild/pants/pull/17516)) + +* Support parsing targets from additional paths not containing BUILD files. ([#17451](https://github.com/pantsbuild/pants/pull/17451)) + +* Ensure lockfile target exists before injecting a dependency to it. ([#17365](https://github.com/pantsbuild/pants/pull/17365)) + +* Ensure correct eq/hash semantics for PythonArtifact. ([#17484](https://github.com/pantsbuild/pants/pull/17484)) + +* Isolate config seed values from the DEFAULT section. ([#17474](https://github.com/pantsbuild/pants/pull/17474)) + +* Fix poorly understood stdout redirection issue. ([#17471](https://github.com/pantsbuild/pants/pull/17471)) + +* Fix propagation of the remote-execution-append-only-caches path ([#17469](https://github.com/pantsbuild/pants/pull/17469)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox ([#17235](https://github.com/pantsbuild/pants/pull/17235)) + +* Plumb symlink support through the Pants engine ([#16844](https://github.com/pantsbuild/pants/pull/16844)) + +* Flip the default for `pull` on `docker_image` to `False` ([#17459](https://github.com/pantsbuild/pants/pull/17459)) + +* Merge pytest addopts ([#16614](https://github.com/pantsbuild/pants/pull/16614)) + +* Fix dep inference from `shuint2_tests` targets. ([#17417](https://github.com/pantsbuild/pants/pull/17417)) + +* Fix `EnvironmentName` used in `test` runs ([#17412](https://github.com/pantsbuild/pants/pull/17412)) + +* Add the m1 homebrew bin dir to the system binary search path. ([#17411](https://github.com/pantsbuild/pants/pull/17411)) + +* Restore debug hints for `test` execution ([#17406](https://github.com/pantsbuild/pants/pull/17406)) + +### Performance + +* Skip loading of local cache data when possible ([#17495](https://github.com/pantsbuild/pants/pull/17495)) + +* Symlink site-packages into `pylint` venvs when possible. ([#17488](https://github.com/pantsbuild/pants/pull/17488)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule ([#17487](https://github.com/pantsbuild/pants/pull/17487)) + +### Documentation + +* correct docs: direnv can't save ulimit ([#17561](https://github.com/pantsbuild/pants/pull/17561)) + +* Update team pages for SJ and Dan! ([#17534](https://github.com/pantsbuild/pants/pull/17534)) + +* Fix line breaks in a docs page. ([#17527](https://github.com/pantsbuild/pants/pull/17527)) + +* Clarify how `__defaults__` apply to target generators. ([#17493](https://github.com/pantsbuild/pants/pull/17493)) + +* Fix typo in docs: debug-adaptor should be debug-adapter ([#17452](https://github.com/pantsbuild/pants/pull/17452)) + +* Update `nuke_if_too_big` documentation ([#17429](https://github.com/pantsbuild/pants/pull/17429)) + +* Fix version templating in `vcs_version` docs ([#17423](https://github.com/pantsbuild/pants/pull/17423)) diff --git a/versioned_docs/version-2.19/notes/2.17.x.md b/versioned_docs/version-2.19/notes/2.17.x.md new file mode 100644 index 000000000..74642cda4 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.17.x.md @@ -0,0 +1,667 @@ +# 2.17.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +## What's New + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +### Overall + +The [`pants` launcher binary](https://github.com/pantsbuild/scie-pants) (aka `scie-pants`) is now the recommended way to run Pants. +Use of a `./pants` shell script in a repository is deprecated. + +The `pants` launcher has numerous benefits, such as: + +* automatically download and maintain a Python distribution for running Pants +* run `pants` from any directory within a repository and not just the build root +* far less overhead when starting commands (up to 4-5×) + +See the [Pants installation +instructions](https://www.pantsbuild.org/docs/installation) for additional information on how to migrate to the `pants` launcher binary. + +Related to this, pants' distribution model is changing, and 2.17 will be the last version where: + +* the `pantsbuild.pants` package is published to PyPI. Use [the `pants_requirements` target](https://www.pantsbuild.org/v2.17/docs/reference-pants_requirements) for installing the requisite packages for plugins, rather than `python_requirement` or similar. +* the universal (cross-platform) `pants` PEX is published to GitHub Releases. For future releases, smaller per-platform PEXes will be attached instead. + +### Performance + +As mentioned above, the new launcher binary reduces start-up overhead. + +Large files are now cached as standalone files on disk, rather than stored directly in the internal database pants uses for cache (but still under the `~/.cache/pants/lmdb_store` directory). This improves performance for manipulating these files, especially when the cache directory and sandbox temporary directory are on the same file system and thus allow hard-linking. + +### Backends + +#### Python + +Python dependencies are now analyzed via an intrinsic rule implemented in Rust for increased performance +over the prior Python implementation of the rule. See [#18854](https://github.com/pantsbuild/pants/pull/18854) for +discusion of the performance improvements. + +Exported mutable virtualenvs can now include [PEP-660](https://peps.python.org/pep-0660/) editable installs of `python_distribution` targets. +To enable this feature for a resolve, add that resolve's name to the `[export].py_editables_in_resolves` list in `pants.toml`. +See [#18639](https://github.com/pantsbuild/pants/pull/18639) for details on Pants' PEP-660 implementation. + +The default `pip` Pants uses under the hood has changed from 20.3.4 to 23.1.2. This newer `pip` has better dependency resolution performance in many cases, but may give different results than the earlier `pip`. Of course those results will still be correct in the sense that they will be compatible with your requirements and constraints. + +The `python_awslambda` or `python_google_cloud_function` targets now support a new 'zip' layout, as recommended by the cloud vendors. This layout gives smaller packages and faster cold starts than the existing Lambdex layout, and will become the default in 2.18. See the docs [for `python_awslambda`](https://www.pantsbuild.org/v2.17/docs/awslambda-python#migrating-from-pants-216-and-earlier) and [for `python_google_cloud_function`](https://www.pantsbuild.org/v2.17/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier). + +The default value for the `[python].interpreter_constraints` option was deprecated in 2.16 and is now removed: `pants.toml` must provide this option. We recommend constraining to a single interpreter minor version if you can, for instance: `interpreter_constraints = ['==3.11.*']`. See [the Interpreter Compatibility docs for more details](https://www.pantsbuild.org/v2.17/docs/python-interpreter-compatibility). + +#### Docker + +The Docker backend now supports authenticating with registries via the `DOCKER_HOST`, `DOCKER_CONFIG` and `DOCKER_CERT_PATH` environment variables. + +#### New: Javascript (experimental!) + +Pants now has _very early_ experimental support for Javascript thanks to ongoing efforts by Tobias Nilsson and +Theo Ribeiro. Please note that the Javascript backend is still incomplete, is being actively developed, and _probably +has critical bugs_. Despite that, the Pants maintainers would appreciate any feedback from the community to help +guide our development efforts. + +Supported goals are: + +* `test`: Letting you run tests via runners installed with the package manager of your choice. +* `package` goal, either to run a customized `package.json` script that produces an artifact via `node_build_script`, or to pack a tarball for npm-registry publication via the `npm_distribution` target. +* `tailor`: Generates build file targets for `*.js`, `*.test.js` and `package.json` files. +* `generate-lockfile`: Creates the lockfile in the format matching a projects package manager. + +The backend supports all package managers provided by `corepack`. `yarn@v2` and [PlugNPlay](https://yarnpkg.com/features/pnp) is not supported. + +Enable the `pants.backend.experimental.javascript` backend to try out this support. Please [file issues](https://github.com/pantsbuild/pants/issues/new/choose) for any issues encountered, and follow along [the stabilization ticket on github](https://github.com/pantsbuild/pants/issues/19240). + +#### New: Taplo TOML Formatter + +Pants now supports the [Taplo TOML formatter](https://taplo.tamasfe.dev/). Enable the `pants.backend.tools.taplo` +backend to add this support. + +### Plugin API Changes + +Rules should now request output types which do not need an input type via the new one-argument form of `Get`. For +example, rules can now write `await Get(ChosenLocalEnvironmentName)`. Certain request types which exists only to +work around the previous lack of such synax are now deprecated in favor of the one argument `Get()` form. + +The `PythonBinary` type is now deprecated, use `PythonBuildStandalone` instead. + +## 2.17.1rc1 (Oct 06, 2023) + +### Bug Fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19969](https://github.com/pantsbuild/pants/pull/19969)) + +* Fetch shellcheck from vscode-shellcheck for M1 support (Cherry-pick of #19945) ([#19952](https://github.com/pantsbuild/pants/pull/19952)) + +* Immediately invalidate written files in write_digest (Cherry-pick of #19903) ([#19949](https://github.com/pantsbuild/pants/pull/19949)) + +* Fix "failed to create hardlink" error due to multiple mounts on the same device (Cherry-pick of #19894) ([#19914](https://github.com/pantsbuild/pants/pull/19914)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19906](https://github.com/pantsbuild/pants/pull/19906)) + +### Documentation + +* Add Tom and Gautham to the Contributors page. (Cherry-pick of #19955) ([#19962](https://github.com/pantsbuild/pants/pull/19962)) + +* Remove references to PyPI/`pantsbuild.pants` wheels in docs (Cherry-pick of #19924) ([#19936](https://github.com/pantsbuild/pants/pull/19936)) + +## 2.17.1rc0 (Sep 20, 2023) + +### New Features + +* `with contextlib.suppress(ImportError)` weakens imports (Cherry-pick of #19293) ([#19789](https://github.com/pantsbuild/pants/pull/19789)) + +### Bug Fixes + +* Port `pantsd` fingerprinting to Rust, and validate from native client (Cherry-pick of #19833) ([#19867](https://github.com/pantsbuild/pants/pull/19867)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19855](https://github.com/pantsbuild/pants/pull/19855)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19837](https://github.com/pantsbuild/pants/pull/19837)) + +* Allow requesters of `TargetRootsToFieldSets` to turn off the secondary ownership warning (Cherry-pick of #19721) ([#19734](https://github.com/pantsbuild/pants/pull/19734)) + +### Performance + +* Remove memoization of the `Paths` intrinsic to reduce memory usage (Cherry-pick of #19689) ([#19717](https://github.com/pantsbuild/pants/pull/19717)) + +### Documentation + +* docs: remove Toolchain references (cherrypick #19508) ([#19828](https://github.com/pantsbuild/pants/pull/19828)) + +* docs: Improve the help string for the global option 'PANTS_CONCURRENT'. (Cherry-pick of #19822) ([#19824](https://github.com/pantsbuild/pants/pull/19824)) + +* Fix Documentation (InitialConfiguration) go backend (Cherry-pick of #19806) ([#19809](https://github.com/pantsbuild/pants/pull/19809)) + +* Fix typoed artifact name in Lambda docs (Cherry-pick of #19739) ([#19746](https://github.com/pantsbuild/pants/pull/19746)) + +* Update the docs changelog to include 2.17.x. (Cherry-pick of #19729) ([#19736](https://github.com/pantsbuild/pants/pull/19736)) + +## 2.17.0 (Aug 29, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.17.0rc5 (Aug 26, 2023) + +### Bug Fixes + +* Remove `tensorboard` mapping from our default mapping (Cherry-pick of #19673) ([#19677](https://github.com/pantsbuild/pants/pull/19677)) + +### Documentation + +* Backport to 2.17: docs: set EnvironmentBehavior in plugin Goal examples (#19590) ([#19664](https://github.com/pantsbuild/pants/pull/19664)) + +## 2.17.0rc4 (Aug 23, 2023) + +### User API Changes + +* Require scie-pants 0.9.2 or newer, for new distribution model (Cherry-pick of #19654) ([#19655](https://github.com/pantsbuild/pants/pull/19655)) + +* Add Python 3.12 to the default interpreter universe (Cherry-pick of #19641) ([#19651](https://github.com/pantsbuild/pants/pull/19651)) + +### Bug Fixes + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19652](https://github.com/pantsbuild/pants/pull/19652)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19650](https://github.com/pantsbuild/pants/pull/19650)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19648](https://github.com/pantsbuild/pants/pull/19648)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19615](https://github.com/pantsbuild/pants/pull/19615)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19616](https://github.com/pantsbuild/pants/pull/19616)) + +* Add path to cache key for Rust dep inference, for relative imports (cherry-pick of #19630) ([#19640](https://github.com/pantsbuild/pants/pull/19640)) + +### Documentation + +* Backport to 2.17: Fix dead doc links (#19546) ([#19659](https://github.com/pantsbuild/pants/pull/19659)) + +* Additional mentions and tweaks in 2.17's "What's new" (Cherry-pick of #19629) ([#19642](https://github.com/pantsbuild/pants/pull/19642)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19639](https://github.com/pantsbuild/pants/pull/19639)) + +* docs: fix markdown inconsistencies (Cherry pick of #19363) ([#19622](https://github.com/pantsbuild/pants/pull/19622)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19597](https://github.com/pantsbuild/pants/pull/19597)) + +## 2.17.0rc3 (Aug 13, 2023) + +### User API Changes + +* Upgrade the default pip to v23.1.2. (Cherry-pick of #19538) ([#19541](https://github.com/pantsbuild/pants/pull/19541)) + +### Bug Fixes + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19593](https://github.com/pantsbuild/pants/pull/19593)) + +* Fix the new tool lockfile deprecation message. ([#19565](https://github.com/pantsbuild/pants/pull/19565)) + +* Fix golangci-lint runner script (Cherry-pick of #19015) ([#19473](https://github.com/pantsbuild/pants/pull/19473)) + +### Documentation + +* Initial draft of What's New for v2.17.x (Cherry-pick of #19168) ([#19595](https://github.com/pantsbuild/pants/pull/19595)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19576](https://github.com/pantsbuild/pants/pull/19576)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19570](https://github.com/pantsbuild/pants/pull/19570)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19561](https://github.com/pantsbuild/pants/pull/19561)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19494](https://github.com/pantsbuild/pants/pull/19494)) + +## 2.17.0rc2 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19456](https://github.com/pantsbuild/pants/pull/19456)) + +* Use the "package_name" variable to fix an UnboundLocalError. (Cherry-pick of #19433) ([#19453](https://github.com/pantsbuild/pants/pull/19453)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19313](https://github.com/pantsbuild/pants/pull/19313)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19419](https://github.com/pantsbuild/pants/pull/19419)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19421](https://github.com/pantsbuild/pants/pull/19421)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19416](https://github.com/pantsbuild/pants/pull/19416)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19321](https://github.com/pantsbuild/pants/pull/19321)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19329](https://github.com/pantsbuild/pants/pull/19329)) + +## 2.17.0rc1 (Jun 08, 2023) + +### Plugin API Changes + +* Deprecate using `PythonBinary` (Cherry-pick of #19209) ([#19222](https://github.com/pantsbuild/pants/pull/19222)) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19268](https://github.com/pantsbuild/pants/pull/19268)) + +* Add taplo to the release (Cherry-pick of #19258) ([#19259](https://github.com/pantsbuild/pants/pull/19259)) + +* Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) ([#19255](https://github.com/pantsbuild/pants/pull/19255)) + +* Fix secondary ownership warning semantics (Cherry-pick of #19191) ([#19224](https://github.com/pantsbuild/pants/pull/19224)) + +## 2.17.0rc0 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version/extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19211](https://github.com/pantsbuild/pants/pull/19211)) + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19136](https://github.com/pantsbuild/pants/pull/19136)) + +* Implement layout="zip" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) ([#19120](https://github.com/pantsbuild/pants/pull/19120)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19087](https://github.com/pantsbuild/pants/pull/19087)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19083](https://github.com/pantsbuild/pants/pull/19083)) + +### Bug Fixes + +* Discover Scala REPL main class and coordinates (Cherry-pick of #19189) ([#19203](https://github.com/pantsbuild/pants/pull/19203)) + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19197](https://github.com/pantsbuild/pants/pull/19197)) + +* Avoid extra `.` in `from .. import` parent imports in Rust Python dep inference (Cherry-pick of #19175) ([#19177](https://github.com/pantsbuild/pants/pull/19177)) + +* Don't try and garbage collect tempfiles (Cherry-pick of #19103) ([#19113](https://github.com/pantsbuild/pants/pull/19113)) + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19138](https://github.com/pantsbuild/pants/pull/19138)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19111](https://github.com/pantsbuild/pants/pull/19111)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19207](https://github.com/pantsbuild/pants/pull/19207)) + +* Adjust FaaS docs for `layout = "zip"` (Cherry-pick of #19180) ([#19198](https://github.com/pantsbuild/pants/pull/19198)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19109](https://github.com/pantsbuild/pants/pull/19109)) + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19115](https://github.com/pantsbuild/pants/pull/19115)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19091](https://github.com/pantsbuild/pants/pull/19091)) + +## 2.17.0a1 (May 19, 2023) + +Due to infrastructure issues, `2.17.0a1` is a second attempt at publishing `2.17.0a0`. + +## 2.17.0a0 (May 18, 2023) + +NOTE: `2.17.0a0` was not released to PyPI due to infrastructure issues. + +### New Features + +* Add a workunit logging plugin ([#18984](https://github.com/pantsbuild/pants/pull/18984)) + +* javascript: Add `yarn@v1` support ([#18928](https://github.com/pantsbuild/pants/pull/18928)) + +* javascript: Support Node.js subpath imports ([#18934](https://github.com/pantsbuild/pants/pull/18934)) + +* Add Taplo toml formatter ([#18865](https://github.com/pantsbuild/pants/pull/18865)) + +* Include the Pants native client in released wheels ([#18957](https://github.com/pantsbuild/pants/pull/18957)) + +* Extract Python dependencies in an intrinsic ([#18854](https://github.com/pantsbuild/pants/pull/18854)) + +### User API Changes + +* Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. ([#19028](https://github.com/pantsbuild/pants/pull/19028)) + +* Support Python requirement target addrs in tool requirements. ([#19014](https://github.com/pantsbuild/pants/pull/19014)) + +* javascript: Add an explicit `npm_distribution` target instead of coupling to `node_package` ([#18925](https://github.com/pantsbuild/pants/pull/18925)) + +* Shorten the deprecation for `export` without `--resolve`. ([#19000](https://github.com/pantsbuild/pants/pull/19000)) + +* Upgrade Pex to 2.1.137. ([#19003](https://github.com/pantsbuild/pants/pull/19003)) + +* Remove the underlying implementation of `anonymous-telemetry` ([#18952](https://github.com/pantsbuild/pants/pull/18952)) + +### Plugin API Changes + +* Port Django migrations inference away from `PythonDependencyVisitorRequest` ([#19008](https://github.com/pantsbuild/pants/pull/19008)) + +* fmtrequest -> abstractfmtrequest ([#18935](https://github.com/pantsbuild/pants/pull/18935)) + +### Bug Fixes + +* Use `{bin_name()} run` as `$0` in `run_shell_command` ([#19020](https://github.com/pantsbuild/pants/pull/19020)) + +* Make `DigestSubset` symlink-aware ([#18963](https://github.com/pantsbuild/pants/pull/18963)) + +* javascript: Do not add literal {chroot} to pnpm cache path ([#18921](https://github.com/pantsbuild/pants/pull/18921)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` ([#19019](https://github.com/pantsbuild/pants/pull/19019)) + +* Docs tweaks for 2.16.x ([#19009](https://github.com/pantsbuild/pants/pull/19009)) + +* Fix example `first_party_dependency_version_scheme` in docs ([#18993](https://github.com/pantsbuild/pants/pull/18993)) + +## 2.17.0.dev5 (May 08, 2023) + +### New Features + +* javascript: Implement dependency inference opt-out and improve resillience ([#18931](https://github.com/pantsbuild/pants/pull/18931)) + +* javascript: Add support for the pnpm package manager ([#18864](https://github.com/pantsbuild/pants/pull/18864)) + +* Eagerly clean running nodes rather than interrupting them. ([#18855](https://github.com/pantsbuild/pants/pull/18855)) + +* javascript: Nodejs tests batch support ([#18742](https://github.com/pantsbuild/pants/pull/18742)) + +* New API type: `CurrentExecutingGoals`. ([#18788](https://github.com/pantsbuild/pants/pull/18788)) + +### User API Changes + +* javascript: Support `package` goal in `node_build_script` target ([#18926](https://github.com/pantsbuild/pants/pull/18926)) + +* Deprecate running Pants outside scie-pants. ([#18833](https://github.com/pantsbuild/pants/pull/18833)) + +* Upgrade Pex to 2.1.135. ([#18876](https://github.com/pantsbuild/pants/pull/18876)) + +### Plugin API Changes + +* Remove redundant PythonToolBase/JvmToolBase features. ([#18805](https://github.com/pantsbuild/pants/pull/18805)) + +### Bug Fixes + +* Ensure packaged artefacts are fully replaced in dist/ ([#18930](https://github.com/pantsbuild/pants/pull/18930)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* javascript: Handle package.json placed at the root of the repository ([#18919](https://github.com/pantsbuild/pants/pull/18919)) + +* Actually run deprecated targets fixer ([#18860](https://github.com/pantsbuild/pants/pull/18860)) + +* Remove existing entry if any when materialising symlink ([#18873](https://github.com/pantsbuild/pants/pull/18873)) + +* Ensure non-ambiguous args/env vars injection into PEXes ([#18861](https://github.com/pantsbuild/pants/pull/18861)) + +* Handle workdir="."/default properly in run_shell_command ([#18840](https://github.com/pantsbuild/pants/pull/18840)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths ([#18814](https://github.com/pantsbuild/pants/pull/18814)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. ([#18713](https://github.com/pantsbuild/pants/pull/18713)) + +* help backends: Only list enabled experimental backends unless advanced help. ([#18821](https://github.com/pantsbuild/pants/pull/18821)) + +* Use build root as workdir for shell_command(workdir="") ([#18813](https://github.com/pantsbuild/pants/pull/18813)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. ([#18826](https://github.com/pantsbuild/pants/pull/18826)) + +### Performance + +* Optimize `Target` and `FieldSet` operations ([#18917](https://github.com/pantsbuild/pants/pull/18917)) + +* Triage some noqa: PNT30 await-in-loops ([#18831](https://github.com/pantsbuild/pants/pull/18831)) + +### Documentation + +* Update the identity of the response team for CoC violation reporting. ([#16410](https://github.com/pantsbuild/pants/pull/16410)) + +* Fix adhoc output_... example, document run_shell_command workdir changes ([#18894](https://github.com/pantsbuild/pants/pull/18894)) + +* Add missing backtick in help string ([#18907](https://github.com/pantsbuild/pants/pull/18907)) + +* Add Salesforce to the users list ([#18891](https://github.com/pantsbuild/pants/pull/18891)) + +* update troubleshooting document about self-hosted action runner ([#18900](https://github.com/pantsbuild/pants/pull/18900)) + +* Credit the Works on ARM program for our CI resources. ([#18892](https://github.com/pantsbuild/pants/pull/18892)) + +* feat: update installation.md ([#18836](https://github.com/pantsbuild/pants/pull/18836)) + +* Remove reference to readme.com as the way to edit documentation ([#18863](https://github.com/pantsbuild/pants/pull/18863)) + +* Fix library name typo in third party example ([#18862](https://github.com/pantsbuild/pants/pull/18862)) + +* Update mypy and pytest documentation to refer to install_from_resolve ([#18791](https://github.com/pantsbuild/pants/pull/18791)) + +* Include `symbols` as topic in usage help. ([#18825](https://github.com/pantsbuild/pants/pull/18825)) + +* docs: reorder contributor steps, rustup is required for git hooks install to work smoothly ([#18828](https://github.com/pantsbuild/pants/pull/18828)) + +## 2.17.0.dev4 (Apr 23, 2023) + +### New Features + +* javascript: Manage `npm` version with corepack ([#18748](https://github.com/pantsbuild/pants/pull/18748)) + +* `python_distribution` editable installs in exports ([#18639](https://github.com/pantsbuild/pants/pull/18639)) + +### User API Changes + +* Default to using the entire tool lockfile. ([#18793](https://github.com/pantsbuild/pants/pull/18793)) + +* Upgrade Pex to 2.1.134. ([#18785](https://github.com/pantsbuild/pants/pull/18785)) + +* Use the resolve's ICs for tools. ([#18776](https://github.com/pantsbuild/pants/pull/18776)) + +* Use Self backport in `BinaryPath` factory method. ([#18763](https://github.com/pantsbuild/pants/pull/18763)) + +* Deprecate "Secondary Ownership" semantics ([#18737](https://github.com/pantsbuild/pants/pull/18737)) + +* Expand versions range for `ruff` + upgrade it ([#18707](https://github.com/pantsbuild/pants/pull/18707)) + +### Plugin API Changes + +* Allow `BinaryPaths` to close over their type. ([#18760](https://github.com/pantsbuild/pants/pull/18760)) + +* Set a central default ICs for tools. ([#18714](https://github.com/pantsbuild/pants/pull/18714)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. ([#18787](https://github.com/pantsbuild/pants/pull/18787)) + +* Dedup graph errors. ([#18770](https://github.com/pantsbuild/pants/pull/18770)) + +* Flush metadata to disk before renaming immutable store files ([#18768](https://github.com/pantsbuild/pants/pull/18768)) + +* Clear FSDB materialization cache when `remove`ing a file ([#18747](https://github.com/pantsbuild/pants/pull/18747)) + +* Use address as stable key when batching field sets in `lint`/`test` ([#18725](https://github.com/pantsbuild/pants/pull/18725)) + +* Fix `repr` for `Field`s that don't define `default`. ([#18719](https://github.com/pantsbuild/pants/pull/18719)) + +* Add `ruff` lint rules ([#18716](https://github.com/pantsbuild/pants/pull/18716)) + +* javascript: Use binary shims in nodejs sandboxes ([#18682](https://github.com/pantsbuild/pants/pull/18682)) + +### Documentation + +* Improve error location for invalid targets/target fields. ([#18366](https://github.com/pantsbuild/pants/pull/18366)) + +* Add info on how to configure Docker Desktop for using `docker_environment` ([#18786](https://github.com/pantsbuild/pants/pull/18786)) + +* Update linter documentation to refer to `install_from_resolve` ([#18781](https://github.com/pantsbuild/pants/pull/18781)) + +* docs: Fix typo on requirements-overrides code snippet ([#18750](https://github.com/pantsbuild/pants/pull/18750)) + +* Edit Python publishing docs for clarity. ([#18718](https://github.com/pantsbuild/pants/pull/18718)) + +## 2.17.0.dev3 (Apr 10, 2023) + +### New Features + +* Helm: Add support for DNS lookups in Chart templates ([#18670](https://github.com/pantsbuild/pants/pull/18670)) + +* Include global Git ignore file and `.git/info/exclude` in `pants_ignore` to ignore for file watching ([#18649](https://github.com/pantsbuild/pants/pull/18649)) + +### User API Changes + +* Remove deprecated default ICs. ([#18627](https://github.com/pantsbuild/pants/pull/18627)) + +### Plugin API Changes + +* Move/Rename: `goals/setup_py.py` -> `{util_rules,goals}/package_dists.py` + `subsystems/setup_py_generation.py` ([#18702](https://github.com/pantsbuild/pants/pull/18702)) + +* Deprecate some `Request` types in favor of `Get()` with only one arg ([#18655](https://github.com/pantsbuild/pants/pull/18655)) + +* Add support for `Get(MyType)` syntax with no input args ([#18648](https://github.com/pantsbuild/pants/pull/18648)) + +### Bug fixes + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s ([#18699](https://github.com/pantsbuild/pants/pull/18699)) + +* Remove implicit conversion from `std::io::Error` to `StoreError` ([#18696](https://github.com/pantsbuild/pants/pull/18696)) + +* Add timeout to remote store calls, and adjust name of cache timeout. ([#18695](https://github.com/pantsbuild/pants/pull/18695)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests ([#18692](https://github.com/pantsbuild/pants/pull/18692)) + +* doc: Describe relevant error modes during rule compilation ([#18663](https://github.com/pantsbuild/pants/pull/18663)) + +* Bump minimum supported version of Pex to v2.1.129. ([#18678](https://github.com/pantsbuild/pants/pull/18678)) + +* Fix JVM resource JAR creation on older Mac OSes ([#18673](https://github.com/pantsbuild/pants/pull/18673)) + +* javascript: Do not read none mapped package.json files in javascript rules ([#18523](https://github.com/pantsbuild/pants/pull/18523)) + +### Documentation + +* Add PEP 621 pyproject.toml file docs ([#18672](https://github.com/pantsbuild/pants/pull/18672)) + +* Document AWS CDK issue that multiple users have encountered. ([#18656](https://github.com/pantsbuild/pants/pull/18656)) + +* Error when goals used without relevant backends activated ([#18420](https://github.com/pantsbuild/pants/pull/18420)) + +* Improve lockfile consumption error message. ([#18638](https://github.com/pantsbuild/pants/pull/18638)) + +* Remove a python-specific tip from the general prereqs page. ([#18637](https://github.com/pantsbuild/pants/pull/18637)) + +* Make UUID message clearer ([#18561](https://github.com/pantsbuild/pants/pull/18561)) + +## 2.17.0.dev2 (Mar 31, 2023) + +### New Features + +* javascript: Test goal with package manager installed test runner support ([#18554](https://github.com/pantsbuild/pants/pull/18554)) + +* expose PANTS_VERSION and make it string-comparable ([#18573](https://github.com/pantsbuild/pants/pull/18573)) + +### User API Changes + +* Upgrade Pex to 2.1.131. ([#18626](https://github.com/pantsbuild/pants/pull/18626)) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are cleaned up ([#18632](https://github.com/pantsbuild/pants/pull/18632)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` ([#18622](https://github.com/pantsbuild/pants/pull/18622)) + +* narrow pex_binary files warning ([#18619](https://github.com/pantsbuild/pants/pull/18619)) + +* Fix PexPEX invocations ([#18610](https://github.com/pantsbuild/pants/pull/18610)) + +* Improve debug information for docker auth, and expose an environment variable. ([#18599](https://github.com/pantsbuild/pants/pull/18599)) + +### Performance + +* Only materialize immutable files once per process ([#18600](https://github.com/pantsbuild/pants/pull/18600)) + +### Documentation + +* Fix a string that should have been an f-string ([#18608](https://github.com/pantsbuild/pants/pull/18608)) + +* Fix `./pants` -> `pants` in some docs and help strings. ([#18596](https://github.com/pantsbuild/pants/pull/18596)) + +## 2.17.0.dev1 (Mar 24, 2023) + +### New Features + +* engine: add an option to clear the destination directory when writing digest to disk ([#18534](https://github.com/pantsbuild/pants/pull/18534)) + +* javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm ([#18520](https://github.com/pantsbuild/pants/pull/18520)) + +* javascript: Initial NPM support ([#18326](https://github.com/pantsbuild/pants/pull/18326)) + +* Always provide Python-for-Pants-scripts ([#18433](https://github.com/pantsbuild/pants/pull/18433)) + +### User API Changes + +* Upgrade Pex to 2.1.130. ([#18576](https://github.com/pantsbuild/pants/pull/18576)) + +* Deprecate old-style custom tool lockfiles. ([#18494](https://github.com/pantsbuild/pants/pull/18494)) + +* Let a user resolve shadow a tool lockfile of the same name ([#18481](https://github.com/pantsbuild/pants/pull/18481)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. ([#18575](https://github.com/pantsbuild/pants/pull/18575)) + +* Fail fast for attempts to use `test --debug` with a docker environment ([#18560](https://github.com/pantsbuild/pants/pull/18560)) + +* Declare ruff outputs as files. ([#18551](https://github.com/pantsbuild/pants/pull/18551)) + +* Add support for Docker registry auth ([#18541](https://github.com/pantsbuild/pants/pull/18541)) + +* Fix Poetry req synthesis for URLs with markers. ([#18535](https://github.com/pantsbuild/pants/pull/18535)) + +* Re-enable hardlinking using `fclonefileat` on macOS. ([#18501](https://github.com/pantsbuild/pants/pull/18501)) + +### Performance + +* Materialize "large" files in a new store location and hardlink them in sandboxes ([#18153](https://github.com/pantsbuild/pants/pull/18153)) + +* Finish parallelizing materialization of Process inputs ([#18469](https://github.com/pantsbuild/pants/pull/18469)) + +### Documentation + +* First pass at `adhoc_tool` documentation ([#18531](https://github.com/pantsbuild/pants/pull/18531)) + +* Add Tobias Nilsson to team page ([#18571](https://github.com/pantsbuild/pants/pull/18571)) + +* docs: fix an f-string in help ([#18539](https://github.com/pantsbuild/pants/pull/18539)) + +* Clarify that `experimental_` shell functions are deprecated and replaced ([#18529](https://github.com/pantsbuild/pants/pull/18529)) + +* Update docs on running pants from sources with scie-pants. ([#18513](https://github.com/pantsbuild/pants/pull/18513)) + +* Add ExoFlare to user list. ([#18496](https://github.com/pantsbuild/pants/pull/18496)) + +* Fix malformed pantsbuild/example-python link in documentation ([#18484](https://github.com/pantsbuild/pants/pull/18484)) + +* update scie-jump cache directory reference ([#18485](https://github.com/pantsbuild/pants/pull/18485)) + +* Expand lockfile documentation to its own page. ([#18471](https://github.com/pantsbuild/pants/pull/18471)) + +## 2.17.0.dev0 (Mar 10, 2023) + +### New Features + +* Expose environment information on process metadata ([#18458](https://github.com/pantsbuild/pants/pull/18458)) + +* Support running `pants` from anywhere in the project. ([#18412](https://github.com/pantsbuild/pants/pull/18412)) + +### User API Changes + +* Audit and update requirements for Python tools. ([#18431](https://github.com/pantsbuild/pants/pull/18431)) + +* Upgrade Pex to 2.1.128. ([#18453](https://github.com/pantsbuild/pants/pull/18453)) + +### Bug fixes + +* Preserve environment variables in `pantsd` to allow Docker auth. ([#18465](https://github.com/pantsbuild/pants/pull/18465)) + +* Only expose the equiv of `from typing import *` in prelude files ([#18452](https://github.com/pantsbuild/pants/pull/18452)) + +* Support type hints in prelude files. ([#18442](https://github.com/pantsbuild/pants/pull/18442)) + +* Synthesized lockfile targets should never err on missing lockfiles. ([#18406](https://github.com/pantsbuild/pants/pull/18406)) + +* Fixes to visualisations for xdot ([#18421](https://github.com/pantsbuild/pants/pull/18421)) diff --git a/versioned_docs/version-2.19/notes/2.18.x.md b/versioned_docs/version-2.19/notes/2.18.x.md new file mode 100644 index 000000000..cef26f56f --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.18.x.md @@ -0,0 +1,206 @@ +# 2.18.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- The improvements to AWS Lambda and Google Cloud Function support in 2.17 have continued in 2.18, including simpler configuration and support for AWS Lambda Layers. +- Many more options can now be controlled when building Docker images. +- Significant feature work and bug fixes to "deploy" backends like Helm and Terraform. + +Keep reading to see the details and what's also included. + +### Overall + +[The `pants` launcher binary](https://www.pantsbuild.org/v2.18/docs/installation) is now **required** to run Pants. It must be version 0.10.0 or greater: run `PANTS_BOOTSTRAP_VERSION=report pants` to check and `SCIE_BOOT=update pants` to upgrade to the latest. Pants 2.18 and later are not distributed via PyPI, and thus the launcher is required to coordinate downloading the appropriate versions from GitHub Releases. + +[The `[cli.alias]` section](https://www.pantsbuild.org/v2.18/docs/reference-cli) of `pants.toml` now supports defining flag-like aliases. For example: `--all-changed = "--changed-since=HEAD --changed-dependents=transitive"`. + +[The `paths` goal](https://www.pantsbuild.org/v2.18/docs/reference-paths) now supports passing groups of targets to `--from` and/or `--to`. + +The `help` goal now supports showing help for an environment variable. For example: `pants help PANTS_FIX_ONLY`. + +Additional bug fixes: + +- The client now detects changes in pants configuration that require restarting the pants daemon. +- Sequences of goals that mutate files on disk and then immediately re-read them now no longer fail spuriously if the second goal happens faster than the OS file-change notification is received. For instance, `pants fix lint ::` would sometimes run the `lint` goal on the files before the `fix` changes were applied. +- More reliable detection of when optimised hard-linking can be used for creating sandboxes. For instance, no longer hitting errors when a single device is mounted multiple times. + +The deprecation for referring to a "secondary" owner target via the file name has expired, and so this is no longer supported. For example, if `path/to/main.py` is the entry point of the `path/to:binary` `pex_binary` target, an invocation like `pants package path/to/main.py` must now use the target address instead: `pants package path/to:binary`. + +### BUILD files + +Several bug fixes: + +- Better error messages when a `BUILD` file refers to an unknown value. +- `__defaults__` can now be used in the same `BUILD` file as [environment targets](https://www.pantsbuild.org/v2.18/docs/environments) like `local_environment`. + +### Performance + +Memory usage has been reduced, particularly for the Go backend. + +A best-effort limit has been placed on the number of open cache file handles (approximately 1000), reducing the need for `ulimit` adjustments. + +### Remote caching/execution + +Remote caching using the gRPC remote execution API now supports mTLS, via the new [`remote_client_certs_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_certs_path) and [`remote_client_key_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_key_path) options in the `[GLOBAL]` section. + +### Backends + +Several backends that were intended to be included in previous releases were accidentally missing from the released pants artifacts, these are now available in 2.18: + +- `pants.backend.experimental.openapi.codegen.java`: Enables generating Java from OpenAPI. +- `pants.backend.experimental.python.framework.django`: Enables better support for projects using Django. +- `pants.backend.experimental.swift`: Enables core Swift support. +- `pants.backend.python.providers.experimental.pyenv.custom_install`: Enables customising how the pyenv provider builds a Python interpreter. + +In addition, the [documentation of backends](https://www.pantsbuild.org/v2.18/docs/enabling-backends) now lists all backends, including preview ones that were not previously advertised. Please go check it out, try backends relevant to you and let us know how they go for your use cases, [report bugs](https://www.pantsbuild.org/v2.18/docs/getting-help) and/or [submit fixes](https://www.pantsbuild.org/v2.18/docs/contributor-overview)! + +#### Docker + +More options can be passed when building images (see and docs for more details: + +- on [the `[docker]` subsystem](https://www.pantsbuild.org/v2.18/docs/reference-docker): `build_hosts`, `build_no_cache` +- on [the `docker_image` target](https://www.pantsbuild.org/v2.18/docs/reference-docker_image): `build_network`, `build_platform`, `extra_build_hosts` + +Additional features and bug fixes: + +- Registries with the same address no longer silently overwrite each other, and instead now emit an error. +- [The `secrets` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codesecretscode) now supports expanding `~` to refer to the current user's home directory. +- [The `image_tags` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codeimage_tagscode) now has an explanatory error if it is incorrectly empty. + +#### Helm + +[The `helm_unittest_tests` target](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-unit-tests) has had several improvements: + +- support for being added by the `tailor` goal (this can be disabled with the new `[helm].tailor_unittests` option) +- support for [snapshot testing](https://www.pantsbuild.org/v2.18/docs/helm-overview#snapshot-testing) via the new `generate-snapshots` goal + +[The new `pants.backend.experimental.helm.check.kubeconform` backend](https://www.pantsbuild.org/v2.18/docs/helm-kubeconform) allows running Kubeconform on `helm_chart` and `helm_deployment` targets as part of the `check` goal. + +**Deprecations**: + +- The `helm_deployment` target should now specify the [new `chart` field](https://www.pantsbuild.org/v2.18/docs/reference-helm_deployment#codechartcode) to explicitly indicate which chart is being deployed. +- The `create_namespace` field for `helm_deployment` will not be supported in future, use the passthrough argument `--create-namespace` instead. +- The `{env.VAR_NAME}` interpolation syntax some fields of `helm_deployment` has been replaced by the more [general `env` build file function](https://www.pantsbuild.org/v2.18/docs/targets#environment-variables); for instance `"text-{env.VAR_NAME}"` can become `f"text-{env('VAR_NAME')}"`. +- The `[helm].tailor` option has been renamed to [`tailor_charts`](https://www.pantsbuild.org/v2.18/docs/reference-helm#tailor_charts). + +Additional features and bug fixes: + +- Relative target addresses for `docker_image`s can be passed like `helm_deployment(values={"some_image": ":target-name"})`, and are expanded in the same way as non-relative addreses `path/to:target-name`. +- If the passthrough `--debug` argument is specified, like `pants experimental-deploy path/to:helm-deployment -- --debug`, that flag is now passed to all Helm invocations pants does. +- The Helm binary has been upgraded to 3.12.3 by default. +- [The new `version` field to `helm_chart`](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-chart-version) allows overriding the version in `Chart.yaml`. + + +#### JavaScript + +The `node_build_script` function now supports `extra_env_vars` to specify additional environment variables when executing. + +Node-based tools can now install from a user-provided 'resolve'/`package.json`, similar to Python tools. + +The dependency inference for JavaScript has been rewritten into Rust, and thus runs much faster. + +#### Python + +The functions-as-a-service (FaaS) backends, [`pants.backend.awslambda.python`](https://www.pantsbuild.org/v2.18/docs/awslambda-python) and [`pants.backend.google_cloud_function.python`](https://www.pantsbuild.org/v2.18/docs/google-cloud-function-python) have seen more improvements in 2.18: + +- Deprecation: the `python_awslambda` target has been renamed to `python_aws_lambda_function`. +- Deprecation: the `[lambdex].layout = "zip"` value in `pants.toml` is now the default, and the `[lambdex]` section should be removed. +- New: [the `python_aws_lambda_layer` target](https://www.pantsbuild.org/v2.18/docs/awslambda-python#building-a-lambda-layer) can be used to build Layers for AWS Lambda. +- New: the `runtime` field is no longer necessary when the interpreter constraints unambiguously refer to an entire single major version. For instance, with `[python].interpreter_constraints = ["==3.11.*"]`, one doesn't need to specify `runtime="python3.11"` to `python_aws_lambda_function` or `runtime="python311"` to `python_google_cloud_function`, as it will be inferred. +- New: for AWS Lambda targets, the `complete_platforms` argument now has default values provided by Pants, which gives more reliable builds, especially when building on a different platform than the AWS Lambda itself. This change also means that only one of the `complete_platforms` or `platforms` fields should be provided. + +The new, faster parser for dependency inference is now the default, so the `[python-infer].use_rust_parser` option can be removed from `pants.toml`, if it is being explicitly set to `true`. The old parser is deprecated and will be removed: follow the warnings in 2.17 to move to the new parser. + +The [new `pants.backend.experimental.python.typecheck.pytype` backend](https://www.pantsbuild.org/v2.18/docs/reference-pytype) allows running the `pytype` type checker as part of the `check` goal. + +Additional features and bug fixes: + +- The `tailor` goal now supports automatically creating `python_requirements` targets for in `pyproject.toml` files that follow [PEP 621 to specify dependencies](https://peps.python.org/pep-0621/#dependencies-optional-dependencies). +- Imports within a `with contextlib.suppress(ImportError): ...` construct are now considered weak imports. +- The global coverage report now correctly handles namespaced packages. +- `pex_binary` targets that consume `python_distribution` targets now work with just the distributions, not their transitive dependencies (the files that are used to build the distribution). +- Pants now emits an error if `isort` cannot read its configuration file (NB. `isort` itself emits warnings for this, but they would not be visible when running `isort` under the default Pants configuration). +- [The `pants.backend.python.typecheck.mypy` backend](https://www.pantsbuild.org/v2.18/docs/python-check-goal) is now more resilient to its cache being removed. + +Some deprecations have expired and the supporting code has been removed: + +- the "old style" tool lockfiles are no longer supported, and instead customising the versions/installation of tools like `black`, `mypy` and `pytest` should configure [a "normal" resolve](https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools) +- using `pants export` without a `--resolve` flag is no longer supported, always pass that flag + +#### Go + +Memory usage has been reduced. + +Go processes are now cached using the full version of the Go compiler (for example, `go1.20.6`) so that artifacts are not incorrectly reused between different patch versions. + +Building with coverage no longer has an exponential blow-up when preparing the build requests. + +#### JVM + +The deprecation for the `excludes` field on `jvm_artifact` has expired, use `exclusions` instead. + +[The coursier tool](https://www.pantsbuild.org/v2.18/docs/reference-coursier) now uses v2.1.6 by default, and, for this version, supports a native binary on ARM macOS (Apple Silicon). + +The `deploy_jar` target now supports [an `exclude_files` field](https://www.pantsbuild.org/v2.18/docs/reference-deploy_jar#codeexclude_filescode). + +#### NEW: Rust + +The new `pants.backend.experimental.rust` backend has been added, with support for using `rustfmt` to format Rust source files. + +#### Scala + +The [new `scala_artifact` target](https://www.pantsbuild.org/v2.18/docs/reference-scala_artifact) can be used to track third-party artifacts from Scala, with Pants then understanding how Scala artifacts include the Scala version in their coordinates. + +#### Shell + +The `shellcheck` binary for [the `pants.backend.shell.lint.shellcheck` backend](https://www.pantsbuild.org/v2.18/docs/shell#shellcheck-linter) is now fetched from `vscode-shellcheck`, and thus now supports AArch64 macOS (Apple Silicon) natively. + +The deprecations for the pre-2.16 target names have expired, and thus these have been removed: + +- `experimental_shell_command`: use `shell_command` +- `experimental_run_shell_command`: use `run_shell_command` + +#### Terraform + +The [new `terraform_deployment` target](https://www.pantsbuild.org/v2.18/docs/reference-terraform_deployment) allows configuring a `terraform_module` to be deployed with [the `experimental-deploy` goal](https://www.pantsbuild.org/v2.18/docs/reference-experimental-deploy). + +A new `pants.backend.experimental.terraform.lint.tfsec` backend has been added to run the `tfsec` linter as part of the `lint` goal. + +The `check` goal now runs `terraform init` to ensure modules are installed before validating. + +#### Visibility + +[The `pants.backend.experimental.visibility` backend](https://www.pantsbuild.org/v2.18/docs/validating-dependencies) is now also runs as a linter, such as when running `pants lint ::`, to report all visibility violations at one time. + +Visibility rules about dependencies in the root of the repository are now supported. + +### Plugin API Changes + +Pants no longer publishes wheels to PyPI. The only supported way to depend on pants itself is [the `pants_requirements` target](https://www.pantsbuild.org/v2.18/docs/reference-pants_requirements), which now supports a new `version_spec` field if one needs to depend on a different version of Pants than the currently executing one. + +The `include_special_cased_deps` flag (on `DependenciesRequest`, `TransitiveTargetsRequest`, and `CoarsenedTargetsRequest`) is replaced with `should_traverse_deps_predicate`. If set to `True`, use `should_traverse_deps_predicate=pants.engine.target.AlwaysTraverseDeps()` instead. See [#19272](https://github.com/pantsbuild/pants/pull/19272) and [#19387](https://github.com/pantsbuild/pants/pull/19387) for details. + +The `TestResult` `stdout` and `stderr` fields have been renamed to `stdout_bytes` and `stderr_bytes`, and store `bytes` instead of `str`, to handle non-UTF-8 data without crashing. + +Other changes: + +- Plugins can now declare additional requirements in a `requirements.txt` file next to `register.py`. +- Pants only supports running on Python 3.9 now. +- Named caches can now used digits in addition to lower-case letters and underscores. +- The `pants.core.goals.package.TraverseIfNotPackageTarget` type can be used with the new `should_traverse_deps_predicate` to treat packageable targets as "leaves" when finding dependencies; for instance, stopping at a `pex_binary` without also surfacing the `python_sources` that are used for it. + +The deprecations for many request types has expired (follow instructions in warnings in 2.17 to resolve), so they are now removed: `AllAssetTargetsRequest`, `AllTargetsRequest`, `BashBinaryRequest`, `CatBinaryRequest`, `CGoCompilerWrapperScriptRequest`, `ChmodBinaryRequest`, `DiffBinaryRequest`, `DjangoAppsRequest`, `DockerBinaryRequest`, `GitBinaryRequest`, `GunzipBinaryRequest`, `MkdirBinaryRequest`, `PythonBinary`, `ReadlinkBinaryRequest`, `TarBinaryRequest`, `UnzipBinaryRequest`, `ZipBinaryRequest`. + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/versioned_docs/version-2.19/notes/2.19.x.md b/versioned_docs/version-2.19/notes/2.19.x.md new file mode 100644 index 000000000..4f8a5a227 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.19.x.md @@ -0,0 +1,170 @@ +# 2.19.x Release Series + +Pants 2 is a fast, scalable, user-friendly build system for codebases of all sizes. It's currently focused on Python, Go, Java, Scala, Kotlin, Shell, and Docker, with support for other languages and frameworks coming soon. + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- Test retries for flaky Python tests. +- Using the `parametrize` to set multiple fields at once when generating new groups of targets. +- `buildx` support in the Docker backend. +- New backends for running semgrep and openapi-format. + +Keep reading to see the details and what's also included. + +### Overall + +The `.pids/` internal directory is now under `.pants.d/` by default, rather that adjacent to it (this can be controlled via [the `[GLOBAL].pants_subprocessdir` option](https://www.pantsbuild.org/2.19/reference/global-options#pants_subprocessdir)). + +[The new `[system-binaries]` subsystem](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries) allows controlling where Pants searches for binaries like `bash`, `zip`, `tar` that is uses as part of normal operation. Set [the `system_binaries_paths`](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries#system_binary_paths) as appropriate, potentially using the `` special value. This can also be set on specific [environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) using the `system_binaries_system_binary_paths` field. + +Additional features and fixes: + +- New versions of [the `get-pants.sh` script](https://www.pantsbuild.org/2.19/docs/getting-started/installing-pants) install to `~/.local/bin`, not `~/bin`. +- Environment variables that aren't valid UTF-8 no longer cause Pants to crash (note, `PANTS_...` environment variables that Pants needs to read but aren't UTF-8 will be ignored). +- Reference documentation for subsystem options includes how to set them in `pants.toml`, in addition to the environment variable and CLI arguments. +- [Environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) are now more resilient to being (partially) defined via macros, although this is not recommended. +- [Docker environments](https://www.pantsbuild.org/2.19/reference/targets/docker_environment) can now pull public images without credentials, and can now handle docker images without Python. +- The `fix` goal now partitions files across multiple processes in a way that's more similar to the partitioning of the `lint` goal, which can work around some spurious linting failures. + +### BUILD files + +[The `parametrize` helper](https://www.pantsbuild.org/2.19/docs/using-pants/key-concepts/targets-and-build-files#field-default-values#parametrizing-targets) now supports parametrizing multiple fields together, in lock step. For instance: + +``` python +# Creates two targets: +# +# example:tests@parametrize=py2 +# example:tests@parametrize=py3 + +python_test( + name="tests", + source="tests.py", + **parametrize("py2", interpreter_constraints=["==2.7.*"], resolve="lock-a"), + **parametrize("py3", interpreter_constraints=[">=3.6,<3.7"], resolve="lock-b"), +) +``` + +In addition, `parametrize` can now be used with a single value (`field=parametrize("for-consistency")`), and now works on target generations in more cases (particularly those with "plugin" fields). + +### Performance + +Some processes are run with more consistent "color" configuration which may result in more cache hits: Pytest, Helm unittest and shunit2 processes now always run with colored output enabled. If [`[GLOBAL].colors`](https://www.pantsbuild.org/2.19/reference/global-options#colors) is not enabled, Pants removes the coloring before displaying. + +### Remote caching/execution + +Large files that need to be stored to a remote cache are now streamed to it directly from disk, in a way that should reduce overhead and increase concurrency ([#19711](https://github.com/pantsbuild/pants/pull/19711)). + +The deprecation has expired for the `[GLOBAL].remote_store_chunk_upload_timeout_seconds` and `[GLOBAL].remote_cache_read_timeout_millis` options. Use [`[GLOBAL].remote_store_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_store_rpc_timeout_millis) and [`[GLOBAL].remote_cache_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_cache_rpc_timeout_millis) instead. + +### Backends + +#### Docker + +The [docker backend](https://www.pantsbuild.org/2.19/docs/docker) now has explicit [support for using `buildx`](https://www.pantsbuild.org/2.19/docs/docker#buildx-support) (and thus BuildKit), via the new [`use_buildx` option](https://www.pantsbuild.org/2.19/reference/subsystems/docker#use_buildx). This also allows adding few additional fields for [`docker_image` targets](https://www.pantsbuild.org/2.19/reference/targets/docker_image), for `buildx`-specific functionality: + +- [`cache_from` and `cache_to`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#cache_to) for using external cache storage backends +- [`build_platform`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#build_platform) for configuring multi-platform builds +- [`output`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#output) to control how/where `buildx` outputs an image when running `pants package ::` + +#### JVM + +JVM lock-files are more reliable, handling [some cases](https://github.com/pantsbuild/pants/issues/20162) of Coursier not including dependencies when expected. + +Using [`shading_rules`](https://www.pantsbuild.org/2.19/reference/targets/deploy_jar#shading_rules) is now supported on `deploy_jar` targets defined in directories of the build root. + +##### Kotlin + +The Kotlin analyzer now runs using the Zulu JDK, to be able to run natively on Apple Silicon (arm64 macOS). + +##### Java + +Dependency inference for Java now supports code using recently added syntax like `sealed class` & `permits`, `switch` expressions and `yield`. + +##### Scala + +Scala 3 is now supported when using [the BSP in an IDE](https://www.pantsbuild.org/2.19/docs/java-and-scala#working-in-an-ide). + +#### OpenAPI + +[The new `pants.backend.experimental.openapi.lint.openapi_format` backend](https://www.pantsbuild.org/2.19/reference/subsystems/openapi-format) supports running [openapi-format](https://github.com/thim81/openapi-format) to format `openapi_...` targets. + +#### Protobuf + +[The `pants.backend.codegen.protobuf.python` backend](https://www.pantsbuild.org/2.19/docs/python/integrations/protobuf-and-grpc) now supports: + +- `protobuf_sources` targets that are part of multiple Python resolves, like `python_resolve=parametrize("first-resolve", "second-resolve")`. +- `[python-infer].ambiguity_resolution = "by_source_root"` to infer dependencies without warnings or errors in more cases. + +Version 24.4 of [the `protoc` compiler](https://www.pantsbuild.org/2.19/reference/subsystems/protoc) is included as a known version (but is not the default). It can be selected by setting `[protoc].version = "24.4"`. This version has native support for Apple Silicon (arm64 macOS). + +[Buf (`pants.backend.codegen.protobuf.lint.buf`)](https://www.pantsbuild.org/2.19/reference/subsystems/buf) now correctly ignores `buf.work.yaml`, `buf.lock`, `buf.gen.lock` when running as a linter. + +#### Python + +**Deprecation**: Using the `platforms` field on `pex_binary` is now deprecated. It is not a recommended way to build for platforms other than the local one, as it is a lossy abbreviation of the target platform and often leads to binaries that don't work. To replace this, either [use `complete_platforms` to continue cross-compiling](https://www.pantsbuild.org/2.19/docs/python/overview/pex#setting-the-target-platforms-for-a-pex) or use [an environment matching the target platform](https://www.pantsbuild.org/2.19/docs/using-pants/environments). + +Python tests can now be [attempted multiple times](https://www.pantsbuild.org/2.19/docs/using-pants/using-pants-in-ci#tip-automatically-retry-failed-tests), if they fail. This can help with limiting the impact of flaky tests. For instance, to require tests to fail three times before the overall `pants test` goal fails, set [`[test].attempts_default = 3`](https://www.pantsbuild.org/2.19/reference/goals/test#attempts_default). In this case, a very flaky test might fail on the first and second runs but finally pass on the third run, and thus the overall Pants invocation would pass. + +Pants now uses version 2.1.148 of the PEX CLI by default, which includes support for Python 3.12. To use Python 3.12, you will need to set [`[python].pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) to `23.2` or newer (or `latest`), and ensure all of your tools use resolves generated with this new version (Pants' built-in ones are not, yet). + +Python interpreters provided by ASDF are now searched by default, in addition those provided by pyenv and on the system `PATH`, by being included in the [`[python-bootstrap].search_path`](https://www.pantsbuild.org/2.19/reference/subsystems/python-bootstrap#search_path) option. + +Many more "groups" of PyPI dependencies have default module mappings that guide how an `import` statement in code matches particular `python_requirement`s. All packages from the `azure-...`, `django-...`, `google-cloud-...`, `opentelemetry-instrumentation-...`, `oslo-...` ecosystems are now matched to modules matching their usual conventions. In addition, packages starting with `python-...` now have that `python-` prefix removed by default: for instance, a package like `python-example-name` will be implicitly assumed to be imported like `import example_name`. [The value of any `module_mapping` field](https://www.pantsbuild.org/2.19/reference/targets/python_requirements#module_mapping) can thus be tweaked (hopefully simplified!). + +[The `[generate-lockfiles].diff` option](https://www.pantsbuild.org/2.19/reference/goals/generate-lockfiles#diff) is now `True` by default, so running `pants generate-lockfiles` now pretty-prints any differences in the dependencies and their versions. + +Additional features and fixes: + +- [Additional arguments](https://www.pantsbuild.org/2.19/reference/goals/repl#args) can be passed to the IPython REPL, like `pants repl --shell=ipython :: -- -i helloworld/main.py`. +- Additional arguments can be passed to the underlying PEX invocations when building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via the new [`pex3_venv_create_extra_args`](https://www.pantsbuild.org/2.19/reference/targets/python_aws_lambda_function#pex3_venv_create_extra_args) field. For instance, if dependencies have packaged files in unexpected locations, passing `pex3_venv_create_extra_args=["--collisions-ok"]` can side-step collision errors. +- The [`pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) field no longer restricts the values, and so allows more flexibility when upgrading the PEX CLI if it supports newer Pip versions. +- Running tests or `pants run` a source file now make binaries provided by `python_requirement` available for execution as normal processes (for instance, using `subprocess.run(["name-of-binary", ...])`). +- The `PATH` environment variable can now be set using [`[subprocess-environment].env_vars`](https://www.pantsbuild.org/2.19/reference/subsystems/subprocess-environment#env_vars) +- Import statements within a `with contextlib.suppress(ImportError)` context are now weak, and so no longer warn if not provided by a dependency. +- Computing an aggregate coverage sandbox report is now more reliable in the presence of name collisions in files created via code-generation (including `relocated_files`). +- Pyright (`pants.backend.experimental.python.typecheck.pyright`) now runs with an appropriately initialised environment and so runs more reliably (especially in transient CI environments, where "named caches" might not be preserved). +- [Ruff (`pants.backend.experimental.python.lint.ruff`)](https://www.pantsbuild.org/2.19/reference/subsystems/ruff) now properly respects any `exclude` configuration from `ruff.toml` or `pyproject.toml`. + +The following code has been removed, because deprecations have expired: + +- Support for building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via Lambdex has been fully replaced with the new `zip` layout: remove the `[lambdex]` section and its `layout` setting from `pants.toml`. +- Passing both `runtime` and `complete_platforms` to a FaaS target (`python_aws_lambda_function`, `python_google_cloud_function`) is now longer supported, as `complete_platforms` fully overrides `runtime`. +- Dependency inference now only supports running with the new Rust-based parser. That is, the `[python-infer].use_rust_parser` option cannot be disabled and is now unnecessary. + +#### NEW: Semgrep + +[The new `pants.backend.experimental.tools.semgrep` backend](https://www.pantsbuild.org/2.19/reference/subsystems/semgrep) supports running [Semgrep](https://semgrep.dev) as a local linter on all files that Pants knows about (any target with a `source` or `sources` field). Configuration files are automatically discovered. + +#### Shell + +[The `experimental_test_shell_command` target](https://www.pantsbuild.org/2.19/reference/targets/experimental_test_shell_command) now obeys its `environment` field, and thus runs the command within the specified environment instead of the host. + +#### Terraform + +The `check` goal runs `terraform validate` on [`terraform_module`s targets](https://www.pantsbuild.org/2.19/reference/targets/terraform_module) by default, again. For modules for which this doesn't work and/or isn't desirable, use [the new `skip_terraform_validate` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_module#skip_terraform_validate). (This restores the behaviour from Pants 2.17 and earlier, with the addition of the `skip` field, based on feedback about Pants 2.18.0 which switched to only validating `terraform_deployment`s.) + +[`terraform_deployment`'s `var_files` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_deployment#var_files) now supports files in a different directory to the `root_module`. + +Transitive dependencies are now automatically included, in addition to direct dependencies. + +### Plugin API changes + +Processes, especially tests, can now be run with retries on failure using `ProcessWithRetries` ([#20378](https://github.com/pantsbuild/pants/issues/20378)). In addition, to support tests that have been retried multiple times, `TestResult.from_fallible_process_result` now accepts a tuple of multiple `FallibleProcessResult`s, instead of just one. ([#19760](https://github.com/pantsbuild/pants/pull/19760)). + +Some `@rule`s may now need to pass `canonical_name_suffix` in preparation for ["call by name"](https://github.com/pantsbuild/pants/issues/19730). ([#19755](https://github.com/pantsbuild/pants/pull/19755)) + +The new `TransitivelyExcludeDependenciesRequest` can be used to emulate transitive excludes (`!!
`). ([#20080](https://github.com/pantsbuild/pants/pull/20080)) + +The `TestResult.stdout` and `TestResult.stderr` fields are now removed, in favour of `stdout_bytes` and `stderr_bytes`. ([#19768](https://github.com/pantsbuild/pants/pull/19768)) + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/versioned_docs/version-2.19/notes/2.2.x.md b/versioned_docs/version-2.19/notes/2.2.x.md new file mode 100644 index 000000000..bd0c83037 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.2.x.md @@ -0,0 +1,257 @@ +# 2.2.x Stable Releases + +See https://www.pantsbuild.org/v2.2/docs/release-notes-2-2 for an overview of the changes in this release series. + +This is the first release to require having a Python 3.7 or 3.8 interpreter to run Pants. Run `curl -L -o ./pants +https://raw.githubusercontent.com/pantsbuild/setup/2f079cbe4fc6a1d9d87decba51f19d7689aee69e/pants` to update your +`./pants` script to choose the correct interpreter. + +## 2.2.4 (Jun 16, 2021) + +The fifth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.4rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12161](https://github.com/pantsbuild/pants/pull/12161)) + +## 2.2.3 (May 6, 2021) + +The fourth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.3rc0 (Apr 29, 2021) + +### User API Changes + +* Revert deprecation of `interpreter_constraints` field for `pex_binary` and `python_awslambda` ([#11981](https://github.com/pantsbuild/pants/pull/11981)) + +## 2.2.2 (Apr 20, 2021) + +The third stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.2rc1 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11918](https://github.com/pantsbuild/pants/pull/11918)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11906](https://github.com/pantsbuild/pants/pull/11906)) + +## 2.2.2rc0 (April 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11881](https://github.com/pantsbuild/pants/pull/11881)) + +## 2.2.1 (Mar 18, 2021) + +The second stable release in the `2.2.x` series, with no changes since the previous rc. + +## 2.2.1rc2 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11725](https://github.com/pantsbuild/pants/pull/11725)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (cherrypick of #11711) ([#11714](https://github.com/pantsbuild/pants/pull/11714)) + +## 2.2.1rc1 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (Cherry-pick of #11673) ([#11676](https://github.com/pantsbuild/pants/pull/11676)) + +## 2.2.1rc0 (March 10, 2021) + +### Bug fixes + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11661](https://github.com/pantsbuild/pants/pull/11661)) + +* Fix MyPy to work by default with Python 3.9+ (Cherry-pick of #11537) ([#11542](https://github.com/pantsbuild/pants/pull/11542)) + +* Fix excessive mmap-ing in LMDB (cherrypick of #11513) ([#11516](https://github.com/pantsbuild/pants/pull/11516)) + +## 2.2.0 (Jan 20, 2021) + +The first stable release in the `2.2.x` series, with no changes since the previous `rc`! + +## 2.2.0rc2 (Jan 11, 2021) + +### Bug fixes + +* Fix `--opt` options in constraints.txt files erroring (#11407) ([#11425](https://github.com/pantsbuild/pants/pull/11425)) + +* Fix older versions of `tar` not working when creating an `archive` (#11413) ([#11419](https://github.com/pantsbuild/pants/pull/11419)) + +## 2.2.0rc1 (Dec 30, 2020) + +### Bug fixes + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +* Fix docstring deprecation warning for Bandit. ([#11395](https://github.com/pantsbuild/pants/pull/11395)) + +## 2.2.0rc0 (Dec 28, 2020) + +### New Features + +* Infer imports of the style `__import__("string_literal")`. ([#11326](https://github.com/pantsbuild/pants/pull/11326)) + +* Make the number of threads used to run @rules in the Engine configurable. ([#11325](https://github.com/pantsbuild/pants/pull/11325)) + +* Expose `--resolver-version` to support using the new pip resolver, deprecate `--cache-ttl`. ([#11349](https://github.com/pantsbuild/pants/pull/11349)) + +### User API Changes + +* Bump default version of Pytest to 6.2.x ([#11381](https://github.com/pantsbuild/pants/pull/11381)) + +* Upgrade packaging from 20.7 to 20.8 ([#11343](https://github.com/pantsbuild/pants/pull/11343)) + +* Deprecate the `sources` field for `pex_binary` and `python_awslambda` ([#11332](https://github.com/pantsbuild/pants/pull/11332)) + +### Plugin API Changes + +* Deprecate Subsystems as global singletons ([#11388](https://github.com/pantsbuild/pants/pull/11388)) + +* Add shortcut public API method to return cumulative timings data. ([#11385](https://github.com/pantsbuild/pants/pull/11385)) + +* Remove unused get_critical_path_timings() API ([#11387](https://github.com/pantsbuild/pants/pull/11387)) + +* Deprecate not setting `help` for Targets, Fields, and Subsystems ([#11380](https://github.com/pantsbuild/pants/pull/11380)) + +* RunTracker: add goals property ([#11382](https://github.com/pantsbuild/pants/pull/11382)) + +### Bug fixes + +* Explicitly flush stdio in the nailgun client. ([#11383](https://github.com/pantsbuild/pants/pull/11383)) + +* Ignore exit on the nailgun Client output_stream. ([#11358](https://github.com/pantsbuild/pants/pull/11358)) + +### Performance + +* avoid unnecessary copy in cache code path ([#11348](https://github.com/pantsbuild/pants/pull/11348)) + +* use Bytes instead of Vec for protobuf binary fields ([#11342](https://github.com/pantsbuild/pants/pull/11342)) + +* refactor all gRPC usages to use Tonic instead of grpcio ([#11307](https://github.com/pantsbuild/pants/pull/11307)) + +* fs.Snapshot is declared in Rust ([#11328](https://github.com/pantsbuild/pants/pull/11328)) + +* Interrupt Graph tasks on Ctrl+C ([#11322](https://github.com/pantsbuild/pants/pull/11322)) + +### Documentation + +* Pin references to docs to the current version ([#11369](https://github.com/pantsbuild/pants/pull/11369)) + +* Generate docs references for target types ([#11340](https://github.com/pantsbuild/pants/pull/11340)) + +## 2.2.0.dev2 (Dec 16, 2020) + +### Plugin API Changes + +* Upgrade packaging from 20.4 to 20.7 ([#11302](https://github.com/pantsbuild/pants/pull/11302)) + +* Update default values for run tracker and streaming work unit handlers to more commonly used values. ([#11292](https://github.com/pantsbuild/pants/pull/11292)) + +### Bug fixes + +* Fix filtering of log messages generated in native code. ([#11313](https://github.com/pantsbuild/pants/pull/11313)) + +* Upgrade to Pex 2.1.24 to fix macOS Big Sur. ([#11312](https://github.com/pantsbuild/pants/pull/11312)) + +* Clean the graph speculatively, and cancel nodes when interest is lost ([#11308](https://github.com/pantsbuild/pants/pull/11308)) + +* Implement native Process cache scoping to fix --test-force ([#11291](https://github.com/pantsbuild/pants/pull/11291)) + +## 2.2.0.dev1 (Dec 09, 2020) + +### New Features + +* Add shorthand to use a file name for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` field ([#11261](https://github.com/pantsbuild/pants/pull/11261)) + +* Add dependency inference for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` fields ([#11245](https://github.com/pantsbuild/pants/pull/11245)) + +* Allow file arguments to work with the `app.py` shorthand for `pex_binary` and `python_awslambda` ([#11263](https://github.com/pantsbuild/pants/pull/11263)) + +* Warn if `package` and `test` have no matching files/targets ([#11240](https://github.com/pantsbuild/pants/pull/11240)) + +### User API Changes + +* 2.2.0.dev1 deprecations. ([#11281](https://github.com/pantsbuild/pants/pull/11281)) + +* Require `pex_binary`'s `platforms` field to be a list ([#11246](https://github.com/pantsbuild/pants/pull/11246)) + +* Remove deprecated `--pants-distdir-legacy-paths` option ([#11247](https://github.com/pantsbuild/pants/pull/11247)) + +### Bug fixes + +* Increase Pants' python recursion limit by default, and allow it to be overridden. ([#11271](https://github.com/pantsbuild/pants/pull/11271)) + +* Stop logging if Pyenv not installed ([#11243](https://github.com/pantsbuild/pants/pull/11243)) + +### Performance + +* Reduce interning overhead ([#11262](https://github.com/pantsbuild/pants/pull/11262)) + +* Parallelize the `Owners` rule more ([#11260](https://github.com/pantsbuild/pants/pull/11260)) + +### Documentation + +* Update Pants prerequisites facts. ([#11265](https://github.com/pantsbuild/pants/pull/11265)) + +## 2.2.0.dev0 (Nov 24, 2020) + +### New Features + +* Add dependency inference for Protobuf <-> Protobuf imports ([#11205](https://github.com/pantsbuild/pants/pull/11205)) + +* Add dependency inference for Python imports of Protobuf/gRPC ([#11195](https://github.com/pantsbuild/pants/pull/11195)) + +* Allow setting the entry point for a `pex_binary` to `` ([#11199](https://github.com/pantsbuild/pants/pull/11199)) + +* Add support for filtering file vs BUILD targets ([#11126](https://github.com/pantsbuild/pants/pull/11126)) + +* Cancel sessions rather than killing pantsd ([#11123](https://github.com/pantsbuild/pants/pull/11123)) + +* Remoting: allow timeout parameters to be configured ([#11125](https://github.com/pantsbuild/pants/pull/11125)) + +### User API Changes + +* Require Python 3.7 or 3.8 to run Pants ([#11135](https://github.com/pantsbuild/pants/pull/11135)) + +* Deprecate `mypy_source_plugin` and `pylint_source_plugin` targets in favor of `python_library` ([#11233](https://github.com/pantsbuild/pants/pull/11233)) + +* Remove deprecated `compatibility` field in favor of `interpreter_constraints` ([#11225](https://github.com/pantsbuild/pants/pull/11225)) + +* Upgrade to Pex 2.1.21. ([#11131](https://github.com/pantsbuild/pants/pull/11131)) + +### Plugin API Changes + +* Remove `PrimitiveField` and align `AsyncField` with `Field` ([#11231](https://github.com/pantsbuild/pants/pull/11231)) + +* Change `AsyncField` to be `AsyncFieldMixin` ([#11232](https://github.com/pantsbuild/pants/pull/11232)) + +* Deprecate `TransitiveTargetsRequestLite` and `DependenciesRequestLite` now that graph cycle is fixed ([#11188](https://github.com/pantsbuild/pants/pull/11188)) + +### Bug fixes + +* Fix dependency inference parsing of Python 3.8 and 3.9 syntax ([#11213](https://github.com/pantsbuild/pants/pull/11213)) + +* Set the soft ulimit value more conservatively to fix macOS Big Sur issue ([#11194](https://github.com/pantsbuild/pants/pull/11194)) + +* Move graph cycle detection to Rust to fix recursion limit. ([#11202](https://github.com/pantsbuild/pants/pull/11202)) + +* Fix relative imports in dependency inference ([#11181](https://github.com/pantsbuild/pants/pull/11181)) + +* Remove extraneous info level log line ([#11228](https://github.com/pantsbuild/pants/pull/11228)) + +* Fix Coverage not finding resource files when generating a report ([#11129](https://github.com/pantsbuild/pants/pull/11129)) + +* Fix `test` results showing up twice by removing `TargetsWithOrigin` ([#11128](https://github.com/pantsbuild/pants/pull/11128)) + +* Make a few minor reliability fixes to remote caching code ([#11130](https://github.com/pantsbuild/pants/pull/11130)) + +### Documentation + +* Improve error message for no applicable targets ([#11215](https://github.com/pantsbuild/pants/pull/11215)) diff --git a/versioned_docs/version-2.19/notes/2.3.x.md b/versioned_docs/version-2.19/notes/2.3.x.md new file mode 100644 index 000000000..5fb472fd6 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.3.x.md @@ -0,0 +1,241 @@ +# 2.3.x Stable Releases + +See https://www.pantsbuild.org/v2.3/docs/release-notes-2-3 for an overview of the changes in this release series. + +## 2.3.3 (Jun 16, 2021) + +The fourth stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.3rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12160](https://github.com/pantsbuild/pants/pull/12160)) + +## 2.3.2 (May 6, 2021) + +The third stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.2rc0 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11980](https://github.com/pantsbuild/pants/pull/11980)) + +## 2.3.1 (Apr 20, 2021) + +The second stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.1rc3 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11917](https://github.com/pantsbuild/pants/pull/11917)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11903](https://github.com/pantsbuild/pants/pull/11903)) + +## 2.3.1rc2 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11882](https://github.com/pantsbuild/pants/pull/11882)) + +### Documentation + +* Fix typo in `tags` help message ([#11838](https://github.com/pantsbuild/pants/pull/11838)) + +## 2.3.1rc1 (Mar 25, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.35 to fix interpreter-rexec loop. (cherrypick of #11799) ([#11801](https://github.com/pantsbuild/pants/pull/11801)) + +* Kill `SETTABLE_ENV_VARS` allow list to allow passing ssh-agent config. (cherrypick of #11743) ([#11791](https://github.com/pantsbuild/pants/pull/11791)) + +## 2.3.1rc0 (Mar 21, 2021) + +### Bug fixes + +* Fix remote execution: use `append_only_caches` in Pex processes. (#11760) ([#11765](https://github.com/pantsbuild/pants/pull/11765)) + +## 2.3.0 (Mar 18, 2021) + +The first stable release in the `2.3.x` series, with no changes since the previous rc. + +## 2.3.0rc4 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11726](https://github.com/pantsbuild/pants/pull/11726)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (#11711) ([#11713](https://github.com/pantsbuild/pants/pull/11713)) + +## 2.3.0rc3 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (#11673) ([#11675](https://github.com/pantsbuild/pants/pull/11675)) + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11660](https://github.com/pantsbuild/pants/pull/11660)) + +## 2.3.0rc2 (Mar 08, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. (Cherry-pick of #11647) ([#11651](https://github.com/pantsbuild/pants/pull/11651)) + +* Ensure that ancestor files at the buildroot are found (Cherry-pick of #11632) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +* Handle two edge cases with `./pants tailor` (Cherry-pick of #11625) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +## 2.3.0rc1 (Feb 25, 2021) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv shebangs being too long for some Linux systems. (Cherry-pick of #11604) ([#11606](https://github.com/pantsbuild/pants/pull/11606)) + +### Documentation + +* Less chatty plugin resolution logging (Cherry-pick of #11593) ([#11595](https://github.com/pantsbuild/pants/pull/11595)) + +## 2.3.0rc0 (Feb 23, 2021) + +### New Features + +* A `tailor` goal to generate BUILD file targets automatically ([#11517](https://github.com/pantsbuild/pants/pull/11517)) + +* Generate `protobuf_library` targets with `./pants tailor` ([#11582](https://github.com/pantsbuild/pants/pull/11582)) + +* Support `--venv` mode for `pex_binary` targets. ([#11510](https://github.com/pantsbuild/pants/pull/11510)) + +* Auto-discover CA certs if TLS is used and `--remote-ca-certs-path` is unset ([#11572](https://github.com/pantsbuild/pants/pull/11572)) + +### User API Changes + +* Deprecate --setuptools-{entry-point,interpreter-constraints} ([#11539](https://github.com/pantsbuild/pants/pull/11539)) + +* Deprecate `--remote-store-server` and `--remote-execution-server` in favor of `--remote-store-address` and `--remote-execution-address` ([#11570](https://github.com/pantsbuild/pants/pull/11570)) + +* Deprecate unused `--remote-store-initial-timeout`, `--remote-store-timeout-multiplier`, `--remote-store-maximum-timeout`, `--remote-store-connection-limit`, and `--remote-store-thread-count` ([#11577](https://github.com/pantsbuild/pants/pull/11577)) + +* Upgrade Pex to 2.1.31. ([#11588](https://github.com/pantsbuild/pants/pull/11588)) + +### Bug fixes + +* Fix Black to work by default with Python 3.9 ([#11541](https://github.com/pantsbuild/pants/pull/11541)) + +* Fix MyPy to work by default with Python 3.9 ([#11537](https://github.com/pantsbuild/pants/pull/11537)) + +### Performance + +* Use --venv mode for internal PEXes. ([#11557](https://github.com/pantsbuild/pants/pull/11557)) + +### Documentation + +* Improve error message for unrecognized BUILD file symbols ([#11564](https://github.com/pantsbuild/pants/pull/11564)) + +## 2.3.0.dev3 (Feb 3, 2021) + +### New Features + +* Add `--remote-auth-plugin` ([#11503](https://github.com/pantsbuild/pants/pull/11503)) + +### User API Changes + +* Stop pinning `zipp` by default in `[pytest].pytest_plugins` ([#11512](https://github.com/pantsbuild/pants/pull/11512)) + +* Change default for `[pytest].pytest_plugins` to use pytest-cov 2.11.x ([#11514](https://github.com/pantsbuild/pants/pull/11514)) + +* Change default versions for `setuptools` options ([#11515](https://github.com/pantsbuild/pants/pull/11515)) + +### Plugin API Changes + +* Upgrade packaging from 20.8 to 20.9 ([#11508](https://github.com/pantsbuild/pants/pull/11508)) + +## 2.3.0.dev2 (Jan 31, 2021) + +### New Features + +* Allow specifying files with `--url-template`. ([#11499](https://github.com/pantsbuild/pants/pull/11499)) + +### User API Changes + +* Bump default MyPy version to 0.800 ([#11506](https://github.com/pantsbuild/pants/pull/11506)) + +* Add `--remote-store-headers` and fix `--remote-execution-headers` to not impact remote caching ([#11501](https://github.com/pantsbuild/pants/pull/11501)) + +* Deprecate `[python-setup].resolver_version` defaulting to pip legacy resolver ([#11497](https://github.com/pantsbuild/pants/pull/11497)) + +### Performance + +* Make remote cache writes async ([#11479](https://github.com/pantsbuild/pants/pull/11479)) + +## 2.3.0.dev1 (Jan 21, 2021) + +### New Features + +* Support Pex CLI `--unzip` and `--include-tools`. ([#11483](https://github.com/pantsbuild/pants/pull/11483)) + +### User API Changes + +* Remove deprecated `--pants-bootstrapdir` and `--pants-configdir` options ([#11491](https://github.com/pantsbuild/pants/pull/11491)) + +### Plugin API Changes + +* Remove `RunInfo` class ([#11456](https://github.com/pantsbuild/pants/pull/11456)) + +### Bug fixes + +* Fix use of remote store when in eager cache mode ([#11468](https://github.com/pantsbuild/pants/pull/11468)) + +* Workaround Rust 1.49 breaking macOS processes with a materialized argv0 ([#11452](https://github.com/pantsbuild/pants/pull/11452)) + +### Performance + +* Use speculation for remote cache reads ([#11429](https://github.com/pantsbuild/pants/pull/11429)) + +### Documentation + +* Change logging level for Scrubbed PYTHONPATH to be debug ([#11480](https://github.com/pantsbuild/pants/pull/11480)) + +* Add failure logging to the StoreGCService. ([#11460](https://github.com/pantsbuild/pants/pull/11460)) + +* Document address storage in AsyncFieldMixin. ([#11448](https://github.com/pantsbuild/pants/pull/11448)) + +## 2.3.0.dev0 (Jan 10, 2021) + +### User API Changes + +* Remove support for pex_binary sources. ([#11445](https://github.com/pantsbuild/pants/pull/11445)) + +* Remove custom targets for Pylint and MyPy. ([#11441](https://github.com/pantsbuild/pants/pull/11441)) + +* Remove deprecated --pantsd-pailgun-quit-timeout option. ([#11440](https://github.com/pantsbuild/pants/pull/11440)) + +* Remove DeprecatedRunTracker. ([#11439](https://github.com/pantsbuild/pants/pull/11439)) + +* Remove deprecated PythonAwsLambda fields. ([#11438](https://github.com/pantsbuild/pants/pull/11438)) + +### Plugin API Changes + +* Remove support for 'Lite' request object hacks. ([#11444](https://github.com/pantsbuild/pants/pull/11444)) + +* Remove support for docstring help. ([#11442](https://github.com/pantsbuild/pants/pull/11442)) + +* Remove deprecated v1 Subsystem facilities ([#11424](https://github.com/pantsbuild/pants/pull/11424)) + +* Remove python workunits ([#11416](https://github.com/pantsbuild/pants/pull/11416)) + +### Bug fixes + +* Add `--remote-cache-eager-fetch` to reduce unreliability ([#11396](https://github.com/pantsbuild/pants/pull/11396)) + +* Fix older versions of `tar` not working when creating an `archive` ([#11413](https://github.com/pantsbuild/pants/pull/11413)) + +* Fix `--opt` options in constraints.txt files erroring ([#11407](https://github.com/pantsbuild/pants/pull/11407)) + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +### Documentation + +* docs: fix simple typo, processs -> process ([#11402](https://github.com/pantsbuild/pants/pull/11402)) diff --git a/versioned_docs/version-2.19/notes/2.4.x.md b/versioned_docs/version-2.19/notes/2.4.x.md new file mode 100644 index 000000000..a2e3a10f3 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.4.x.md @@ -0,0 +1,248 @@ +# 2.4.x Stable Releases + +See https://www.pantsbuild.org/v2.4/docs/release-notes-2-4 for an overview of the changes in this release series. + +## 2.4.2 (June 16, 2021) + +The third stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.2rc1 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12159](https://github.com/pantsbuild/pants/pull/12159)) + +## 2.4.2rc0 (May 25, 2021) + +### Performance + +* Halve memory usage for remote cache writes (Cherry-pick of #12083) ([#12118](https://github.com/pantsbuild/pants/pull/12118)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12117](https://github.com/pantsbuild/pants/pull/12117)) + +## 2.4.1 (May 6, 2021) + +The second stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.1rc1 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11979](https://github.com/pantsbuild/pants/pull/11979)) + +* Revert "Run MyPy only on specified files, not transitive closure" ([#11969](https://github.com/pantsbuild/pants/pull/11969)) + +### Documentation + +* Make remote cache warning less chatty for missing files (Cherry-pick of #11976) ([#11983](https://github.com/pantsbuild/pants/pull/11983)) + +## 2.4.1rc0 (Apr 20, 2021) + +### User API Changes + +* Run MyPy only on specified files, not transitive closure (Cherry-pick of #11936) ([#11938](https://github.com/pantsbuild/pants/pull/11938)) + +### Bug fixes + +* Fix remote cache writes to not block the Pants run (Cherry-pick of #11947) ([#11950](https://github.com/pantsbuild/pants/pull/11950)) + +## 2.4.0 (Apr 19, 2021) + +The first stable release of the `2.4.x` series, with no changes since the previous `rc`! + +## 2.4.0rc5 (Apr 17, 2021) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown (cherrypick of #11929) ([#11934](https://github.com/pantsbuild/pants/pull/11934)) + +* Retrieve RunTracker args from the OptionsBootstrapper. (cherrypick of #11931) ([#11932](https://github.com/pantsbuild/pants/pull/11932)) + +## 2.4.0rc4 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11916](https://github.com/pantsbuild/pants/pull/11916)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11904](https://github.com/pantsbuild/pants/pull/11904)) + +* Fix remote cache storing of `output_directories` (Cherry-pick of #11895) ([#11896](https://github.com/pantsbuild/pants/pull/11896)) + +## 2.4.0rc3 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11883](https://github.com/pantsbuild/pants/pull/11883)) + +## 2.4.0rc2 (Apr 08, 2021) + +### New Features + +* Add `--remote-cache-warnings` and make remote cache warnings less chatty (Cherry-pick of #11859) ([#11863](https://github.com/pantsbuild/pants/pull/11863)) + +## 2.4.0rc1 (Apr 05, 2021) + +### Bug fixes + +* Fix transitive excludes for generating setup.py (Cherry-pick of #11811) ([#11839](https://github.com/pantsbuild/pants/pull/11839)) + +### Documentation + +* Escape generated markdown values (Cherry-pick of #11841) ([#11846](https://github.com/pantsbuild/pants/pull/11846)) + +* Fix typo in `tags` help message (Cherry-pick of #11838) ([#11837](https://github.com/pantsbuild/pants/pull/11837)) + +## 2.4.0rc0 (Mar 25, 2021) + +### New Features + +* Warn when dependency inference is not used due to ambiguity from >1 target exporting the same Python module. ([#11792](https://github.com/pantsbuild/pants/pull/11792)) + +* Dependency inference: can disambiguate modules with multiple owners via `!` ignores ([#11786](https://github.com/pantsbuild/pants/pull/11786)) + +### User API Changes + +* Deprecate `--process-execution-cleanup-local-dirs` in favor of `--process-execution-local-cleanup` ([#11785](https://github.com/pantsbuild/pants/pull/11785)) + +* Deprecate `--process-execution-use-local-cache` in favor of `--process-execution-local-cache` ([#11781](https://github.com/pantsbuild/pants/pull/11781)) + +### Bug fixes + +* Do not infer dependencies in some edge cases with ambiguity ([#11780](https://github.com/pantsbuild/pants/pull/11780)) + +* Ensure that metrics are gathered during abnormal exits ([#11793](https://github.com/pantsbuild/pants/pull/11793)) + +* Enable configuration of local store size limits ([#11777](https://github.com/pantsbuild/pants/pull/11777)) + +* Fix remote execution of Pexes by properly using `append_only_caches`. ([#11760](https://github.com/pantsbuild/pants/pull/11760)) + +## 2.4.0.dev3 (Mar 19, 2021) + +### New Features + +* Add support for gRPC mypy stub files ([#11658](https://github.com/pantsbuild/pants/pull/11658)) + +* Support extra test runner output. ([#11741](https://github.com/pantsbuild/pants/pull/11741)) + +* Send opt-in anonymous telemetry to bugout ([#11697](https://github.com/pantsbuild/pants/pull/11697)) + +* Add `[python-setup].requirement_constraints_target` for upcoming Poetry macro ([#11724](https://github.com/pantsbuild/pants/pull/11724)) + +### User API Changes + +* Kill `SETTABLE_ENV_VARS` allow list. ([#11743](https://github.com/pantsbuild/pants/pull/11743)) + +### Plugin API Changes + +* Implement the IO methods required for `input`, and add `Console.input`. ([#11703](https://github.com/pantsbuild/pants/pull/11703)) + +* Mutually exclusive options no longer change the `dest` ([#11718](https://github.com/pantsbuild/pants/pull/11718)) + +### Bug fixes + +* Invalidate all files in the graph when file watching receives a rescan event. ([#11734](https://github.com/pantsbuild/pants/pull/11734)) + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. ([#11723](https://github.com/pantsbuild/pants/pull/11723)) + +* Fix source root stripping to not strip `requirements.txt` files in plugins ([#11712](https://github.com/pantsbuild/pants/pull/11712)) + +* Fix the mypy-protobuf interpreter constraint. ([#11695](https://github.com/pantsbuild/pants/pull/11695)) + +### Documentation + +* Make `-ldebug` less chatty when using remote caching ([#11667](https://github.com/pantsbuild/pants/pull/11667)) + +* Improve error message for unmatched globs ([#11699](https://github.com/pantsbuild/pants/pull/11699)) + +## 2.4.0.dev2 (Mar 12, 2021) + +### New Features + +* Add a default `module_mapping` for Python 3rd-party dependency inference. ([#11635](https://github.com/pantsbuild/pants/pull/11635)) + +### User API Changes + +* Warn when depending on `files` targets in a `pex_binary` or `python_awslambda` ([#11659](https://github.com/pantsbuild/pants/pull/11659)) + +* Bump default for `[python-protobuf].mypy_plugin_version` to 2.4 ([#11662](https://github.com/pantsbuild/pants/pull/11662)) + +### Plugin API Changes + +* Require subclassing `WorkunitsCallback` ([#11677](https://github.com/pantsbuild/pants/pull/11677)) + +### Bug fixes + +* Fix the `local_only` option to properly disable remote execution and caching ([#11678](https://github.com/pantsbuild/pants/pull/11678)) + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` ([#11673](https://github.com/pantsbuild/pants/pull/11673)) + +* Fix streaming workunit handler plugins to log to console during run ([#11674](https://github.com/pantsbuild/pants/pull/11674)) + +* Avoid std::io::std usage in UI fallback. ([#11671](https://github.com/pantsbuild/pants/pull/11671)) + +* Improve phrasing for "unknown goal" and "unknown flag" errors. ([#11664](https://github.com/pantsbuild/pants/pull/11664)) + +* Do not interpret passthrough args. ([#11656](https://github.com/pantsbuild/pants/pull/11656)) + +### Performance + +* Streaming workunit handler can finalize async when pantsd used ([#11683](https://github.com/pantsbuild/pants/pull/11683)) + +## 2.4.0.dev1 (Mar 08, 2021) + +### New Features + +* Add support for Pytest config files ([#11624](https://github.com/pantsbuild/pants/pull/11624)) + +### Plugin API Changes + +* Add Python tool support for console scripts. ([#11620](https://github.com/pantsbuild/pants/pull/11620)) + +* Require explicit environment usage ([#11641](https://github.com/pantsbuild/pants/pull/11641)) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. ([#11647](https://github.com/pantsbuild/pants/pull/11647)) + +* Ensure that ancestor files at the buildroot are found. ([#11632](https://github.com/pantsbuild/pants/pull/11632)) + +* Handle two edge cases with `./pants tailor` ([#11625](https://github.com/pantsbuild/pants/pull/11625)) + +### Documentation + +* Wrap `./pants help` based on actual terminal width ([#11378](https://github.com/pantsbuild/pants/pull/11378)) + +* Fix references to the deprecated pants log location. ([#11636](https://github.com/pantsbuild/pants/pull/11636)) + +## 2.4.0.dev0 (Feb 27, 2021) + +### New Features + +* Add `--stats-log` to log metrics at end of run ([#11599](https://github.com/pantsbuild/pants/pull/11599)) + +### User API Changes + +* Deprecate --python-setup-resolver-version option. ([#11611](https://github.com/pantsbuild/pants/pull/11611)) + +* Remove deprecated --remote-store options. ([#11609](https://github.com/pantsbuild/pants/pull/11609)) + +* Remove deprecated --process-execution-speculation options. ([#11610](https://github.com/pantsbuild/pants/pull/11610)) + +* Remove deprecated `--remote-execution-server` and `--remote-store-server` options ([#11603](https://github.com/pantsbuild/pants/pull/11603)) + +* Deprecate unused `--process-execution-local-enable-nailgun` ([#11600](https://github.com/pantsbuild/pants/pull/11600)) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv script shebangs being too long for some Linux systems. ([#11604](https://github.com/pantsbuild/pants/pull/11604)) + +### Performance + +* Release the Pants PEX in `--venv` mode. ([#11591](https://github.com/pantsbuild/pants/pull/11591)) + +### Documentation + +* Less chatty plugin resolution logging ([#11593](https://github.com/pantsbuild/pants/pull/11593)) + diff --git a/versioned_docs/version-2.19/notes/2.5.x.md b/versioned_docs/version-2.19/notes/2.5.x.md new file mode 100644 index 000000000..a17920088 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.5.x.md @@ -0,0 +1,307 @@ +# 2.5.x Stable Releases + +See https://www.pantsbuild.org/v2.5/docs/release-notes-2-5 for an overview of the changes in this release series. + +## 2.5.2 (Aug 23, 2021) + +The third stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.2rc3 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (cherrypick of #12547) ([#12550](https://github.com/pantsbuild/pants/pull/12550)) + +## 2.5.2rc2 (Aug 06, 2021) + +### Bug fixes + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12505](https://github.com/pantsbuild/pants/pull/12505)) + +## 2.5.2rc1 (Jul 28, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12398](https://github.com/pantsbuild/pants/pull/12398)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12401](https://github.com/pantsbuild/pants/pull/12401)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12440](https://github.com/pantsbuild/pants/pull/12440)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12403](https://github.com/pantsbuild/pants/pull/12403)) + +## 2.5.2rc0 (Jul 20, 2021) + +### Bug fixes + +* Fix anonymous telemetry logging. ([#12345](https://github.com/pantsbuild/pants/pull/12345)) + +## 2.5.1 (Jul 12, 2021) + +The second stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.1rc6 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12309](https://github.com/pantsbuild/pants/pull/12309)) + +* Hash the repo_id in the tag. ([#12306](https://github.com/pantsbuild/pants/pull/12306)) + +## 2.5.1rc5 (Jul 7, 2021) + +### Bug fixes + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12270](https://github.com/pantsbuild/pants/pull/12270)) + +## 2.5.1rc4 (Jun 30, 2021) + +### Bug fixes + +* Fix dependency inference to be ambiguous when >1 type stub for same module (Cherry-pick of #12244) ([#12245](https://github.com/pantsbuild/pants/pull/12245)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped (Cherry-pick of #12230) ([#12233](https://github.com/pantsbuild/pants/pull/12233)) + +## 2.5.1rc3 (Jun 16, 2021) + +### Bug fixes + +* Fix Process output capture re: `working_directory`. (#12197) ([#12198](https://github.com/pantsbuild/pants/pull/12198)) + +## 2.5.1rc2 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12158](https://github.com/pantsbuild/pants/pull/12158)) + +## 2.5.1rc1 (May 28, 2021) + +### Bug fixes + +* Fix `[python-setup].resolver_jobs` default value to recognize containers (Cherry-pick of #12139) ([#12140](https://github.com/pantsbuild/pants/pull/12140)) + +* Fix `[coverage-py].global_report` for >9 test files. (Cherry-pick of #12144) ([#12146](https://github.com/pantsbuild/pants/pull/12146)) + +### Performance + +* Add retries for reads and writes from remote CAS (Cherry pick of #12132) ([#12136](https://github.com/pantsbuild/pants/pull/12136)) + +## 2.5.1rc0 (May 25, 2021) + +### New Features + +* Add support for global coverage reports. (Cherry-pick of #12080) ([#12088](https://github.com/pantsbuild/pants/pull/12088)) + +### User API Changes + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default (Cherry-pick of #12099) ([#12101](https://github.com/pantsbuild/pants/pull/12101)) + +### Performance + +* Halve memory usage for remote cache writes. (Cherry-pick of #12083) ([#12084](https://github.com/pantsbuild/pants/pull/12084)) + +* Fix remote cache writes memory exhaustion. (Cherry-pick of #12087) ([#12089](https://github.com/pantsbuild/pants/pull/12089)) + +* Add retries with exponential back-off for remote cache (Cherry pick of #12102) ([#12124](https://github.com/pantsbuild/pants/pull/12124)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12116](https://github.com/pantsbuild/pants/pull/12116)) + +* Clarify the default values for parallelism options (Cherry-pick of #12119) ([#12126](https://github.com/pantsbuild/pants/pull/12126)) + +* Make timeouts in tests less confusing (Cherry-pick of #12120) ([#12125](https://github.com/pantsbuild/pants/pull/12125)) + +* Fix scheduler initialization log (Cherry-pick of #12105) ([#12111](https://github.com/pantsbuild/pants/pull/12111)) + +## 2.5.0 (May 15, 2021) + +The first stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.0rc3 (May 14, 2021) + +### Bug fixes + +* Fix constraints resolves to pass additional args. (Cherry-pick of #12076) ([#12077](https://github.com/pantsbuild/pants/pull/12077)) + +* Fix `skip_tool` fields not working with `./pants fmt` (Cherry-pick of #12073) ([#12074](https://github.com/pantsbuild/pants/pull/12074)) + +## 2.5.0rc2 (May 12, 2021) + +### Bug fixes + +* Fix module_mapping to work regardless of capitalization and `-` vs `_` (Cherry-pick of #12068) ([#12070](https://github.com/pantsbuild/pants/pull/12070)) + +* Fix PEX_ROOT leak for run and repl goals. (Cherry-pick of #12066) ([#12067](https://github.com/pantsbuild/pants/pull/12067)) + +* Fix Python run for apps that re-exec themselves (Cherry-pick of #12060) ([#12063](https://github.com/pantsbuild/pants/pull/12063)) + +* Fix Shell dependency inference not caching (Cherry-pick of #12052) ([#12056](https://github.com/pantsbuild/pants/pull/12056)) + +## 2.5.0rc1 (May 10, 2021) + +### New Features + +* Add `extra_env_vars` field to `python_tests` target (Cherry-pick of #12022) ([#12023](https://github.com/pantsbuild/pants/pull/12023)) + +### Plugin API Changes + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` (Cherry-pick of #12029) ([#12046](https://github.com/pantsbuild/pants/pull/12046)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd (#12020) ([#12031](https://github.com/pantsbuild/pants/pull/12031)) + +## 2.5.0rc0 (May 04, 2021) + +### New Features + +* Allow skipping linters/formatters/typecheckers by target ([#12008](https://github.com/pantsbuild/pants/pull/12008)) + +* Add `runtime_package_dependencies` field to `shunit2_tests` ([#11997](https://github.com/pantsbuild/pants/pull/11997)) + +* Tell isort to use the config file at `[isort].config` when safe to do so ([#11994](https://github.com/pantsbuild/pants/pull/11994)) + +* Support `[coverage.py]` config files using `pyproject.toml`, `setup.cfg`, and `tox.ini` ([#11993](https://github.com/pantsbuild/pants/pull/11993)) + +* Check parent directories too for config files for tools Pants runs ([#11992](https://github.com/pantsbuild/pants/pull/11992)) + +### User API Changes + +* Make python-setup resolve_all_constraints a bool. ([#11985](https://github.com/pantsbuild/pants/pull/11985)) + +* Add back `interpreter_constraints` field to `python_awslambda` ([#11982](https://github.com/pantsbuild/pants/pull/11982)) + +* Add back `interpreter_constraints` field to `pex_binary` ([#11977](https://github.com/pantsbuild/pants/pull/11977)) + +### Plugin API Changes + +* Add mechanism for targets to opt out of field sets ([#12002](https://github.com/pantsbuild/pants/pull/12002)) + +* Add `TriBoolField` field template ([#12004](https://github.com/pantsbuild/pants/pull/12004)) + +* Discover config files automatically for tools Pants runs ([#11995](https://github.com/pantsbuild/pants/pull/11995)) + +* Don't require a kwarg for `Target` and `Field` constructors ([#11984](https://github.com/pantsbuild/pants/pull/11984)) + +### Performance + +* Don't parse string imports if not enabled ([#11975](https://github.com/pantsbuild/pants/pull/11975)) + +### Documentation + +* Don't include file name in deprecation warnings ([#12007](https://github.com/pantsbuild/pants/pull/12007)) + +* Stop falling back to docstring for help messages for `Target` and `Field` ([#12003](https://github.com/pantsbuild/pants/pull/12003)) + +* Suggest using `./pants tailor` when target doesn't exist for a file argument ([#11996](https://github.com/pantsbuild/pants/pull/11996)) + +* Make remote cache warning less chatty for missing files ([#11976](https://github.com/pantsbuild/pants/pull/11976)) + +## 2.5.0.dev3 (Apr 23, 2021) + +### User API Changes + +* Upgrade the default mypy to a version that works with namespace packages ([#11945](https://github.com/pantsbuild/pants/pull/11945)) + +* Run MyPy only on specified files, not transitive closure ([#11936](https://github.com/pantsbuild/pants/pull/11936)) + +### Plugin API Changes + +* Upgrade Pants to Pex 2.1.40. ([#11964](https://github.com/pantsbuild/pants/pull/11964)) + +### Bug fixes + +* Release pants.pex in `--unzip` mode to workaround not loading properly ([#11955](https://github.com/pantsbuild/pants/pull/11955)) + +* Fix remote cache writes to not block the Pants run ([#11947](https://github.com/pantsbuild/pants/pull/11947)) + +* Fix python process name extraction. ([#11966](https://github.com/pantsbuild/pants/pull/11966)) + +## 2.5.0.dev2 (Apr 16, 2021) + +### New Features + +* Handle URL requirements with constraints files. ([#11907](https://github.com/pantsbuild/pants/pull/11907)) + +* Release Pants with Python 3.9 ([#11858](https://github.com/pantsbuild/pants/pull/11858)) + +* Allow Python files without a file ending ([#11905](https://github.com/pantsbuild/pants/pull/11905)) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown ([#11929](https://github.com/pantsbuild/pants/pull/11929)) + +* Fix bug in Python 2.7 string dep inference. ([#11900](https://github.com/pantsbuild/pants/pull/11900)) + +* Fix remote cache storing of `output_directories` ([#11895](https://github.com/pantsbuild/pants/pull/11895)) + +### Documentation + +* Finesse some docgen markdown<->html issues. ([#11927](https://github.com/pantsbuild/pants/pull/11927)) + +## 2.5.0.dev1 (Apr 10, 2021) + +### New Features + +* Add dependency inference for Shell ([#11857](https://github.com/pantsbuild/pants/pull/11857)) + +* Add Shell support with Shellcheck, shmft, and shunit2 test runner ([#11844](https://github.com/pantsbuild/pants/pull/11844)) + +* Warn if config files detected but not wired up to Pants ([#11852](https://github.com/pantsbuild/pants/pull/11852)) + +* Warn when dependency inference fails for `protobuf_library` targets due to ambiguity ([#11849](https://github.com/pantsbuild/pants/pull/11849)) + +### User API Changes + +* Remove deprecated `unzip` field for `pex_binary` ([#11868](https://github.com/pantsbuild/pants/pull/11868)) + +* Deprecate `--ignore-pants-warnings` in favor of `--ignore-warnings` ([#11851](https://github.com/pantsbuild/pants/pull/11851)) + +### Plugin API changes + +* Require `WorkunitsCallback` to set `can_finish_async` ([#11687](https://github.com/pantsbuild/pants/pull/11687)) + +### Documentation + +* Fix type in tags help message ([#11836](https://github.com/pantsbuild/pants/pull/11836)) + +## 2.5.0.dev0 (Apr 02, 2021) + +### New Features + +* Subset lockfile resolves. ([#11773](https://github.com/pantsbuild/pants/pull/11773)) + +### User API Changes + +* Remove deprecated `--process-execution-cleanup-local-dirs`, `--process-execution-use-local-cache`, and `--process-execution-local-enable-nailgun` ([#11821](https://github.com/pantsbuild/pants/pull/11821)) + +* Always use new pip resolver and remove deprecated `[python-setup].resolver_version` ([#11819](https://github.com/pantsbuild/pants/pull/11819)) + +* Remove deprecated `[setuptools].entry_point` and `[setuptools].interpreter_constraints` ([#11822](https://github.com/pantsbuild/pants/pull/11822)) + +* Remove deprecated `--mypy-plugin-version`, `pantsd.log` file, `--plugin-cache-dir` + +### Plugin API Changes + +* Remove deprecated `InteractiveProcess.hermetic_env`. + +* Add `RuleRunner.write_files()` for more declarative tests ([#11817](https://github.com/pantsbuild/pants/pull/11817)) + +* Upgrade Pex to 2.1.38. ([#11829](https://github.com/pantsbuild/pants/pull/11829)) + +### Bug fixes + +* Fix transitive excludes for generating setup.py ([#11811](https://github.com/pantsbuild/pants/pull/11811)) + +* Fix workunit visibility calculation. ([#11816](https://github.com/pantsbuild/pants/pull/11816)) + +* Fix `__run.sh` to respect working_directory. ([#11814](https://github.com/pantsbuild/pants/pull/11814)) + +### Documentation + +* Fix misleading docs for `[mypy].skip` ([#11810](https://github.com/pantsbuild/pants/pull/11810)) diff --git a/versioned_docs/version-2.19/notes/2.6.x.md b/versioned_docs/version-2.19/notes/2.6.x.md new file mode 100644 index 000000000..6caac4975 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.6.x.md @@ -0,0 +1,287 @@ +# 2.6.x Stable Releases + +## 2.6.1 (Sep 15, 2021) + +The second stable release of the `2.6.x` series, with no changes since the previous rc! + +## 2.6.1rc3 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12752](https://github.com/pantsbuild/pants/pull/12752)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` (#12711) ([#12730](https://github.com/pantsbuild/pants/pull/12730)) + +### Documentation + +* Fix Toolchain plugin being included in generated reference docs (Cherry-pick of #12642) ([#12647](https://github.com/pantsbuild/pants/pull/12647)) + +## 2.6.1rc2 (Aug 24, 2021) + +### New Features + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs (Cherry-pick of #12598) ([#12600](https://github.com/pantsbuild/pants/pull/12600)) + +### Bug fixes + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS (Cherry-pick of #12581) ([#12631](https://github.com/pantsbuild/pants/pull/12631)) + +* pyenv should fall back to $HOME/.pyenv (Cherry-pick of #12527) ([#12628](https://github.com/pantsbuild/pants/pull/12628)) + +### Documentation + +* Embrace that help strings are markdown. (#12606) ([#12608](https://github.com/pantsbuild/pants/pull/12608)) + +## 2.6.1rc1 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (#12547) ([#12551](https://github.com/pantsbuild/pants/pull/12551)) + +### Performance + +* Stream files into the local store while capturing them (cherrypick of #12563) ([#12572](https://github.com/pantsbuild/pants/pull/12572)) + +## 2.6.1rc0 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations (Cherry-pick of #12510) ([#12511](https://github.com/pantsbuild/pants/pull/12511)) + +* Adds support for Poetry group dependencies (Cherry-pick of #12492) ([#12497](https://github.com/pantsbuild/pants/pull/12497)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv (Cherry-pick of #12506) ([#12507](https://github.com/pantsbuild/pants/pull/12507)) + +### Bug fixes + +* Make the pantsd crash error message more precise. (#12512) ([#12513](https://github.com/pantsbuild/pants/pull/12513)) + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12504](https://github.com/pantsbuild/pants/pull/12504)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. (cherrypick of #12483) ([#12485](https://github.com/pantsbuild/pants/pull/12485)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used (Cherry-pick of #12488) ([#12490](https://github.com/pantsbuild/pants/pull/12490)) + +## 2.6.0 (Jul 30, 2021) + +The first stable release of the `2.6.x` series, with no changes since the previous `rc`! + +## 2.6.0rc4 (Jul 27, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12399](https://github.com/pantsbuild/pants/pull/12399)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12400](https://github.com/pantsbuild/pants/pull/12400)) + +* Do not upload Action inputs for remote cache writes. (Cherry-pick of #12443) ([#12444](https://github.com/pantsbuild/pants/pull/12444)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12439](https://github.com/pantsbuild/pants/pull/12439)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12402](https://github.com/pantsbuild/pants/pull/12402)) + +## 2.6.0rc3 (Jul 20, 2021) + +### User API Changes + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters (Cherry-pick of #12379) ([#12383](https://github.com/pantsbuild/pants/pull/12383)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers` and`extras`) (Cherry-pick of #12323) ([#12385](https://github.com/pantsbuild/pants/pull/12385)) + +* Mark workunits blocked, and skip rendering completed workunits (#12369) ([#12376](https://github.com/pantsbuild/pants/pull/12376)) + +* Fix anonymous telemetry logging. ([#12344](https://github.com/pantsbuild/pants/pull/12344)) + +### Performance + +* Reduce # of resolves when packaging pex_binary and python_awslambda targets (Cherry-pick of #12343) ([#12350](https://github.com/pantsbuild/pants/pull/12350)) + +## 2.6.0rc2 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12303](https://github.com/pantsbuild/pants/pull/12303)) + +## 2.6.0rc1 (Jul 7, 2021) + +### New Features + +* Add support for MyPy report files (Cherry-pick of #12271) ([#12289](https://github.com/pantsbuild/pants/pull/12289)) + +### Bug fixes + +* Hotfix `poetry_requirements` not being recognized as a macro in BUILD files (Cherry-pick of #12263) ([#12264](https://github.com/pantsbuild/pants/pull/12264)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12269](https://github.com/pantsbuild/pants/pull/12269)) + +* Fix poetry_requirements: ignore internal projects. (Cherry-pick of #12280) ([#12296](https://github.com/pantsbuild/pants/pull/12296)) + +* Fix poetry_requirements handling of python. (#12278) ([#12282](https://github.com/pantsbuild/pants/pull/12282)) + +* Include experimental Go backends in pantsbuild.pants (Cherry-pick of #12290) ([#12291](https://github.com/pantsbuild/pants/pull/12291)) + +### Documentation + +* Change how we embed docsite links in help text (Cherry-pick of #12261) ([#12266](https://github.com/pantsbuild/pants/pull/12266)) + +## 2.6.0rc0 (Jun 30, 2021) + +### New Features + +* Add dependency inference for Python third-party type stubs ([#12248](https://github.com/pantsbuild/pants/pull/12248)) + +* Add `poetry_requirements` macro for Poetry support ([#12174](https://github.com/pantsbuild/pants/pull/12174)) + +### User API Changes + +* Update default MyPy to 0.910 ([#12249](https://github.com/pantsbuild/pants/pull/12249)) + +* Update linter versions for `pylint`, `black`, `bandit` ([#12135](https://github.com/pantsbuild/pants/pull/12135)) + +* Upgrade Go distribution to v1.16.5 ([#12247](https://github.com/pantsbuild/pants/pull/12247)) + +### Plugin API Changes + +* Set default user-agent header on gRPC requests with Pants version ([#12241](https://github.com/pantsbuild/pants/pull/12241)) + +* Increment counter on missing file digests ([#12235](https://github.com/pantsbuild/pants/pull/12235)) + +### Bug fixes + +* Add support for multiple requirements for a single package name in the `python_requirements` macro ([#12232](https://github.com/pantsbuild/pants/pull/12232)) + +* Fix dependency inference to be ambiguous when >1 type stub for same module ([#12244](https://github.com/pantsbuild/pants/pull/12244)) + +* Hash the `repo_id` in the tag. ([#12151](https://github.com/pantsbuild/pants/pull/12151)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped ([#12230](https://github.com/pantsbuild/pants/pull/12230)) + +## 2.6.0.dev2 (Jun 16, 2021) + +### New Features + +* Adds `--[no-]watch-filesystem` switch ([#12210](https://github.com/pantsbuild/pants/pull/12210)) + +### User API Changes + +* Deprecate unused `interpreter_constraints` field for `python_awslambda` ([#12208](https://github.com/pantsbuild/pants/pull/12208)) + +### Plugin API Changes + +* Rename remote cache write start and finished metrics ([#12202](https://github.com/pantsbuild/pants/pull/12202)) + +* Support for custom target types in tailor. ([#12156](https://github.com/pantsbuild/pants/pull/12156)) + +### Bug fixes + +* Fallback to `[python-setup].interpreter_constraints` for `python_distribution` targets with no first-party dependencies ([#12207](https://github.com/pantsbuild/pants/pull/12207)) + +* Fix remote cache write attempts metric to record even if write does not finish ([#12204](https://github.com/pantsbuild/pants/pull/12204)) + +* Fix Process output capture re: working_directory. ([#12197](https://github.com/pantsbuild/pants/pull/12197)) + +* Fix `Key` interning race. ([#12152](https://github.com/pantsbuild/pants/pull/12152)) + +### Documentation + +* Fix relocated files help display. ([#12185](https://github.com/pantsbuild/pants/pull/12185)) + +* Suggest `-ldebug` and `--no-process-execution-local-cleanup` in exception messages ([#12180](https://github.com/pantsbuild/pants/pull/12180)) + +## 2.6.0.dev1 (May 29, 2021) + +### New Features + +* Allow setting `--pantsd-max-memory-usage` with `GiB`, `MiB`, and `KiB` units ([#12123](https://github.com/pantsbuild/pants/pull/12123)) + +* Register `strip_pex_env` field with pex_binary. ([#12147](https://github.com/pantsbuild/pants/pull/12147)) + +### User API Changes + +* Fix `[python-setup].resolver_jobs` default value to better recognize containers ([#12139](https://github.com/pantsbuild/pants/pull/12139)) + +* Deprecate broken [lint].reports_dir and make mechanism more flexible ([#12122](https://github.com/pantsbuild/pants/pull/12122)) + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default ([#12099](https://github.com/pantsbuild/pants/pull/12099)) + +### Plugin API Changes + +* Allow overriding option default help display. ([#12128](https://github.com/pantsbuild/pants/pull/12128)) + +* Rename `ProcessCacheScope.NEVER` to `ProcessCacheScope.PER_SESSION` ([#12100](https://github.com/pantsbuild/pants/pull/12100)) + +* Replace `ProcessCacheScope.PER_RESTART` with `ProcessCacheScope.PER_RESTART_ALWAYS` and `ProcessCacheScope.PER_RESTART_SUCCESSFUL` ([#12094](https://github.com/pantsbuild/pants/pull/12094)) + +### Performance + +* add retries for reads and writes from remote CAS ([#12132](https://github.com/pantsbuild/pants/pull/12132)) + +* Fix --coverage-py-global-report for >9 test files. ([#12144](https://github.com/pantsbuild/pants/pull/12144)) + +### Documentation + +* Clarify the default values for parallelism options ([#12119](https://github.com/pantsbuild/pants/pull/12119)) + +* Make timeouts in tests less confusing ([#12120](https://github.com/pantsbuild/pants/pull/12120)) + +* Rewrite error message when Pantsd is shut down during run ([#12107](https://github.com/pantsbuild/pants/pull/12107)) + +* Fix scheduler initialization log ([#12105](https://github.com/pantsbuild/pants/pull/12105)) + +## 2.6.0.dev0 (May 19, 2021) + +### New Features + +* Add support for global coverage reports. ([#12080](https://github.com/pantsbuild/pants/pull/12080)) + +* Add `extra_env_vars` capability to `python_tests()` ([#12022](https://github.com/pantsbuild/pants/pull/12022)) + +* Add `pex_binary` support for `--no-strip-pex-env`. ([#12061](https://github.com/pantsbuild/pants/pull/12061)) + +### User API Changes + +* Remove deprecated `[pytest].config` in favor of `[pytest].config_discovery` ([#12033](https://github.com/pantsbuild/pants/pull/12033)) + +* Remove deprecated `ignore_pants_warnings` in favor of `ignore_warnings` ([#12032](https://github.com/pantsbuild/pants/pull/12032)) + +* Enforce `[python-setup].resolve_all_constraints` being a bool option ([#12034](https://github.com/pantsbuild/pants/pull/12034)) + +* Remove experimental and unused `[python-setup].requirement_constraints_target` option and `_python_constraints` target ([#11998](https://github.com/pantsbuild/pants/pull/11998)) + +### Plugin API Changes + +* Rename `PexInterpreterConstraints` to `InterpreterConstraints` and move to dedicated file ([#12021](https://github.com/pantsbuild/pants/pull/12021)) + +* Add plugin hook for setting up Pytest context ([#12091](https://github.com/pantsbuild/pants/pull/12091)) + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` ([#12029](https://github.com/pantsbuild/pants/pull/12029)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd ([#12020](https://github.com/pantsbuild/pants/pull/12020)) + +* Fix `module_mapping` to work regardless of capitalization and `-` vs `_` ([#12068](https://github.com/pantsbuild/pants/pull/12068)) + +* Fix `PEX_ROOT` leak with run and repl goals. ([#12066](https://github.com/pantsbuild/pants/pull/12066)) + +* Fix constraints resolves to pass additional args. ([#12076](https://github.com/pantsbuild/pants/pull/12076)) + +* Fix `skip_tool` fields not working with `./pants fmt` ([#12073](https://github.com/pantsbuild/pants/pull/12073)) + +* Fix Python run for apps that re-exec themselves. ([#12060](https://github.com/pantsbuild/pants/pull/12060)) + +* Fix remote cache writes memory exhaustion. ([#12087](https://github.com/pantsbuild/pants/pull/12087)) + +* Halve memory usage for remote cache writes. ([#12083](https://github.com/pantsbuild/pants/pull/12083)) + +* Fix Shell dependency inference not caching ([#12052](https://github.com/pantsbuild/pants/pull/12052)) diff --git a/versioned_docs/version-2.19/notes/2.7.x.md b/versioned_docs/version-2.19/notes/2.7.x.md new file mode 100644 index 000000000..aa8a42028 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.7.x.md @@ -0,0 +1,379 @@ +# 2.7.x Stable Releases + +## 2.7.2 (Nov 17, 2021) + +The third stable release of the `2.7.x` series, with no changes since the previous release candidate. + +## 2.7.2rc2 (Nov 10, 2021) + +### Bug fixes + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13540](https://github.com/pantsbuild/pants/pull/13540)) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13560](https://github.com/pantsbuild/pants/pull/13560)) + +## 2.7.2rc1 (Nov 02, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13460](https://github.com/pantsbuild/pants/pull/13460)) + +## 2.7.2rc0 (Oct 28, 2021) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13402](https://github.com/pantsbuild/pants/pull/13402)) + +## 2.7.1 (Oct 27, 2021) + +The second stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.1rc1 (Oct 11, 2021) + +### User API Changes + +* Add `[mypy].extra_type_stubs` (Cherry-pick of #13180) ([#13211](https://github.com/pantsbuild/pants/pull/13211)) + +### Bug fixes + +* `pantsd` falls back to socket usage if it cannot open a TTY. (cherrypick of #13155) ([#13157](https://github.com/pantsbuild/pants/pull/13157)) + +* Release the GIL while creating a Session. (cherrypick of #13127) ([#13158](https://github.com/pantsbuild/pants/pull/13158)) + +* Do not change working directory when extracting archives (cherrypick of #12497 and #13077) ([#13159](https://github.com/pantsbuild/pants/pull/13159)) + +## 2.7.1rc0 (Oct 04, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.51. (#13098) (Cherry picks of 513647c1 b1d7ab9d) ([#13102](https://github.com/pantsbuild/pants/pull/13102)) + +* Upgrade to Pex 2.1.50 and leverage packed layout. (Cherry picks of 433a4dd 0d36002 7ba06a5) ([#13078](https://github.com/pantsbuild/pants/pull/13078)) + +* Don't invalidate the scheduler when piping output. (cherrypick of #13028) ([#13030](https://github.com/pantsbuild/pants/pull/13030)) + +* Ensure that `Tree` contents are uploaded after creation. (cherrypick of #13008) ([#13009](https://github.com/pantsbuild/pants/pull/13009)) + +## 2.7.0 (Sep 24, 2021) + +The first stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.0rc5 (Sep 22, 2021) + +### Bug fixes + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` (Cherry-pick of #12980) ([#12981](https://github.com/pantsbuild/pants/pull/12981)) + +* Fix spurious "Scheduling: ..." workunits with remote caching (cherrypick of #12973) ([#12975](https://github.com/pantsbuild/pants/pull/12975)) + +## 2.7.0rc4 (Sep 17, 2021) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (cherry-pick of #12842) ([#12861](https://github.com/pantsbuild/pants/pull/12861)) + +### Bug fixes + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile (Cherry-pick of #12900) ([#12905](https://github.com/pantsbuild/pants/pull/12905)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile (#12807) ([#12836](https://github.com/pantsbuild/pants/pull/12836)) + +## 2.7.0rc3 (Sep 10, 2021) + +### User API Changes + +* Add `version` to lockfile metadata headers (cherry-pick of #12788) ([#12816](https://github.com/pantsbuild/pants/pull/12816)) + +### Bug fixes + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference (Cherry-pick of #12818) ([#12819](https://github.com/pantsbuild/pants/pull/12819)) + +* Properly include file dependencies in docker build context (cherrypick of #12758) ([#12823](https://github.com/pantsbuild/pants/pull/12823)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation (cherrypick of #12800) ([#12828](https://github.com/pantsbuild/pants/pull/12828)) + +## 2.7.0rc2 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12750](https://github.com/pantsbuild/pants/pull/12750)) + +## 2.7.0rc1 (Sep 01, 2021) + +### Bug fixes + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile (cherrypick of #12738) ([#12741](https://github.com/pantsbuild/pants/pull/12741)) + +* Add specific and actionable instructions to stale lockfile errors (cherrypick of #12699). ([#12717](https://github.com/pantsbuild/pants/pull/12717)) + +* Improve descriptions of the process executions for PEX_PATH composition. (cherrypick of #12736) ([#12737](https://github.com/pantsbuild/pants/pull/12737)) + +* Absolutize all of the execute_pex_args in the venv script. (cherrypick of #12727) ([#12729](https://github.com/pantsbuild/pants/pull/12729)) + +## 2.7.0rc0 (Aug 31, 2021) + +### New Features + +* Add `[tool].lockfile` (e.g. `[black].lockfile`) for Python tools and activate `./pants generate-lockfiles` by default ([#12684](https://github.com/pantsbuild/pants/pull/12684)) + +* Add `--generate-lockfiles-resolve` to allow generating for only certain tools ([#12676](https://github.com/pantsbuild/pants/pull/12676)) + +* Add `[generate-lockfiles].custom_command` ([#12687](https://github.com/pantsbuild/pants/pull/12687)) + +* Add experimental Docker build rules. ([#12467](https://github.com/pantsbuild/pants/pull/12467)) + +### User API Changes + +* Use Pants's default tool lockfiles by default for Python tools like Black, Pytest, and Flake8 ([#12689](https://github.com/pantsbuild/pants/pull/12689)) + +* Set `[python-setup].invalid_lockfile_behavior` to `error` by default ([#12686](https://github.com/pantsbuild/pants/pull/12686)) + +* Bump default for `pytest-cov` (`[pytest].extra_requirements`) and `[coverage-py].version` so both use `coverage 5.5` ([#12690](https://github.com/pantsbuild/pants/pull/12690)) + +* Pin `GitPython==3.1.18` by default with Bandit to ensure yanked release isn't used in lockfile generation ([#12691](https://github.com/pantsbuild/pants/pull/12691)) + +* Stop pinning `stevedore<3` by default for Bandit ([#12681](https://github.com/pantsbuild/pants/pull/12681)) + +* Stop installing `setuptools` by default with Black, Flake8, Isort, and Yapf ([#12673](https://github.com/pantsbuild/pants/pull/12673)) + +* Stop using `[python-setup].requirements_constraints` when installing tools like Black and MyPy ([#12639](https://github.com/pantsbuild/pants/pull/12639)) + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs ([#12598](https://github.com/pantsbuild/pants/pull/12598)) + +* Type stubs should be registered as normal requirements, not in `[mypy].extra_requirements` ([#12597](https://github.com/pantsbuild/pants/pull/12597)) + +### Plugin API Changes + +* Support indivisible Sources fields ([#12685](https://github.com/pantsbuild/pants/pull/12685)) + +* Render EngineAware parameters in cycle errors from Graph. ([#12668](https://github.com/pantsbuild/pants/pull/12668)) + +* Split PexRequirements into three unioned types ([#12644](https://github.com/pantsbuild/pants/pull/12644)) + +* Add `__repr__` impl for PySnapshot ([#12622](https://github.com/pantsbuild/pants/pull/12622)) + +* Remove the `rationale` field from BashBinaryRequest. ([#12624](https://github.com/pantsbuild/pants/pull/12624)) + +### Bug fixes + +* The `pex_binary` "venv" mode now sees bin scripts. ([#12664](https://github.com/pantsbuild/pants/pull/12664)) + +* Fix UI rendering when multiple tasks have the same label. ([#12659](https://github.com/pantsbuild/pants/pull/12659)) + +* tailor: do not append comma to kwarg with empty tuple ([#12653](https://github.com/pantsbuild/pants/pull/12653)) + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS ([#12581](https://github.com/pantsbuild/pants/pull/12581)) + +* Fix coloring of stderr logs with pantsd ([#12585](https://github.com/pantsbuild/pants/pull/12585)) + +### Performance + +* Decompose requirements pexes ([#12675](https://github.com/pantsbuild/pants/pull/12675)) + +### Documentation + +* Switch log warning rendering to yellow. ([#12596](https://github.com/pantsbuild/pants/pull/12596)) + +* Align `Enriched*Result` colors, sigils, and log levels. ([#12645](https://github.com/pantsbuild/pants/pull/12645)) + +* Fix Toolchain plugin being included in generated reference docs ([#12642](https://github.com/pantsbuild/pants/pull/12642)) + +## 2.7.0.dev4 (Aug 15, 2021) + +### New Features + +* Add additional Google Cloud libraries to dependency inference's default module mapping ([#12553](https://github.com/pantsbuild/pants/pull/12553)) + +* Validate that `pytest-cov` is installed when `[test].use_coverage` is set ([#12534](https://github.com/pantsbuild/pants/pull/12534)) + +### User API Changes + +* Deprecate `--pants-supportdir`, rename `--engine-visualize-to`, and fix help for `--loop`. ([#12558](https://github.com/pantsbuild/pants/pull/12558)) + +* Change the PythonProtobufMypyPlugin option scope. ([#12525](https://github.com/pantsbuild/pants/pull/12525)) + +### Plugin API Changes + +* Upgrade packaging from 20.9 to 21.0 ([#12561](https://github.com/pantsbuild/pants/pull/12561)) + +* Allow newer versions of setuptools and wheel. ([#12555](https://github.com/pantsbuild/pants/pull/12555)) + +* Deprecate an options scope with underscores. ([#12532](https://github.com/pantsbuild/pants/pull/12532)) + +* Remove `TestResult.skip()` in favor of `TestFieldSet.opt_out()` ([#12516](https://github.com/pantsbuild/pants/pull/12516)) + +* Finally get rid of Optionable entirely. ([#12538](https://github.com/pantsbuild/pants/pull/12538)) + +### Bug fixes + +* Fix `shfmt` and `--test-open-coverage` to handle CPU architecture `Platform` changes ([#12546](https://github.com/pantsbuild/pants/pull/12546)) + +* Fix asdf directory lookup. ([#12528](https://github.com/pantsbuild/pants/pull/12528)) + +* Fix shlexing of passthrough args. ([#12547](https://github.com/pantsbuild/pants/pull/12547)) + +* pyenv should fall back to $HOME/.pyenv ([#12527](https://github.com/pantsbuild/pants/pull/12527)) + +### Performance + +* Stream files into the local store while capturing them ([#12563](https://github.com/pantsbuild/pants/pull/12563)) + +* use REAPI batch API for small blob writes ([#12537](https://github.com/pantsbuild/pants/pull/12537)) + +* add capabilties cache for remote store client ([#12522](https://github.com/pantsbuild/pants/pull/12522)) + +## 2.7.0.dev3 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations ([#12510](https://github.com/pantsbuild/pants/pull/12510)) + +* Adds support for Poetry group dependencies ([#12492](https://github.com/pantsbuild/pants/pull/12492)) + +* Tailor pex_binary targets for entry points. ([#12478](https://github.com/pantsbuild/pants/pull/12478)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv ([#12506](https://github.com/pantsbuild/pants/pull/12506)) + +### Plugin API Changes + +* Refactor Pex working directory handling. ([#12479](https://github.com/pantsbuild/pants/pull/12479)) + +### Bug fixes + +* Make the pantsd crash error message more precise. ([#12512](https://github.com/pantsbuild/pants/pull/12512)) + +* Resolve plugins using the PEX --python option. ([#12500](https://github.com/pantsbuild/pants/pull/12500)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. ([#12483](https://github.com/pantsbuild/pants/pull/12483)) + +* Fix default coverage collection. ([#12477](https://github.com/pantsbuild/pants/pull/12477)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used ([#12488](https://github.com/pantsbuild/pants/pull/12488)) + +## 2.7.0.dev2 (Jul 30, 2021) + +### New Features + +* Provide a peek goal to easily view BUILD metadata from command line ([#11347](https://github.com/pantsbuild/pants/pull/11347)) + +* Add `entry_points` field to python_distribution ([#11872](https://github.com/pantsbuild/pants/pull/11872)) + +* Add hadolint to lint Docker files ([#12426](https://github.com/pantsbuild/pants/pull/12426)) + +* Add experimental Docker target type and tailor ([#12431](https://github.com/pantsbuild/pants/pull/12431)) + +* Support `pex_binary` addresses in `provides=setup_py(entry_points)` field ([#12414](https://github.com/pantsbuild/pants/pull/12414)) + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers ([#12392](https://github.com/pantsbuild/pants/pull/12392)) + +* Dependency inference for `pex_binary` and `python_awslambda` can disambiguate ambiguous modules based on file paths ([#12326](https://github.com/pantsbuild/pants/pull/12326)) + +### User API Changes + +* Deprecate `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12450](https://github.com/pantsbuild/pants/pull/12450)) + +* Deprecate `setup_py().with_binaries()` in favor of `entry_points` field ([#12413](https://github.com/pantsbuild/pants/pull/12413)) + +* Add instruction set architecture awareness to platforms and `--url-platform-mapping` options ([#12367](https://github.com/pantsbuild/pants/pull/12367)) + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters ([#12379](https://github.com/pantsbuild/pants/pull/12379)) + +* Upgrade to Lambdex 0.1.5. ([#12461](https://github.com/pantsbuild/pants/pull/12461)) + +* Upgrade to Pex 2.1.44. ([#12342](https://github.com/pantsbuild/pants/pull/12342)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers`, and`extras`) ([#12323](https://github.com/pantsbuild/pants/pull/12323)) + +* Mark workunits blocked, and skip rendering completed workunits ([#12369](https://github.com/pantsbuild/pants/pull/12369)) + +### Performance + +* Do not upload Action inputs for remote cache writes. ([#12443](https://github.com/pantsbuild/pants/pull/12443)) + +* Skip preparation of workunit log messages which will never be rendered. ([#12396](https://github.com/pantsbuild/pants/pull/12396)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies ([#12435](https://github.com/pantsbuild/pants/pull/12435)) + +* Add counters for blob bytes uploaded/downloaded to/from CAS ([#12471](https://github.com/pantsbuild/pants/pull/12471)) + +* Add cache and runtime metadata to Process workunits ([#12469](https://github.com/pantsbuild/pants/pull/12469)) + +* Fix the content type for Pants' wheel long_descriptions. ([#12391](https://github.com/pantsbuild/pants/pull/12391)) + +## 2.7.0.dev1 (Jul 16, 2021) + +### New Features + +* Allow restricting which versions are valid for `ExternalTools`. ([#12332](https://github.com/pantsbuild/pants/pull/12332)) + +* Add yapf Python formatter ([#12317](https://github.com/pantsbuild/pants/pull/12317)) + +* Add ASDF support to interpreter-search-paths ([#12028](https://github.com/pantsbuild/pants/pull/12028)) + +### Plugin API Changes + +* Validate option default values to be of correct type. ([#12331](https://github.com/pantsbuild/pants/pull/12331)) + +### Bug fixes + +* Do not leak subsystems as goals to the command line interface ([#12337](https://github.com/pantsbuild/pants/pull/12337)) + +* Fix anonymous telemetry logging. ([#12340](https://github.com/pantsbuild/pants/pull/12340)) + +* Fixup incorrect platform help message. ([#12320](https://github.com/pantsbuild/pants/pull/12320)) + +### Documentation + +* Improve wording for `pex_binary` `platforms` field help ([#12304](https://github.com/pantsbuild/pants/pull/12304)) + +-------------------------------------------------------------------- + +## 2.7.0.dev0 (Jul 09, 2021) + +### New Features + +* Add skimage module mapping for dependency inference ([#12301](https://github.com/pantsbuild/pants/pull/12301)) + +* Add experimental terraform plugin with fmt and lint rules ([#11973](https://github.com/pantsbuild/pants/pull/11973)) + +* Add support for MyPy report files ([#12271](https://github.com/pantsbuild/pants/pull/12271)) + +* Support running tailor on subdirs. ([#12262](https://github.com/pantsbuild/pants/pull/12262)) + +* Support building dists from preexisting setup.py. ([#12250](https://github.com/pantsbuild/pants/pull/12250)) + +### User API Changes + +* Don't tailor a python_library for a solitary __init__.py. ([#12288](https://github.com/pantsbuild/pants/pull/12288)) + +* Apply a concurrency limit to remote store/cache/execution gRPC requests ([#12256](https://github.com/pantsbuild/pants/pull/12256)) + +### Bug fixes + +* Fix poetry_requirements: ignore internal projects. ([#12280](https://github.com/pantsbuild/pants/pull/12280)) + +* Fix poetry_requirements handling of python. ([#12278](https://github.com/pantsbuild/pants/pull/12278)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` ([#12268](https://github.com/pantsbuild/pants/pull/12268)) + +* Hotfix for `poetry_requirements` not being recognized as a macro in build files ([#12263](https://github.com/pantsbuild/pants/pull/12263)) + +* Include experimental Go backends in pantsbuild.pants ([#12290](https://github.com/pantsbuild/pants/pull/12290)) + +### Documentation + +* Improve error for out-of-line Gets. ([#12305](https://github.com/pantsbuild/pants/pull/12305)) diff --git a/versioned_docs/version-2.19/notes/2.8.x.md b/versioned_docs/version-2.19/notes/2.8.x.md new file mode 100644 index 000000000..1605905e9 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.8.x.md @@ -0,0 +1,498 @@ +# 2.8.x Release Series + +## 2.8.1 (May 13, 2022) + +The second stable release of the `2.8.x` series, with no changes since the previous `rc`! + +## 2.8.1rc2 (Jan 03, 2022) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14036](https://github.com/pantsbuild/pants/pull/14036)) + +* Fix bug when `docker push`ing multiple tags. (cherrypick of #13764) ([#14042](https://github.com/pantsbuild/pants/pull/14042)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13941](https://github.com/pantsbuild/pants/pull/13941)) + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13923](https://github.com/pantsbuild/pants/pull/13923)) + +* Fix `.pyi` files not automatically depending on `__init__.py` (Cherry-pick of #13844) ([#13858](https://github.com/pantsbuild/pants/pull/13858)) + +## 2.8.1rc1 (Nov 30, 2021) + +### Bug fixes + +* [bugfix] Pass Docker env vars to `docker publish`. (cherrypick of #13669) ([#13752](https://github.com/pantsbuild/pants/pull/13752)) + +* Make tailor generate correct fields for `python_requirements`. (cherrypick of #13687) ([#13688](https://github.com/pantsbuild/pants/pull/13688)) + + +## 2.8.1rc0 (Nov 17, 2021) + +### Bug fixes + +* Fix download URL for `grpc_python_plugin` on macos (cherrypick of #13656) ([#13659](https://github.com/pantsbuild/pants/pull/13659)) + +## 2.8.0 (Nov 17, 2021) + +The first stable release of the `2.8.x` series, with no changes since the previous release candidate! + +## 2.8.0rc6 (Nov 16, 2021) + +### New features + +* Add `[twine].ca_certs_path` option (Cherry-pick of #13593) ([#13642](https://github.com/pantsbuild/pants/pull/13642)) + +### User API Changes + +* Ban `*` globs and `!` ignores in `source: str` field (Cherry-pick of #13629) ([#13636](https://github.com/pantsbuild/pants/pull/13636)) + +* Bump twine to 3.6.0 and add tool lockfile (Cherry-pick of #13594) ([#13640](https://github.com/pantsbuild/pants/pull/13640)) + +### Bug fixes + +* Fix Python dependency inference breaking with `python_source` targets (Cherry-pick of #13627) ([#13633](https://github.com/pantsbuild/pants/pull/13633)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. (Cherry-pick of #13616) ([#13623](https://github.com/pantsbuild/pants/pull/13623)) + +## 2.8.0rc5 (Nov 10, 2021) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13561](https://github.com/pantsbuild/pants/pull/13561)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets (cherrypick of #13574) ([#13582](https://github.com/pantsbuild/pants/pull/13582)) + +## 2.8.0rc4 (Nov 09, 2021) + +### Bug fixes + +* Don't duplicate Go error logs when dependency failed to compile (Cherry-pick of #13502) ([#13538](https://github.com/pantsbuild/pants/pull/13538)) + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13541](https://github.com/pantsbuild/pants/pull/13541)) + +### Documentation + +* Fix formatting of overrides field in docs (Cherry-pick of #13549) ([#13552](https://github.com/pantsbuild/pants/pull/13552)) + +## 2.8.0rc3 (Nov 04, 2021) + +### Performance + +* Go: improve performance of first-party package analysis (Cherry-pick of #13476) ([#13486](https://github.com/pantsbuild/pants/pull/13486)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go (Cherry-pick of #13492) ([#13493](https://github.com/pantsbuild/pants/pull/13493)) + +## 2.8.0rc2 (Nov 02, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements (Cherry-pick of #13458) ([#13475](https://github.com/pantsbuild/pants/pull/13475)) + +* Add `--tailor-check` (Cherry-pick of #13432) ([#13457](https://github.com/pantsbuild/pants/pull/13457)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` (Cherry-pick of #13422) ([#13454](https://github.com/pantsbuild/pants/pull/13454)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` (Cherry-pick of #13420) ([#13446](https://github.com/pantsbuild/pants/pull/13446)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value (Cherry-pick of #13456) ([#13466](https://github.com/pantsbuild/pants/pull/13466)) + +### Bug fixes + +* Do not cache Docker invocations between Pants runs (Cherry-pick of #13464) ([#13467](https://github.com/pantsbuild/pants/pull/13467)) + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13459](https://github.com/pantsbuild/pants/pull/13459)) + +## 2.8.0rc1 (Oct 28, 2021) + +### Bug fixes + +* Assume version 1 for older lockfiles without `version` key (cherrypick of #13399) ([#13406](https://github.com/pantsbuild/pants/pull/13406)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13394](https://github.com/pantsbuild/pants/pull/13394)) + +* Go: don't error for unsupported third-party sources with project introspection (Cherry-pick of #13377) ([#13381](https://github.com/pantsbuild/pants/pull/13381)) + +* Don't error for invalid Go third-party packages unless building them (Cherry-pick of #13405) ([#13410](https://github.com/pantsbuild/pants/pull/13410)) + +* Fix missing field for `tffmt` in `lint`. (cherrypick of #13355) ([#13356](https://github.com/pantsbuild/pants/pull/13356)) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13403](https://github.com/pantsbuild/pants/pull/13403)) + +* Don't download Go third-party dependencies multiple times (Cherry-pick of #13352) ([#13378](https://github.com/pantsbuild/pants/pull/13378)) + +### Documentation + +* Make `check` output more useful for Go and Java (cherrypick of #13379) ([#13388](https://github.com/pantsbuild/pants/pull/13388)) + +## 2.8.0rc0 (Oct 24, 2021) + +### New Features + +* `update-build-files` goal formats BUILD files with Black ([#13279](https://github.com/pantsbuild/pants/pull/13279)) + +* Add `overrides` field to `files` and `resources` targets ([#13304](https://github.com/pantsbuild/pants/pull/13304)) + +* Add `overrides` field to `shell_sources`, `shunit2_sources`, and `protobuf_sources` ([#13298](https://github.com/pantsbuild/pants/pull/13298)) + +* Add `overrides` field to `python_sources` and `python_tests` target ([#13270](https://github.com/pantsbuild/pants/pull/13270)) + +* Depending on a `python_distribution` with `pex_binary` now includes the built dist ([#13306](https://github.com/pantsbuild/pants/pull/13306)) + +* Support arbitrary PEP-517 build systems. ([#13285](https://github.com/pantsbuild/pants/pull/13285)) + +### User API Changes + +* Pants's CLI output uses the full address `dir:dir` instead of the shorthand `dir` ([#13274](https://github.com/pantsbuild/pants/pull/13274)) + +* Rename `[python-setup]` to `[python]` and move into the python backend. ([#13345](https://github.com/pantsbuild/pants/pull/13345)) + +* The default `sources` for `conftest.py` and `*_test.pyi` now belong to new target generator `python_test_utils`, not `python_tests` ([#13299](https://github.com/pantsbuild/pants/pull/13299)) + +* Deprecate including `conftest.py` and `.pyi` files in `python_tests` target's `sources` field ([#13320](https://github.com/pantsbuild/pants/pull/13320)) + +* Rename `docker_image` field `sources` to `source` ([#13327](https://github.com/pantsbuild/pants/pull/13327)) + +* Merge docker `version` field into the `image_tags` field. ([#13308](https://github.com/pantsbuild/pants/pull/13308)) + +* Upgrade default black version from 21.8b0 to 21.9b0 ([#13326](https://github.com/pantsbuild/pants/pull/13326)) + +* Terraform: move `terraform validate` from `lint` to `check` ([#13301](https://github.com/pantsbuild/pants/pull/13301)) + +* Autoflake and Pyupgrade are now activated by experimental backends ([#13317](https://github.com/pantsbuild/pants/pull/13317)) + +* Add google cloud logging to default Python module map ([#13305](https://github.com/pantsbuild/pants/pull/13305)) + +### Plugin API Changes + +* Add support for structured output from `publish` goal. ([#13292](https://github.com/pantsbuild/pants/pull/13292)) + +### Bug fixes + +* Do not choke on `.` in tool names for `experimental_shell_command`s. ([#13293](https://github.com/pantsbuild/pants/pull/13293)) + +### Documentation + +* Fix documentation for `file:` URLs, and add an assist for malformed URLs. ([#13272](https://github.com/pantsbuild/pants/pull/13272)) + +## 2.8.0.dev5 (Oct 17, 2021) + +### New Features + +* Add `./pants update-build-files` to automate fixing some deprecation warnings ([#13273](https://github.com/pantsbuild/pants/pull/13273)) + +* Add `[cli.alias]` config section for command line alias support. ([#13228](https://github.com/pantsbuild/pants/pull/13228)) + +* Add `run` support for new `experimental_run_shell_command` target. ([#13229](https://github.com/pantsbuild/pants/pull/13229)) + +* Add `azure` to default Python module mapping ([#13275](https://github.com/pantsbuild/pants/pull/13275)) + +* Support linux arm64 binary tools. ([#13249](https://github.com/pantsbuild/pants/pull/13249)) + +* Add minimal Scala backend ([#13130](https://github.com/pantsbuild/pants/pull/13130)) + +### User API Changes + +* Fix `dir:` and `dir::` to include generated targets ([#13263](https://github.com/pantsbuild/pants/pull/13263)) + +* Merge Docker `image_name` into the `repository` field. ([#13225](https://github.com/pantsbuild/pants/pull/13225)) + +* `python_sources` and `python_tests` targets no longer use dependency inference, only `python_source` and `python_test` targets ([#13231](https://github.com/pantsbuild/pants/pull/13231)) + +### Plugin API Changes + +* Verify each observed URL and Digest pair ([#13266](https://github.com/pantsbuild/pants/pull/13266)) + +### Bug fixes + +* Fix pyupgrade alias name conflict ([#13282](https://github.com/pantsbuild/pants/pull/13282)) + +* Fix generate_all_lockfiles. ([#13280](https://github.com/pantsbuild/pants/pull/13280)) + +* Don't invalidate dependency inference when unrelated file names change ([#13248](https://github.com/pantsbuild/pants/pull/13248)) + +* Fix `./pants help targets` to not include deprecated target names ([#13236](https://github.com/pantsbuild/pants/pull/13236)) + +## 2.8.0.dev4 (Oct 11, 2021) + +### New Features + +* Add support for pyupgrade ([#13063](https://github.com/pantsbuild/pants/pull/13063)) + +* Support optionally restarting interactive processes when input files change ([#13178](https://github.com/pantsbuild/pants/pull/13178)) + +* Package dependencies for shell command. ([#13168](https://github.com/pantsbuild/pants/pull/13168)) + +* Add `help tools` ([#13135](https://github.com/pantsbuild/pants/pull/13135)) + +* Docker build args config option ([#13147](https://github.com/pantsbuild/pants/pull/13147)) + +* Add `[docker].env_vars` option. ([#13146](https://github.com/pantsbuild/pants/pull/13146)) + +* Support for directly `run`ning a Docker image ([#13120](https://github.com/pantsbuild/pants/pull/13120)) + +* Docker image version tag ([#13097](https://github.com/pantsbuild/pants/pull/13097)) + +* Docker `publish` support ([#13085](https://github.com/pantsbuild/pants/pull/13085)) + +* New `publish` goal ([#13057](https://github.com/pantsbuild/pants/pull/13057)) + +### User API Changes + +* Add `[mypy].extra_type_stubs` ([#13180](https://github.com/pantsbuild/pants/pull/13180)) + +* Deprecate `requirements_relpath` and `pyproject_toml_relpath` in favor of `source` for `python_requirements` and `poetry_requirements` ([#13204](https://github.com/pantsbuild/pants/pull/13204)) + +* Deprecate `module_mapping` and `type_stubs_module_mapping` fields for `python_requirement` in favor of `modules` and `type_stub_modules` ([#13197](https://github.com/pantsbuild/pants/pull/13197)) + +* Deprecate `python_library`, `protobuf_library`, and `shell_library` in favor of `python_sources`, `protobuf_sources`, and `shell_sources` ([#13196](https://github.com/pantsbuild/pants/pull/13196)) + +* Add `scikit-learn` to the default module mapping ([#13198](https://github.com/pantsbuild/pants/pull/13198)) + +* Deprecate `python_requirement_library` in favor of `python_requirement` ([#13133](https://github.com/pantsbuild/pants/pull/13133)) + +* An explicit `generate_setup` field on `python_distribution`. ([#13111](https://github.com/pantsbuild/pants/pull/13111)) + +* Upgrade to Pex 2.1.51. ([#13098](https://github.com/pantsbuild/pants/pull/13098)) + +### Plugin API Changes + +* Deprecate `Sources` in favor of `SourcesField`, `SingleSourceField`, and `MultipleSourcesField` ([#13202](https://github.com/pantsbuild/pants/pull/13202)) + +* Rename `ResourcesSources` and split target into generator vs. atom ([#13194](https://github.com/pantsbuild/pants/pull/13194)) + +* Rename `FilesSources` and split target into target generator vs. atom target ([#13190](https://github.com/pantsbuild/pants/pull/13190)) + +* Add `engine_error()` context manager for testing plugin exceptions ([#13108](https://github.com/pantsbuild/pants/pull/13108)) + +### Bug fixes + +* [jvm] Ignore symbols exposed by unnamed packages. ([#13214](https://github.com/pantsbuild/pants/pull/13214)) + +* `f.ext` is now a file argument, not a goal ([#13212](https://github.com/pantsbuild/pants/pull/13212)) + +* `pantsd` falls back to socket usage if it cannot open a TTY. ([#13155](https://github.com/pantsbuild/pants/pull/13155)) + +* Do not change working directory when extracting archives ([#13077](https://github.com/pantsbuild/pants/pull/13077)) + +* Release the GIL while creating a Session. ([#13127](https://github.com/pantsbuild/pants/pull/13127)) + +### Performance + +* Changing global options doesn't invalidate as much ([#13144](https://github.com/pantsbuild/pants/pull/13144)) + +### Documentation + +* Improve a couple of log messages. ([#13121](https://github.com/pantsbuild/pants/pull/13121)) + +* [Docs] Filter out self from list of related subsystems. ([#13148](https://github.com/pantsbuild/pants/pull/13148)) + +## 2.8.0.dev3 (Oct 01, 2021) + +### New Features + +* Make the number of dots in string dep inference an option. ([#13059](https://github.com/pantsbuild/pants/pull/13059)) + +* Docker image name tags ([#13048](https://github.com/pantsbuild/pants/pull/13048)) + +* Add a `--closed` option to the dependencies goal. ([#13043](https://github.com/pantsbuild/pants/pull/13043)) + +* Support multiple Docker registries per image. ([#13047](https://github.com/pantsbuild/pants/pull/13047)) + +* Add Docker registry field ([#13017](https://github.com/pantsbuild/pants/pull/13017)) + +* Support for PEP-517/518 builds. ([#13012](https://github.com/pantsbuild/pants/pull/13012)) + +* Add autoflake unused import remover to Python lint tools. ([#13010](https://github.com/pantsbuild/pants/pull/13010)) + +* Support tailoring non-addressable macros. ([#12989](https://github.com/pantsbuild/pants/pull/12989)) + +* Implement Java dep inference mapper and rules ([#12978](https://github.com/pantsbuild/pants/pull/12978)) + +* Include the experimental java backend in the Pants distribution. ([#13003](https://github.com/pantsbuild/pants/pull/13003)) + +* Have `peek` emit expanded sources and dependencies ([#12882](https://github.com/pantsbuild/pants/pull/12882)) + +* New experimental_shell_command ([#12878](https://github.com/pantsbuild/pants/pull/12878)) + +* Support tailoring with an alternative BUILD file name ([#12979](https://github.com/pantsbuild/pants/pull/12979)) + +* Add Java dependency analysis types and launcher using javaparser library. ([#12890](https://github.com/pantsbuild/pants/pull/12890)) + +### User API Changes + +* Remove Gofmt backend and activate it with `pants.experimental.go` ([#13014](https://github.com/pantsbuild/pants/pull/13014)) + +* Register terraform lint & validate backends when the terraform backend is registered ([#13002](https://github.com/pantsbuild/pants/pull/13002)) + +* Deprecate --type in the dependencies goal. ([#12998](https://github.com/pantsbuild/pants/pull/12998)) + +### Plugin API Changes + +* Add `RuleRunner.write_digest()` ([#13044](https://github.com/pantsbuild/pants/pull/13044)) + +* Change `BinaryNotFoundError` constructor to be more generic ([#13001](https://github.com/pantsbuild/pants/pull/13001)) + +### Bug fixes + +* Don't invalidate the scheduler when piping output. ([#13028](https://github.com/pantsbuild/pants/pull/13028)) + +* Ensure that `Tree` contents are uploaded after creation. ([#13008](https://github.com/pantsbuild/pants/pull/13008)) + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` ([#12980](https://github.com/pantsbuild/pants/pull/12980)) + +* Fix spurious "Scheduling: ..." workunits with remote caching ([#12973](https://github.com/pantsbuild/pants/pull/12973)) + +* Fix `./pants dependencies --transitive` when run on a target generator like `python_library` ([#12956](https://github.com/pantsbuild/pants/pull/12956)) + +### Performance + +* Use nailgun for javac and import parser ([#12982](https://github.com/pantsbuild/pants/pull/12982)) + +## 2.8.0.dev2 (Sep 17, 2021) + +### New Features + +* Build and install `python_distribution` deps for test, run, and repl ([#12573](https://github.com/pantsbuild/pants/pull/12573)) + +* Tailor `python_requirements` macro invocations. ([#12862](https://github.com/pantsbuild/pants/pull/12862)) + +* Add `script` field to `pex_binary` for console scripts ([#12849](https://github.com/pantsbuild/pants/pull/12849)) + +* Add option to `[python-setup]` to handle a quirk when building `python_distribution` on MacOS Big Sur. ([#12857](https://github.com/pantsbuild/pants/pull/12857)) + +### User API Changes + +* Rename the `typecheck` goal to `check` ([#12858](https://github.com/pantsbuild/pants/pull/12858)) + +* Ban `#` in an address's target name ([#12940](https://github.com/pantsbuild/pants/pull/12940)) + +* Upgrade to Pex 2.1.50. ([#12888](https://github.com/pantsbuild/pants/pull/12888)) + +* Add new version of `LockfileMetadata` to support checking for identically specified requirements ([#12782](https://github.com/pantsbuild/pants/pull/12782)) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 ([#12842](https://github.com/pantsbuild/pants/pull/12842)) + +### Bug fixes + +* Fix "file-level dependencies" on `files` and `resources` targets to not pull in sibling files ([#12941](https://github.com/pantsbuild/pants/pull/12941)) + +* Add google_cloud_function to plugin dependencies. Fix typo. ([#12932](https://github.com/pantsbuild/pants/pull/12932)) + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile ([#12900](https://github.com/pantsbuild/pants/pull/12900)) + +### Performance + +* Don't find `tar`, `unzip`, and `zip` as frequently ([#12947](https://github.com/pantsbuild/pants/pull/12947)) + +## 2.8.0.dev1 (Sep 10, 2021) + +### New Features + +* Support --fail-under on merged coverage. ([#12778](https://github.com/pantsbuild/pants/pull/12778)) + +* Add python-docx to the module mapping dictionary ([#12775](https://github.com/pantsbuild/pants/pull/12775)) + +* Add python-pptx to the module mapping dictionary ([#12776](https://github.com/pantsbuild/pants/pull/12776)) + +* Add `opencv-python` to the default Python module mapping ([#12777](https://github.com/pantsbuild/pants/pull/12777)) + +* Add `PyMuPDF` to the default Python module mapping ([#12774](https://github.com/pantsbuild/pants/pull/12774)) + +### User API Changes + +* Deprecate `--list-provides` option. ([#12759](https://github.com/pantsbuild/pants/pull/12759)) + +* Upgrade default `isort` to latest `isort==5.9.3` ([#12756](https://github.com/pantsbuild/pants/pull/12756)) + +* Add `version` to lockfile metadata headers ([#12788](https://github.com/pantsbuild/pants/pull/12788)) + +### Plugin API Changes + +* `OutputPathField.value_or_default()` no longer has an `Address` argument ([#12837](https://github.com/pantsbuild/pants/pull/12837)) + +### Bug fixes + +* Properly include file dependencies in docker build context ([#12758](https://github.com/pantsbuild/pants/pull/12758)) + +* DigestSubset should not short-circuit when there are ignores involved. ([#12648](https://github.com/pantsbuild/pants/pull/12648)) + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference ([#12818](https://github.com/pantsbuild/pants/pull/12818)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile ([#12807](https://github.com/pantsbuild/pants/pull/12807)) + +* Upgrade to Pex 2.1.48 and leverage packed layout. ([#12808](https://github.com/pantsbuild/pants/pull/12808)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation ([#12800](https://github.com/pantsbuild/pants/pull/12800)) + +* Fix a markdown issue in a help string. ([#12766](https://github.com/pantsbuild/pants/pull/12766)) + +## 2.8.0.dev0 (Sep 03, 2021) + +### New Features + +* Add support for creating GCP Cloud Functions. ([#12735](https://github.com/pantsbuild/pants/pull/12735)) + +* [experimental] Add proof-of-concept Java junit test rule. ([#12177](https://github.com/pantsbuild/pants/pull/12177)) + +* Support TOML tables for dict options in pants.toml ([#12707](https://github.com/pantsbuild/pants/pull/12707)) + +### User API Changes + +* Remove undocumented `pants_version()` symbol from BUILD files ([#12745](https://github.com/pantsbuild/pants/pull/12745)) + +* Remove deprecated `[python-protobuf.mypy-plugin]` in favor of `[mypy-protobuf]` ([#12743](https://github.com/pantsbuild/pants/pull/12743)) + +* Stop interpolating `pants_supportdir` in `pants.toml` and deprecate the option ([#12705](https://github.com/pantsbuild/pants/pull/12705)) + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile ([#12738](https://github.com/pantsbuild/pants/pull/12738)) + +* Remove deprecated `.with_binaries()`. ([#12724](https://github.com/pantsbuild/pants/pull/12724)) + +* Update default `[black].version` to 21.8b0 ([#12718](https://github.com/pantsbuild/pants/pull/12718)) + +* Update `futures` to` 0.3.17`. ([#12722](https://github.com/pantsbuild/pants/pull/12722)) + +* Upgrade to Pex 2.1.47. ([#12715](https://github.com/pantsbuild/pants/pull/12715)) + +* Remove deprecated `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12704](https://github.com/pantsbuild/pants/pull/12704)) + +* Remove deprecated `[grpc_python_plugin]` in favor of `[grpc-python-plugin]` ([#12706](https://github.com/pantsbuild/pants/pull/12706)) + +### Plugin API Changes + +* Add intrinsic to produce a `DigestEntries` from a `Digest` which reference file content by hash ([#12693](https://github.com/pantsbuild/pants/pull/12693)) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children ([#12748](https://github.com/pantsbuild/pants/pull/12748)) + +* Improve descriptions of the process executions for `PEX_PATH` composition. ([#12736](https://github.com/pantsbuild/pants/pull/12736)) + +* Absolutize all of the `execute_pex_args` in the venv script. ([#12727](https://github.com/pantsbuild/pants/pull/12727)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` ([#12711](https://github.com/pantsbuild/pants/pull/12711)) + +### Performance + +* Simplify implementation of materialize directories ([#12696](https://github.com/pantsbuild/pants/pull/12696)) + +### Documentation + +* Fix rendering of the ABOUT file. ([#12744](https://github.com/pantsbuild/pants/pull/12744)) + +* Add specific and actionable instructions to stale lockfile errors ([#12699](https://github.com/pantsbuild/pants/pull/12699)) + +* Link to pants slack from pypi project page ([#12701](https://github.com/pantsbuild/pants/pull/12701)) diff --git a/versioned_docs/version-2.19/notes/2.9.x.md b/versioned_docs/version-2.19/notes/2.9.x.md new file mode 100644 index 000000000..a7bfa3a32 --- /dev/null +++ b/versioned_docs/version-2.19/notes/2.9.x.md @@ -0,0 +1,471 @@ +# 2.9.x Release Series + +## 2.9.2 (May 13, 2022) + +The third stable release of the `2.9.x` series, with no changes since the previous `rc`! + +## 2.9.2rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15029](https://github.com/pantsbuild/pants/pull/15029)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14961](https://github.com/pantsbuild/pants/pull/14961)) + +## 2.9.1 (Mar 25, 2022) + +The second stable release of the `2.9.x` series, with no changes since the previous `rc`. + +## 2.9.1rc2 (Mar 14, 2022) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (Cherry-pick of #14768) ([#14770](https://github.com/pantsbuild/pants/pull/14770)) + +## 2.9.1rc1 (Mar 04, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.70. (#14700) ([#14704](https://github.com/pantsbuild/pants/pull/14704)) + +### Bug fixes + +* Fix dropped output race during UI teardown (cherrypick of #14093) ([#14690](https://github.com/pantsbuild/pants/pull/14690)) + +## 2.9.1rc0 (Feb 26, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.65. (Cherry-pick of #14256) ([#14617](https://github.com/pantsbuild/pants/pull/14617)) + +### Bug fixes + +* Fix coverage base global report creation bug. (cherrypick of #14547) ([#14550](https://github.com/pantsbuild/pants/pull/14550)) + +* Fix executability of materialized files for non-owners. (cherrypick of #14298) ([#14308](https://github.com/pantsbuild/pants/pull/14308)) + +* Fix bad default module mapping for PyMongo (Cherry-pick of #14284) ([#14285](https://github.com/pantsbuild/pants/pull/14285)) + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 (Cherry-pick of #14232) ([#14233](https://github.com/pantsbuild/pants/pull/14233)) + +### Performance + +* add timeout for remote cache lookups (cherry-pick of #14224) ([#14226](https://github.com/pantsbuild/pants/pull/14226)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14628](https://github.com/pantsbuild/pants/pull/14628)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14593](https://github.com/pantsbuild/pants/pull/14593)) + +* Add some missing backends to generated docs (Cherry-pick of #14290) ([#14292](https://github.com/pantsbuild/pants/pull/14292)) + +## 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](https://github.com/pantsbuild/pants/pull/14131)) + +## 2.9.0rc5 (Jan 07, 2022) + +### Bug fixes + +* Hook up Scalafmt and Google Java Format to `./pants lint` (cherrypick of #14108) ([#14117](https://github.com/pantsbuild/pants/pull/14117)) + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. (cherrypick of #14109) ([#14118](https://github.com/pantsbuild/pants/pull/14118)) + +## 2.9.0rc4 (Jan 06, 2022) + +### New Features + +* JVM Resources support (cherrypick of #13908) ([#14088](https://github.com/pantsbuild/pants/pull/14088)) + +## 2.9.0rc3 (Jan 05, 2022) + +### Bug fixes + +* Fix incorrectly setting `name` on `python_requirements` macro (Cherry-pick of #14065) ([#14067](https://github.com/pantsbuild/pants/pull/14067)) + +* Fix help strings which were accidentally tuples, and add a validation. (cherrypick of #14057) ([#14068](https://github.com/pantsbuild/pants/pull/14068)) + +## 2.9.0rc2 (Jan 03, 2022) + +### New Features + +* Add duration and cache source to test output. (cherrypick of #13889) ([#14002](https://github.com/pantsbuild/pants/pull/14002)) + +* Support Docker build target stage (Cherry pick of #13956) ([#13997](https://github.com/pantsbuild/pants/pull/13997)) + +* Support `test --debug` with scalatest and junit. (cherrypick of #13958 and #13966) ([#14000](https://github.com/pantsbuild/pants/pull/14000)) + +* Docker context troubleshooter (Cherry pick of #13896) ([#13953](https://github.com/pantsbuild/pants/pull/13953)) + +### User API Changes + +* Upgrade to Pex 2.1.61 and use `--venv` copies. (Cherry pick of #13979) ([#13980](https://github.com/pantsbuild/pants/pull/13980)) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14035](https://github.com/pantsbuild/pants/pull/14035)) + +* Restore the `pants` namespace package. (Cherry picked from #13972) ([#13977](https://github.com/pantsbuild/pants/pull/13977)) + +* Fix deprecated `[python-setup].interpreter_search_paths` and `[pex].bootstrap_interpreter_names` not working ([#14009](https://github.com/pantsbuild/pants/pull/14009)) + +* Fix file sources codegen for the Docker build context. (Cherry pick of #14024) ([#14025](https://github.com/pantsbuild/pants/pull/14025)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (cherrypick of #14038) ([#14046](https://github.com/pantsbuild/pants/pull/14046)) + +* [jvm] Parse maven coordinates using regular expression (cherrypick of #14010) ([#14015](https://github.com/pantsbuild/pants/pull/14015)) + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. (cherrypick of #13996) ([#13998](https://github.com/pantsbuild/pants/pull/13998)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (cherrypick of #14012) ([#14014](https://github.com/pantsbuild/pants/pull/14014)) + +## 2.9.0rc1 (Dec 21, 2021) + +### User API Changes + +* Set a default for `[jvm].resolves` and `[jvm].default_resolve` (cherrypick of #13925) ([#13930](https://github.com/pantsbuild/pants/pull/13930)) + +* [jvm] Normalize the layout of JVM subsystems and add support for compiler options (cherrypick of #13926) ([#13931](https://github.com/pantsbuild/pants/pull/13931)) + +* Upgrade Pex to 2.1.59. (#13932) ([#13933](https://github.com/pantsbuild/pants/pull/13933)) + +### Bug fixes + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13924](https://github.com/pantsbuild/pants/pull/13924)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13940](https://github.com/pantsbuild/pants/pull/13940)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) (cherrypick of #13944) ([#13946](https://github.com/pantsbuild/pants/pull/13946)) + +* [jvm] Expose additional JVM backends and symbols (cherrypick of #13943) ([#13947](https://github.com/pantsbuild/pants/pull/13947)) + +## 2.9.0rc0 (Dec 17, 2021) + +### New Features + +* Add `--docker-run-args` option to support `docker run [args] `. ([#13818](https://github.com/pantsbuild/pants/pull/13818)) + +* An include_requirements field on pex_binary. ([#13894](https://github.com/pantsbuild/pants/pull/13894)) + +* Add new `secrets` field to `docker_image`. ([#13830](https://github.com/pantsbuild/pants/pull/13830)) + +* [jvm] Add support for Scalatest ([#13872](https://github.com/pantsbuild/pants/pull/13872)) + +### Bug fixes + +* [jvm] Apply the resolve for `deploy_jar` and restore validation of resolve compatibility ([#13911](https://github.com/pantsbuild/pants/pull/13911)) + +* Fix `java_junit_test` and `scala_junit_test` targets to use `resolve` instead of `compatible_resolves` ([#13870](https://github.com/pantsbuild/pants/pull/13870)) + +* [jvm] Fix `tailor` for the addition of `Scalatest`. ([#13887](https://github.com/pantsbuild/pants/pull/13887)) + +* Fix `setup_py` resource packaging. ([#13878](https://github.com/pantsbuild/pants/pull/13878)) + +### Documentation + +* Fix rendering of default field values in reference docs. ([#13891](https://github.com/pantsbuild/pants/pull/13891)) + +* Provide helpful error message in case of undefined Docker build arg. ([#13880](https://github.com/pantsbuild/pants/pull/13880)) + +* [docs] Enable `Java` and `Scala` backends on the docsite. ([#13909](https://github.com/pantsbuild/pants/pull/13909)) + +* Update the project description. ([#13906](https://github.com/pantsbuild/pants/pull/13906)) + +* Add warning when building AWS Lambdas and Google Cloud Functions on macOS. ([#13790](https://github.com/pantsbuild/pants/pull/13790)) + +## 2.9.0.dev4 (Dec 13, 2021) + +### New Features + +* [jvm] Hook up the ability to run JUnit tests written in Scala ([#13868](https://github.com/pantsbuild/pants/pull/13868)) + +* scala: add `scalafmt` support for `fmt` and `lint` goals ([#13814](https://github.com/pantsbuild/pants/pull/13814)) + +* scala: add protobuf codegen support via `scalapb` ([#13853](https://github.com/pantsbuild/pants/pull/13853)) + +* Add support for global `scalac` plugins. ([#13827](https://github.com/pantsbuild/pants/pull/13827)) + +* JVM: Adds `jar` field to `jvm_artifact` ([#13834](https://github.com/pantsbuild/pants/pull/13834)) + +### User API Changes + +* `relocate_files` no longer used with `export-codegen` goal ([#13829](https://github.com/pantsbuild/pants/pull/13829)) + +* Include `shell_source(s)` in `docker_image` build context. ([#13761](https://github.com/pantsbuild/pants/pull/13761)) + +### Plugin API Changes + +* Codegen plugins can turn off `export-codegen` integration. ([#13828](https://github.com/pantsbuild/pants/pull/13828)) + +* Deprecate `testutil.RuleRunner.create_files()` `.create_file()` and `.add_to_build_file()` ([#13817](https://github.com/pantsbuild/pants/pull/13817)) + +### Bug fixes + +* Fix `.pyi` files not automatically depending on `__init__.py` ([#13844](https://github.com/pantsbuild/pants/pull/13844)) + +### Performance + +* [jvm] Use `immutable_inputs` to provide the compiletime classpath ([#13862](https://github.com/pantsbuild/pants/pull/13862)) + +### Documentation + +* Improve Docker undefined build arg behavior ([#13723](https://github.com/pantsbuild/pants/pull/13723)) + +* Add missing backtick ([#13861](https://github.com/pantsbuild/pants/pull/13861)) + +* Do not log extra deprecation info when there are no changes for `update-build-files --check`. ([#13855](https://github.com/pantsbuild/pants/pull/13855)) + +## 2.9.0.dev3 (Dec 06, 2021) + +### New Features + +* java: add support for Google Java Format ([#13811](https://github.com/pantsbuild/pants/pull/13811)) + +* Adds support for remote jvm artifact urls ([#13793](https://github.com/pantsbuild/pants/pull/13793)) + +* Go tests can depend on `file` targets (e.g. `testdata` folder) ([#13781](https://github.com/pantsbuild/pants/pull/13781)) + +* An option to test/run/repl against the entire lockfile. ([#13732](https://github.com/pantsbuild/pants/pull/13732)) + +* Add `test_timeout` fields to `go_package` ([#13707](https://github.com/pantsbuild/pants/pull/13707)) + +* Added the `paths` goal to render all paths between two targets ([#13778](https://github.com/pantsbuild/pants/pull/13778)) + +* Add support for inferring relative imports from Scala ([#13775](https://github.com/pantsbuild/pants/pull/13775)) + +* go: add `go vet` linter ([#13438](https://github.com/pantsbuild/pants/pull/13438)) + +* Support interpolating Docker build args into the `repository` field of `docker_image` targets. ([#13721](https://github.com/pantsbuild/pants/pull/13721)) + +* Expose Pex `--resolve-local-platforms` option. ([#13715](https://github.com/pantsbuild/pants/pull/13715)) + +* Expose Pex `--layout` option for `pex_binary`. ([#13714](https://github.com/pantsbuild/pants/pull/13714)) + +* Add `skip_tests` field to `go_package` and `shunit2_test` ([#13708](https://github.com/pantsbuild/pants/pull/13708)) + +* JVM: Support strong first-party declarations of provided types ([#13698](https://github.com/pantsbuild/pants/pull/13698)) + +* scala: add `repl` support ([#13576](https://github.com/pantsbuild/pants/pull/13576)) + +* Capture pylint reports. ([#13689](https://github.com/pantsbuild/pants/pull/13689)) + +### User API Changes + +* Rename `pypi_repositories` field to `repositories` ([#13794](https://github.com/pantsbuild/pants/pull/13794)) + +* Add `--local-cache` and `--process-cleanup` to replace `--process-execution-local-cache` and `--process-execution-local-cleanup` ([#13769](https://github.com/pantsbuild/pants/pull/13769)) + +* Add `pants_requirements` target generator and deprecate `pants_requirement` macro ([#13512](https://github.com/pantsbuild/pants/pull/13512)) + +* Stop generating `go_package` targets from `go_mod` ([#13702](https://github.com/pantsbuild/pants/pull/13702)) + +* Rename `go_first_party_package` target to `go_package` ([#13681](https://github.com/pantsbuild/pants/pull/13681)) + +* Upgrade default version of Black from 21.9b0 to 21.12b0 ([#13816](https://github.com/pantsbuild/pants/pull/13816)) + +* Upgrade to Pex 2.1.56. ([#13713](https://github.com/pantsbuild/pants/pull/13713)) + +### Plugin API Changes + +* `IntField` and `FloatField` can ban negative numbers and zero ([#13705](https://github.com/pantsbuild/pants/pull/13705)) + +### Bug fixes + +* Support materializing files through file symlinks. ([#13789](https://github.com/pantsbuild/pants/pull/13789)) + +* Fix duplicate error message for `publish` with no matching targets ([#13776](https://github.com/pantsbuild/pants/pull/13776)) + +* Fix bug when `docker push`ing multiple tags. ([#13764](https://github.com/pantsbuild/pants/pull/13764)) + +* Fix Java / Scala cycle artifact filename collision. ([#13759](https://github.com/pantsbuild/pants/pull/13759)) + +* Fix `run` goal for `pex_binary` with a script entry point from a 3rdparty dependency. ([#13748](https://github.com/pantsbuild/pants/pull/13748)) + +* Fix hadolint SIGSEGV. ([#13736](https://github.com/pantsbuild/pants/pull/13736)) + +* Fix `--resolve-local-platforms` help. ([#13722](https://github.com/pantsbuild/pants/pull/13722)) + +* Avoid calling disabled stream handlers. ([#13680](https://github.com/pantsbuild/pants/pull/13680)) + +* Fix Go compilation failures causing `test` goal to error ([#13711](https://github.com/pantsbuild/pants/pull/13711)) + +* Fix UI rendering of Go packages with no tests ([#13710](https://github.com/pantsbuild/pants/pull/13710)) + +* Fix dup 3rdparty dists introduced by local dists. ([#13690](https://github.com/pantsbuild/pants/pull/13690)) + +* Make tailor generate correct fields for python_requirements. ([#13687](https://github.com/pantsbuild/pants/pull/13687)) + +* Interactive processes kill the process and its children on Ctrl+C. ([#13678](https://github.com/pantsbuild/pants/pull/13678)) + +## 2.9.0.dev2 (Nov 18, 2021) + +### New Features + +* [jvm] Add support for compiling cycles between Java and Scala ([#13653](https://github.com/pantsbuild/pants/pull/13653)) + +* [jvm]: Add Export types to dependency inference code and include exports in compile results for Java sources ([#13603](https://github.com/pantsbuild/pants/pull/13603)) + +* Allow tailor to pick up `docker_image` targets for any file with "Dockerfile" in it ([#13601](https://github.com/pantsbuild/pants/pull/13601)) + +* [jvm] Add Scala consumed-symbols inference. ([#13632](https://github.com/pantsbuild/pants/pull/13632)) + +* [jvm] Add basic extraction of consumed symbols for Scala ([#13628](https://github.com/pantsbuild/pants/pull/13628)) + +### User API Changes + +* Report standard backends in anonymous telemetry ([#13670](https://github.com/pantsbuild/pants/pull/13670)) + +* Add `[twine].ca_certs_path` option. ([#13593](https://github.com/pantsbuild/pants/pull/13593)) + +* Bump twine to 3.6.0 and add tool lockfile ([#13594](https://github.com/pantsbuild/pants/pull/13594)) + +* Ban `*` globs and `!` ignores in `source: str` field ([#13629](https://github.com/pantsbuild/pants/pull/13629)) + +### Bug fixes + +* Pass Docker env vars to `docker publish`. ([#13669](https://github.com/pantsbuild/pants/pull/13669)) + +* Fix download URL for `grpc_python_plugin` on macos. ([#13656](https://github.com/pantsbuild/pants/pull/13656)) + +* Fix Python dependency inference breaking with `python_source` targets ([#13627](https://github.com/pantsbuild/pants/pull/13627)) + +* Fix swallowing of git stderr. ([#13626](https://github.com/pantsbuild/pants/pull/13626)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. ([#13616](https://github.com/pantsbuild/pants/pull/13616)) + +## 2.9.0.dev1 (Nov 13, 2021) + +### New Features + +* Add `instructions` field to `docker_image` to support generating the Dockerfile ([#13386](https://github.com/pantsbuild/pants/pull/13386)) + +* Add `--unowned-dependency-behavior` option for Python ([#13491](https://github.com/pantsbuild/pants/pull/13491)) + +### User API Changes + +* Upgrade default pylint to v2.11.1 ([#13585](https://github.com/pantsbuild/pants/pull/13585)) + +### Plugin API Changes + +* [plugin-api] Add `default_glob_match_error_behavior` to `SourcesField`. ([#13578](https://github.com/pantsbuild/pants/pull/13578)) + +### Bug fixes + +* Fix `--no-print-stacktrace`. ([#13539](https://github.com/pantsbuild/pants/pull/13539)) + +### Performance + +* Do not invalidate parent paths when only file content has changed ([#13566](https://github.com/pantsbuild/pants/pull/13566)) + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes ([#13559](https://github.com/pantsbuild/pants/pull/13559)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go ([#13492](https://github.com/pantsbuild/pants/pull/13492)) + +* Go: improve performance of first-party package analysis ([#13476](https://github.com/pantsbuild/pants/pull/13476)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets ([#13574](https://github.com/pantsbuild/pants/pull/13574)) + +## 2.9.0.dev0 (Nov 03, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements ([#13458](https://github.com/pantsbuild/pants/pull/13458)) + +* Add `--tailor-check` ([#13432](https://github.com/pantsbuild/pants/pull/13432)) + +* An option to not clean up the binary chroot for the run goal. ([#13427](https://github.com/pantsbuild/pants/pull/13427)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` ([#13422](https://github.com/pantsbuild/pants/pull/13422)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` ([#13420](https://github.com/pantsbuild/pants/pull/13420)) + +### User API Changes + +* Remove deprecated `pex_binary` fields. ([#13479](https://github.com/pantsbuild/pants/pull/13479)) + +* Remove deprecated --pants-supportdir. ([#13473](https://github.com/pantsbuild/pants/pull/13473)) + +* Remove setup_py_commands from python_distribution. ([#13450](https://github.com/pantsbuild/pants/pull/13450)) + +* Remove deprecated `InferredDependencies.sibling_dependencies_inferrable` kwarg ([#13440](https://github.com/pantsbuild/pants/pull/13440)) + +* `CheckResults` no longer accepts deprecated `typechecker_name` kwarg ([#13434](https://github.com/pantsbuild/pants/pull/13434)) + +* Remove deprecated `[pytest].junit_xml_dir` option. ([#13444](https://github.com/pantsbuild/pants/pull/13444)) + +* Remove deprecated `--list-provides` option ([#13441](https://github.com/pantsbuild/pants/pull/13441)) + +* Remove deprecated `module_mapping` and `type_stubs_module_mapping` fields ([#13442](https://github.com/pantsbuild/pants/pull/13442)) + +* Remove `entry_point=` for `pex_binary` in favor of leaving off the field ([#13443](https://github.com/pantsbuild/pants/pull/13443)) + +* Remove deprecated `Sources` type in favor of `SourcesField` ([#13439](https://github.com/pantsbuild/pants/pull/13439)) + +* Remove deprecated `requirements_relpath` from `python_requirements` macro ([#13437](https://github.com/pantsbuild/pants/pull/13437)) + +* Remove deprecated `protobuf_library`, `python_library`, `shell_library`, and `python_requirement_library` target aliases ([#13429](https://github.com/pantsbuild/pants/pull/13429)) + +* Remove deprecated `--peek-output` ([#13433](https://github.com/pantsbuild/pants/pull/13433)) + +* Remove dependencies goal deprecated --type option. ([#13431](https://github.com/pantsbuild/pants/pull/13431)) + +* Remove dependees `--output-format` option. ([#13430](https://github.com/pantsbuild/pants/pull/13430)) + +* Validate `python_test` and `python_tests` targets not used for `conftest.py` and `test_foo.pyi` ([#13436](https://github.com/pantsbuild/pants/pull/13436)) + +* Move `[python] interpreter_search_paths` to `[python-bootstrap] search_path`, and add support for sandboxed Python scripts in `@rule`s ([#13340](https://github.com/pantsbuild/pants/pull/13340)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value ([#13456](https://github.com/pantsbuild/pants/pull/13456)) + +* Add support for extracting `.gz` files. ([#13335](https://github.com/pantsbuild/pants/pull/13335)) + +### Bug fixes + +* [bugfix] Do not cache Docker invocations between pants runs. Fixes #13461. ([#13464](https://github.com/pantsbuild/pants/pull/13464)) + +* Fix Python bootstrap interpreter search. ([#13278](https://github.com/pantsbuild/pants/pull/13278)) + +* Upgrade to Pex 2.1.54. ([#13426](https://github.com/pantsbuild/pants/pull/13426)) + +* Upgrade to Pex 2.1.53. ([#13423](https://github.com/pantsbuild/pants/pull/13423)) + +* Consume the `go` directive when compiling ([#13387](https://github.com/pantsbuild/pants/pull/13387)) + +* Don't error for invalid Go third-party packages unless building them ([#13405](https://github.com/pantsbuild/pants/pull/13405)) + +* assume version 1 for older lockfiles without `version` key ([#13399](https://github.com/pantsbuild/pants/pull/13399)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13375](https://github.com/pantsbuild/pants/pull/13375)) + +* Go: don't error for unsupported third-party sources with project introspection ([#13377](https://github.com/pantsbuild/pants/pull/13377)) + +* Fix missing field for `tffmt` in `lint`. ([#13355](https://github.com/pantsbuild/pants/pull/13355)) + +* Use strict resolves by default for the JVM ([#13353](https://github.com/pantsbuild/pants/pull/13353)) + +* Parse SSH git requirements in poetry config. ([#13344](https://github.com/pantsbuild/pants/pull/13344)) + +### Performance + +* Check for `@rule` graph cycles asynchronously ([#13370](https://github.com/pantsbuild/pants/pull/13370)) + +* Use `--layout=packed` for all monolithic resolves. ([#13400](https://github.com/pantsbuild/pants/pull/13400)) + +### Documentation + +* Improve dynamic UI for Go ([#13412](https://github.com/pantsbuild/pants/pull/13412)) + +* Make `check` output more useful for Go and Java ([#13379](https://github.com/pantsbuild/pants/pull/13379)) diff --git a/versioned_docs/version-2.20/notes/2.0.x.md b/versioned_docs/version-2.20/notes/2.0.x.md new file mode 100644 index 000000000..0cf383584 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.0.x.md @@ -0,0 +1,1257 @@ +# 2.0.x Stable Releases + +This document describes releases leading up to the `2.0.x` `stable` +series. + +See for an +overview of the changes in this release, and + for a plugin +upgrade guide. + +## 2.0.2 (2/3/2020) + +The third stable release in the 2.0.x series, with no changes since +`2.0.2rc0`. + +## 2.0.2rc0 (1/14/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11417](https://github.com/pantsbuild/pants/pull/11417)) + +## 2.0.1 (12/18/2020) + +The second stable release in the 2.0.x series, with no changes since +`rc4`. + +Thank you for everyone's feedback! + +## 2.0.1rc4 (12/16/2020) + +### Bugfixes([11310](https://github.com/pantsbuild/pants/pull/11310)) + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11318](https://github.com/pantsbuild/pants/pull/11318)) +- Upgrade to Pex 2.1.24 to fix macOS Big Sur. (cherrypick of #11312) + ([#11314](https://github.com/pantsbuild/pants/pull/11314)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11310](https://github.com/pantsbuild/pants/pull/11310)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11299](https://github.com/pantsbuild/pants/pull/11299)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11277](https://github.com/pantsbuild/pants/pull/11277)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11276](https://github.com/pantsbuild/pants/pull/11276)) + +## 2.0.1rc3 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) + +## 2.0.1rc2 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11216](https://github.com/pantsbuild/pants/pull/11216)) + +### Bugfixes + +- Move graph cycle detection to rust to fix recursion limit. + (cherrypick of #11202) ([#11203](https://github.com/pantsbuild/pants/pull/11203)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11196](https://github.com/pantsbuild/pants/pull/11196)) + +## 2.0.1rc1 (11/16/2020) + +### User API Changes + +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11177](https://github.com/pantsbuild/pants/pull/11177)) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11190](https://github.com/pantsbuild/pants/pull/11190)) + +## 2.0.1rc0 (11/11/2020) + +### User API Changes + +- Add a specific error for target names containing slashes (cherrypick + of #11115) ([#11122](https://github.com/pantsbuild/pants/pull/11122)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached (Cherry-pick of #11111) ([#11116](https://github.com/pantsbuild/pants/pull/11116)) +- Fix `pytest.pex` leaking into coverage data (Cherry-pick + of #11110) ([#11112](https://github.com/pantsbuild/pants/pull/11112)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11139](https://github.com/pantsbuild/pants/pull/11139)) +- Fix `!!` transitive excludes when used multiple times in + a repo (Cherry-pick of #11103) ([#11104](https://github.com/pantsbuild/pants/pull/11104)) +- Fix `setup_py().with_binaries()` to properly inject + dependencies ([#11098](https://github.com/pantsbuild/pants/pull/11098)) +- Upgrade to Pex 2.1.21 to fix interpreter selection and race + condition (Cherry-pick of #11131) ([#11133](https://github.com/pantsbuild/pants/pull/11133)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX (Cherry-pick of #11108) ([#11120](https://github.com/pantsbuild/pants/pull/11120)) + +## 2.0.0 (10/27/2020) + +The first stable release in the 2.0.x series, with no changes since +`rc3`. + +Thank you for everyone's feedback! + +## 2.0.0rc3 (10/25/2020) + +### User API Changes + +- Deprecate several unused options (Cherry-pick of #11041) ([#11043](https://github.com/pantsbuild/pants/pull/11043)) +- Deprecate unused `run-tracker` options (Cherry-pick of + #11038) ([#11039](https://github.com/pantsbuild/pants/pull/11039)) + +### Bugfixes + +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` (Cherry-pick of #11040) ([#11042](https://github.com/pantsbuild/pants/pull/11042)) +- Eagerly validate entry points for + `setup_py().with_binaries()` (Cherry-pick of #11034) + ([#11036](https://github.com/pantsbuild/pants/pull/11036)) + +### Documentation + +- Improve several help messages (Cherry-pick of #11029) ([#11035](https://github.com/pantsbuild/pants/pull/11035)) + +## 2.0.0rc2 (10/22/2020) + +### User API Changes + +- Fold target help into the help system. (Cherry-pick of #11022) + ([#11028](https://github.com/pantsbuild/pants/pull/11028)) +- Rename pex-binary/python-distribution subsystems to avoid naming + collisions. (Cherry-pick of #11007) ([#11010](https://github.com/pantsbuild/pants/pull/11010)) +- Increase default `[python-setup].resolver_jobs` to + `cpu_count / 2` (Cherry-pick of #11006) ([#11011](https://github.com/pantsbuild/pants/pull/11011)) +- Include `` in + `[python-setup].interpreter_search_paths` default + (Cherry-pick of #10998) ([#11008](https://github.com/pantsbuild/pants/pull/11008)) +- Upgrade Pex to 2.1.20 (Cherry-pick of #11014) ([#11016](https://github.com/pantsbuild/pants/pull/11016)) + +### Plugin API Changes + +- Validate that option scopes and target aliases don't collide. + (Cherry-pick of #11004) ([#11015](https://github.com/pantsbuild/pants/pull/11015)) + +### New Features + +- Allow changing the versioning scheme for + `python_distribution` first-party dependencies + (Cherry-pick of #10977) ([#10989](https://github.com/pantsbuild/pants/pull/10989)) +- Add `[python-setup].resolver_http_cache_ttl` option + (Cherry-pick of #10997) ([#11002](https://github.com/pantsbuild/pants/pull/11002)) +- Allow changing the URL to download tools like PEX and Protoc + (Cherry-pick of #11013) ([#11024](https://github.com/pantsbuild/pants/pull/11024)) + +### Bugfixes + +- Revert using libCST for dep inference due to performance + (Cherry-pick of #11001) ([#11005](https://github.com/pantsbuild/pants/pull/11005)) +- Fix resource leak warning with stdio (Cherry-pick of #10995) + ([#10996](https://github.com/pantsbuild/pants/pull/10996)) +- Fix `./pants repl` to use global constrains when no + targets specified (Cherry-pick of #10991) ([#10992](https://github.com/pantsbuild/pants/pull/10992)) +- Fix `setup_py().with_binaries()` to use the default + entry point (Cherry-pick of #11021) ([#11026](https://github.com/pantsbuild/pants/pull/11026)) +- Fix overly verbose `FieldSet` in stack traces + (Cherry-pick of #10978) ([#10990](https://github.com/pantsbuild/pants/pull/10990)) +- Fix several bad usages of `itertools.groupby()` + (Cherry-pick of #10976) ([#10979](https://github.com/pantsbuild/pants/pull/10979)) + +## 2.0.0rc1 (10/15/2020) + +### User API Changes + +- Restore several removed targets and fields to help with upgrading + ([#10970](https://github.com/pantsbuild/pants/pull/10970)) + +### New Features + +- Add `./pants target-types --all` (Cherry-pick of + #10957) ([#10961](https://github.com/pantsbuild/pants/pull/10961)) + +### Bugfixes + +- Fix interpreter selection when building a PEX to use + `[python-setup].interpreter_search_paths` (Cherry-pick + of #10965) ([#10967](https://github.com/pantsbuild/pants/pull/10967)) +- Fix linter targets being skipped when repo has multiple interpreter + constraints (Cherry-pick of #10974) ([#10975](https://github.com/pantsbuild/pants/pull/10975)) +- Automatically set setuptools interpreter constraints if unspecified + (Cherry-pick of #10951) ([#10958](https://github.com/pantsbuild/pants/pull/10958)) +- Fix config validation not erroring on global options in wrong scope + (Cherry-pick of #10950) ([#10956](https://github.com/pantsbuild/pants/pull/10956)) +- Fix logging of lint result files (Cherry-pick of #10959) ([#10968](https://github.com/pantsbuild/pants/pull/10968)) + +## 2.0.0rc0 (10/11/2020) + +### User API Changes + +- Deprecate `python_binary` in favor of + `pex_binary` ([#10939](https://github.com/pantsbuild/pants/pull/10939)) +- Deprecate `[protoc].runtime_targets` in favor of + `[python-protobuf].runtime_dependencies` ([#10926](https://github.com/pantsbuild/pants/pull/10926)) +- Use the `package` goal to build setup-py dists. ([#10919](https://github.com/pantsbuild/pants/pull/10919)) +- Deprecate `--print-exception-stacktrace` to + `--print-stacktrace` ([#10912](https://github.com/pantsbuild/pants/pull/10912)) + +### Plugin API Changes + +- Use `TransitiveTargetsRequest` as input for resolving + `TransitiveTargets` ([#10915](https://github.com/pantsbuild/pants/pull/10915)) +- Add `await Get(Addresses, UnparsedAddressInputs)` + ([#10913](https://github.com/pantsbuild/pants/pull/10913)) +- Upgrade to Pex 2.1.18. ([#10938](https://github.com/pantsbuild/pants/pull/10938)) + +### New Features + +- Add gRPC Python code generation ([#10937](https://github.com/pantsbuild/pants/pull/10937)) +- Add MyPy Protobuf plugin support ([#10931](https://github.com/pantsbuild/pants/pull/10931)) +- Add `output_path` field to `python_binary`, + `python_awslambda`, and `archive` ([#10899](https://github.com/pantsbuild/pants/pull/10899)) + +### Bugfixes + +- Fix for log messages/dynamic UI teardown conflict ([#10940](https://github.com/pantsbuild/pants/pull/10940)) +- Fix some dependencies-like fields not showing up with project + introspection ([#10923](https://github.com/pantsbuild/pants/pull/10923)) +- Send SIGTERM to child processes upon SIGINT ([#10930](https://github.com/pantsbuild/pants/pull/10930)) +- Fix Python 3.8 syntax not working with dependency inference ([#10907](https://github.com/pantsbuild/pants/pull/10907)) +- Plumb `ca_certs_path` to the plugin resolver. ([#10910](https://github.com/pantsbuild/pants/pull/10910)) + +### Documentation + +- Differentiate between User API vs. Plugin API changes in changelog + ([#10916](https://github.com/pantsbuild/pants/pull/10916)) +- Streamline some goal descriptions. ([#10911](https://github.com/pantsbuild/pants/pull/10911)) + +## 2.0.0b3 (10/3/2020) + +### API Changes + +- Add a FileDigest type to differentiate file APIs from directory APIs + ([#10900](https://github.com/pantsbuild/pants/pull/10900)) +- Deprecate `awslambda` and `binary` goals in + favor of new `package` goal ([#10881](https://github.com/pantsbuild/pants/pull/10881)) + +### New Features + +- Add `archive` target type to replace + `python_app` ([#10895](https://github.com/pantsbuild/pants/pull/10895)) +- Add `relocated_files` target type ([#10880](https://github.com/pantsbuild/pants/pull/10880)) +- Add support for `.pyi` type stubs (including for + first-party) ([#10759](https://github.com/pantsbuild/pants/pull/10759)) + +### Bugfixes + +- Upgrade Pex to 2.1.17. ([#10901](https://github.com/pantsbuild/pants/pull/10901)) +- Add back `blocked` flag on BoundedCommandRunner workunit + ([#10873](https://github.com/pantsbuild/pants/pull/10873)) + +### Refactoring, Improvements, and Tooling + +- Log long running workunits when the dynamic UI is disabled ([#10890](https://github.com/pantsbuild/pants/pull/10890)) +- Add a `'coverage_'` prefix to artifact key ([#10891](https://github.com/pantsbuild/pants/pull/10891)) +- Remove unused Nailgun code ([#10883](https://github.com/pantsbuild/pants/pull/10883)) +- Add several rule descriptions and debug hints ([#10878](https://github.com/pantsbuild/pants/pull/10878)) +- fs_util Directory subsetting ignores non-matches ([#10854](https://github.com/pantsbuild/pants/pull/10854)) +- Clean up trace logging ([#10875](https://github.com/pantsbuild/pants/pull/10875)) +- A new mechanism for showing "did you mean" help. ([#10872](https://github.com/pantsbuild/pants/pull/10872)) +- Check in the Pants logo. ([#10871](https://github.com/pantsbuild/pants/pull/10871)) +- Improved type annotations for OrderedSet and FrozenOrderedSet, + removed code duplication ([#10868](https://github.com/pantsbuild/pants/pull/10868)) + +### Documentation + +- Prepare 1.30.2rc1 ([#10887](https://github.com/pantsbuild/pants/pull/10887)) + +## 2.0.0b2 (9/25/2020) + +### API Changes + +- Remove .*/ from --build-ignore defaults ([#10856](https://github.com/pantsbuild/pants/pull/10856)) + +### New Features + +- Partition MyPy based on interpreter constraints ([#10817](https://github.com/pantsbuild/pants/pull/10817)) + +### Bugfixes + +- Fix dependency inference AST parsing to include file names ([#10857](https://github.com/pantsbuild/pants/pull/10857)) +- Validate the names of directory children, and normalize output + directory/file names ([#10850](https://github.com/pantsbuild/pants/pull/10850)) +- Fix empty key for global options in run tracker ([#10807](https://github.com/pantsbuild/pants/pull/10807)) +- Locate bash before using it to locate BinaryPaths for other tools + ([#10858](https://github.com/pantsbuild/pants/pull/10858)) + +### Refactoring, Improvements, and Tooling + +- Move `PantsEnvironment` into `SessionValues` + ([#10862](https://github.com/pantsbuild/pants/pull/10862)) +- Delete binaries/ and net/. ([#10861](https://github.com/pantsbuild/pants/pull/10861)) +- Add `RuleRunner.set_options()` ([#10859](https://github.com/pantsbuild/pants/pull/10859)) +- Improve support of MyPy requirements when Python 2 used ([#10853](https://github.com/pantsbuild/pants/pull/10853)) +- A script to download rust build helper binaries. ([#10851](https://github.com/pantsbuild/pants/pull/10851)) +- Hotfix merge conflict in MyPy tests. ([#10867](https://github.com/pantsbuild/pants/pull/10867)) + +## 2.0.0b1 (9/23/2020) + +### API Changes + +- Default to setting `LC_ALL` and `LANG` in + subprocesses again ([#10800](https://github.com/pantsbuild/pants/pull/10800)) +- Default to `[python-infer].inits = false` ([#10813](https://github.com/pantsbuild/pants/pull/10813)) +- Deprecate `--interpreter-constraints` option where it + no-ops ([#10833](https://github.com/pantsbuild/pants/pull/10833)) +- Upgrade setuptools from 49.6.0 to 50.3.0 and wheel from 0.31.1 to + 0.35.1 ([#10803](https://github.com/pantsbuild/pants/pull/10803)) + +### New Features + +- Restore support for third-party requirements with MyPy ([#10811](https://github.com/pantsbuild/pants/pull/10811)) + +### Bugfixes + +- Plumb the custom certs file through to Pip (via Pex) ([#10837](https://github.com/pantsbuild/pants/pull/10837)) +- Fix MyPy with Python 2-only third-party requirements ([#10820](https://github.com/pantsbuild/pants/pull/10820)) +- Fix `setup_py.with_binaries()` to automatically inject + `dependencies` ([#10829](https://github.com/pantsbuild/pants/pull/10829)) +- Fix run not working with foo:main entry point. ([#10821](https://github.com/pantsbuild/pants/pull/10821)) +- Fix `internal_only` PEXes runtime interpreter diverging + from buildtime ([#10818](https://github.com/pantsbuild/pants/pull/10818)) +- Local process cache validates that digests exist locally before + hitting ([#10789](https://github.com/pantsbuild/pants/pull/10789)) +- Better Ctrl-C handling in the `test --debug` case + ([#10835](https://github.com/pantsbuild/pants/pull/10835)) +- Fix --pants-ignore-warnings behavior ([#10845](https://github.com/pantsbuild/pants/pull/10845)) +- Fix display of "Snapshotting" in dynamic UI ([#10797](https://github.com/pantsbuild/pants/pull/10797)) + +### Refactoring, Improvements, and Tooling + +- Change Display impl of Key ([#10848](https://github.com/pantsbuild/pants/pull/10848)) +- OptionsBootstrapper is provided via a new SessionValues facility + rather than a Param ([#10827](https://github.com/pantsbuild/pants/pull/10827)) +- Internally stop ignoring missing imports with MyPy ([#10828](https://github.com/pantsbuild/pants/pull/10828)) +- Make `get_options_to_record` a 'public' api. ([#10808](https://github.com/pantsbuild/pants/pull/10808)) +- Useful equality for relevant options types ([#10815](https://github.com/pantsbuild/pants/pull/10815)) +- Clean nodes with uncacheable dependencies once per session ([#10814](https://github.com/pantsbuild/pants/pull/10814)) +- Disable pantsd when piping output for internal script ([#10810](https://github.com/pantsbuild/pants/pull/10810)) +- Simplify logging initialization ([#10812](https://github.com/pantsbuild/pants/pull/10812)) +- Remove support for "weak" Gets ([#10805](https://github.com/pantsbuild/pants/pull/10805)) +- Un-revert Add cache_failures option to Process type ([#10796](https://github.com/pantsbuild/pants/pull/10796)) +- Remove reset_interactive_output_stream ([#10791](https://github.com/pantsbuild/pants/pull/10791)) +- Allow creating empty directories with the engine ([#10760](https://github.com/pantsbuild/pants/pull/10760)) +- Use "output" and "input" instead of "product" and "subject" + ([#10790](https://github.com/pantsbuild/pants/pull/10790)) +- Add graph test for UncacheableDeps nodes only running once ([#10795](https://github.com/pantsbuild/pants/pull/10795)) +- Fix our release script to use the correct Python ([#10841](https://github.com/pantsbuild/pants/pull/10841)) +- Refactor `core/util_rules/archive.py` to use + `BinaryPaths` ([#10836](https://github.com/pantsbuild/pants/pull/10836)) +- Work around trailing slash issue with protobuf codegen ([#10849](https://github.com/pantsbuild/pants/pull/10849)) +- Consolidate "runner" PEXes into "tool" PEXes ([#10852](https://github.com/pantsbuild/pants/pull/10852)) + +### Testing + +- Re-export `QueryRule` from + `pants.testutil.rule_runner` ([#10806](https://github.com/pantsbuild/pants/pull/10806)) + +### Documentation + +- Add documentation for the `graph` crate. ([#10793](https://github.com/pantsbuild/pants/pull/10793)) +- Prepare 1.30.1 ([#10843](https://github.com/pantsbuild/pants/pull/10843)) +- Prepare 1.30.2rc0 ([#10846](https://github.com/pantsbuild/pants/pull/10846)) + +## 2.0.0b0 (9/15/2020) + +### API Changes + +- Upgrade to Pex 2.1.16. ([#10782](https://github.com/pantsbuild/pants/pull/10782)) +- Restore running internal only PEXes via discovered Python (#10779) + ([#10788](https://github.com/pantsbuild/pants/pull/10779)) + +### Bugfixes + +- @rules consume params to prevent some types of ambiguity ([#10764](https://github.com/pantsbuild/pants/pull/10764)) +- Fix xdg-open. ([#10773](https://github.com/pantsbuild/pants/pull/10773)) +- Hide BinaryPath test processes from TUI by default. ([#10774](https://github.com/pantsbuild/pants/pull/10774)) +- Signal handling fixes ([#10758](https://github.com/pantsbuild/pants/pull/10758)) +- Fix UUIDRequest scoping. ([#10780](https://github.com/pantsbuild/pants/pull/10780)) +- Fix `DictStringToStringField` not working with default + values ([#10776](https://github.com/pantsbuild/pants/pull/10776)) +- Sandbox Pex temporary files. ([#10772](https://github.com/pantsbuild/pants/pull/10772)) + +### Refactoring, Improvements, and Tooling + +- remoting: move target_platform property into environment variable + ([#10713](https://github.com/pantsbuild/pants/pull/10713)) +- Add the ability to capture all known scope options in run tracker. + ([#10778](https://github.com/pantsbuild/pants/pull/10778)) +- fs_util cat-proto has --child-dir arg ([#10228](https://github.com/pantsbuild/pants/pull/10228)) +- Simplify --print-exception-stacktrace logic ([#10786](https://github.com/pantsbuild/pants/pull/10786)) +- Various ExceptionSink improvements ([#10781](https://github.com/pantsbuild/pants/pull/10781)) +- Revert "Run internal only pexes via discovered python. (#10779)" + ([#10785](https://github.com/pantsbuild/pants/pull/10785)) +- Support volatile processes. ([#10768](https://github.com/pantsbuild/pants/pull/10768)) +- Run internal only pexes via discovered python. ([#10779](https://github.com/pantsbuild/pants/pull/10779)) +- Fix a leaking pytest-cov abstraction. ([#10775](https://github.com/pantsbuild/pants/pull/10775)) +- Support tests for BinaryPaths. ([#10770](https://github.com/pantsbuild/pants/pull/10770)) + +### Documentation + +- Prepare 1.30.1rc2 ([#10783](https://github.com/pantsbuild/pants/pull/10783)) +- Prepare 1.30.1rc1 ([#10766](https://github.com/pantsbuild/pants/pull/10766)) +- Explain how to fix dependency cycles ([#10761](https://github.com/pantsbuild/pants/pull/10761)) + +## 2.0.0a3 (9/11/2020) + +### API Changes + +- Replace `cloc` with `count-loc`, using much + faster SCC program ([#10740](https://github.com/pantsbuild/pants/pull/10740)) +- Upgrade default isort from 4.6 to 5.5 ([#10737](https://github.com/pantsbuild/pants/pull/10737)) +- Disambiguate binary and lambda output. ([#10735](https://github.com/pantsbuild/pants/pull/10735)) + +### New Features + +- Add `runtime_binary_dependencies` field to + `python_tests` target ([#10756](https://github.com/pantsbuild/pants/pull/10756)) +- Pass proxy-related env vars through to Pex calls. ([#10762](https://github.com/pantsbuild/pants/pull/10762)) +- Support custom CA bundles. ([#10757](https://github.com/pantsbuild/pants/pull/10757)) +- Add support to MyPy for first-party plugins ([#10755](https://github.com/pantsbuild/pants/pull/10755)) +- Filter log levels by target ([#10729](https://github.com/pantsbuild/pants/pull/10729)) + +### Bugfixes + +- fix incorrect mapping of parameters into PyRemotingOptions struct + ([#10752](https://github.com/pantsbuild/pants/pull/10752)) +- Fix MyPy to work by default with Python 3.6+ code and Black with + 3.8+ code ([#10750](https://github.com/pantsbuild/pants/pull/10750)) +- Temporarily disable 3rd-party requirements support for MyPy ([#10765](https://github.com/pantsbuild/pants/pull/10765)) + +### Refactoring, Improvements, and Tooling + +- Support binary dependencies in tests. ([#10744](https://github.com/pantsbuild/pants/pull/10744)) +- Add support to MyPy for third-party requirements and stubs (PEP 561) + ([#10753](https://github.com/pantsbuild/pants/pull/10753)) +- Add new intrinsic `Paths` to avoid snapshotting ([#10741](https://github.com/pantsbuild/pants/pull/10741)) +- Remove unused FFI types and `tar_api.rs` ([#10742](https://github.com/pantsbuild/pants/pull/10742)) +- Remove daemonize method + tests ([#10749](https://github.com/pantsbuild/pants/pull/10749)) +- Some refactoring around pantsd and warning filtering ([#10748](https://github.com/pantsbuild/pants/pull/10748)) +- Refactor `pytest_runner_integration_test.py` ([#10736](https://github.com/pantsbuild/pants/pull/10736)) +- Switch the backend of AsyncSemaphore to tokio's Semaphore. ([#10738](https://github.com/pantsbuild/pants/pull/10738)) +- Refactor find_valid_field_sets. ([#10732](https://github.com/pantsbuild/pants/pull/10732)) +- Upgrade to Rust v1.46.0 ([#10694](https://github.com/pantsbuild/pants/pull/10694)) + +### Documentation + +- Fix `./pants help $goal` showing the goal in "related + subsystems" ([#10754](https://github.com/pantsbuild/pants/pull/10754)) + +## 2.0.0a2 (9/3/2020) + +### New Features + +- Support adding arbitrary env vars to test processes ([#10715](https://github.com/pantsbuild/pants/pull/10715)) +- Add a plugin hook for `setup-py` kwargs ([#10721](https://github.com/pantsbuild/pants/pull/10721)) + +### Bugfixes + +- Fix the `testutil` wheel's imports not working due to + namespace packages ([#10725](https://github.com/pantsbuild/pants/pull/10725)) +- Fix Pipenv not parsing requirement extras ([#10722](https://github.com/pantsbuild/pants/pull/10722)) +- Fix invalid shebang for `BinaryPaths` script ([#10710](https://github.com/pantsbuild/pants/pull/10710)) +- Fix retrieval of bytes from artifacts in StreamingWorkunitHandler + ([#10698](https://github.com/pantsbuild/pants/pull/10698)) + +### Refactoring, Improvements, and Tooling + +- Improve Pylint to use + `--python-setup-resolve-all-constraints` ([#10726](https://github.com/pantsbuild/pants/pull/10726)) +- Reorganize `pants/backend/python` ([#10724](https://github.com/pantsbuild/pants/pull/10724)) +- Improve RuleGraph convergence time slightly ([#10700](https://github.com/pantsbuild/pants/pull/10700)) +- Snapshots of single files store normalized paths. ([#10707](https://github.com/pantsbuild/pants/pull/10707)) +- Add product type to the Rule trait to simplify unit testing. + ([#10720](https://github.com/pantsbuild/pants/pull/10720)) + +### Testing + +- Add `RuleRunner.get_target()` ([#10714](https://github.com/pantsbuild/pants/pull/10714)) +- Port more tests from `TestBase` to + `RuleRunner` ([#10704](https://github.com/pantsbuild/pants/pull/10704)) + +### Documentation + +- Formalize support for VCS-style requirements via PEP 440 ([#10728](https://github.com/pantsbuild/pants/pull/10728)) + +## 2.0.0a1 (8/28/2020) + +### API Changes + +- Upgrade default Black version to 20.8b1 ([#10696](https://github.com/pantsbuild/pants/pull/10696)) + +### Bugfixes + +- Fix `test --debug` to be hermetic, but keep + `run` and `repl` non-hermetic ([#10701](https://github.com/pantsbuild/pants/pull/10701)) +- Properly fix setting a custom coverage config file ([#10692](https://github.com/pantsbuild/pants/pull/10692)) +- remoting: output directories in action results reference trees + ([#10691](https://github.com/pantsbuild/pants/pull/10691)) + +### Refactoring, Improvements, and Tooling + +- Unify logging implementations and remove simplelog ([#10686](https://github.com/pantsbuild/pants/pull/10686)) + +### Testing + +- Rename `run_rule` to `run_rule_with_mocks` + ([#10702](https://github.com/pantsbuild/pants/pull/10702)) +- Add `RuleRunner` as a Pytest-style replacement to + `TestBase` ([#10699](https://github.com/pantsbuild/pants/pull/10699)) +- Remove unused `TestBase` setup ([#10697](https://github.com/pantsbuild/pants/pull/10697)) + +### Documentation + +- Fix stale comments in `logger.rs` ([#10695](https://github.com/pantsbuild/pants/pull/10695)) +- Document rule graph construction and open issues ([#10690](https://github.com/pantsbuild/pants/pull/10690)) + +## 2.0.0a0 (8/24/2020) + +### API Changes + +- Temporarily disable protobuf support. ([#10685](https://github.com/pantsbuild/pants/pull/10685)) +- Simplify `python_requirement_library` by deprecating the + `python_requirement` object ([#10669](https://github.com/pantsbuild/pants/pull/10669)) +- Updated default version of pytest to 6.0.1 ([#10328](https://github.com/pantsbuild/pants/pull/10328)) + +### New Features + +- Adds a `pipenv_requirements` macro ([#10654](https://github.com/pantsbuild/pants/pull/10654)) +- Add transitive excludes for `dependencies` with + `!!` ([#10663](https://github.com/pantsbuild/pants/pull/10663)) + +### Bugfixes + +- Fix Coverage loading a custom config file ([#10670](https://github.com/pantsbuild/pants/pull/10670)) +- Fix Rust 3rdparty logs showing up with `--dynamic-ui` + ([#10640](https://github.com/pantsbuild/pants/pull/10640)) +- Fix logging deadlock when trace logging is used ([#10635](https://github.com/pantsbuild/pants/pull/10635)) +- Fix project name canonicalization. ([#10628](https://github.com/pantsbuild/pants/pull/10628)) + +### Refactoring, Improvements, and Tooling + +- Revert "Fix `run`, `repl`, and [test + --debug` to have hermetic environments (#10668)" + ([#10688](https://github.com/pantsbuild/pants/pull/10688)) +- Implement RuleGraph construction using data flow analysis ([#10645](https://github.com/pantsbuild/pants/pull/10645)) +- Fix `run`, `repl`, and [test + --debug` to have hermetic environments ([#10668](https://github.com/pantsbuild/pants/pull/10668)) +- Handle workunits corresponding to canceled Nodes. ([#10659](https://github.com/pantsbuild/pants/pull/10659)) +- Add support for JSON coverage reports ([#10625](https://github.com/pantsbuild/pants/pull/10625)) +- Add an FFI function for reading a `FrozenDict` ([#10666](https://github.com/pantsbuild/pants/pull/10666)) +- Stream output of `typecheck`, rather than dumping at the + end ([#10656](https://github.com/pantsbuild/pants/pull/10656)) +- Allow `binary` to be implemented without implementing + `run` ([#10660](https://github.com/pantsbuild/pants/pull/10660)) +- Reduce noisy log messages from `@rule` params ([#10658](https://github.com/pantsbuild/pants/pull/10658)) +- Add type hints to `TestBase` ([#10647](https://github.com/pantsbuild/pants/pull/10647)) +- Refactoring in graph ([#10637](https://github.com/pantsbuild/pants/pull/10637)) +- Stream output of `test`, rather than dumping at the end + ([#10634](https://github.com/pantsbuild/pants/pull/10634)) +- Preserve Pytest's exit code with `./pants test` + ([#10632](https://github.com/pantsbuild/pants/pull/10632)) +- Rename `--per-target-caching` to + `--per-file-caching` for `lint` and + `fmt` ([#10630](https://github.com/pantsbuild/pants/pull/10630)) +- Upgrade setuptools from 49.2.0 to 49.60 ([#10626](https://github.com/pantsbuild/pants/pull/10626)) +- Allow `test --debug` to run on multiple targets + sequentially ([#10629](https://github.com/pantsbuild/pants/pull/10629)) +- Stream output of `fmt`, rather than dumping at the end + ([#10627](https://github.com/pantsbuild/pants/pull/10627)) +- Stream output of `lint`, rather than dumping at the end + ([#10538](https://github.com/pantsbuild/pants/pull/10538)) +- Add coverage reports as artifacts on the test goal workunit ([#10623](https://github.com/pantsbuild/pants/pull/10623)) + +### Testing + +- Change `TestBase.request_product()` to take an iterable + of subjects ([#10682](https://github.com/pantsbuild/pants/pull/10682)) +- Only use `TestBase` for tests that run rules ([#10680](https://github.com/pantsbuild/pants/pull/10680)) +- Change `pants_integration_test.py` to use Pytest-style + functions ([#10675](https://github.com/pantsbuild/pants/pull/10675)) +- Consolidate `GoalRuleTestBase` into + `TestBase` ([#10679](https://github.com/pantsbuild/pants/pull/10679)) +- Rename `TestBase.request_single_product` to + `TestBase.request_product` ([#10678](https://github.com/pantsbuild/pants/pull/10678)) +- Reorganize `testutil/` ([#10674](https://github.com/pantsbuild/pants/pull/10674)) +- Add `PantsIntegrationTest.setup_tmpdir()` ([#10673](https://github.com/pantsbuild/pants/pull/10673)) +- Change `PantsIntegrationTest` to be hermetic by default + ([#10672](https://github.com/pantsbuild/pants/pull/10672)) +- Remove unused `pytest-timeout` plugin from default + `--pytest-plugins` ([#10631](https://github.com/pantsbuild/pants/pull/10631)) +- Rename `PantsRunIntegrationTest` to + `PantsIntegrationTest` ([#10664](https://github.com/pantsbuild/pants/pull/10664)) +- Add tests for HTML and XML coverage reports. ([#10211](https://github.com/pantsbuild/pants/pull/10211)) + +### Documentation/Logging + +- Provide better debugging information for rule parameters ([#10665](https://github.com/pantsbuild/pants/pull/10665)) +- Stop including the origin module in Debug logs ([#10642](https://github.com/pantsbuild/pants/pull/10642)) +- Change log level for rules and filesystem intrinsics to trace + ([#10639](https://github.com/pantsbuild/pants/pull/10639)) +- Change some remote execution log messages to debug level ([#10643](https://github.com/pantsbuild/pants/pull/10643)) + +## 2.0.0.dev9 (8/15/2020) + +### API Changes + +- Deprecate `--option-name-check-distance` ([#10611](https://github.com/pantsbuild/pants/pull/10611)) + +### New Features + +- Allow restricting use of resolve_all_constraints. ([#10614](https://github.com/pantsbuild/pants/pull/10614)) + +### Bugfixes + +- Revert #10603 so that `conftest.py` belongs to + `python_tests` again ([#10619](https://github.com/pantsbuild/pants/pull/10619)) +- Spawning against materialized binaries works. ([#10577](https://github.com/pantsbuild/pants/pull/10577)) +- Fix linter reports when there are multiple generated ([#10612](https://github.com/pantsbuild/pants/pull/10612)) +- Fix log not always showing up when `--dynamic-ui` is + set ([#10616](https://github.com/pantsbuild/pants/pull/10616)) + +### Refactoring, Improvements, and Tooling + +- Simplify `core/goals/test.py` ([#10622](https://github.com/pantsbuild/pants/pull/10622)) +- Remove passive options mechanism ([#10621](https://github.com/pantsbuild/pants/pull/10621)) +- Speed up resolving requirements through + `--use-first-matching-interpreter` Pex flag ([#10442](https://github.com/pantsbuild/pants/pull/10442)) + +## 2.0.0.dev8 (8/13/2020) + +### API Changes + +- Change `conftest.py` to default to + `python_library` rather than `python_tests` + ([#10603](https://github.com/pantsbuild/pants/pull/10603)) +- Deprecate `--python-setup-platforms` ([#10596](https://github.com/pantsbuild/pants/pull/10596)) +- Make `zip_safe` default to False for + `python_binary` targets. ([#10608](https://github.com/pantsbuild/pants/pull/10608)) + +### New Features + +- Add `--python-infer-string-imports` ([#10609](https://github.com/pantsbuild/pants/pull/10609)) +- Add `--pex-verbosity` option to facilitate debugging + ([#10604](https://github.com/pantsbuild/pants/pull/10604)) + +### Bugfixes + +- Fix binary running to correctly work with source roots. ([#10607](https://github.com/pantsbuild/pants/pull/10607)) +- Fix issues with REPL implementation ([#10597](https://github.com/pantsbuild/pants/pull/10597)) +- Fix regression in unmatched globs error message ([#10595](https://github.com/pantsbuild/pants/pull/10595)) +- Require `provides` field for a + `python_distribution` target ([#10591](https://github.com/pantsbuild/pants/pull/10591)) + +### Refactoring, Improvements, and Tooling + +- Rename `determine_source_files.py` and + `strip_source_roots.py` ([#10588](https://github.com/pantsbuild/pants/pull/10588)) +- Add XML test results as artifacts on the test goal workunit ([#10606](https://github.com/pantsbuild/pants/pull/10606)) +- Add non-root pantsbuild user to remote execution image ([#10583](https://github.com/pantsbuild/pants/pull/10583)) +- Move `--files-not-found-behavior` and BUILD file + options out of bootstrap options ([#10586](https://github.com/pantsbuild/pants/pull/10586)) +- Remoting: limit retries for execution requests. ([#10600](https://github.com/pantsbuild/pants/pull/10600)) +- Ensure MyPy always runs with at least Python 3.6 internally. + ([#10602](https://github.com/pantsbuild/pants/pull/10602)) + +### Documentation + +- Improve errors for invalid `Get` objects ([#10593](https://github.com/pantsbuild/pants/pull/10593)) + +## 2.0.0.dev7 (8/10/2020) + +### API Changes + +- A python_distribution target. ([#10565](https://github.com/pantsbuild/pants/pull/10565)) +- Enable Python dependency inference by default ([#10520](https://github.com/pantsbuild/pants/pull/10520)) +- Targets act as aliases for their files ([#10511](https://github.com/pantsbuild/pants/pull/10511)) + +### New Features + +- Allow using file addresses on the command line ([#10573](https://github.com/pantsbuild/pants/pull/10573)) +- Add `--build-patterns` option ([#10559](https://github.com/pantsbuild/pants/pull/10559)) +- Allow protobuf_library targets to specify a python source root. + ([#10549](https://github.com/pantsbuild/pants/pull/10549)) +- Restore the missing init injection logic. ([#10517](https://github.com/pantsbuild/pants/pull/10517)) +- Add `--pex-executable-search-path` ([#10489](https://github.com/pantsbuild/pants/pull/10489)) +- Add support for bandit output file. ([#10412](https://github.com/pantsbuild/pants/pull/10412)) + +### Bugfixes + +- Sync before executing a process if running in Docker ([#10568](https://github.com/pantsbuild/pants/pull/10568)) +- Fix some issues from #10535 Address changes ([#10555](https://github.com/pantsbuild/pants/pull/10555)) +- Remove self-inflicted invalidation caused by exception logging. + ([#10521](https://github.com/pantsbuild/pants/pull/10521)) +- Fix bug that caused setup-py to hang if src root==buildroot. + ([#10509](https://github.com/pantsbuild/pants/pull/10509)) +- Fix ExternalTool to use relative paths ([#10503](https://github.com/pantsbuild/pants/pull/10503)) +- Fix `./pants binary` not outputting the full output path + ([#10506](https://github.com/pantsbuild/pants/pull/10506)) + +### Refactoring, Improvements, and Tooling + +- Stop validating that `!` dependency ignores are used + ([#10585](https://github.com/pantsbuild/pants/pull/10585)) +- Lower the default for `--python-setup-resolver-jobs` + ([#10584](https://github.com/pantsbuild/pants/pull/10584)) +- Automatically inject dependencies on sibling files when dependency + inference is unused ([#10582](https://github.com/pantsbuild/pants/pull/10582)) +- Use a constraints file in this repo. ([#10579](https://github.com/pantsbuild/pants/pull/10579)) +- Disable speculation by default ([#10581](https://github.com/pantsbuild/pants/pull/10581)) +- upgrade to Rust v1.45.2 ([#10556](https://github.com/pantsbuild/pants/pull/10556)) +- Move `--tag` and `--exclude-target-regexp` + out of bootstrap options ([#10569](https://github.com/pantsbuild/pants/pull/10569)) +- Allow for disabling pantsrc in OptionsBootstrapper independently of + options values ([#10562](https://github.com/pantsbuild/pants/pull/10562)) +- Refactor rule to resolve address specs ([#10563](https://github.com/pantsbuild/pants/pull/10563)) +- Stop using `AddressWithOrigin` for precise file + arguments ([#10551](https://github.com/pantsbuild/pants/pull/10551)) +- Always use generated subtargets with file arguments ([#10550](https://github.com/pantsbuild/pants/pull/10550)) +- Remove unused `SymbolTable` ([#10544](https://github.com/pantsbuild/pants/pull/10544)) +- Support and require disambiguated file addresses ([#10535](https://github.com/pantsbuild/pants/pull/10535)) +- Revert "Add cache_failures option to Process type (#10433)" + ([#10534](https://github.com/pantsbuild/pants/pull/10534)) +- Simplify source root stripping. ([#10543](https://github.com/pantsbuild/pants/pull/10543)) +- Improve source root stripping performance. ([#10533](https://github.com/pantsbuild/pants/pull/10533)) +- ArgSplitter operates relative to the buildroot. ([#10540](https://github.com/pantsbuild/pants/pull/10540)) +- Simplify the setup-py rules. ([#10529](https://github.com/pantsbuild/pants/pull/10529)) +- Allow `Process` to set its workunit level ([#10528](https://github.com/pantsbuild/pants/pull/10528)) +- Rely on the init-injection rules to trigger errors for + un-depended-on-and-relevant `__init__.py` files. ([#10524](https://github.com/pantsbuild/pants/pull/10524)) +- Remove rust source include from integration tests. ([#10522](https://github.com/pantsbuild/pants/pull/10522)) +- upgrade to rust v1.45.1 ([#10523](https://github.com/pantsbuild/pants/pull/10523)) +- Store SpanIds as integers ([#10512](https://github.com/pantsbuild/pants/pull/10512)) +- Remove `tarutil.py` ([#10516](https://github.com/pantsbuild/pants/pull/10516)) +- Refactor Pex usage through new helper rules ([#10514](https://github.com/pantsbuild/pants/pull/10514)) +- Get rid of the remote backend subsystems. ([#10502](https://github.com/pantsbuild/pants/pull/10502)) +- Move subsystem.py and its test into pants.option. ([#10500](https://github.com/pantsbuild/pants/pull/10500)) +- Lower the default local parallelism, and align the number of + swimlanes to it. ([#10499](https://github.com/pantsbuild/pants/pull/10499)) +- Rotate travis aws creds. ([#10496](https://github.com/pantsbuild/pants/pull/10496)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) +- Deprecate `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10493](https://github.com/pantsbuild/pants/pull/10493)) +- Simplify script to check `__init__.py` files + ([#10488](https://github.com/pantsbuild/pants/pull/10488)) +- Merge interactive_process.py into process.py ([#10495](https://github.com/pantsbuild/pants/pull/10495)) +- Export `Get` and `MultiGet` from + `rules.py` ([#10485](https://github.com/pantsbuild/pants/pull/10485)) +- Simplify `engine/internals/nodes.py` ([#10487](https://github.com/pantsbuild/pants/pull/10487)) +- Add cache_failures option to Process type ([#10433](https://github.com/pantsbuild/pants/pull/10433)) + +### Testing + +- Disable remote execution due to RBE shutdown. ([#10566](https://github.com/pantsbuild/pants/pull/10566)) +- remoting: use non-RBE pants remote execution image ([#10539](https://github.com/pantsbuild/pants/pull/10539)) +- Avoid Python 3.8+ for Pylint test ([#10548](https://github.com/pantsbuild/pants/pull/10548)) +- avoid Py 3.8 for BanditIntegrationTest.test_3rdparty_plugin ([#10546](https://github.com/pantsbuild/pants/pull/10546)) +- set locale vars for remoting image ([#10541](https://github.com/pantsbuild/pants/pull/10541)) +- Test for rule graph issues with each distinct backend ([#10519](https://github.com/pantsbuild/pants/pull/10519)) +- docker image for remote execution without GCP/RBE ([#10515](https://github.com/pantsbuild/pants/pull/10515)) + +### Documentation/Logging + +- Update docs urls to pantsbuild.org. ([#10580](https://github.com/pantsbuild/pants/pull/10580)) +- Improve log message when resolving entire lockfile. ([#10578](https://github.com/pantsbuild/pants/pull/10578)) +- Improve error message when the path component does not exist + ([#10570](https://github.com/pantsbuild/pants/pull/10570)) +- Prepare 1.30.1rc0 ([#10554](https://github.com/pantsbuild/pants/pull/10554)) +- Improve error message for unrecognized BUILD file symbols ([#10531](https://github.com/pantsbuild/pants/pull/10531)) +- Reduce verbosity of finding binaries ([#10525](https://github.com/pantsbuild/pants/pull/10525)) +- Render all frames of a failure in Engine tracebacks ([#10510](https://github.com/pantsbuild/pants/pull/10510)) +- Fix bad indent of default in option help. ([#10501](https://github.com/pantsbuild/pants/pull/10501)) +- Fix display of default/current values in help. ([#10490](https://github.com/pantsbuild/pants/pull/10490)) +- Stop warning when return code != 0 or 1 ([#10486](https://github.com/pantsbuild/pants/pull/10486)) + +## 2.0.0.dev6 (7/28/2020) + +### API Changes + +- Upgrade to Pex 2.1.14 ([#10437](https://github.com/pantsbuild/pants/pull/10437)) + +### New Features + +- Improve test output and allow it be configured. ([#10484](https://github.com/pantsbuild/pants/pull/10484)) + +### Bugfixes + +- Make independent owners requests per file to improve memoization + ([#10491](https://github.com/pantsbuild/pants/pull/10491)) +- Fix `PluginField` not working in production ([#10469](https://github.com/pantsbuild/pants/pull/10469)) +- Allow for more cyclic cases with file dependencies ([#10475](https://github.com/pantsbuild/pants/pull/10475)) +- Fix Protobuf when using source roots ([#10453](https://github.com/pantsbuild/pants/pull/10453)) +- Fix fromfile expansion to skip passthrough args. ([#10457](https://github.com/pantsbuild/pants/pull/10457)) +- Fix `--print-exception-stacktrace` not invalidating + pantsd ([#10451](https://github.com/pantsbuild/pants/pull/10451)) +- fixes in async_semaphore for concurrency ID calculation ([#10436](https://github.com/pantsbuild/pants/pull/10436)) + +### Refactoring, Improvements, and Tooling + +- Eliminate most rule registration boilerplate. ([#10477](https://github.com/pantsbuild/pants/pull/10477)) +- Remove unused `util/` and `base/` code + ([#10462](https://github.com/pantsbuild/pants/pull/10462)) +- Rename `UrlToFetch` to `DownloadFile` + ([#10468](https://github.com/pantsbuild/pants/pull/10468)) +- Change the `PathGlobs`, `SnapshotSubset`, + and `UrlToFetch` intrinsics to return + `Digest` ([#10449](https://github.com/pantsbuild/pants/pull/10449)) +- Unify accessing options for a `GoalSubsystem` with + `Subsystem` ([#10456](https://github.com/pantsbuild/pants/pull/10456)) +- Rename `Workspace.materialize_directory()` to + `Workspace.write_digest()` ([#10448](https://github.com/pantsbuild/pants/pull/10448)) +- Remove unused `SingleFileExecutable` ([#10443](https://github.com/pantsbuild/pants/pull/10443)) +- Remove support for Protoc 2 ([#10439](https://github.com/pantsbuild/pants/pull/10439)) +- Make GoalSubsystem subclass Subsystem. ([#10483](https://github.com/pantsbuild/pants/pull/10483)) +- Tweaks to help output: ([#10466](https://github.com/pantsbuild/pants/pull/10466)) +- Cleanup `fs.py` ([#10474](https://github.com/pantsbuild/pants/pull/10474)) +- Add `UnionMembership.from_rules()` ([#10472](https://github.com/pantsbuild/pants/pull/10472)) +- Kill Reporting (mostly). ([#10463](https://github.com/pantsbuild/pants/pull/10463)) +- Add dependencies on conftest and init files via inference ([#10441](https://github.com/pantsbuild/pants/pull/10441)) +- Kill ./pants literals. ([#10465](https://github.com/pantsbuild/pants/pull/10465)) +- Remove Options <-> Parser cycle. ([#10464](https://github.com/pantsbuild/pants/pull/10464)) +- Revert "Use isort v5.x as the default version (#10258)" ([#10460](https://github.com/pantsbuild/pants/pull/10460)) +- Demystify get_all_scoped_flag_names mypy kludges. ([#10459](https://github.com/pantsbuild/pants/pull/10459)) +- Optimize generated subtargets' interaction with + `SpecifiedSourceFiles` ([#10454](https://github.com/pantsbuild/pants/pull/10454)) +- Simplify Collection. ([#10450](https://github.com/pantsbuild/pants/pull/10450)) +- Improvements to help output. ([#10444](https://github.com/pantsbuild/pants/pull/10444)) +- Fixes to get the process_executor CLI tool working again. ([#10435](https://github.com/pantsbuild/pants/pull/10435)) +- Rename argument in streaming workunit callback ([#10432](https://github.com/pantsbuild/pants/pull/10432)) + +### Testing + +- Only skip building wheels on PR builds ([#10482](https://github.com/pantsbuild/pants/pull/10482)) +- Skip building wheels if no release files have changed ([#10481](https://github.com/pantsbuild/pants/pull/10481)) +- Skip flaky GoalRuleIntegrationTest ([#10479](https://github.com/pantsbuild/pants/pull/10479)) +- A script to create an index.html for pants wheels on S3. ([#10458](https://github.com/pantsbuild/pants/pull/10458)) +- Get rid of remaining uses of init_subsystem. ([#10427](https://github.com/pantsbuild/pants/pull/10427)) + +## 2.0.0.dev5 (7/22/2020) + +### API Changes + +- Use isort v5.x as the default version ([#10258](https://github.com/pantsbuild/pants/pull/10258)) +- Don't register any options as recursive. ([#10415](https://github.com/pantsbuild/pants/pull/10415)) + +### New Features + +- Speed up `repl` to no longer rebuild a Pex on source + file changes ([#10418](https://github.com/pantsbuild/pants/pull/10418)) + +### Refactoring, Improvements, and Tooling + +- Implement cycle detection in transitive_targets, and tolerate cycles + in file-addresses. ([#10409](https://github.com/pantsbuild/pants/pull/10409)) +- Stop using cargo-ensure-installed ([#10400](https://github.com/pantsbuild/pants/pull/10400)) +- Remove use of "quiet" in logging init ([#10417](https://github.com/pantsbuild/pants/pull/10417)) + +### Testing + +- Port the plugin resolver test to v2 test style. ([#10424](https://github.com/pantsbuild/pants/pull/10424)) +- Refactor flake8 integration test to use create_options_bootstrapper + ([#10422](https://github.com/pantsbuild/pants/pull/10422)) +- Increase timeout on project_info tests. ([#10421](https://github.com/pantsbuild/pants/pull/10421)) + +## 2.0.0.dev4 (7/21/2020) + +### API Changes + +- Upgrade default mypy from 0.781 to 0.782 ([#10404](https://github.com/pantsbuild/pants/pull/10404)) +- Remove unused `--fmt-only` option ([#10388](https://github.com/pantsbuild/pants/pull/10388)) +- Don't turn on branch coverage by default. ([#10386](https://github.com/pantsbuild/pants/pull/10386)) +- access store server for action cache ([#10329](https://github.com/pantsbuild/pants/pull/10329)) +- Upgrade setuptools from 49.1.0 to 49.2.0 ([#10347](https://github.com/pantsbuild/pants/pull/10347)) +- Move `target.py` rules to + `engine/internals/graph.py` ([#10372](https://github.com/pantsbuild/pants/pull/10372)) + +### New Features + +- Speed up `run` to no longer rebuild a Pex on source file + changes ([#10410](https://github.com/pantsbuild/pants/pull/10410)) +- Support for using a single global resolve. ([#10405](https://github.com/pantsbuild/pants/pull/10405)) +- Flake8 output file support. ([#10371](https://github.com/pantsbuild/pants/pull/10371)) +- A flag to force rerunning tests, bypassing the cache. ([#10403](https://github.com/pantsbuild/pants/pull/10403)) +- Support for injecting ancestor conftest.py files. ([#10378](https://github.com/pantsbuild/pants/pull/10378)) +- Allow ignoring dependencies with `!` ([#10385](https://github.com/pantsbuild/pants/pull/10385)) +- Allow dependencies on files in BUILD files ([#10381](https://github.com/pantsbuild/pants/pull/10381)) +- Unify generated subtargets with file arguments and + `--changed-since` ([#10356](https://github.com/pantsbuild/pants/pull/10356)) +- Use colors for log messages ([#10278](https://github.com/pantsbuild/pants/pull/10278)) + +### Bugfixes + +- Print initial logs from pantsd using local time format [Issue + #10128](https://github.com/pantsbuild/pants/issues/10128) +- Fix using relative paths with `--local-cache-dir` and + `--named-caches-dir` ([#10398](https://github.com/pantsbuild/pants/pull/10398)) +- Fix validation of dependencies ignores breaking with generated + subtargets ([#10407](https://github.com/pantsbuild/pants/pull/10407)) +- close write stream for CAS writes via ByteStream API ([#10395](https://github.com/pantsbuild/pants/pull/10395)) +- Fix recently added n^2 edge collection. ([#10392](https://github.com/pantsbuild/pants/pull/10392)) +- Align cache directory calculation so that the LMDB store location is + uniformly configurable. ([#10391](https://github.com/pantsbuild/pants/pull/10391)) +- remoting: use debug level for RE client workunits saved from remote + ([#10382](https://github.com/pantsbuild/pants/pull/10382)) +- Always include types in the engine's definition of equality. + ([#10377](https://github.com/pantsbuild/pants/pull/10377)) +- Have help respond to color ([#10357](https://github.com/pantsbuild/pants/pull/10357)) +- Display multiline help nicely. ([#10366](https://github.com/pantsbuild/pants/pull/10366)) + +### Refactoring, Improvements, and Tooling + +- Add a hint about adjusting max_user_watches on Linux. ([#10413](https://github.com/pantsbuild/pants/pull/10413)) +- Delete unused v1 sources. ([#10411](https://github.com/pantsbuild/pants/pull/10411)) +- upgrade to Rust 1.45.0 ([#10396](https://github.com/pantsbuild/pants/pull/10396)) +- Tolerate target cycles when using dependency inference ([#10393](https://github.com/pantsbuild/pants/pull/10393)) +- Revert "Tolerate target cycles when using dependency inference + (#10393)" ([#10401](https://github.com/pantsbuild/pants/pull/10401)) +- Add support for cycle-tolerant "weak" Gets ([#10230](https://github.com/pantsbuild/pants/pull/10230)) +- Make fetching wheels more resilient to network errors. ([#10376](https://github.com/pantsbuild/pants/pull/10376)) +- Avoid undefined behaviour around f64/u64 casts ([#10374](https://github.com/pantsbuild/pants/pull/10374)) +- Fix when an explicitly provided dependency supersedes an inferred + dependency ([#10375](https://github.com/pantsbuild/pants/pull/10375)) +- Fix dependency inference handling of dependencies on self ([#10373](https://github.com/pantsbuild/pants/pull/10373)) +- Render local process infrastructure errors more verbosely. ([#10368](https://github.com/pantsbuild/pants/pull/10368)) +- Use our validate goal instead of the custom header check. ([#10361](https://github.com/pantsbuild/pants/pull/10361)) +- Delete some unused testprojects code. ([#10364](https://github.com/pantsbuild/pants/pull/10364)) + +### Testing + +- Upload coverage data to coveralls ([#10299](https://github.com/pantsbuild/pants/pull/9919)) + +### Documentation + +- A script to generate options reference pages for the docsite. + ([#10387](https://github.com/pantsbuild/pants/pull/10387)) + +## 2.0.0.dev3 (7/15/2020) + +### New Features + +- Allow specifying address and file arguments at the same time + ([#10345](https://github.com/pantsbuild/pants/pull/10345)) +- Make help-all dump a JSON blob containing all help info. ([#10336](https://github.com/pantsbuild/pants/pull/10336)) +- Integrate option value derivation into help. ([#10313](https://github.com/pantsbuild/pants/pull/10313)) +- Generate subtargets with file-level precision for dependency + inference ([#10305](https://github.com/pantsbuild/pants/pull/10305)) +- Add option for specifying environment variable with concurrency slot + ([#10297](https://github.com/pantsbuild/pants/pull/10297)) +- Add support for specifying a custom coverage config file + (.coveragerc) ([#10289](https://github.com/pantsbuild/pants/pull/10289)) + +### Bugfixes + +- Fix generated subtargets not working with `dependees` + ([#10355](https://github.com/pantsbuild/pants/pull/10355)) +- Ignore dead symlinks on Linux as well as OSX ([#10339](https://github.com/pantsbuild/pants/pull/10339)) +- Fix bug where workunit completion was not reported correctly + ([#10277](https://github.com/pantsbuild/pants/pull/10277)) +- Fix collision in workunit affecting patches. ([#10350](https://github.com/pantsbuild/pants/pull/10350)) +- Pass stream workunit context to all callbacks calls instead of just + passing it in the last call. ([#10340](https://github.com/pantsbuild/pants/pull/10340)) +- Fix awslambda configuration of Pex. ([#10323](https://github.com/pantsbuild/pants/pull/10323)) +- Hotfix Bandit breaking from stevedore 3.0 release ([#10319](https://github.com/pantsbuild/pants/pull/10319)) + +### Refactoring, Improvements, and Tooling + +- Render only leaf rule graph errors, and improve error messages + ([#10311](https://github.com/pantsbuild/pants/pull/10311)) +- Tweak `any_matches_filespec` to return which paths + matched ([#10358](https://github.com/pantsbuild/pants/pull/10358)) +- Add check for invalid concrete time dates ([#10349](https://github.com/pantsbuild/pants/pull/10349)) +- Explicit error on missing descriptions in the `goals` + goal. ([#10348](https://github.com/pantsbuild/pants/pull/10348)) +- Add module to default rule names. ([#10341](https://github.com/pantsbuild/pants/pull/10341)) +- add artifacts infrastructure on relevant types ([#10344](https://github.com/pantsbuild/pants/pull/10344)) +- Revert modernization of virtualenv to fix pants.pex deploy in CI. + ([#10343](https://github.com/pantsbuild/pants/pull/10343)) +- Represent generated subtarget addresses as file names ([#10338](https://github.com/pantsbuild/pants/pull/10338)) +- Remove unusued RunTracker code ([#10315](https://github.com/pantsbuild/pants/pull/10315)) +- Minor wording change in help message ([#10335](https://github.com/pantsbuild/pants/pull/10335)) +- Display whether a scope is a goal or subsystem in help. ([#10332](https://github.com/pantsbuild/pants/pull/10332)) +- Fix `run_virtualenv` to target the current + `$PY`. ([#10331](https://github.com/pantsbuild/pants/pull/10331)) +- Modernize virtualenv. ([#10330](https://github.com/pantsbuild/pants/pull/10330)) +- Stop differentiating between constructors and types in FFI. ([#10327](https://github.com/pantsbuild/pants/pull/10327)) +- Use generated subtargets internally ([#10312](https://github.com/pantsbuild/pants/pull/10312)) +- Remove `Revision` ([#10318](https://github.com/pantsbuild/pants/pull/10318)) +- Bump to nails 0.6.0 to lay groundwork for cancelation of pantsd + runs. ([#10320](https://github.com/pantsbuild/pants/pull/10320)) +- remove polling remote execution client ([#10306](https://github.com/pantsbuild/pants/pull/10306)) +- Remove `Struct` and `@addressable` + abstractions ([#10309](https://github.com/pantsbuild/pants/pull/10309)) +- Move SubprocessProcessHandler near its single use. ([#10307](https://github.com/pantsbuild/pants/pull/10307)) +- No longer special case the `dependencies` field with + TargetAdaptor ([#10303](https://github.com/pantsbuild/pants/pull/10303)) +- Use with_workunit everywhere ([#10300](https://github.com/pantsbuild/pants/pull/10300)) +- refactor execution strategy options into separate struct ([#10304](https://github.com/pantsbuild/pants/pull/10304)) +- Remove -q from the release run of reversion. ([#10301](https://github.com/pantsbuild/pants/pull/10301)) +- Simplify BUILD file parsing ([#10298](https://github.com/pantsbuild/pants/pull/10298)) + +### Testing + +- Fix tests that relied on the docsite CNAME file. ([#10337](https://github.com/pantsbuild/pants/pull/10337)) +- Run unit tests and integration tests in CI in the same Pants run + ([#10333](https://github.com/pantsbuild/pants/pull/10333)) +- Merge the unit and integration tests ([#10302](https://github.com/pantsbuild/pants/pull/10302)) +- Run code coverage on v2 unit tests. ([#9919](https://github.com/pantsbuild/pants/pull/9919)) + +## 2.0.0.dev2 (7/8/2020) + +### API Changes + +- Rename `FilesContent` to `DigestContents` + and `InputFilesContent` to `CreateDigest` + ([#10290](https://github.com/pantsbuild/pants/pull/10290)) +- remoting: default is streaming client ([#10260](https://github.com/pantsbuild/pants/pull/10260)) +- Upgrade setuptools from 47.3.1 to 49.1.0 ([#10255](https://github.com/pantsbuild/pants/pull/10255)) +- Upgrade packaging from 20.3 to 20.4 ([#10256](https://github.com/pantsbuild/pants/pull/10256)) +- Deprecate the --v1/--v2 global options. ([#10245](https://github.com/pantsbuild/pants/pull/10245)) + +### New Features + +- Preserve source roots with Pytest output ([#10165](https://github.com/pantsbuild/pants/pull/10165)) + +### Bugfixes + +- Downgrade to tokio 0.2.20 to fix + `materialize_directories`. ([#10294](https://github.com/pantsbuild/pants/pull/10294)) +- Expose method to bring down dynamic UI ([#10234](https://github.com/pantsbuild/pants/pull/10234)) +- Fix double-workunit-completion print ([#10247](https://github.com/pantsbuild/pants/pull/10179)) + +### Refactoring, Improvements, and Tooling + +- Remove v1 `source/` abstractions like + `EagerFileSet` ([#10292](https://github.com/pantsbuild/pants/pull/10292)) +- Use f-strings in engine/util.py ([#10288](https://github.com/pantsbuild/pants/pull/10288)) +- Use dependency inference internally ([#10283](https://github.com/pantsbuild/pants/pull/10283)) +- Unify `LegacyPythonCallbackParser` and + `Parser` ([#10281](https://github.com/pantsbuild/pants/pull/10281)) +- Lower the default max-memory usage of pantsd. ([#10287](https://github.com/pantsbuild/pants/pull/10287)) +- Improvements and refactoring of help system. ([#10280](https://github.com/pantsbuild/pants/pull/10280)) +- Refactor WorkunitStore struct ([#10242](https://github.com/pantsbuild/pants/pull/10242)) +- remoting: check action cache for cached result before submitting a + request ([#10253](https://github.com/pantsbuild/pants/pull/10253)) +- Remove leftover v1 Target API bindings ([#10276](https://github.com/pantsbuild/pants/pull/10276)) +- Fix remaining internal dependency cycles ([#10254](https://github.com/pantsbuild/pants/pull/10254)) +- Remove `build_graph.Target` ([#10266](https://github.com/pantsbuild/pants/pull/10266)) +- Remove `cache/` and `invalidation/` ([#10262](https://github.com/pantsbuild/pants/pull/10262)) +- Remove obsolete root patterns. ([#10263](https://github.com/pantsbuild/pants/pull/10263)) +- Remove `Task`, `Goal`, and + `Context` ([#10252](https://github.com/pantsbuild/pants/pull/10252)) +- Simplify `git.py` and `scm.py` ([#10251](https://github.com/pantsbuild/pants/pull/10251)) +- Remove the internal tags `type_checked` and + `partially_type_checked` ([#10244](https://github.com/pantsbuild/pants/pull/10244)) +- Remove `HydratedTarget`, `AddressMapper`, + and `BuildGraph` ([#10250](https://github.com/pantsbuild/pants/pull/10250)) +- Remove all remaining v1 Targets ([#10246](https://github.com/pantsbuild/pants/pull/10246)) +- Remove `TestBase.context()` ([#10248](https://github.com/pantsbuild/pants/pull/10248)) +- Delete the rest of v1 `pants.backend.python` ([#10240](https://github.com/pantsbuild/pants/pull/10240)) +- Remove the concept of a scope category. ([#10224](https://github.com/pantsbuild/pants/pull/10224)) + +### Testing + +- Remove stale "pants.pex for integration tests" mechanism ([#10279](https://github.com/pantsbuild/pants/pull/10279)) +- Re-enable RBE ([#10284](https://github.com/pantsbuild/pants/pull/10284)) +- Temporarily disable remote execution in CI ([#10268](https://github.com/pantsbuild/pants/pull/10268)) +- Upgrade responses from 0.10.14 to 0.10.15 ([#10257](https://github.com/pantsbuild/pants/pull/10257)) +- Increase pylint integration tests timeout. ([#10261](https://github.com/pantsbuild/pants/pull/10261)) +- Fix broken Pylint test from new isort release ([#10259](https://github.com/pantsbuild/pants/pull/10259)) +- Simplify ci.py now that we have no v1 tests ([#10241](https://github.com/pantsbuild/pants/pull/10241)) + +## 2.0.0.dev1 (7/2/2020) + +### API Changes + +- Get rid of --plugins2/--backend-packages2 ([#10231](https://github.com/pantsbuild/pants/pull/10231)) +- Deprecate `--changed-include-dependees` in favor of + `--changed-dependees` ([#10217](https://github.com/pantsbuild/pants/pull/10217)) +- Remove `pants.contrib.mypy` plugin in favor of v2 + implementation ([#10157](https://github.com/pantsbuild/pants/pull/10157)) +- Remove `--coverage-py-omit-test-sources` ([#10202](https://github.com/pantsbuild/pants/pull/10202)) +- Gets rid of the v1 GoalRunner. ([#10167](https://github.com/pantsbuild/pants/pull/10167)) +- Remove `pants.backend.jvm` ([#10218](https://github.com/pantsbuild/pants/pull/10218)) +- Remove --zipkin-trace-v2 option ([#10184](https://github.com/pantsbuild/pants/pull/10184)) +- Remove `core_tasks/` and most of `task/` + ([#10236](https://github.com/pantsbuild/pants/pull/10236)) +- Remove v1 portions of `backend/native` and + `ipex` ([#10187](https://github.com/pantsbuild/pants/pull/10187)) +- Delete v1 python backend task code ([#10223](https://github.com/pantsbuild/pants/pull/10223)) +- Remove v1 Python `unpack_whls`, `bundle`, + and `repl` ([#10204](https://github.com/pantsbuild/pants/pull/10204)) +- Remove Thrift ([#10171](https://github.com/pantsbuild/pants/pull/10171)) +- Remove `TestBase.create_library()` and + `TestBase.target()` ([#10237](https://github.com/pantsbuild/pants/pull/10237)) +- Remove some v1 parts of `testutil/` ([#10233](https://github.com/pantsbuild/pants/pull/10233)) + +### New Features + +- Add new `typecheck` goal for MyPy ([#10212](https://github.com/pantsbuild/pants/pull/10212)) +- Properly handle PEP 420 namespace packages ([#10183](https://github.com/pantsbuild/pants/pull/10183)) +- Add support for creating multiple coverage reports ([#9997](https://github.com/pantsbuild/pants/pull/9997)) +- Add the ability to write/output the raw coverage file. ([#10195](https://github.com/pantsbuild/pants/pull/10195)) +- Log Coverage report name as part of the console message. ([#10194](https://github.com/pantsbuild/pants/pull/10194)) +- Attempt to adjust file handle limits and warn if they cannot be + adjusted ([#10174](https://github.com/pantsbuild/pants/pull/10174)) + +### Bugfixes + +- Fix `--changed-dependees` to work when v1 is disabled + ([#10235](https://github.com/pantsbuild/pants/pull/10235)) +- Teach `pants_requirement()` to work with dependency + inference ([#10232](https://github.com/pantsbuild/pants/pull/10232)) +- Remove indentation in process errors. ([#10181](https://github.com/pantsbuild/pants/pull/10181)) +- Automatically include `__init__.py` files ([#10166](https://github.com/pantsbuild/pants/pull/10166)) +- Fix AddPrefix to correctly add arbitrarily many parent components + ([#10189](https://github.com/pantsbuild/pants/pull/10189)) +- Fix `dependencies --transitive` to include target roots + that are also dependencies ([#10186](https://github.com/pantsbuild/pants/pull/10186)) +- Fix MyPy to include `resources`, but still not + `files` ([#10168](https://github.com/pantsbuild/pants/pull/10168)) + +### Refactoring, Improvements, and Tooling + +- Reduce time spend grabbing locks in workunit code ([#10179](https://github.com/pantsbuild/pants/pull/10179)) +- local_cas supports an instance-name ([#10225](https://github.com/pantsbuild/pants/pull/10225)) +- local_cas supports GetCapabilities request ([#10226](https://github.com/pantsbuild/pants/pull/10226)) +- Refactor remoting options into separate struct ([#10215](https://github.com/pantsbuild/pants/pull/10215)) +- remoting: log RE capabilities and refresh REv2 proto ([#10155](https://github.com/pantsbuild/pants/pull/10155)) +- Fix stray type error in fs.py ([#10182](https://github.com/pantsbuild/pants/pull/10182)) +- Remove redundant cast call ([#10196](https://github.com/pantsbuild/pants/pull/10196)) +- Use debug level for remote store workunits ([#10238](https://github.com/pantsbuild/pants/pull/10238)) +- Simplify Get implementation. ([#10178](https://github.com/pantsbuild/pants/pull/10178)) +- Delete the old BinaryTool mechanism. ([#10239](https://github.com/pantsbuild/pants/pull/10239)) +- Delete more v1 task-related integration tests. ([#10210](https://github.com/pantsbuild/pants/pull/10210)) +- Refactor coverage integration tests ([#10209](https://github.com/pantsbuild/pants/pull/10209)) +- Stop using deprecated assertEquals ([#10197](https://github.com/pantsbuild/pants/pull/10197)) +- Remove `ivy/` and most of `java/` ([#10222](https://github.com/pantsbuild/pants/pull/10222)) +- Remove Bundle and App code ([#10221](https://github.com/pantsbuild/pants/pull/10221)) +- Remove more zipkin-related code ([#10207](https://github.com/pantsbuild/pants/pull/10207)) +- Remove unused `list_backends.py` ([#10205](https://github.com/pantsbuild/pants/pull/10205)) +- Remove internal `contrib/` infrastructure ([#10177](https://github.com/pantsbuild/pants/pull/10177)) +- Rewrite/delete some tests that involve v1 tasks. ([#10219](https://github.com/pantsbuild/pants/pull/10219)) +- Remove JVM testprojects ([#10216](https://github.com/pantsbuild/pants/pull/10216)) +- Stop testing `testprojects::` ([#10170](https://github.com/pantsbuild/pants/pull/10170)) +- Remove the src/{scala|java} directories. ([#10201](https://github.com/pantsbuild/pants/pull/10201)) +- Delete examples/src/{java,scala}. ([#10198](https://github.com/pantsbuild/pants/pull/10198)) +- Stop running JVM tests written in Java/Scala ([#10175](https://github.com/pantsbuild/pants/pull/10175)) +- Move `scm/` and `util/` tests to + `src` ([#10176](https://github.com/pantsbuild/pants/pull/10176)) +- Nuke more v1 tests ([#10172](https://github.com/pantsbuild/pants/pull/10172)) +- upgrade tokio to 0.2.21 ([#10191](https://github.com/pantsbuild/pants/pull/10191)) +- upgrade futures crate to 0.3.5 ([#10190](https://github.com/pantsbuild/pants/pull/10190)) +- upgrade async-trait crate to 0.1.36 ([#10193](https://github.com/pantsbuild/pants/pull/10193)) +- upgrade crossbeam-channel create so only one copy ([#10192](https://github.com/pantsbuild/pants/pull/10192)) +- upgrade indexmap crate ([#10199](https://github.com/pantsbuild/pants/pull/10199)) +- upgrade parking_lot crate ([#10200](https://github.com/pantsbuild/pants/pull/10200)) + +### Documentation + +- Prepare 1.30.0rc1. ([#10188](https://github.com/pantsbuild/pants/pull/10188)) + +## 2.0.0.dev0 (6/25/2020) + +### API Changes + +- Remove v1 JVM backend Tasks. ([#10142](https://github.com/pantsbuild/pants/pull/10142)) +- Remove `targets` goal in favor of + `target-types` goal ([#10145](https://github.com/pantsbuild/pants/pull/10145)) +- Remove deprecated `Get[P](S)` syntax in favor of + `Get(P, S)` ([#10148](https://github.com/pantsbuild/pants/pull/10148)) +- Remove v1 `login`, `server`, and + `killserver` goals ([#10144](https://github.com/pantsbuild/pants/pull/10144)) +- Remove v1 `minimize`, `filemap`, + `paths`, `sort`, and `depmap` + goals ([#10135](https://github.com/pantsbuild/pants/pull/10135)) +- Replace v1 `dependees`, `dependencies`, + `filedeps`, and `filter` with v2 ([#10117](https://github.com/pantsbuild/pants/pull/10117)) +- Remove the v1 scrooge contrib plugin. ([#10127](https://github.com/pantsbuild/pants/pull/10127)) +- Remove support for `pants.ini` ([#10123](https://github.com/pantsbuild/pants/pull/10123)) +- Remove the v1 `export` goal ([#10122](https://github.com/pantsbuild/pants/pull/10122)) +- Remove `pants.backend.docgen` ([#10121](https://github.com/pantsbuild/pants/pull/10121)) +- Remove v1 `idea-plugin` goal ([#10115](https://github.com/pantsbuild/pants/pull/10115)) +- Remove v1 Java Protobuf implementation ([#10111](https://github.com/pantsbuild/pants/pull/10111)) +- Remove `pants.contrib.node` plugin ([#10113](https://github.com/pantsbuild/pants/pull/10113)) +- Remove v1 `bash-completion` goal ([#10112](https://github.com/pantsbuild/pants/pull/10112)) +- Remove watchman. ([#10114](https://github.com/pantsbuild/pants/pull/10114)) +- Upgrade default mypy version from 0.780 to 0.781 ([#10109](https://github.com/pantsbuild/pants/pull/10109)) +- Remove `pants.contrib.go` plugin ([#10107](https://github.com/pantsbuild/pants/pull/10107)) +- Remove v1 Python Grpcio codegen backend ([#10108](https://github.com/pantsbuild/pants/pull/10108)) +- Remove deprecated `--v2-ui` in favor of + `--dynamic-ui` ([#10105](https://github.com/pantsbuild/pants/pull/10105)) +- Remove deprecated `--enable-pantsd` in favor of + `--pantsd` ([#10104](https://github.com/pantsbuild/pants/pull/10104)) +- Remove deprecated `pytest-coverage` scope in favor of + `coverage-py` ([#10103](https://github.com/pantsbuild/pants/pull/10103)) +- Remove `pants.contrib.confluence` ([#10106](https://github.com/pantsbuild/pants/pull/10106)) + +### New Features + +- Add support for MyPy to Pants v2 ([#10132](https://github.com/pantsbuild/pants/pull/10132)) +- Changes to support Django. ([#10088](https://github.com/pantsbuild/pants/pull/10088)) +- Add support for enum list options. ([#10083](https://github.com/pantsbuild/pants/pull/10083)) + +### Bugfixes + +- Do not render pytest at info by default, but give it a description. + ([#10164](https://github.com/pantsbuild/pants/pull/10164)) +- Preserve source roots in MyPy and Pylint output ([#10159](https://github.com/pantsbuild/pants/pull/10159)) +- Do not include resource targets in v2 MyPy chroot ([#10154](https://github.com/pantsbuild/pants/pull/10154)) +- Set dynamic-ui default based on CI ([#10140](https://github.com/pantsbuild/pants/pull/10140)) +- Fix Pytest XML reports and Coverage breaking with remote execution + ([#10136](https://github.com/pantsbuild/pants/pull/10136)) +- Retry for filesystem changes more quickly, indefinitely, and with + logging ([#10139](https://github.com/pantsbuild/pants/pull/10139)) +- Normalize paths before determining whether we can watch them. + ([#10130](https://github.com/pantsbuild/pants/pull/10130)) + +### Refactoring, Improvements, and Tooling + +- Remove use of importlib for native_engine loading ([#10161](https://github.com/pantsbuild/pants/pull/10161)) +- Update sha2 crate dependency ([#10163](https://github.com/pantsbuild/pants/pull/10163)) +- Remove unused rust deps. ([#10162](https://github.com/pantsbuild/pants/pull/10162)) +- Add message field on workunits and use it to replace some explicit + logging ([#10158](https://github.com/pantsbuild/pants/pull/10158)) +- Expose the types consumed to produce a type in a RuleGraph. ([#10153](https://github.com/pantsbuild/pants/pull/10153)) +- Upgrade setuptools from 44.0.0 to 47.3.1 ([#10149](https://github.com/pantsbuild/pants/pull/10149)) +- Support for using unstripped python sources ([#10138](https://github.com/pantsbuild/pants/pull/10138)) +- fix snapshot subset testing and unrevert #9779 ([#10146](https://github.com/pantsbuild/pants/pull/10146)) +- Revert "Make SnapshotSubset() faster (#9779)" ([#10143](https://github.com/pantsbuild/pants/pull/10143)) +- Make SnapshotSubset() faster ([#9779](https://github.com/pantsbuild/pants/pull/9779)) +- upgrade to rust v1.44.1 ([#10125](https://github.com/pantsbuild/pants/pull/10125)) +- Remove `BuildFile` ([#10102](https://github.com/pantsbuild/pants/pull/10102)) + +### Testing + +- Enable test timeouts for python in v2. ([#10147](https://github.com/pantsbuild/pants/pull/10147)) +- Delete many v1 tests. ([#10116](https://github.com/pantsbuild/pants/pull/10116)) +- enable REv2 streaming client in CI ([#9989](https://github.com/pantsbuild/pants/pull/9989)) + +### Documentation + +- Remove the v1 docsite ([#10120](https://github.com/pantsbuild/pants/pull/10120)) diff --git a/versioned_docs/version-2.20/notes/2.1.x.md b/versioned_docs/version-2.20/notes/2.1.x.md new file mode 100644 index 000000000..2e2247f86 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.1.x.md @@ -0,0 +1,233 @@ +# 2.1.x Stable Releases + +This document describes releases leading up to the `2.1.x` `stable` +series. + +See for an +overview of the changes in this release. + +## 2.1.2 (2/9/2020) + +The third stable release in the 2.1.x series, with no changes since +`2.1.2rc0`. + +## 2.1.2rc0 (2/4/2021) + +### Bugfixes + +- Fix older versions of `tar` not working when creating an + `archive` (Cherry-pick of #11413) ([#11418](https://github.com/pantsbuild/pants/pull/11418)) + +## 2.1.1 (12/18/2020) + +The second stable release in the 2.1.x series, with no changes since +`rc2`. + +Thank you to everyone who helped test the rcs! + +## 2.1.1rc2 (12/16/2020) + +### Bugfixes + +- Fix filtering of log messages generated in native code. (cherrypick + of #11313) ([#11316](https://github.com/pantsbuild/pants/pull/11316)) +- Upgrade to Pex 2.1.24. (cherrypick of #11312) ([#11315](https://github.com/pantsbuild/pants/pull/11315)) +- Clean the graph speculatively, and cancel nodes when interest is + lost (cherrypick of #11308) ([#11311](https://github.com/pantsbuild/pants/pull/11311)) +- Implement native Process cache scoping to fix --test-force + (cherrypick of #11291) ([#11298](https://github.com/pantsbuild/pants/pull/11298)) +- Increase Pants' python recursion limit by default, and allow it to + be overridden. (cherrypick of #11271) ([#11274](https://github.com/pantsbuild/pants/pull/11274)) +- Revert "Move graph cycle detection to rust. (#11202)" (cherrypick + of #11272) ([#11275](https://github.com/pantsbuild/pants/pull/11202)) [PR + #11275](https://github.com/pantsbuild/pants/pull/11275) + +## 2.1.1rc1 (11/24/2020) + +### Bugfixes + +- Fix off-by-one error for `python_awslambda` + `sources` field validation ([#11234](https://github.com/pantsbuild/pants/pull/11234)) +- Remove extraneous INFO level log line (Cherry-pick of #11228) + ([#11229](https://github.com/pantsbuild/pants/pull/11229)) + +## 2.1.1rc0 (11/20/2020) + +### User API Changes + +- Revert premature deprecation of `sources` field for + `python_awslambda` ([#11217](https://github.com/pantsbuild/pants/pull/11217)) + +### Bugfixes + +- Move graph cycle detection to Rust to fix recursion limit. + (cherrypick of #11202) ([#11204](https://github.com/pantsbuild/pants/pull/11204)) +- Set the soft ulimit value more conservatively to fix macOS Big Sur + issue (cherrypick of #11194) ([#11197](https://github.com/pantsbuild/pants/pull/11197)) + +## 2.1.0 (11/17/2020) + +The first stable release of the `2.1.x` series, with no changes since +the previous release candidate. + +## 2.1.0rc3 (11/16/2020) + +### Bugfixes + +- Fix relative imports in dependency inference (Cherry-pick of #11181) + ([#11189](https://github.com/pantsbuild/pants/pull/11189)) + +## 2.1.0rc2 (11/13/2020) + +### New Features + +- Remoting: allow timeout parameters to be configured (Cherry-pick of + #11125) ([#11158](https://github.com/pantsbuild/pants/pull/11158)) + +### User API Changes + +- Deprecate running Pants with Python 3.6 ([#11173](https://github.com/pantsbuild/pants/pull/11173)) +- Deprecate the `sources` field for + `python_awslambda` (Cherry-pick of #11176) ([#11178](https://github.com/pantsbuild/pants/pull/11178)) + +### Bugfixes + +- make a few minor reliability fixes to remote caching code + (Cherry-pick of #11130) ([#11159](https://github.com/pantsbuild/pants/pull/11159)) + +## 2.1.0rc1 (11/11/2020) + +### Bugfixes + +- Upgrade to Pex 2.1.21 (Cherry-pick of #11131) ([#11134](https://github.com/pantsbuild/pants/pull/11134)) +- Fix Coverage not finding resource files when generating a report + (Cherry-pick of #11129) ([#11138](https://github.com/pantsbuild/pants/pull/11138)) + +## 2.1.0rc0 (11/9/2020) + +### New Features + +- Add `export-codegen` goal ([#11107](https://github.com/pantsbuild/pants/pull/11107)) +- Add `./pants py-constraints --summary` for project + overview ([#11099](https://github.com/pantsbuild/pants/pull/11099)) +- Add `./pants help subsystems` ([#11088](https://github.com/pantsbuild/pants/pull/11088)) +- Improve performance of dependency inference ([#11094](https://github.com/pantsbuild/pants/pull/11094)) + +### User API Changes + +- Change default for `--pants-distdir-legacy-paths` and + deprecate it ([#11096](https://github.com/pantsbuild/pants/pull/11096)) +- Clarify that process cache namespacing works for all runners + ([#11095](https://github.com/pantsbuild/pants/pull/11095)) +- Deprecate target names containing slashes and colons ([#11115](https://github.com/pantsbuild/pants/pull/11115)) + +### Plugin API Changes + +- Rename `SourcesSnapshot` to `SpecsSnapshot` + ([#11114](https://github.com/pantsbuild/pants/pull/11114)) + +### Bugfixes + +- Fix logs for `test`, `lint`, + `fmt`, and `typecheck` to always print, even + if cached ([#11111](https://github.com/pantsbuild/pants/pull/11111)) +- Fix `pytest.pex` leaking into coverage data ([#11110](https://github.com/pantsbuild/pants/pull/11110)) +- Fix `--pex-verbosity` to work with the interpreter + selection PEX ([#11108](https://github.com/pantsbuild/pants/pull/11108)) +- Fix `!!` transitive excludes when used multiple times in + a repo ([#11103](https://github.com/pantsbuild/pants/pull/11103)) +- Fix `setup_py.with_provides()` to respect the + `:func` entry-point shorthand ([#11093](https://github.com/pantsbuild/pants/pull/11093)) +- Include a host fingerprint in pantsd's identity ([#11092](https://github.com/pantsbuild/pants/pull/11092)) + +### Documentation + +- Improve error message for invalid unions in `Get()`s ([#11102](https://github.com/pantsbuild/pants/pull/11102)) + +## 2.1.0.dev0 (10/30/2020) + +### User API Changes + +- Do not error if `./pants package` does not match any + targets ([#11051](https://github.com/pantsbuild/pants/pull/11051)) +- Deprecate the `compatibility` field in favor of + `interpreter_constraints` ([#11074](https://github.com/pantsbuild/pants/pull/11074)) +- Remove deprecated `awslambda`, `binary`, and + `setup-py` goals in favor of `package` + ([#11048](https://github.com/pantsbuild/pants/pull/11048)) +- Rename pex-binary/python-distribution to avoid naming collisions. + ([#11007](https://github.com/pantsbuild/pants/pull/11007)) +- Remove deprecated `--{fmt,lint}-per-target-caching` in + favor of `--per-file-caching` ([#11062](https://github.com/pantsbuild/pants/pull/11062)) +- Remove post_stats from RunTracker ([#11068](https://github.com/pantsbuild/pants/pull/11068)) +- Remove stats_version in runtracker ([#11065](https://github.com/pantsbuild/pants/pull/11065)) +- Remove deprecated `--lang` and `--lc-all` + options in favor of `--env-vars` ([#11066](https://github.com/pantsbuild/pants/pull/11066)) +- Remove deprecated `--protoc-runtime-targets` option + ([#11083](https://github.com/pantsbuild/pants/pull/11083)) +- Remove deprecated `--interpreter-constraints` option + for some Python tools ([#11082](https://github.com/pantsbuild/pants/pull/11082)) +- Remove deprecated `runtime_binary_dependencies` field + ([#11079](https://github.com/pantsbuild/pants/pull/11079)) +- Remove deprecated `--spec-file` option in favor of + `--spec-files` ([#11076](https://github.com/pantsbuild/pants/pull/11076)) +- Remove deprecated `[basic-auth]`, + `[reporter]`, and `run-tracker` + options ([#11078](https://github.com/pantsbuild/pants/pull/11078)) +- Remove deprecated `--print-exception-stacktrace` in + favor of `--print-stacktrace` ([#11085](https://github.com/pantsbuild/pants/pull/11085)) +- Remove unused global options ([#11077](https://github.com/pantsbuild/pants/pull/11077)) +- Remove deprecated `python_requirement` BUILD file symbol + ([#11055](https://github.com/pantsbuild/pants/pull/11055)) +- Deprecate the `platforms` field allowing a bare string + ([#11073](https://github.com/pantsbuild/pants/pull/11073)) +- Deprecate several unused options ([#11041](https://github.com/pantsbuild/pants/pull/11041)) +- Deprecate unused `run-tracker` options ([#11038](https://github.com/pantsbuild/pants/pull/11038)) +- Remove deprecated `python-setup` options ([#10984](https://github.com/pantsbuild/pants/pull/10984)) +- Remove deprecated `Subsystem.get_options()` in favor of + `Subsystem.options` ([#10986](https://github.com/pantsbuild/pants/pull/10986)) +- Remove deprecated global options like `--v2` and + `--backend-packages2` ([#10985](https://github.com/pantsbuild/pants/pull/10985)) +- Remove deprecated `--changed-*` options ([#10982](https://github.com/pantsbuild/pants/pull/10982)) +- Remove deprecated `./pants filter` options ([#10983](https://github.com/pantsbuild/pants/pull/10983)) + +### New Features + +- Add `[python-setup].resolver_http_cache_ttl` option + ([#10997](https://github.com/pantsbuild/pants/pull/10997)) +- Add new `py-constraints` goal through new + `pants.backend.python.mixed_interpreter_constraints` + backend ([#11075](https://github.com/pantsbuild/pants/pull/11075)) +- Add `:my_func` shorthand for the + `entry_point` field ([#11064](https://github.com/pantsbuild/pants/pull/11064)) +- Add new EngineAware method metadata() ([#11030](https://github.com/pantsbuild/pants/pull/11030)) +- remote caching support ([#10960](https://github.com/pantsbuild/pants/pull/10960)) +- Store per-run logs on RunTracker ([#11025](https://github.com/pantsbuild/pants/pull/11025)) +- Allow changing the URL to download tools like PEX and Protoc + ([#11013](https://github.com/pantsbuild/pants/pull/11013)) +- Add mechanism to deprecate target types and fields ([#10966](https://github.com/pantsbuild/pants/pull/10966)) + +### Bugfixes + +- remote caching: upload stdout/stderr content to remote cache + ([#11049](https://github.com/pantsbuild/pants/pull/11049)) +- Fix PEX to always write to `named_caches_dir`, rather + than `~/.pex` ([#11040](https://github.com/pantsbuild/pants/pull/11040)) +- Fix `setup_py().with_binaries()` to use the default + entry point ([#11021](https://github.com/pantsbuild/pants/pull/11021)) +- Fix resource leak warning with stdio ([#10995](https://github.com/pantsbuild/pants/pull/10995)) +- Fix `./pants repl` to use global constrains when no + targets specified ([#10991](https://github.com/pantsbuild/pants/pull/10991)) +- Fix overly verbose `FieldSet` in stack traces ([#10978](https://github.com/pantsbuild/pants/pull/10978)) +- Fix several bad usages of `itertools.groupby()` ([#10976](https://github.com/pantsbuild/pants/pull/10976)) +- Fix bug with linter targets being skipped ([#10974](https://github.com/pantsbuild/pants/pull/10974)) +- Fix config validation not erroring on global options in wrong scope + ([#10950](https://github.com/pantsbuild/pants/pull/10950)) +- Automatically set setuptools interpreter constraints if unspecified + ([#10951](https://github.com/pantsbuild/pants/pull/10951)) + +### Documentation + +- Improve error message for invalid input in `Get()`s ([#11081](https://github.com/pantsbuild/pants/pull/11081)) +- Improve several help messages ([#11029](https://github.com/pantsbuild/pants/pull/11029)) +- Fold target help into the help system. ([#11022](https://github.com/pantsbuild/pants/pull/11022)) diff --git a/versioned_docs/version-2.20/notes/2.10.x.md b/versioned_docs/version-2.20/notes/2.10.x.md new file mode 100644 index 000000000..3533af034 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.10.x.md @@ -0,0 +1,481 @@ +# 2.10.x Release Series + +## 2.10.1 (May 13, 2022) + +The second stable release of the `2.10.x` series, with no changes since the previous `rc`! + +## 2.10.1rc1 (Apr 30, 2022) + +### New Features + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15215](https://github.com/pantsbuild/pants/pull/15215)) + +### Bug fixes + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15259](https://github.com/pantsbuild/pants/pull/15259)) + +* Clean PID-specific exception file if empty on process exit (Cherry pick of #15086) ([#15112](https://github.com/pantsbuild/pants/pull/15112)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15233](https://github.com/pantsbuild/pants/pull/15233)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15232](https://github.com/pantsbuild/pants/pull/15232)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15182](https://github.com/pantsbuild/pants/pull/15182)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15128](https://github.com/pantsbuild/pants/pull/15128)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15130](https://github.com/pantsbuild/pants/pull/15130)) + +## 2.10.1rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15028](https://github.com/pantsbuild/pants/pull/15028)) + +### Bug fixes + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15033](https://github.com/pantsbuild/pants/pull/15033)) + +* Fix Pylint config check strings (Cherry-pick of #14946) ([#14948](https://github.com/pantsbuild/pants/pull/14948)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14902](https://github.com/pantsbuild/pants/pull/14902)) + +### Documentation + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15023](https://github.com/pantsbuild/pants/pull/15023)) + +## 2.10.0 (Mar 23, 2022) + +The first stable release of the `2.10.x` branch, with no changes since the previous `rc`! + +## 2.10.0rc5 (Mar 16, 2022) + +### User API Changes + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` ([#14815](https://github.com/pantsbuild/pants/pull/14815)) + +### Bug fixes + +* Fix exclusive spawn mechanism for relative paths and working directories. (cherrypick of #14812) ([#14816](https://github.com/pantsbuild/pants/pull/14816)) + +* Fix a coverage config rewriting bug. (cherrypick of #14784) ([#14785](https://github.com/pantsbuild/pants/pull/14785)) + +* Fix empty sys.path entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14822](https://github.com/pantsbuild/pants/pull/14822)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators (Cherry-pick of #14829) ([#14831](https://github.com/pantsbuild/pants/pull/14831)) + +## 2.10.0rc4 (Mar 14, 2022) + +### New Features + +* Python dependency inference supports multiple resolves for first-party targets (Cherry-pick of #14486) ([#14765](https://github.com/pantsbuild/pants/pull/14765)) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (#14768) ([#14769](https://github.com/pantsbuild/pants/pull/14769)) + +### Documentation + +* Update `[python]` docs with updates to the resolves feature ([#14775](https://github.com/pantsbuild/pants/pull/14775)) + +* Switch from Aegean Check Mark to Multiplication X (Cherry-pick of #14764) ([#14767](https://github.com/pantsbuild/pants/pull/14767)) + +* Improve documentation for `python_test_utils` (Cherry-pick of #14739) ([#14748](https://github.com/pantsbuild/pants/pull/14748)) + +* Improve REPL multiple resolves error to mention [python].default_resolve (Cherry-pick of #14778) ([#14780](https://github.com/pantsbuild/pants/pull/14780)) + +## 2.10.0rc3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles (Cherry-pick of #14675) ([#14706](https://github.com/pantsbuild/pants/pull/14706)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14693](https://github.com/pantsbuild/pants/pull/14693)) + +### User API Changes + +* Deprecate `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14691](https://github.com/pantsbuild/pants/pull/14691)) + +* Move `--memory-summary` to `--stats-memory-summary` (Cherry-pick of #14652) ([#14655](https://github.com/pantsbuild/pants/pull/14655)) + +* Upgrade Pex to 2.1.70. (#14700) ([#14703](https://github.com/pantsbuild/pants/pull/14703)) + +### Bug fixes + +* Fix address parse bug in `update-build-files --fix-python-macros`. (Cherry-pick of #14485) ([#14696](https://github.com/pantsbuild/pants/pull/14696)) + +* Don't show no-op regex-lint output. (Cherry-pick of #14656) ([#14671](https://github.com/pantsbuild/pants/pull/14671)) + +* Invalidate Go cache when Go version changes (Cherry-pick of #14661) ([#14672](https://github.com/pantsbuild/pants/pull/14672)) + +### Performance + +* Reduce memory usage by interning Tasks and RuleGraph entries. (cherrypick of #14683) ([#14689](https://github.com/pantsbuild/pants/pull/14689)) + +## 2.10.0rc2 (Feb 26, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. (Cherry pick of #14557) ([#14597](https://github.com/pantsbuild/pants/pull/14597)) + +* Support include_requirements & complete_platforms for `python_awslambda`. (Cherry-picks of #14532 & #14469) ([#14533](https://github.com/pantsbuild/pants/pull/14533)) + +* Support complete_platforms for Python GCFs. (#14530) ([#14531](https://github.com/pantsbuild/pants/pull/14531)) + +* Plumb Pex's `--complete-platform` for pex_binary. (#14526) ([#14528](https://github.com/pantsbuild/pants/pull/14528)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination (Cherry-pick of #14607) ([#14611](https://github.com/pantsbuild/pants/pull/14611)) + +* Upgrade Pex to 2.1.67. (Cherry-pick of #14544) ([#14546](https://github.com/pantsbuild/pants/pull/14546)) + +### Bug fixes + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others (cherry-pick of #14620) ([#14626](https://github.com/pantsbuild/pants/pull/14626)) + +* Coursier caches are now determined by `-repos` configuration (#14603) ([#14606](https://github.com/pantsbuild/pants/pull/14606)) + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache (Cherry-pick of #14582) ([#14590](https://github.com/pantsbuild/pants/pull/14590)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos (#14581) ([#14584](https://github.com/pantsbuild/pants/pull/14584)) + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (Cherry-pick of #14394) ([#14568](https://github.com/pantsbuild/pants/pull/14568)) + +* Avoid duplicated deprecation warnings by memoization. (Cherry-pick of #14511) ([#14553](https://github.com/pantsbuild/pants/pull/14553)) + +* Fix coverage base global report creation bug (cherypick of #14547) ([#14549](https://github.com/pantsbuild/pants/pull/14549)) + +### Performance + +* Add support for rendering a summary of objects held by the graph (cherrypick of #14638) ([#14644](https://github.com/pantsbuild/pants/pull/14644)) + +* Shortcircuit source subsetting if there are no distributions. (cherrypick of #14564) ([#14566](https://github.com/pantsbuild/pants/pull/14566)) + +* Calculate local distribution contents once per distribution (cherrypick of #14551) ([#14555](https://github.com/pantsbuild/pants/pull/14555)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14627](https://github.com/pantsbuild/pants/pull/14627)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14592](https://github.com/pantsbuild/pants/pull/14592)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation (Cherry-pick of #14475) ([#14479](https://github.com/pantsbuild/pants/pull/14479)) + +## 2.10.0rc1 (Feb 14, 2022) + +### New Features + +* Improve `export` goal to handle multiple Python resolves (Cherry-pick of #14436) ([#14454](https://github.com/pantsbuild/pants/pull/14454)) + +### User API Changes + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` (Cherry-pick of #14420) ([#14435](https://github.com/pantsbuild/pants/pull/14435)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. (Cherry-pick of #14376) ([#14403](https://github.com/pantsbuild/pants/pull/14403)) + +### Bug fixes + +* Fix handling of Go version for third-party packages (Cherry-pick of #14457) ([#14459](https://github.com/pantsbuild/pants/pull/14459)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. (Cherry-pick of #14447) ([#14456](https://github.com/pantsbuild/pants/pull/14456)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves (Cherry-pick of #14418) ([#14439](https://github.com/pantsbuild/pants/pull/14439)) + +* Fix `pants_requirements` target generator to use resolves (Cherry-pick of #14417) ([#14423](https://github.com/pantsbuild/pants/pull/14423)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` (Cherry-pick of #14404) ([#14424](https://github.com/pantsbuild/pants/pull/14424)) + +## 2.10.0rc0 (Feb 07, 2022) + +### New Features + +* Add `--fmt-only`, `--check-only`, and `--lint-only` ([#14356](https://github.com/pantsbuild/pants/pull/14356)) + +* Add support for building PyOxidizer apps ([#14183](https://github.com/pantsbuild/pants/pull/14183)) + +* Adds `run` support for `deploy_jar` targets ([#14352](https://github.com/pantsbuild/pants/pull/14352)) + +* New `[docker].executable_search_paths` option. ([#14360](https://github.com/pantsbuild/pants/pull/14360)) + +* Support Go 1.18 fuzz test targets ([#14357](https://github.com/pantsbuild/pants/pull/14357)) + +* Validate Python user lockfiles & improve tool lockfile error message ([#14353](https://github.com/pantsbuild/pants/pull/14353)) + +* Allow using Yapf with `update-build-files` rather than Black ([#14378](https://github.com/pantsbuild/pants/pull/14378)) + +* Graduate Thrift Python support to be stable with `pants.backend.codegen.thrift.apache.python` ([#14389](https://github.com/pantsbuild/pants/pull/14389)) + +### User API Changes + +* Graduate Docker backend from experimental status. ([#14310](https://github.com/pantsbuild/pants/pull/14310)) + +* Graduate the Dockerfile linter Hadolint from experimental status. ([#14311](https://github.com/pantsbuild/pants/pull/14311)) + +* Merge `validate` goal with `lint` goal ([#14102](https://github.com/pantsbuild/pants/pull/14102)) + +* Rename Python resolve options and fields to not say "experimental" ([#14326](https://github.com/pantsbuild/pants/pull/14326)) + +* Add Thrift, Protobuf, Java, and Scala folders to default for `[source].root_patterns` ([#14363](https://github.com/pantsbuild/pants/pull/14363)) + +* Rename the `download-pex-bin` scope to `pex-cli`. ([#14344](https://github.com/pantsbuild/pants/pull/14344)) + +* Upgrade default Black version to 22.1.0 ([#14324](https://github.com/pantsbuild/pants/pull/14324)) + +* Upgrade default Pytest version to 7 ([#14380](https://github.com/pantsbuild/pants/pull/14380)) + +### Plugin API Changes + +* Rename `LintRequest` to `LintTargetsRequest` ([#14312](https://github.com/pantsbuild/pants/pull/14312)) + +* New (optional) API for MyPy-friendly options registration ([#14331](https://github.com/pantsbuild/pants/pull/14331)) + +* Remove `PexFromTargetsRequest.additional_requirements` ([#14350](https://github.com/pantsbuild/pants/pull/14350)) + +* `ReplImplementation` now passes root targets, not transitive closure ([#14323](https://github.com/pantsbuild/pants/pull/14323)) + +* `LintRequest`, `FmtRequest`, and `CheckRequest` must set `name: ClassVar[str]` ([#14304](https://github.com/pantsbuild/pants/pull/14304)) + +### Bug fixes + +* Warn when `[python-protobuf].runtime_dependencies` needs to use new target generator syntax ([#14391](https://github.com/pantsbuild/pants/pull/14391)) + +* Fix native cycle detection error message. ([#14381](https://github.com/pantsbuild/pants/pull/14381)) + +* Fix import parsing regression ([#14349](https://github.com/pantsbuild/pants/pull/14349)) + +* Include link dest in symlink error. ([#14384](https://github.com/pantsbuild/pants/pull/14384)) + +### Performance + +* Lazy load help info ([#14305](https://github.com/pantsbuild/pants/pull/14305)) + +### Documentation + +* Standardize how we reference formatters, linters, and checkers in goal summary ([#14355](https://github.com/pantsbuild/pants/pull/14355)) + +* Don't enumerate deprecated scopes in help. ([#14345](https://github.com/pantsbuild/pants/pull/14345)) + +* Don't render skipped tools in final summary with `fmt`, `lint`, `check`, and `test` ([#14303](https://github.com/pantsbuild/pants/pull/14303)) + +## 2.10.0.dev3 (Jan 28, 2022) + +### New Features + +* Support multiple disjoint Python resolves via `[python].experimental_resolves` ([#14299](https://github.com/pantsbuild/pants/pull/14299)) + +* Optionally render the `--dynamic-ui` with Prodash ([#14221](https://github.com/pantsbuild/pants/pull/14221)) + +* Add `context_root` field to `docker_image` and `default_context_root` option to `[docker]` scope. ([#14165](https://github.com/pantsbuild/pants/pull/14165)) + +### User API Changes + +* Deprecate `generate-user-lockfile` and `[python].experimental_lockfile` in favor of `[python].experimental_resolves` ([#14288](https://github.com/pantsbuild/pants/pull/14288)) + +* Bump versions & regenerate lockfiles for several Python tools, including Twine, PyUpgrade, and MyPy Protobuf ([#14277](https://github.com/pantsbuild/pants/pull/14277)) + +* Upgrade Pex to 2.1.65. ([#14256](https://github.com/pantsbuild/pants/pull/14256)) + +### Plugin API Changes + +* Remove `PexFromTargetsRequest(direct_deps_only: bool)` ([#14291](https://github.com/pantsbuild/pants/pull/14291)) + +* Rename `GenerateToolLockfileSentinel.options_scope` to `resolve_name` ([#14231](https://github.com/pantsbuild/pants/pull/14231)) + +* Rename `PythonModule` to `PythonModuleOwnersRequest` ([#14276](https://github.com/pantsbuild/pants/pull/14276)) + +### Bug fixes + +* Fix plugin resolution running twice. ([#14294](https://github.com/pantsbuild/pants/pull/14294)) + +* Fix Pylint to consider transitive third-party dependencies ([#14289](https://github.com/pantsbuild/pants/pull/14289)) + +* Fix bad default module mapping for PyMongo ([#14284](https://github.com/pantsbuild/pants/pull/14284)) + +* go: filter out `vendor` directories in tailor ([#14259](https://github.com/pantsbuild/pants/pull/14259)) + +* Fix packaged file names for `pex_binaries` target generator ([#14269](https://github.com/pantsbuild/pants/pull/14269)) + +* Cap number of UI bars to terminal height ([#14228](https://github.com/pantsbuild/pants/pull/14228)) + +* Fix executability of materialized files for non-owners. ([#14298](https://github.com/pantsbuild/pants/pull/14298)) + +### Performance + +* Dynamically choose per-process concurrency for supported processes ([#14184](https://github.com/pantsbuild/pants/pull/14184)) + +### Documentation + +* Add some missing backends to generated docs ([#14290](https://github.com/pantsbuild/pants/pull/14290)) + +## 2.10.0.dev2 (Jan 22, 2022) + +### New Features + +* JVM lockfile invalidation headers and verification ([#14185](https://github.com/pantsbuild/pants/pull/14185)) + +* Add new `api-types` help goal ([#14081](https://github.com/pantsbuild/pants/pull/14081)) + +* Add line numbers to `--unowned-dependency-behavior` errors ([#14169](https://github.com/pantsbuild/pants/pull/14169)) + +* Add Flake8 first-party plugin support ([#14027](https://github.com/pantsbuild/pants/pull/14027)) + +* add runtime dependencies field for Apache Thrift for Python ([#14158](https://github.com/pantsbuild/pants/pull/14158)) + +* Add `#pants: no-infer-dep` pragma for ignoring imports ([#14059](https://github.com/pantsbuild/pants/pull/14059) and [#14225](https://github.com/pantsbuild/pants/pull/14225)) + +* Add local `.pants.rc` support ([#14142](https://github.com/pantsbuild/pants/pull/14142)) + +* thrift: add scrooge java backend ([#14043](https://github.com/pantsbuild/pants/pull/14043)) + +* add Avro codegen support for Java ([#13990](https://github.com/pantsbuild/pants/pull/13990)) + +### User API Changes + +* add timeout for remote cache lookups ([#14224](https://github.com/pantsbuild/pants/pull/14224)) + +* Replace `coursier-resolve` goal with `generate-lockfiles` ([#14211](https://github.com/pantsbuild/pants/pull/14211)) + +* Replace `jvm-generate-lockfiles` goal with `generate-lockfiles` ([#14176](https://github.com/pantsbuild/pants/pull/14176)) + +* Deprecate `sourcefile-validation` in favor of `regex-lint` ([#14173](https://github.com/pantsbuild/pants/pull/14173)) + +* Deprecate `python_requirements` and `poetry_requirements` using old macro in favor of target generation ([#14075](https://github.com/pantsbuild/pants/pull/14075)) + +* Add try/except parsing to import_parser to avoid failing strict checks for optional imports ([#14216](https://github.com/pantsbuild/pants/pull/14216)) + +* Don't error on string imports with `[python-infer].unowned_dependency_behavior` ([#14179](https://github.com/pantsbuild/pants/pull/14179)) + +### Plugin API Changes + +* Remove per-language indirection for formatter plugins. ([#14166](https://github.com/pantsbuild/pants/pull/14166)) + +### Bug fixes + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 ([#14232](https://github.com/pantsbuild/pants/pull/14232)) + +* `LockfileMetadata` - Replace flaky `_header_dict()` mechanism with more robust `header_attrs` mechanism ([#14229](https://github.com/pantsbuild/pants/pull/14229)) + +* More accurate reported runtime when `pantsd` is in use. ([#14177](https://github.com/pantsbuild/pants/pull/14177)) + +* Fix Pylint to run on transitive dependencies to avoid underreporting issues ([#13918](https://github.com/pantsbuild/pants/pull/13918)) + +* [Docker] Fix bug when a putative target address did not exist. ([#14125](https://github.com/pantsbuild/pants/pull/14125)) + +* Fix immutable inputs DCL bug. ([#14016](https://github.com/pantsbuild/pants/pull/14016)) + +### Performance + +* Batching of `lint` and `fmt` invokes ([#14186](https://github.com/pantsbuild/pants/pull/14186)) + +### Documentation + +* [Doc] Include backend source for goals, subsystems and targets in generated docsite. ([#14126](https://github.com/pantsbuild/pants/pull/14126)) + +## 2.10.0.dev1 (Jan 07, 2022) + +### New Features + +* JVM Resources support ([#13908](https://github.com/pantsbuild/pants/pull/13908)) + +* Expose Docker build context hash for image tag interpolation. ([#13959](https://github.com/pantsbuild/pants/pull/13959)) + +* Add Thrift IDL codegen using Apache Thrift for Python and Java and Scrooge for Scala ([#13987](https://github.com/pantsbuild/pants/pull/13987)) + +* Add new `image_labels` field to `docker_image`. ([#13973](https://github.com/pantsbuild/pants/pull/13973)) + +### User API Changes + +* Deprecate `[validate].detail_level` in favor of `[sourcefile-validation].detail_level` ([#14103](https://github.com/pantsbuild/pants/pull/14103)) + +* Upgrade Hadolint (dockerfile linter) to from 2.6.0 to 2.8.0 ([#14110](https://github.com/pantsbuild/pants/pull/14110)) + +* Change third party module mapping to consider resolves ([#14034](https://github.com/pantsbuild/pants/pull/14034)) + +### Plugin API Changes + +* Fix `@rule` effect validation for `not cacheable` types. ([#14069](https://github.com/pantsbuild/pants/pull/14069)) + +* Allow plugins to use range requirements by applying constraints to plugin resolution ([#14058](https://github.com/pantsbuild/pants/pull/14058)) + +### Bug fixes + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. ([#14109](https://github.com/pantsbuild/pants/pull/14109)) + +* Hook up Scalafmt and Google Java Format to `./pants lint` ([#14108](https://github.com/pantsbuild/pants/pull/14108)) + +* Fix `validate` goal crashing if not configured ([#14104](https://github.com/pantsbuild/pants/pull/14104)) + +* Fix dropped output race during UI teardown ([#14093](https://github.com/pantsbuild/pants/pull/14093)) + +* Fix incorrectly setting `name` on `python_requirements` macro ([#14065](https://github.com/pantsbuild/pants/pull/14065)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. ([#14038](https://github.com/pantsbuild/pants/pull/14038)) + +* Fix `.pyi` type stubs to show up in `python_distribution` ([#14033](https://github.com/pantsbuild/pants/pull/14033)) + +* Fix file sources codegen for the Docker build context. ([#14024](https://github.com/pantsbuild/pants/pull/14024)) + +* [jvm] Parse maven coordinates using regular expression ([#14010](https://github.com/pantsbuild/pants/pull/14010)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries ([#14012](https://github.com/pantsbuild/pants/pull/14012)) + +### Documentation + +* Include provider info in help output for subsystems and target types. ([#13993](https://github.com/pantsbuild/pants/pull/13993)) + +* Fix help strings which were accidentally tuples, and add a validation. ([#14057](https://github.com/pantsbuild/pants/pull/14057)) + +## 2.10.0.dev0 (Dec 27, 2021) + +### New Features + +* Add duration and cache source to test output. ([#13889](https://github.com/pantsbuild/pants/pull/13889)) + +* Add `pex_binaries` target generator ([#13910](https://github.com/pantsbuild/pants/pull/13910)) + +* Support Docker build target stage ([#13956](https://github.com/pantsbuild/pants/pull/13956)) + +* Add `ssh` field to `docker_image`. ([#13957](https://github.com/pantsbuild/pants/pull/13957)) + +* Docker `FROM` target dep inference ([#13921](https://github.com/pantsbuild/pants/pull/13921)) + +* Docker context troubleshooter ([#13896](https://github.com/pantsbuild/pants/pull/13896)) + +* java: add protobuf code generation support using `protoc` ([#13989](https://github.com/pantsbuild/pants/pull/13989)) + +* Support `test --debug` with scalatest and junit. ([#13966](https://github.com/pantsbuild/pants/pull/13966)) + +### User API Changes + +* Update shellcheck default version to v0.8.0 ([#13983](https://github.com/pantsbuild/pants/pull/13983)) + +* Upgrade to Pex 2.1.61 and use `--venv` copies. ([#13979](https://github.com/pantsbuild/pants/pull/13979)) + +* Remove deprecated `[python-setup]` in favor of `[python]` ([#14004](https://github.com/pantsbuild/pants/pull/14004)) + +* Remove deprecated `typecheck` goal as alias for `check` ([#13929](https://github.com/pantsbuild/pants/pull/13929)) + +* Remove deprecated `pants_requirement` in favor of `pants_requirements` ([#13927](https://github.com/pantsbuild/pants/pull/13927)) + +* Remove deprecated `--process-execution-local-cleanup` and `--process-execution-local-cache` in favor of `--process-cleanup` and `--local-cache` ([#13928](https://github.com/pantsbuild/pants/pull/13928)) + +### Plugin API Changes + +* Add `OptionalSingleSourceField` ([#13982](https://github.com/pantsbuild/pants/pull/13982)) + +* Remove deprecated RuleRunner methods `create_file(s)` and `add_to_build_file`. ([#13954](https://github.com/pantsbuild/pants/pull/13954)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) ([#13944](https://github.com/pantsbuild/pants/pull/13944)) + +### Bug fixes + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. ([#13996](https://github.com/pantsbuild/pants/pull/13996)) + +* Restore the `pants` namespace package. ([#13972](https://github.com/pantsbuild/pants/pull/13972)) + +* Fix `--log-levels-by-target` not working for logs from Python code ([#13939](https://github.com/pantsbuild/pants/pull/13939)) + +* Fix `tailor` not setting the `name` field ([#13913](https://github.com/pantsbuild/pants/pull/13913)) diff --git a/versioned_docs/version-2.20/notes/2.11.x.md b/versioned_docs/version-2.20/notes/2.11.x.md new file mode 100644 index 000000000..72b4f776f --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.11.x.md @@ -0,0 +1,523 @@ +# 2.11.x Release Series + +## 2.11.1 (Jun 28, 2022) + +The second stable release in the `2.11.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15972](https://github.com/pantsbuild/pants/pull/15972)) + +## 2.11.1rc3 (Jun 23, 2022) + +### Bug fixes + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15794](https://github.com/pantsbuild/pants/pull/15794)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15844](https://github.com/pantsbuild/pants/pull/15844)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15822](https://github.com/pantsbuild/pants/pull/15822)) + +## 2.11.1rc2 (May 31, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15659](https://github.com/pantsbuild/pants/pull/15659)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15708](https://github.com/pantsbuild/pants/pull/15708)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15678](https://github.com/pantsbuild/pants/pull/15678)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15679](https://github.com/pantsbuild/pants/pull/15679)) + +## 2.11.1rc1 (May 23, 2022) + +### User API Changes + +* Revert `tags` changes, except for the `python_tests` bug fix ([#15553](https://github.com/pantsbuild/pants/pull/15553)) + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15486](https://github.com/pantsbuild/pants/pull/15486)) + +### Bug fixes + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15574](https://github.com/pantsbuild/pants/pull/15574)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15572](https://github.com/pantsbuild/pants/pull/15572)) + +* Improve `name=` used for Python requirement target generators with `tailor` (Cherry-pick of #15507) ([#15520](https://github.com/pantsbuild/pants/pull/15520)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15497](https://github.com/pantsbuild/pants/pull/15497)) + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15610](https://github.com/pantsbuild/pants/pull/15610)) + +## 2.11.1rc0 (May 13, 2022) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15413](https://github.com/pantsbuild/pants/pull/15413)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15404](https://github.com/pantsbuild/pants/pull/15404)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15402](https://github.com/pantsbuild/pants/pull/15402)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15371](https://github.com/pantsbuild/pants/pull/15371)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15369](https://github.com/pantsbuild/pants/pull/15369)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15357](https://github.com/pantsbuild/pants/pull/15357)) + +* Fix a bug in the python venv export logic. (cherrypick of #15294) ([#15307](https://github.com/pantsbuild/pants/pull/15307)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15300](https://github.com/pantsbuild/pants/pull/15300)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15309](https://github.com/pantsbuild/pants/pull/15309)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15440](https://github.com/pantsbuild/pants/pull/15440)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15389](https://github.com/pantsbuild/pants/pull/15389)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15367](https://github.com/pantsbuild/pants/pull/15367)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15365](https://github.com/pantsbuild/pants/pull/15365)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15349](https://github.com/pantsbuild/pants/pull/15349)) + +## 2.11.0 (May 02, 2022) + +The first stable release of the `2.11.x` series, with no changes since the previous `rc`! + +## 2.11.0rc6 (Apr 30, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.84. (Cherry-picks of #15200, #15281 & #15288) ([#15289](https://github.com/pantsbuild/pants/pull/15289)) + +### Bug fixes + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. (Cherry-pick of #15277) ([#15278](https://github.com/pantsbuild/pants/pull/15278)) + +## 2.11.0rc5 (Apr 26, 2022) + +### Bug fixes + +* Fix issue with Docker publish when using `[docker] tools`. (Cherry pick of #15255) ([#15261](https://github.com/pantsbuild/pants/pull/15261)) + +* Do not lowercase Docker image tags. (Cherry pick of #15254) ([#15260](https://github.com/pantsbuild/pants/pull/15260)) + +* Fix the placement of the pex verbosity args. (Cherry-pick of #15243) ([#15249](https://github.com/pantsbuild/pants/pull/15249)) + +## 2.11.0rc4 (Apr 25, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.80. (Cherry-pick of #15179) ([#15180](https://github.com/pantsbuild/pants/pull/15180)) + +### Bug fixes + +* golang: add more cache keys based on tool IDs (Cherry-pick of #15205) ([#15209](https://github.com/pantsbuild/pants/pull/15209)) + +* Support poetry wildcard requirements. (Cherry-pick of #15213) ([#15214](https://github.com/pantsbuild/pants/pull/15214)) + +* Fix use of `@` in path names (Cherry-pick of #15226) ([#15231](https://github.com/pantsbuild/pants/pull/15231)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. (Cherry-pick of #15219) ([#15230](https://github.com/pantsbuild/pants/pull/15230)) + +### Documentation + +* Don't log set up of binary shims (Cherry-pick of #15203) ([#15206](https://github.com/pantsbuild/pants/pull/15206)) + +* Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) ([#15181](https://github.com/pantsbuild/pants/pull/15181)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` (Cherry-pick of #15141) ([#15244](https://github.com/pantsbuild/pants/pull/15244)) + +## 2.11.0rc3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets (Cherry pick of #15126) ([#15148](https://github.com/pantsbuild/pants/pull/15148)) + +### User API Changes + +* Upgrade Pex to 2.1.79. (Cherry-pick of #15125) ([#15129](https://github.com/pantsbuild/pants/pull/15129)) + +* Ban `terraform_module` referring to subdirectories (Cherry-pick of #15106) ([#15122](https://github.com/pantsbuild/pants/pull/15122)) + +* Enable codegen on relocated files (Cherry-pick of #15100) ([#15131](https://github.com/pantsbuild/pants/pull/15131)) + +### Bug fixes + +* Clean PID-specific exception file if empty on process exit (#15086) ([#15113](https://github.com/pantsbuild/pants/pull/15113)) + +* Allow dashes in inferred asset strings (Cherry-pick of #15123) ([#15154](https://github.com/pantsbuild/pants/pull/15154)) + +* Fix typo in Pylint description (Cherry-pick of #14945) ([#15157](https://github.com/pantsbuild/pants/pull/15157)) + +* Fix when the same `python_requirement` defines both type stub and implementation (Cherry-pick of #15121) ([#15127](https://github.com/pantsbuild/pants/pull/15127)) + +* fix missing field check in go protobuf rules (Cherry pick of #15105) ([#15118](https://github.com/pantsbuild/pants/pull/15118)) + +* files/dirs swapped in Snapshot's repr (Cherry-pick of #15101) ([#15114](https://github.com/pantsbuild/pants/pull/15114)) + +* Preserve tombstones for workunits which complete while they still have children (cherrypick of #15088) ([#15103](https://github.com/pantsbuild/pants/pull/15103)) + +### Documentation + +* Add some codegen and terraform backends to docs generator (Cherry-pick of #15036) ([#15156](https://github.com/pantsbuild/pants/pull/15156)) + +## 2.11.0rc2 (Apr 08, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.78. (Cherry-pick of #15078) ([#15079](https://github.com/pantsbuild/pants/pull/15079)) + +* terraform: remove `terraform_modules` generator target type (Cherry pick of #15035) ([#15063](https://github.com/pantsbuild/pants/pull/15063)) + +### Bug fixes + +* Clean the export dir under dist/ before populating it. (cherrypick #15068) ([#15075](https://github.com/pantsbuild/pants/pull/15075)) + +* Do not use a repository-PEX if a PEX has platforms specified (cherrypick of #15031) ([#15034](https://github.com/pantsbuild/pants/pull/15034)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles (cherrypick of #15014) ([#15032](https://github.com/pantsbuild/pants/pull/15032)) + +* Pin pytest 7.0.1 (cherrypick of #14997) ([#15013](https://github.com/pantsbuild/pants/pull/15013)) + +### Documentation + +* Text in angle brackets needs to be escaped for the docsite. (Cherry pick of #15046) ([#15056](https://github.com/pantsbuild/pants/pull/15056)) + +* Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) ([#15024](https://github.com/pantsbuild/pants/pull/15024)) + +## 2.11.0rc1 (Mar 31, 2022) + +### New Features + +* Add Protobuf formatting using buf format (Cherry pick of #14907) ([#14917](https://github.com/pantsbuild/pa + +* Add registration for the Go Protobuf backend (Cherry pick of #14874) ([#14900](https://github.com/pantsbuild/pants/pull/14900)) + +* Restore experimental codegen backends disabled for 2.10 release (Cherry-pick of #14407) ([#14932](https://github.com/pantsbuild/pants/pull/14932)) + +* Add support for parsing address parameters to CLI specs parsing (cherrypick of #14949) ([#14957](https://github.com/pantsbuild/pants/pull/14957)) + +### User API Changes + +* Upgrade to Pex 2.1.75 for VCS lock support and deadlock fix (Cherry-pick of #14970) ([#14976](https://github.com/pantsbuild/pants/pull/14976)) + +### Plugin API Changes + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. (cherrypick of #14959) ([#14962](https://github.com/pantsbuild/pants/pull/14962)) + +### Bug fixes + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields (Cherry-pick of #14847) ([#14930](https://github.com/pantsbuild/pants/pull/14930)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves (cherrypick of #14854, #14856, #14934) ([#14942](https://github.com/pantsbuild/pants/pull/14942)) + +* Upgrade Pex to 2.1.73. (#14875) ([#14880](https://github.com/pantsbuild/pants/pull/14880)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting (cherrypick of #14889) ([#14896](https://github.com/pantsbuild/pants/pull/14896)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled (#14891) ([#14894](https://github.com/pantsbuild/pants/pull/14894)) + +* add cache key for all Go SDK invocations (Cherry pick of #14897) ([#14901](https://github.com/pantsbuild/pants/pull/14901)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators (#14893) ([#14895](https://github.com/pantsbuild/pants/pull/14895)) + +### Performance + +* Make PEX lockfile subsetting incremental (cherry-pick of #14944) ([#14956](https://github.com/pantsbuild/pants/pull/14956)) + +## 2.11.0rc0 (Mar 17, 2022) + +### New Features + +* Generate and compile Go from Protobuf ([#14714](https://github.com/pantsbuild/pants/pull/14714)) + +* Add the ability to infer assets from strings for Python ([#14049](https://github.com/pantsbuild/pants/pull/14049)) + +* Add `[python].lockfile_generator` to allow using Pex for lockfile generation ([#14740](https://github.com/pantsbuild/pants/pull/14740)) + +* Add protobuf linting using Buf with `pants.backend.codegen.protobuf.lint.buf` backend ([#14540](https://github.com/pantsbuild/pants/pull/14540)) + +* Add `run` support to `pyoxidizer_binary` ([#14646](https://github.com/pantsbuild/pants/pull/14646)) + +* Add new `[docker].tools` option ([#14361](https://github.com/pantsbuild/pants/pull/14361)) + +* Add `build_file_dir()` symbol to BUILD files ([#14827](https://github.com/pantsbuild/pants/pull/14827)) + +* Adds `excludes` field to `jvm_artifact` targets ([#14715](https://github.com/pantsbuild/pants/pull/14715)) + +* Basic support for Helm charts ([#14658](https://github.com/pantsbuild/pants/pull/14658)) + +* Support `package` goal for Helm charts ([#14797](https://github.com/pantsbuild/pants/pull/14797)) + +* Python dependency inference supports multiple resolves for first-party targets ([#14486](https://github.com/pantsbuild/pants/pull/14486)) + +* Default the parameters of `parametrize`d dependencies on `parametrize`d targets ([#14788](https://github.com/pantsbuild/pants/pull/14788)) + +* Allow for codegen targets to be used directly by JVM compiler requests ([#14751](https://github.com/pantsbuild/pants/pull/14751)) + +### User API Changes + +* Update default Python interpreter constraints to not use Python 3.6 ([#14803](https://github.com/pantsbuild/pants/pull/14803)) + +* `python_sources` and `python_tests` target generators no longer impact interpreter constraints calculations ([#14821](https://github.com/pantsbuild/pants/pull/14821)) + +* Target generators (like `python_sources`) now only directly depend on their generated targets ([#14766](https://github.com/pantsbuild/pants/pull/14766)) + +* Deprecate not explicitly setting `[python].lockfile_generator` ([#14817](https://github.com/pantsbuild/pants/pull/14817)) + +* Change default `[python].resolves` from `3rdparty/python/default_lockfile.txt` to `3rdparty/python/default.lock` (Cherry-pick of #14815) ([#14818](https://github.com/pantsbuild/pants/pull/14818)) + +* Swap the order of generated names and parameters in Addresses. ([#14814](https://github.com/pantsbuild/pants/pull/14814)) + +* Rename `_python_requirements_file` target to `_generator_sources_helper` ([#14727](https://github.com/pantsbuild/pants/pull/14727)) + +* Add `SSL_CERT_DIR` and `SSL_CERT_FILE` to the default for `[subprocess-environment].env_vars` ([#14808](https://github.com/pantsbuild/pants/pull/14808)) + +* Upgrade Pex to 2.1.72. ([#14795](https://github.com/pantsbuild/pants/pull/14795)) + +### Plugin API Changes + +* Deprecate `Subsystem.register_options` in favor of the new attribute-based Option types ([#14772](https://github.com/pantsbuild/pants/pull/14772)) + +* New util rule for isolating binary tools. ([#14374](https://github.com/pantsbuild/pants/pull/14374)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. ([#14819](https://github.com/pantsbuild/pants/pull/14819)) + +* Fix exclusive spawn mechanism for relative paths and working directories. ([#14812](https://github.com/pantsbuild/pants/pull/14812)) + +* Fix a coverage config rewriting bug. ([#14784](https://github.com/pantsbuild/pants/pull/14784)) + +* golang: fix regression in analysis code ([#14733](https://github.com/pantsbuild/pants/pull/14733)) + +### Performance + +* Don't restart Pantsd when `requirements.txt` and `pyproject.toml` change if using target generators ([#14829](https://github.com/pantsbuild/pants/pull/14829)) + +* Switch default tool lockfiles to Pex lockfiles for faster installation ([#14811](https://github.com/pantsbuild/pants/pull/14811)) + +* Port `Process` operations to use of `DigestTrie` ([#14723](https://github.com/pantsbuild/pants/pull/14723)) + +### Documentation + +* Improve REPL multiple resolves error to mention `[python].default_resolve` ([#14778](https://github.com/pantsbuild/pants/pull/14778)) + +* Switch from Aegean Check Mark to Multiplication X ([#14764](https://github.com/pantsbuild/pants/pull/14764)) + +* Improve documentation for `python_test_utils` ([#14739](https://github.com/pantsbuild/pants/pull/14739)) + +## 2.11.0.dev3 (Mar 04, 2022) + +### New Features + +* Add `[python].resolves_generate_lockfiles` to enable multiple resolves but with manual generation of lockfiles ([#14675](https://github.com/pantsbuild/pants/pull/14675)) + +* Add `python_resolve` field to `protobuf_source` and `thrift_source` to support multiple resolves with codegen ([#14698](https://github.com/pantsbuild/pants/pull/14698)) + +* JVM: add war file packaging ([#13888](https://github.com/pantsbuild/pants/pull/13888)) + +* Improve `export` to include pip in the venv. ([#14640](https://github.com/pantsbuild/pants/pull/14640)) + +### User API Changes + +* Remove `[python-protobuf].runtime_dependencies` in favor of Pants discovering the dependency ([#14695](https://github.com/pantsbuild/pants/pull/14695)) + +* Upgrade Pex to 2.1.70. ([#14700](https://github.com/pantsbuild/pants/pull/14700)) + +### Plugin API Changes + +* Add `SkipOption` and improve `ArgsListOption` ([#14660](https://github.com/pantsbuild/pants/pull/14660)) + +* Move `BinaryPath` and `BashBinary` from `pants.engine.process` to `pants.core.util_rules.system_binaries` ([#14629](https://github.com/pantsbuild/pants/pull/14629)) + +### Bug fixes + +* Fix rendering of "Scheduling: ..." workunits introduced by workunit filtering. ([#14681](https://github.com/pantsbuild/pants/pull/14681)) + +* Give interactive processes a chance to gracefully shutdown ([#14580](https://github.com/pantsbuild/pants/pull/14580)) + +* Don't show no-op regex-lint output. ([#14656](https://github.com/pantsbuild/pants/pull/14656)) + +* Go: introduce cache key for compile actions ([#14661](https://github.com/pantsbuild/pants/pull/14661)) + +* Go: Properly disable CGo ([#14623](https://github.com/pantsbuild/pants/pull/14623)) + +### Performance + +* Add support for rendering a summary of objects held by the graph ([#14638](https://github.com/pantsbuild/pants/pull/14638)) + +* Reduce memory usage by interning Tasks and RuleGraph entries. ([#14683](https://github.com/pantsbuild/pants/pull/14683)) + +* Skip capture of `TRACE` workunits by default ([#13483](https://github.com/pantsbuild/pants/pull/13483)) + +## 2.11.0.dev2 (Feb 25, 2022) + +### New Features + +* New `--docker-build-verbose` option to print build output to the console. ([#14557](https://github.com/pantsbuild/pants/pull/14557)) + +### User API Changes + +* Add `output_path` field to `pyoxidizer_binary` and change its default destination ([#14607](https://github.com/pantsbuild/pants/pull/14607)) + +* Upgrade `terraform-hcl2-parser` to version 3.0.3 ([#14554](https://github.com/pantsbuild/pants/pull/14554)) + +### Plugin API Changes + +* Rename `pants.python.binares` to `pants.core.subsystems.python_bootstrap` ([#14613](https://github.com/pantsbuild/pants/pull/14613)) + +* Add `PythonToolBase.to_pex_request()` to DRY tool installation ([#14610](https://github.com/pantsbuild/pants/pull/14610)) + +* Move `PythonBinary` from `python.binaries` to `core.util_rules.system_binaries` ([#14609](https://github.com/pantsbuild/pants/pull/14609)) + +* Add `core/util_rules/system_binaries.py` and relocate `archive.py` types like `UnzipBinary` to it ([#14601](https://github.com/pantsbuild/pants/pull/14601)) + +### Bug fixes + +* Show a helpful error message if a 3rdparty jar isn't available. ([#14595](https://github.com/pantsbuild/pants/pull/14595)) + +* Fix `pyoxidizer_binary` to support `python_distribution` targets that depend on others ([#14620](https://github.com/pantsbuild/pants/pull/14620)) + +* Coursier caches are now determined by `-repos` configuration ([#14603](https://github.com/pantsbuild/pants/pull/14603)) + +* adds `--no-default` to Coursier args so that we only use user-configured maven repos ([#14581](https://github.com/pantsbuild/pants/pull/14581)) + +### Performance + +* Fix PyOxidizer to write to `~/.cache/pants` by using a named cache ([#14582](https://github.com/pantsbuild/pants/pull/14582)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets ([#14621](https://github.com/pantsbuild/pants/pull/14621)) + +* Don't leak local paths into generated docs. ([#14591](https://github.com/pantsbuild/pants/pull/14591)) + +## 2.11.0.dev1 (Feb 22, 2022) + +### New Features + +* Support for `file`/`files` in JVM tests ([#14537](https://github.com/pantsbuild/pants/pull/14537)) + +* Support complete_platforms for `python_awslambda`. ([#14532](https://github.com/pantsbuild/pants/pull/14532)) + +* Support complete_platforms for Python GCFs. ([#14530](https://github.com/pantsbuild/pants/pull/14530)) + +* Properly support filesystem specs in the `paths` goal. ([#14518](https://github.com/pantsbuild/pants/pull/14518)) + +* Plumb Pex's `--complete-platform` for pex_binary. ([#14526](https://github.com/pantsbuild/pants/pull/14526)) + +* Adds the plugin names field to scala sources ([#14508](https://github.com/pantsbuild/pants/pull/14508)) + +* jvm: teach dependency inference about multiple resolves ([#14491](https://github.com/pantsbuild/pants/pull/14491)) + +* scala: add implicit dependency on scala-library ([#14450](https://github.com/pantsbuild/pants/pull/14450)) + +* py_awslambda: pass through `include_requirements:bool` to `pex_binary` ([#14469](https://github.com/pantsbuild/pants/pull/14469)) + +### User API Changes + +* Upgrade Pex to 2.1.67. ([#14544](https://github.com/pantsbuild/pants/pull/14544)) + +* Create per-parametrization aliases for generator targets ([#14529](https://github.com/pantsbuild/pants/pull/14529)) + +* Per-resolve scala plugins ([#14497](https://github.com/pantsbuild/pants/pull/14497)) + +### Plugin API Changes + +* Replace `GoalSubsystem.required_union_implementations` with `GoalSubsystem.activated()` ([#14313](https://github.com/pantsbuild/pants/pull/14313)) + +* Add dynamic help ([#14543](https://github.com/pantsbuild/pants/pull/14543)) + +* Add global counters, and deprecate per-workunit counters. ([#14541](https://github.com/pantsbuild/pants/pull/14541)) + +### Bug fixes + +* Fix PyOxidizer depending on `python_distribution` with `sdist=True` (#14394) + +* Fix coverage base global report creation bug. ([#14547](https://github.com/pantsbuild/pants/pull/14547)) + +* Tests scala local plugins, and makes it work properly on `scala_sources` targets ([#14512](https://github.com/pantsbuild/pants/pull/14512)) + +* Allow use of `parametrize` with the `jdk=` field of JVM targets ([#14510](https://github.com/pantsbuild/pants/pull/14510)) + +* Fix address parse bug in `update-build-files --fix-python-macros`. ([#14485](https://github.com/pantsbuild/pants/pull/14485)) + +### Performance + +* Shortcircuit source subsetting if there are no distributions. ([#14564](https://github.com/pantsbuild/pants/pull/14564)) + +* Calculate local distribution contents once per distribution ([#14551](https://github.com/pantsbuild/pants/pull/14551)) + +### Documentation + +* Fix the incompatible resolve error message to include the entire checked set of targets. ([#14525](https://github.com/pantsbuild/pants/pull/14525)) + +* Add disclaimer about `[python].enable_resolves` and lockfile generation ([#14475](https://github.com/pantsbuild/pants/pull/14475)) + +## 2.11.0.dev0 (Feb 11, 2022) + +### New Features + +* Add support for long_description_path field in python_distribution ([#14448](https://github.com/pantsbuild/pants/pull/14448)) + +* Improve `export` goal to handle multiple Python resolves ([#14436](https://github.com/pantsbuild/pants/pull/14436)) + +* Add support for multiple compile/testing JDKs ([#14421](https://github.com/pantsbuild/pants/pull/14421)) + +* Add initial support for a `parametrize` builtin to generate multiple copies of a target ([#14408](https://github.com/pantsbuild/pants/pull/14408)) + +* scala: support multiple scala versions ([#14425](https://github.com/pantsbuild/pants/pull/14425)) + +### User API Changes + +* Remove support for JSON-encoded JVM lockfiles. ([#14458](https://github.com/pantsbuild/pants/pull/14458)) + +* Remove deprecated `.tag` version values. ([#14453](https://github.com/pantsbuild/pants/pull/14453)) + +* Remove deprecated `[scala] version` option. ([#14455](https://github.com/pantsbuild/pants/pull/14455)) + +* Replace `compatible_resolves` with `resolve` for JVM targets ([#14441](https://github.com/pantsbuild/pants/pull/14441)) + +* `python_requirement` uses `resolve: str` field, not `compatible_resolves: list[str]` ([#14420](https://github.com/pantsbuild/pants/pull/14420)) + +* Remove options, goals, and backends deprecated in Pants 2.10 ([#14396](https://github.com/pantsbuild/pants/pull/14396)) + +* Migrate the Docker context tags version from `.tag` to `tags.`. ([#14376](https://github.com/pantsbuild/pants/pull/14376)) + +* Default to `use_deprecated_python_macros = false` and deprecate the option ([#14399](https://github.com/pantsbuild/pants/pull/14399)) + +### Plugin API Changes + +* Adding DictOptions and WorkspacePathOption to the declarative options ([#14433](https://github.com/pantsbuild/pants/pull/14433)) + +* More declarative target generators for plugins ([#14377](https://github.com/pantsbuild/pants/pull/14377)) + +### Bug fixes + +* Fix handling of Go version for third-party packages ([#14457](https://github.com/pantsbuild/pants/pull/14457)) + +* Fix issue picking up base image tag from Dockerfile with a digest present. ([#14447](https://github.com/pantsbuild/pants/pull/14447)) + +* Make sure `[python].enable_resolves = false` disables checking for valid resolves ([#14418](https://github.com/pantsbuild/pants/pull/14418)) + +* Fix `pants_requirements` target generator to use resolves ([#14417](https://github.com/pantsbuild/pants/pull/14417)) + +* Fix `tailor` when `--use-deprecated-python-macros=false` ([#14404](https://github.com/pantsbuild/pants/pull/14404)) + +### Documentation + +* `help` command reminds users about `help-advanced` ([#14402](https://github.com/pantsbuild/pants/pull/14402)) diff --git a/versioned_docs/version-2.20/notes/2.12.x.md b/versioned_docs/version-2.20/notes/2.12.x.md new file mode 100644 index 000000000..1031ae074 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.12.x.md @@ -0,0 +1,491 @@ +# 2.12.x Release Series + +## 2.12.1 (Aug 31, 2022) + +The second stable release of 2.12, with only updates to the docs website. + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16678](https://github.com/pantsbuild/pants/pull/16678)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16651](https://github.com/pantsbuild/pants/pull/16651)) + +## 2.12.1rc4 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16619](https://github.com/pantsbuild/pants/pull/16619)) + +### Bug fixes + +* Add `grpcio` to default Python module mapping ([#16605](https://github.com/pantsbuild/pants/pull/16605)) + +* Fix `IndexError` when codegen is missing expected `python_requirement` targets ([#16590](https://github.com/pantsbuild/pants/pull/16590)) + +### Documentation + +* Fix broken link to community page (Cherry-pick of #16468) ([#16556](https://github.com/pantsbuild/pants/pull/16556)) + +## 2.12.1rc3 (Aug 14, 2022) + +### Bug fixes + +* Include Helm chart dependency inference rules (cherrypick of #16368) ([#16490](https://github.com/pantsbuild/pants/pull/16490)) + +* Fix docker invalidation bug. (cherrypick #16419) ([#16479](https://github.com/pantsbuild/pants/pull/16479)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16295](https://github.com/pantsbuild/pants/pull/16295)) + +### Documentation + +* Fix source roots docs (Cherry-pick of #16363) ([#16364](https://github.com/pantsbuild/pants/pull/16364)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16348](https://github.com/pantsbuild/pants/pull/16348)) + +## 2.12.1rc2 (Jul 20, 2022) + +### Bug fixes + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16251](https://github.com/pantsbuild/pants/pull/16251)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields (cherry-pick of #16232) ([#16248](https://github.com/pantsbuild/pants/pull/16248)) + +## 2.12.1rc1 (Jul 19, 2022) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16220](https://github.com/pantsbuild/pants/pull/16220)) + +### Bug fixes + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16233](https://github.com/pantsbuild/pants/pull/16233)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (Cherry-pick of #16197) ([#16213](https://github.com/pantsbuild/pants/pull/16213)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16211](https://github.com/pantsbuild/pants/pull/16211)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16185](https://github.com/pantsbuild/pants/pull/16185)) + +### Documentation + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16207](https://github.com/pantsbuild/pants/pull/16207)) + +## 2.12.1rc0 (Jul 14, 2022) + +### User API Changes + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16114](https://github.com/pantsbuild/pants/pull/16114)) + +### Bug fixes + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16179](https://github.com/pantsbuild/pants/pull/16179)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16153](https://github.com/pantsbuild/pants/pull/16153)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16047](https://github.com/pantsbuild/pants/pull/16047)) + +### Documentation + +* Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) ([#16157](https://github.com/pantsbuild/pants/pull/16157)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16138](https://github.com/pantsbuild/pants/pull/16138)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16059](https://github.com/pantsbuild/pants/pull/16059)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16061](https://github.com/pantsbuild/pants/pull/16061)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16021](https://github.com/pantsbuild/pants/pull/16021)) + +* Bump 2.12 install version ([#16002](https://github.com/pantsbuild/pants/pull/16002)) + +## 2.12.0 (Jun 28, 2022) + +The first stable release of the `2.12.x` series, with only documentation changes since the previous `rc`! + +### Documentation + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15973](https://github.com/pantsbuild/pants/pull/15973)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15970](https://github.com/pantsbuild/pants/pull/15970)) + +## 2.12.0rc3 (Jun 23, 2022) + +### New Features + +* Add option for max wait before terminating interactive process (Cherry-pick of #15767) ([#15908](https://github.com/pantsbuild/pants/pull/15908)) + +### User API Changes + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. (Cherry-pick of #15745) ([#15746](https://github.com/pantsbuild/pants/pull/15746)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15907](https://github.com/pantsbuild/pants/pull/15907)) + +### Bug fixes + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15906](https://github.com/pantsbuild/pants/pull/15906)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15905](https://github.com/pantsbuild/pants/pull/15905)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15793](https://github.com/pantsbuild/pants/pull/15793)) + +* Record metrics for remote cache store errors (Cherry-pick of #15744) ([#15747](https://github.com/pantsbuild/pants/pull/15747)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` (Cherry-pick of #15733) ([#15737](https://github.com/pantsbuild/pants/pull/15737)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15843](https://github.com/pantsbuild/pants/pull/15843)) + +* Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) ([#15820](https://github.com/pantsbuild/pants/pull/15820)) + +* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15823](https://github.com/pantsbuild/pants/pull/15823)) + +## 2.12.0rc2 (May 31, 2022) + +### New Features + +* Add Memory controls to JVM processes (Cherry-pick of #15224) ([#15682](https://github.com/pantsbuild/pants/pull/15682)) + +### User API Changes + +* Upgrade Pex to 2.1.90. (Cherry-pick of #15656) ([#15658](https://github.com/pantsbuild/pants/pull/15658)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) ([#15707](https://github.com/pantsbuild/pants/pull/15707)) + +* `python_requirements()` can handle `-r reqs.txt` (Cherry-pick of #15672) ([#15677](https://github.com/pantsbuild/pants/pull/15677)) + +* Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) ([#15680](https://github.com/pantsbuild/pants/pull/15680)) + +* Choose correct dialect according to scala-version (Cherry-pick of #15649) ([#15681](https://github.com/pantsbuild/pants/pull/15681)) + +## 2.12.0rc1 (May 23, 2022) + +### New Features + +* Allow turning off `export` of Python tools like `black` (Cherry-pick of #15509) ([#15511](https://github.com/pantsbuild/pants/pull/15511)) + +* Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) ([#15468](https://github.com/pantsbuild/pants/pull/15468)) + +### User API Changes + +* Upgrade Pex to 2.1.88. (Cherry-pick of #15484) ([#15485](https://github.com/pantsbuild/pants/pull/15485)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries (Cherry-pick of #15571) ([#15611](https://github.com/pantsbuild/pants/pull/15611)) + +* Record Scala `package object` as provided name (Cherry-pick of #15582) ([#15608](https://github.com/pantsbuild/pants/pull/15608)) + +* Don't give a subsequent formatter an empty snapshot after skipping (Cherry-pick of #15483) ([#15602](https://github.com/pantsbuild/pants/pull/15602)) + +* Fix lockfile generation for Docker and Terraform to not require Python backend (Cherry-pick of #15453) ([#15604](https://github.com/pantsbuild/pants/pull/15604)) + +* Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) ([#15603](https://github.com/pantsbuild/pants/pull/15603)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` (Cherry-pick of #15542) ([#15575](https://github.com/pantsbuild/pants/pull/15575)) + +* Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) ([#15573](https://github.com/pantsbuild/pants/pull/15573)) + +* Fix `tag` filtering with `--changed-dependees` (Cherry-pick of #15546) ([#15564](https://github.com/pantsbuild/pants/pull/15564)) + +* Improve `name=` used for `python_requirements` target generators with `tailor` (Cherry-pick of #15507) ([#15519](https://github.com/pantsbuild/pants/pull/15519)) + +* jvm: don't generate default tool lockfiles (Cherry pick of #15488) ([#15498](https://github.com/pantsbuild/pants/pull/15498)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations (Cherry pick of #15494) ([#15496](https://github.com/pantsbuild/pants/pull/15496)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional (Cherry-pick of #15459) ([#15466](https://github.com/pantsbuild/pants/pull/15466)) + +* kotlin: remove stray scala references (Cherry-pick of #15461) ([#15465](https://github.com/pantsbuild/pants/pull/15465)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified (Cherry-pick of #15579) ([#15601](https://github.com/pantsbuild/pants/pull/15601)) + +## 2.12.0rc0 (May 13, 2022) + +### User API Changes + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (Cherry-pick of #15424) ([#15441](https://github.com/pantsbuild/pants/pull/15441)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' (Cherry-pick of #15373) ([#15407](https://github.com/pantsbuild/pants/pull/15407)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` (Cherry-pick of #15423) ([#15437](https://github.com/pantsbuild/pants/pull/15437)) + +### Bug fixes + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` (Cherry-pick of #15394) ([#15412](https://github.com/pantsbuild/pants/pull/15412)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) ([#15405](https://github.com/pantsbuild/pants/pull/15405)) + +* Fix `[]` in file names with target generators (Cherry-pick of #15383) ([#15403](https://github.com/pantsbuild/pants/pull/15403)) + +* Fix `tailor` detection of existing `python_requirements` targets (Cherry-pick of #15363) ([#15372](https://github.com/pantsbuild/pants/pull/15372)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. (Cherry-pick of #15362) ([#15370](https://github.com/pantsbuild/pants/pull/15370)) + +* Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) ([#15356](https://github.com/pantsbuild/pants/pull/15356)) + +* Fix non-determinism of `package_data` in generated `setup.py` files (Cherry-pick of #15292) ([#15299](https://github.com/pantsbuild/pants/pull/15299)) + +* Fix a bug in the python venv export logic. (#15294) ([#15297](https://github.com/pantsbuild/pants/pull/15297)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal (Cherry-pick of #15304) ([#15308](https://github.com/pantsbuild/pants/pull/15308)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves (Cherry-pick of #15416) ([#15439](https://github.com/pantsbuild/pants/pull/15439)) + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` (Cherry-pick of #15334) ([#15391](https://github.com/pantsbuild/pants/pull/15391)) + +* Disallow `!` patterns in `build_ignore`. (Cherry-pick of #15366) ([#15368](https://github.com/pantsbuild/pants/pull/15368)) + +* Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) ([#15364](https://github.com/pantsbuild/pants/pull/15364)) + +* Fix error output of `parametrize()` (Cherry-pick of #15339) ([#15348](https://github.com/pantsbuild/pants/pull/15348)) + +## 2.12.0a0 (Apr 29, 2022) + +### New Features + +* Support poetry wildcard requirements. ([#15213](https://github.com/pantsbuild/pants/pull/15213)) + +* Implement `tailor` goal for Helm charts ([#15192](https://github.com/pantsbuild/pants/pull/15192)) + +* Write virtualenvs for Python tools as part of `export` ([#15098](https://github.com/pantsbuild/pants/pull/15098)) + +### User API Changes + +* Upgrade Pex to 2.1.84. ([#15288](https://github.com/pantsbuild/pants/pull/15288)) + +### Plugin API Changes + +* Allow for arbitrary suffixes when extracting ([#15257](https://github.com/pantsbuild/pants/pull/15257)) + +* Add lz4 support to archive extraction ([#15245](https://github.com/pantsbuild/pants/pull/15245)) + +### Bug fixes + +* Simplify BSP metadata merging, and handle the empty list. ([#15283](https://github.com/pantsbuild/pants/pull/15283)) + +* BSP resolve filtering observes computed default values of resolve fields ([#15282](https://github.com/pantsbuild/pants/pull/15282)) + +* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. ([#15277](https://github.com/pantsbuild/pants/pull/15277)) + +* Fix ambiguity of Scala `package object`s with `class` or `object` definitions ([#15265](https://github.com/pantsbuild/pants/pull/15265)) + +* Fix issue with Docker publish when using `[docker] tools`. ([#15255](https://github.com/pantsbuild/pants/pull/15255)) + +* Do not lowercase Docker image tags. ([#15254](https://github.com/pantsbuild/pants/pull/15254)) + +* Fix the placement of the pex verbosity args. ([#15243](https://github.com/pantsbuild/pants/pull/15243)) + +* Fix use of `@` in path names. ([#15226](https://github.com/pantsbuild/pants/pull/15226)) + +* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. ([#15219](https://github.com/pantsbuild/pants/pull/15219)) + +* golang: add more cache keys based on tool IDs ([#15205](https://github.com/pantsbuild/pants/pull/15205)) + +### Performance + +* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` ([#15141](https://github.com/pantsbuild/pants/pull/15141)) + +### Documentation + +* Fix `ProtobufSourcesOverridesField` help message ([#15272](https://github.com/pantsbuild/pants/pull/15272)) + +* Update `help` for python resolves with recent improvements ([#15228](https://github.com/pantsbuild/pants/pull/15228)) + +* Improve cache-related error message to be less confusing ([#15202](https://github.com/pantsbuild/pants/pull/15202)) + +* Show `experimental-bsp` goal in help ([#15208](https://github.com/pantsbuild/pants/pull/15208)) + +* Mention resolve when partitioning Mypy and Pylint ([#15172](https://github.com/pantsbuild/pants/pull/15172)) + +* Don't log set up of binary shims ([#15203](https://github.com/pantsbuild/pants/pull/15203)) + +## 2.12.0.dev3 (Apr 16, 2022) + +### New Features + +* Address specs for parametrized target templates expand to their created targets ([#15126](https://github.com/pantsbuild/pants/pull/15126)) + +* Implement `publish` goal for Helm charts ([#15042](https://github.com/pantsbuild/pants/pull/15042)) + +* add experimental kotlin backend to distribution ([#15109](https://github.com/pantsbuild/pants/pull/15109)) + +* Support pip-style VCS requirements. ([#15097](https://github.com/pantsbuild/pants/pull/15097)) + +### User API Changes + +* Upgrade Pex to 2.1.79. ([#15125](https://github.com/pantsbuild/pants/pull/15125)) + +* Ban `terraform_module` referring to subdirectories ([#15106](https://github.com/pantsbuild/pants/pull/15106)) + +### Plugin API Changes + +* Throw a `DuplicateRuleError` when there are conflicting rules in a module. ([#15073](https://github.com/pantsbuild/pants/pull/15073)) + +* Expose `GitWorktree` as an `@rule` ([#15030](https://github.com/pantsbuild/pants/pull/15030)) + +### Bug fixes + +* Fix Requires-Python for pantsbuild.pants wheel. ([#15149](https://github.com/pantsbuild/pants/pull/15149)) + +* Allow dashes in inferred asset strings ([#15123](https://github.com/pantsbuild/pants/pull/15123)) + +* Fix when the same `python_requirement` defines both type stub and implementation ([#15121](https://github.com/pantsbuild/pants/pull/15121)) + +* Fix missing field check in go protobuf rules ([#15105](https://github.com/pantsbuild/pants/pull/15105)) + +### Documentation + +* Last round of softwrapping help strings ([#15142](https://github.com/pantsbuild/pants/pull/15142)) + +* Softwrapping a few more files ([#15138](https://github.com/pantsbuild/pants/pull/15138)) + +* Softwrap python backend help strings ([#15137](https://github.com/pantsbuild/pants/pull/15137)) + +## 2.12.0.dev2 (Apr 11, 2022) + +### New Features + +* Support for env var interpolation in config files. ([#15087](https://github.com/pantsbuild/pants/pull/15087)) + +* Support for finer control over which Docker images to push. ([#15000](https://github.com/pantsbuild/pants/pull/15000)) + +* Add a helpful hint to `lint` if a formatter fails ([#15048](https://github.com/pantsbuild/pants/pull/15048)) + +* Add support for Helm 3rd party dependencies ([#14964](https://github.com/pantsbuild/pants/pull/14964)) + +### User API Changes + +* Default `[python].lockfile_generator` to Pex ([#15074](https://github.com/pantsbuild/pants/pull/15074)) + +* Upgrade Pex to 2.1.78. ([#15078](https://github.com/pantsbuild/pants/pull/15078)) + +* terraform: remove `terraform_modules` generator target type ([#15035](https://github.com/pantsbuild/pants/pull/15035)) + +* Upgrade to Pex 2.1.77. ([#15015](https://github.com/pantsbuild/pants/pull/15015)) + +* Change JVM defaults to use Temurin JDK distribution ([#15009](https://github.com/pantsbuild/pants/pull/15009)) + +### Plugin API Changes + +* Remove deprecated `register_options` support. ([#15090](https://github.com/pantsbuild/pants/pull/15090)) + +* Remove deprecated target generator API affordances. ([#15091](https://github.com/pantsbuild/pants/pull/15091)) + +* Add `@rule_helper` decorator, which participates in awaitable collection ([#15025](https://github.com/pantsbuild/pants/pull/15025)) + +### Bug fixes + +* Enable codegen on relocated files ([#15100](https://github.com/pantsbuild/pants/pull/15100)) + +* Preserve tombstones for workunits which complete while they still have children ([#15088](https://github.com/pantsbuild/pants/pull/15088)) + +* Clean the export dir under dist/ before populating it. ([#15068](https://github.com/pantsbuild/pants/pull/15068)) + +* Do not use a repository-PEX if a PEX has platforms specified ([#15031](https://github.com/pantsbuild/pants/pull/15031)) + +* Fix default layout and use of PEX-repositories for legacy lockfiles ([#15014](https://github.com/pantsbuild/pants/pull/15014)) + +* Pin pytest 7.0.1 ([#14997](https://github.com/pantsbuild/pants/pull/14997)) + +### Documentation + +* files/dirs swapped in Snapshot's repr ([#15101](https://github.com/pantsbuild/pants/pull/15101)) + +* Tweak deprecation messages. ([#15027](https://github.com/pantsbuild/pants/pull/15027)) + +* Add some codegen and terraform backends to docs generator ([#15036](https://github.com/pantsbuild/pants/pull/15036)) + +* Text in angle brackets needs to be escaped for the docsite. ([#15046](https://github.com/pantsbuild/pants/pull/15046)) + +* Fix presented provider backend for rules/subsystems. ([#14999](https://github.com/pantsbuild/pants/pull/14999)) + +## 2.12.0.dev1 (Apr 05, 2022) + +### New Features + +* Support restricting specific requirements to just wheels or just sdists. ([#14985](https://github.com/pantsbuild/pants/pull/14985)) + +* Add support for Helm unittest ([#14849](https://github.com/pantsbuild/pants/pull/14849)) + +* Add support for parsing address parameters to CLI specs parsing ([#14949](https://github.com/pantsbuild/pants/pull/14949)) + +### User API Changes + +* Merge list values across config files. ([#14850](https://github.com/pantsbuild/pants/pull/14850)) + +* Write test reports to a standard location under the distdir. ([#14929](https://github.com/pantsbuild/pants/pull/14929)) + +* Upgrade Pex to 2.1.76. ([#14992](https://github.com/pantsbuild/pants/pull/14992)) + +* Upgrade coursier to v2.1.0-M5-18-gfebf9838c ([#14978](https://github.com/pantsbuild/pants/pull/14978)) + +### Plugin API Changes + +* "Unify" `fmt` and `lint` rules for formatters ([#14903](https://github.com/pantsbuild/pants/pull/14903)) + +* Refactor `prior_formatter_result` and its usage ([#14987](https://github.com/pantsbuild/pants/pull/14987)) + +* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. ([#14959](https://github.com/pantsbuild/pants/pull/14959)) + +### Bug fixes + +* add go protobuf backend to init/BUILD ([#14979](https://github.com/pantsbuild/pants/pull/14979)) + +* Fix Pylint config check strings ([#14946](https://github.com/pantsbuild/pants/pull/14946)) + +* Fix missing `check` output by allowing disabled workunits to re-enable themselves ([#14934](https://github.com/pantsbuild/pants/pull/14934)) + +* Fix unrecognized field error and `update-build-files` to handle target generator moved fields ([#14847](https://github.com/pantsbuild/pants/pull/14847)) + +### Performance + +* Make PEX lockfile subsetting incremental ([#14944](https://github.com/pantsbuild/pants/pull/14944)) + +### Documentation + +* Don't warn if no relevant targets in glob or --changed. ([#14904](https://github.com/pantsbuild/pants/pull/14904)) + +## 2.12.0.dev0 (Mar 25, 2022) + +### New Features + +* Add Protobuf formatting using buf format ([#14907](https://github.com/pantsbuild/pants/pull/14907)) + +* add registration for the Go Protobuf backend ([#14874](https://github.com/pantsbuild/pants/pull/14874)) + +### User API Changes + +* Remove `--use-deprecated-python-macros` in favor of always using target generators ([#14842](https://github.com/pantsbuild/pants/pull/14842)) + +* Add `django-dotenv`, `django-safedelete` and `factory-boy` to default Python module mapping ([#14848](https://github.com/pantsbuild/pants/pull/14848)) + +* Add cattrs to Python's DEFAULT_MODULE_MAPPING ([#14845](https://github.com/pantsbuild/pants/pull/14845)) + +* hcl parser 3.0.5 ([#14878](https://github.com/pantsbuild/pants/pull/14878)) + +### Plugin API Changes + +* FmtResult now operates on Snapshots ([#14865](https://github.com/pantsbuild/pants/pull/14865)) + +### Bug fixes + +* add cache key for all Go SDK invocations ([#14897](https://github.com/pantsbuild/pants/pull/14897)) + +* Unify glob-matching implementations to fix malformed snapshot created by subsetting ([#14889](https://github.com/pantsbuild/pants/pull/14889)) + +* Adds `ClasspathEntryRequest` classification for codegen target generators ([#14893](https://github.com/pantsbuild/pants/pull/14893)) + +* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled ([#14891](https://github.com/pantsbuild/pants/pull/14891)) diff --git a/versioned_docs/version-2.20/notes/2.13.x.md b/versioned_docs/version-2.20/notes/2.13.x.md new file mode 100644 index 000000000..265e043a4 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.13.x.md @@ -0,0 +1,717 @@ +# 2.13.x Release Series + +## 2.13.1 (Oct 27, 2022) + +The second stable release in the 2.13.x series, with no changes since 2.13.1rc2. + +## 2.13.1rc2 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17274](https://github.com/pantsbuild/pants/pull/17274)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17243](https://github.com/pantsbuild/pants/pull/17243)) + +* fixup name of opt-in flag in error message ([#17038](https://github.com/pantsbuild/pants/pull/17038)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17242](https://github.com/pantsbuild/pants/pull/17242)) + +## 2.13.1rc1 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17123](https://github.com/pantsbuild/pants/pull/17123)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17121](https://github.com/pantsbuild/pants/pull/17121)) + +* Upgrade Pex to 2.1.103. (Cherry-pick of #16426) ([#17114](https://github.com/pantsbuild/pants/pull/17114)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17156](https://github.com/pantsbuild/pants/pull/17156)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17151](https://github.com/pantsbuild/pants/pull/17151)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17149](https://github.com/pantsbuild/pants/pull/17149)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17147](https://github.com/pantsbuild/pants/pull/17147)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17110](https://github.com/pantsbuild/pants/pull/17110)) + +* Fix the [python-bootstrap].search_path option name in the docs. (Cherry-pick of #17063) ([#17066](https://github.com/pantsbuild/pants/pull/17066)) + +## 2.13.1rc0 (Sep 29, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16884](https://github.com/pantsbuild/pants/pull/16884)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17054](https://github.com/pantsbuild/pants/pull/17054)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17032](https://github.com/pantsbuild/pants/pull/17032)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17020](https://github.com/pantsbuild/pants/pull/17020)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16972](https://github.com/pantsbuild/pants/pull/16972)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16938](https://github.com/pantsbuild/pants/pull/16938)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16936](https://github.com/pantsbuild/pants/pull/16936)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16885](https://github.com/pantsbuild/pants/pull/16885)) + +### Documentation + +* Add Thales Menato's proudest contribution (Cherry-pick of #17023) ([#17024](https://github.com/pantsbuild/pants/pull/17024)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17006](https://github.com/pantsbuild/pants/pull/17006)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16981](https://github.com/pantsbuild/pants/pull/16981)) + +* Update changelog on docsite with 2.13 links (cherrypick of #16918) ([#16957](https://github.com/pantsbuild/pants/pull/16957)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16813](https://github.com/pantsbuild/pants/pull/16813)) + +* fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16810](https://github.com/pantsbuild/pants/pull/16810)) + +## 2.13.0 (Sep 7, 2022) + +The first stable release of 2.13.0, with no changes since 2.13.0rc3. + +See our [blog post](https://blog.pantsbuild.org/introducing-pants-2-13/) for a summary of what's new in Pants 2.13. + +## 2.13.0rc3 (Aug 31, 2022) + +### Bug fixes + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16699](https://github.com/pantsbuild/pants/pull/16699)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16660](https://github.com/pantsbuild/pants/pull/16660)) + +### Documentation + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16729](https://github.com/pantsbuild/pants/pull/16729)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16652](https://github.com/pantsbuild/pants/pull/16652)) + +## 2.13.0rc2 (Aug 24, 2022) + +### User API Changes + +* Bump default version of `setuptools` to 63.4 ([#16618](https://github.com/pantsbuild/pants/pull/16618)) + +### Bug fixes + +* Have `run` run `__main__.py` for non-zipapp PEXs (Cherry-pick of #16568) ([#16635](https://github.com/pantsbuild/pants/pull/16635)) + +* Add `grpcio` to default Python module mapping ([#16604](https://github.com/pantsbuild/pants/pull/16604)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. (Cherry-pick of #16545) ([#16555](https://github.com/pantsbuild/pants/pull/16555)) + +### Performance + +* Improve performance of `Owners` rule (Cherry-pick of #16563) ([#16597](https://github.com/pantsbuild/pants/pull/16597)) + +* Fix performance for generating lockfiles for `pytest` and `setuptools` (Cherry-pick of #16591) ([#16596](https://github.com/pantsbuild/pants/pull/16596)) + +### Documentation + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16623](https://github.com/pantsbuild/pants/pull/16623)) + +* Use Markdown h3 for ToC support (Cherry-pick of #15964) ([#16558](https://github.com/pantsbuild/pants/pull/16558)) + +* Fix broken link to community page (Cherry-pick of #16468) ([#16557](https://github.com/pantsbuild/pants/pull/16557)) + +## 2.13.0rc1 (Aug 12, 2022) + +### User API Changes + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` (Cherry-pick of #16415) ([#16417](https://github.com/pantsbuild/pants/pull/16417)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (Cherry-pick of #16305) ([#16334](https://github.com/pantsbuild/pants/pull/16334)) + +* Upgrade Pex to 2.1.102. (Cherry-pick of #16313) ([#16323](https://github.com/pantsbuild/pants/pull/16323)) + +### Bug fixes + +* Add missing `help` message to experimental backends (Cherry-pick of #16403) ([#16500](https://github.com/pantsbuild/pants/pull/16500)) + +* Fix `CacheContentBehavior::Defer` with a remote cache (Cherry-pick of #16439) ([#16441](https://github.com/pantsbuild/pants/pull/16441)) + +* Fix docker invalidation bug (cherrypick of #16419) ([#16431](https://github.com/pantsbuild/pants/pull/16431)) + +* Set immutable_input_digests on a docker RunRequest. (Cherry-pick of #16385) ([#16396](https://github.com/pantsbuild/pants/pull/16396)) + +* go: pass -p option to `go tool asm` on Go v1.19+ (Cherry pick of #16381) ([#16395](https://github.com/pantsbuild/pants/pull/16395)) + +* consume inits part of package object within the inner scope (Cherry-pick of #16282) ([#16371](https://github.com/pantsbuild/pants/pull/16371)) + +* Add a newline at the end of `paths` output (Cherry-pick of #16302) ([#16372](https://github.com/pantsbuild/pants/pull/16372)) + +* fix kotlin tailor for junit tests (Cherry pick of #16333) ([#16341](https://github.com/pantsbuild/pants/pull/16341)) + +* Explicitly add directory entries to resources JARs (Cherry-pick of #16264) ([#16296](https://github.com/pantsbuild/pants/pull/16296)) + +* Allow using `--import` option with Autoflake (Cherry-pick of #16192) ([#16275](https://github.com/pantsbuild/pants/pull/16275)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` (Cherry-pick of #16263) ([#16267](https://github.com/pantsbuild/pants/pull/16267)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches (Cherry-pick of #16398) ([#16409](https://github.com/pantsbuild/pants/pull/16409)) + +### Documentation + +* Update docs on how to run Pants in CI. (Cherry-pick of #16503) ([#16509](https://github.com/pantsbuild/pants/pull/16509)) + +* Fix partition description for MyPy when multiple resolves (Cherry-pick of #16486) ([#16498](https://github.com/pantsbuild/pants/pull/16498)) + +* Fix source roots docs. (Cherry-pick of #16363) ([#16365](https://github.com/pantsbuild/pants/pull/16365)) + +* Link to dev.to post on resource hub (cherrypick #16331) ([#16349](https://github.com/pantsbuild/pants/pull/16349)) + +* add tailor docs for kotlin backend (Cherry pick of #16332) ([#16338](https://github.com/pantsbuild/pants/pull/16338)) + +* docs: add initial Kotlin docs (Cherry pick of #16304) ([#16329](https://github.com/pantsbuild/pants/pull/16329)) + +* Document test sharding and update plugin docs with 2.13 changes (Cherry-pick of #16293) ([#16306](https://github.com/pantsbuild/pants/pull/16306)) + +## 2.13.0rc0 (Jul 20, 2022) + +### New Features + +* allow JVM sources to have files dependencies (Cherry-pick of #16203) ([#16236](https://github.com/pantsbuild/pants/pull/16236)) + +* Add [python].default_run_goal_use_sandbox (Cherry-pick of #16239) ([#16253](https://github.com/pantsbuild/pants/pull/16253)) + +* Add `include_sources` to `pex_binary` target (Cherry-pick of #16215) ([#16252](https://github.com/pantsbuild/pants/pull/16252)) + +* Add support for extra env variables in go tests (Cherry-pick of #16013) ([#16067](https://github.com/pantsbuild/pants/pull/16067)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields (Cherry-pick of #16227) ([#16237](https://github.com/pantsbuild/pants/pull/16237)) + +* Upgrade Pex to 2.1.99. (Cherry-pick of #16184) ([#16225](https://github.com/pantsbuild/pants/pull/16225)) + +* Correct deprecation warning to 2.15 (Cherry-pick of #16056) ([#16218](https://github.com/pantsbuild/pants/pull/16218)) + +* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16113](https://github.com/pantsbuild/pants/pull/16113)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s (Cherry-pick of #16206) ([#16219](https://github.com/pantsbuild/pants/pull/16219)) + +### Bug fixes + +* Refactors `output_field` to default to something that disambiguates on paramtrized fields (Cherry-pick of #16232) ([#16254](https://github.com/pantsbuild/pants/pull/16254)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) ([#16250](https://github.com/pantsbuild/pants/pull/16250)) + +* Remove removal of use_deprecated_pex_binary_run_semantics in 2.13.x ([#16108](https://github.com/pantsbuild/pants/pull/16108)) + +* Fix scala plugins args order causing cache issues (Cherry-pick of #16228) ([#16234](https://github.com/pantsbuild/pants/pull/16234)) + +* Add overrides field to scala targets (Cherry-pick of #16204) ([#16235](https://github.com/pantsbuild/pants/pull/16235)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types (#16197) ([#16214](https://github.com/pantsbuild/pants/pull/16214)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. (Cherry-pick of #16198) ([#16210](https://github.com/pantsbuild/pants/pull/16210)) + +* Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) ([#16186](https://github.com/pantsbuild/pants/pull/16186)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16180](https://github.com/pantsbuild/pants/pull/16180)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16154](https://github.com/pantsbuild/pants/pull/16154)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` (Cherry-pick of #16093) ([#16148](https://github.com/pantsbuild/pants/pull/16148)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins (Cherry-pick of #16106) ([#16147](https://github.com/pantsbuild/pants/pull/16147)) + +* Record ongoing backtrack attempts (Cherry-pick of #16075) ([#16080](https://github.com/pantsbuild/pants/pull/16080)) + +* Write to caches during backtracking (Cherry-pick of #16078) ([#16081](https://github.com/pantsbuild/pants/pull/16081)) + +* Fix `--changed-since` with `tailor` and `update-build-files` when no changes ([#16066](https://github.com/pantsbuild/pants/pull/16066)) + +* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16048](https://github.com/pantsbuild/pants/pull/16048)) + +### Performance + +* Port `@rule` `Get`s to rust (Cherry-pick of #16160) ([#16177](https://github.com/pantsbuild/pants/pull/16177)) + +### Documentation + +* Document `--filter` options working with any goal (Cherry-pick of #16090) ([#16209](https://github.com/pantsbuild/pants/pull/16209)) + +* Document the "fromfile" feature. (cherrypick of #16205) ([#16208](https://github.com/pantsbuild/pants/pull/16208)) + +* Add 2.12 changelog to docsite (cherrypick #16136) ([#16139](https://github.com/pantsbuild/pants/pull/16139)) + +* New doc explaining vcs_version. (Cherrypick of #16092) ([#16102](https://github.com/pantsbuild/pants/pull/16102)) + +* Fix typo in warning for `[python].resolve_all_constraints` (Cherry-pick of #16068) ([#16073](https://github.com/pantsbuild/pants/pull/16073)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16058](https://github.com/pantsbuild/pants/pull/16058)) + +* Fix CI provider table rendering. (cherrypick of #16051) ([#16060](https://github.com/pantsbuild/pants/pull/16060)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16020](https://github.com/pantsbuild/pants/pull/16020)) + +## 2.13.0a1 (Jun 29, 2022) + +### New Features + +* Add ability to `run` any `PythonSourceField` (Cherry-pick of #15849) ([#16022](https://github.com/pantsbuild/pants/pull/16022)) + +* Add `--debug-adapter` flag to `run` (Cherry-pick of #15829) ([#15988](https://github.com/pantsbuild/pants/pull/15988)) + +* Add repository config option to Docker registries. (Cherry pick of #15884) ([#15952](https://github.com/pantsbuild/pants/pull/15952)) + +### User API Changes + +* Deprecate not setting `tailor_pex_binary_targets` explicitly (Cherry-pick of #15962) ([#16023](https://github.com/pantsbuild/pants/pull/16023)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 (Cherry-pick of #15934) ([#15938](https://github.com/pantsbuild/pants/pull/15938)) + +### Plugin API Changes + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15916](https://github.com/pantsbuild/pants/pull/15916)) + +### Bug fixes + +* Backtrack through calls from `@rules` to synchronous engine methods (Cherry-pick of #15979) ([#16001](https://github.com/pantsbuild/pants/pull/16001)) + +* Assorted remote metrics fixes. (Cherry-pick of #15914) ([#15976](https://github.com/pantsbuild/pants/pull/15976)) + +* Fix bad "" description in invalid addresses error messages (Cherry-pick of #15859) ([#15936](https://github.com/pantsbuild/pants/pull/15936)) + +* Fix reporting of time spent downloading files (Cherry-pick of #15873) ([#15921](https://github.com/pantsbuild/pants/pull/15921)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15918](https://github.com/pantsbuild/pants/pull/15918)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15917](https://github.com/pantsbuild/pants/pull/15917)) + +* Increment the missing-digest backtracking level once per attempt (Cherry pick of #15889) ([#15897](https://github.com/pantsbuild/pants/pull/15897)) + +* Scala: should visit ctor args of base type (Cherry pick of #15880) ([#15892](https://github.com/pantsbuild/pants/pull/15892)) + +* Scala: mark an object that extends another type as recursive (Cherry pick of #15865) ([#15891](https://github.com/pantsbuild/pants/pull/15891)) + +### Performance + +* terraform: use immutable input for Terraform tool (Cherry-pick of #15037) ([#15998](https://github.com/pantsbuild/pants/pull/15998)) + +* Improve performance of file arguments when `--owners-not-found-behavior` not used ([#15931](https://github.com/pantsbuild/pants/pull/15931)) + +* Dedupe `load_bytes_with` calls to a remote Store (Cherry-pick of #15901) ([#15915](https://github.com/pantsbuild/pants/pull/15915)) + +### Documentation + +* Update Python documentation with 2.11 changes (Cherry-pick of #15857) ([#15981](https://github.com/pantsbuild/pants/pull/15981)) + +* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15974](https://github.com/pantsbuild/pants/pull/15974)) + +* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15971](https://github.com/pantsbuild/pants/pull/15971)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments (Cherry-pick of #15932) ([#15937](https://github.com/pantsbuild/pants/pull/15937)) + +## 2.13.0a0 (Jun 17, 2022) + +### New Features + +* Add option for max wait before terminating interactive process ([#15767](https://github.com/pantsbuild/pants/pull/15767)) + +### User API Changes + +* Add `[scala-infer].force_add_siblings_as_dependencies` and deprecate it defaulting to true ([#15841](https://github.com/pantsbuild/pants/pull/15841)) + +* Add `--debug-adapter` flag to `test` goal ([#15799](https://github.com/pantsbuild/pants/pull/15799)) + +### Plugin API Changes + +* Add `skip_invalid_addresses` field to `UnparsedAddressInputs` ([#15864](https://github.com/pantsbuild/pants/pull/15864)) + +* Add `MaybeAddress` for infallible evaluation of `AddressInput` ([#15863](https://github.com/pantsbuild/pants/pull/15863)) + +* Add optional `StringSequenceField.valid_choices` ([#15684](https://github.com/pantsbuild/pants/pull/15684)) + +* `WrappedTarget` now requires `WrappedTargetRequest` ([#15789](https://github.com/pantsbuild/pants/pull/15789)) + +* Move `ResolveError` from `pants.base.exceptions` to `pants.build_graph.address` ([#15790](https://github.com/pantsbuild/pants/pull/15790)) + +* `_TargetParametrizations` now requires `_TargetParametrizationsRequest` ([#15759](https://github.com/pantsbuild/pants/pull/15759)) + +* `BuildFileAddress` now requires `BuildFileAddressRequest` ([#15760](https://github.com/pantsbuild/pants/pull/15760)) + +### Bug fixes + +* Support `--help` for builtin goals. ([#15798](https://github.com/pantsbuild/pants/pull/15798)) + +* Handle venv path special chars in coursier fetch ([#15701](https://github.com/pantsbuild/pants/pull/15701)) + +* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field ([#15787](https://github.com/pantsbuild/pants/pull/15787)) + +### Performance + +* Backtrack execution for missing digests to make `eager_fetch=false` more resilient ([#15850](https://github.com/pantsbuild/pants/pull/15850)) + +* Remove synchronous remote cache lookup from remote execution ([#15854](https://github.com/pantsbuild/pants/pull/15854)) + +### Documentation + +* Fix broken links to `tailor` documentation ([#15842](https://github.com/pantsbuild/pants/pull/15842)) + +* Update docs for redesign of CLI arguments ([#15816](https://github.com/pantsbuild/pants/pull/15816)) + +* Better error message when an address does not exist ([#15788](https://github.com/pantsbuild/pants/pull/15788)) + +## 2.13.0.dev5 (Jun 08, 2022) + +### New Features + +* Add GraphQL API server backend for the experimental-explorer goal ([#15697](https://github.com/pantsbuild/pants/pull/15697)) + +* Add `extra_env_vars` field to `experimental_shell_command` target. ([#15742](https://github.com/pantsbuild/pants/pull/15742)) + +* Add `experimental-explorer` builtin goal. ([#15695](https://github.com/pantsbuild/pants/pull/15695)) + +### User API Changes + +* Always ignore paths which are not files, directories, or links. ([#15773](https://github.com/pantsbuild/pants/pull/15773)) + +* Add API types and rules to cli help info ([#14227](https://github.com/pantsbuild/pants/pull/14227)) + +* Change the default `remote_cache_warnings` warnings behavior to `backoff`. ([#15745](https://github.com/pantsbuild/pants/pull/15745)) + +* Revert "Go can use both `file` and `resource` targets (#15663)" ([#15725](https://github.com/pantsbuild/pants/pull/15725)) + +* Deprecate `--exclude-target-regexp` in favor of `--filter-address-regex` ([#15729](https://github.com/pantsbuild/pants/pull/15729)) + +### Plugin API Changes + +* Require setting `description_of_origin` with `AddressInput` and `UnparsedAddressInputs` ([#15743](https://github.com/pantsbuild/pants/pull/15743)) + +* Require keyword arguments for `AddressInput` ([#15741](https://github.com/pantsbuild/pants/pull/15741)) + +### Bug fixes + +* `tailor` should skip bad requirements targets ([#15755](https://github.com/pantsbuild/pants/pull/15755)) + +* `tailor` for Go does not add targets when no ancestor `go.mod` ([#15750](https://github.com/pantsbuild/pants/pull/15750)) + +* Record metrics for remote cache store errors ([#15744](https://github.com/pantsbuild/pants/pull/15744)) + +* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` ([#15733](https://github.com/pantsbuild/pants/pull/15733)) + +* Fix `--changed-since` with directories unknown to Pants ([#15714](https://github.com/pantsbuild/pants/pull/15714)) + +### Documentation + +* Improve error messages for invalid addresses ([#15751](https://github.com/pantsbuild/pants/pull/15751)) + +* Correctly describe the origin of invalid specs, e.g. `--paths-from` ([#15730](https://github.com/pantsbuild/pants/pull/15730)) + +## 2.13.0.dev4 (May 31, 2022) + +### New Features + +* Support running pex_binary targets directly on the in-repo sources. ([#15689](https://github.com/pantsbuild/pants/pull/15689)) + +* Go can use both `file` and `resource` targets ([#15663](https://github.com/pantsbuild/pants/pull/15663)) + +* Add ignore command line arguments, e.g. `-dir::` ([#15619](https://github.com/pantsbuild/pants/pull/15619)) + +* Allow to skip linting on Helm charts ([#15640](https://github.com/pantsbuild/pants/pull/15640)) + +* Helm charts support CRDS by default ([#15623](https://github.com/pantsbuild/pants/pull/15623)) + +* Adds dependency injection rule for protobuf-java runtime ([#15006](https://github.com/pantsbuild/pants/pull/15006)) + +### User API Changes + +* Make the global --no-process-cleanup conserve the `run` tmpdir. ([#15683](https://github.com/pantsbuild/pants/pull/15683)) + +* Upgrade Pex to 2.1.90. ([#15656](https://github.com/pantsbuild/pants/pull/15656)) + +* Remove `-d` as shorthand for `--logdir` ([#15621](https://github.com/pantsbuild/pants/pull/15621)) + +### Plugin API Changes + +* `PutativeTargetsRequest.path_globs()` can take multiple globs ([#15634](https://github.com/pantsbuild/pants/pull/15634)) + +* [Plugin API change] Remove default help message from MultipleSourcesField ([#15633](https://github.com/pantsbuild/pants/pull/15633)) + +* Don't allow multiple flag names for the same option ([#15627](https://github.com/pantsbuild/pants/pull/15627)) + +* Remove `PutativeTargetsSearchPaths` ([#15625](https://github.com/pantsbuild/pants/pull/15625)) + +* Refactor `Specs` as prework for ignore Specs ([#15620](https://github.com/pantsbuild/pants/pull/15620)) + +* Ban using short option names like `-x`, except for pre-blessed values ([#15624](https://github.com/pantsbuild/pants/pull/15624)) + +### Bug fixes + +* Don't install Pex-style lockfile when no requirements used ([#15706](https://github.com/pantsbuild/pants/pull/15706)) + +* `python_requirements()` can handle `-r reqs.txt` ([#15672](https://github.com/pantsbuild/pants/pull/15672)) + +* Increase RuleGraph solver loop threshold to allow for larger `@rule` sets ([#15668](https://github.com/pantsbuild/pants/pull/15668)) + +* Fix `--help` output when specs given. ([#15665](https://github.com/pantsbuild/pants/pull/15665)) + +* `update-build-files` falls back to interpreter constraints from tool lockfile for Black and Yapf ([#15666](https://github.com/pantsbuild/pants/pull/15666)) + +* Fix detection of `--help` when specs given ([#15664](https://github.com/pantsbuild/pants/pull/15664)) + +* Choose correct Scala dialect according to scala-version ([#15649](https://github.com/pantsbuild/pants/pull/15649)) + +* Fix deleted files with `--changed-since` when using target-less goals like `count-loc` ([#15662](https://github.com/pantsbuild/pants/pull/15662)) + +* Prevent collisions between attempts to materialize an immutable input digest. ([#15652](https://github.com/pantsbuild/pants/pull/15652)) + +* Fix another case of direct Coursier lockfile consumption ([#15650](https://github.com/pantsbuild/pants/pull/15650)) + +### Documentation + +* Mention language specific opt outs for `tailor` ([#15673](https://github.com/pantsbuild/pants/pull/15673)) + +* Provide more "Did you mean ..." suggestions for the CLI help. ([#15646](https://github.com/pantsbuild/pants/pull/15646)) + +* [docs] Add language specific file examples for sources help message of a target ([#15635](https://github.com/pantsbuild/pants/pull/15635)) + +* Docs: show language specific file examples in sources field in the help of targets ([#15595](https://github.com/pantsbuild/pants/pull/15595)) + +## 2.13.0.dev3 (May 23, 2022) + +### New Features + +* `dir:` and `dir::` work on target-less goals like `count-loc` ([#15577](https://github.com/pantsbuild/pants/pull/15577)) + +* `--changed-since` works on target-less goals like `count-loc` ([#14434](https://github.com/pantsbuild/pants/pull/14434)) + +* Add `--no-use-deprecated-directory-cli-args-semantics` so that directory arguments match all files/targets in the directory ([#15589](https://github.com/pantsbuild/pants/pull/15589)) + +* `filter` options work with any goal now, not only the `filter` goal ([#15599](https://github.com/pantsbuild/pants/pull/15599)) + +* Use new, consistent CLI args semantics for `tailor` if `use_deprecated_cli_args_semantics = false` ([#15612](https://github.com/pantsbuild/pants/pull/15612)) + +* Support JVM options per tool ([#15505](https://github.com/pantsbuild/pants/pull/15505)) + +* Allow turning off `export` of Python tools like `black` ([#15509](https://github.com/pantsbuild/pants/pull/15509)) + +* Adding file downloading support to asset targets ([#15457](https://github.com/pantsbuild/pants/pull/15457)) + +### User API Changes + +* Deprecate `filter` goal now that `filter` options can be used from any goal ([#15600](https://github.com/pantsbuild/pants/pull/15600)) + +* Tailor `__main__.py` files as pex binaries ([#15598](https://github.com/pantsbuild/pants/pull/15598)) + +* `update-build-files` now takes CLI args for which BUILD files to change ([#15581](https://github.com/pantsbuild/pants/pull/15581)) + +* Don't error when `dir:` and `dir::` have no targets, as long as the directories exist ([#15570](https://github.com/pantsbuild/pants/pull/15570)) + +* Deprecate `--owners-not-found-behavior` and set default to `ignore` ([#15560](https://github.com/pantsbuild/pants/pull/15560)) + +* Add `--unmatched-cli-globs`, which before was controlled by `--owners-not-found-behavior` ([#15556](https://github.com/pantsbuild/pants/pull/15556)) + +* Deprecate `files_not_found_behavior` in favor of `unmatched_build_file_globs` ([#15555](https://github.com/pantsbuild/pants/pull/15555)) + +* Remove undocumented CLI file arguments ignore syntax ([#15534](https://github.com/pantsbuild/pants/pull/15534)) + +* `go_third_party_package` targets now depend on their `go.mod` and `go.sum` ([#15521](https://github.com/pantsbuild/pants/pull/15521)) + +* `--changed-dependees` no longer runs on sibling targets from same target generator ([#15396](https://github.com/pantsbuild/pants/pull/15396)) + +* Change `_generator_sources_helper` to use `source: str` rather than `sources: list[str]` ([#15475](https://github.com/pantsbuild/pants/pull/15475)) + +* Upgrade Pex to 2.1.88. ([#15484](https://github.com/pantsbuild/pants/pull/15484)) + +* Revert "Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (#15469)" ([#15492](https://github.com/pantsbuild/pants/pull/15492)) + +### Plugin API Changes + +* Replace `SpecsSnapshot` with lazier `SpecsPaths` ([#15593](https://github.com/pantsbuild/pants/pull/15593)) + +* Rename classes in `specs.py` for unification of specs semantics ([#15538](https://github.com/pantsbuild/pants/pull/15538)) + +* Remove `addressable=` kwarg from `tailor` ([#15504](https://github.com/pantsbuild/pants/pull/15504)) + +* Remove `AbstractTestGenerator` from `pantsbuild.pants.testutil` ([#15464](https://github.com/pantsbuild/pants/pull/15464)) + +### Bug fixes + +* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries ([#15571](https://github.com/pantsbuild/pants/pull/15571)) + +* Record Scala `package object` as provided name ([#15582](https://github.com/pantsbuild/pants/pull/15582)) + +* Fix deprecation message for `--filter-target-type` with deprecated target alias ([#15596](https://github.com/pantsbuild/pants/pull/15596)) + +* Fix scala inference doesn't infer name after function call ([#15565](https://github.com/pantsbuild/pants/pull/15565)) + +* Fix JVM resource classification and artifact grouping ([#15567](https://github.com/pantsbuild/pants/pull/15567)) + +* Apply `--tag` filtering to target-less goals like `count-loc` ([#15479](https://github.com/pantsbuild/pants/pull/15479)) + +* Fix `tag` filtering with `--changed-dependees` ([#15546](https://github.com/pantsbuild/pants/pull/15546)) + +* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` ([#15542](https://github.com/pantsbuild/pants/pull/15542)) + +* Support transitive file dependencies in Scalatest/JUnit ([#15501](https://github.com/pantsbuild/pants/pull/15501)) + +* Improve `name=` used for Python requirement target generators with `tailor` ([#15507](https://github.com/pantsbuild/pants/pull/15507)) + +* don't generate default tool lockfiles ([#15488](https://github.com/pantsbuild/pants/pull/15488)) + +* Don't give a subsequent formatter an empty snapshot after skipping ([#15483](https://github.com/pantsbuild/pants/pull/15483)) + +* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations ([#15494](https://github.com/pantsbuild/pants/pull/15494)) + +### Performance + +* `lint` only finds targets and files if the relevant linters were specified ([#15579](https://github.com/pantsbuild/pants/pull/15579)) + +* `regex-lint` only reads files that will be checked ([#15580](https://github.com/pantsbuild/pants/pull/15580)) + +### Documentation + +* Freshen up deprecated option formatting ([#15590](https://github.com/pantsbuild/pants/pull/15590)) + +* Make required fields sort first on the docsite and in the './pants help target' output ([#15587](https://github.com/pantsbuild/pants/pull/15587)) + +* Add a few default_help_reprs ([#15588](https://github.com/pantsbuild/pants/pull/15588)) + +* Suggest a UUID when erroring about missing UUID ([#15550](https://github.com/pantsbuild/pants/pull/15550)) + +* Tweak docs to include `no-infer-dep` in a few more places ([#15547](https://github.com/pantsbuild/pants/pull/15547)) + +## 2.13.0.dev2 (May 14, 2022) + +### New Features + +* Adds JDK autoconfiguration support to scala BSP metadata setup ([#15408](https://github.com/pantsbuild/pants/pull/15408)) + +* Add `lint --skip-formatters` option ([#15427](https://github.com/pantsbuild/pants/pull/15427)) + +* Support for sharding tests. ([#15417](https://github.com/pantsbuild/pants/pull/15417)) + +* Add clang-format support for the experimental c/cpp plugin ([#15395](https://github.com/pantsbuild/pants/pull/15395)) + +* Support setting env vars in individual distribution builds. ([#15422](https://github.com/pantsbuild/pants/pull/15422)) + +* kotlin: add support for junit tests ([#15382](https://github.com/pantsbuild/pants/pull/15382)) + +### User API Changes + +* Upgrade Pex to 2.1.87. ([#15472](https://github.com/pantsbuild/pants/pull/15472)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#15469](https://github.com/pantsbuild/pants/pull/15469)) + +* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) ([#15424](https://github.com/pantsbuild/pants/pull/15424)) + +* Require that a target's `interpreter_constraints` are a subset of their dependencies' ([#15373](https://github.com/pantsbuild/pants/pull/15373)) + +* Add `[python-infer].init_files` as more intuitive replacement for `[python-infer].inits` ([#15397](https://github.com/pantsbuild/pants/pull/15397)) + +### Plugin API Changes + +* Move `get_git` deprecation to start in `2.14.0.dev0` ([#15423](https://github.com/pantsbuild/pants/pull/15423)) + +### Bug fixes + +* Only infer an __init__.py dep on a python_sources-generated target. ([#15471](https://github.com/pantsbuild/pants/pull/15471)) + +* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional ([#15459](https://github.com/pantsbuild/pants/pull/15459)) + +* support relative address syntax for JVM compiler plugin artifacts ([#15462](https://github.com/pantsbuild/pants/pull/15462)) + +* Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend ([#15453](https://github.com/pantsbuild/pants/pull/15453)) + +* Fix boolean logic when merging interpreter constraints. ([#15414](https://github.com/pantsbuild/pants/pull/15414)) + +* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` ([#15394](https://github.com/pantsbuild/pants/pull/15394)) + +* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. ([#15401](https://github.com/pantsbuild/pants/pull/15401)) + +* Fix `[]` in file names with target generators ([#15383](https://github.com/pantsbuild/pants/pull/15383)) + +* BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. ([#15392](https://github.com/pantsbuild/pants/pull/15392)) + +### Documentation + +* Improve error message for `dependencies` on incompatible Python resolves ([#15416](https://github.com/pantsbuild/pants/pull/15416)) + +## 2.13.0.dev1 (May 10, 2022) + +### New Features + +* Initial support for building dists using mypyc. ([#15380](https://github.com/pantsbuild/pants/pull/15380)) + +* Support dependency inference on vcs_version targets. ([#15385](https://github.com/pantsbuild/pants/pull/15385)) + +* Support for getting a version string from git. ([#15374](https://github.com/pantsbuild/pants/pull/15374)) + +* Add `tailor` for `poetry_requirements` and `pipenv_requirements` ([#15352](https://github.com/pantsbuild/pants/pull/15352)) + +### User API Changes + +* Add default mapping for pygithub ([#15361](https://github.com/pantsbuild/pants/pull/15361)) + +### Bug fixes + +* Generalize Docker dep inference for all packageables. ([#15375](https://github.com/pantsbuild/pants/pull/15375)) + +* Fix `tailor` detection of existing `python_requirements` targets ([#15363](https://github.com/pantsbuild/pants/pull/15363)) + +* Add the "named args explanation" to other relevant `parametrize` error messages. ([#15362](https://github.com/pantsbuild/pants/pull/15362)) + +* Use abspath to sandbox in PATH for docker tool shims. ([#15341](https://github.com/pantsbuild/pants/pull/15341)) + +### Documentation + +* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` ([#15334](https://github.com/pantsbuild/pants/pull/15334)) + +* Disallow `!` patterns in `build_ignore`. ([#15366](https://github.com/pantsbuild/pants/pull/15366)) + +## 2.13.0.dev0 (May 05, 2022) + +### New Features + +* BSP compile exposes loose classfiles to allow IntelliJ to invoke tests ([#15347](https://github.com/pantsbuild/pants/pull/15347)) + +* Add options to turn off `tailor` on a per-language basis ([#15335](https://github.com/pantsbuild/pants/pull/15335)) + +### User API Changes + +* Upgrade hadolint to 2.10.0 and add linux arm64 support ([#15317](https://github.com/pantsbuild/pants/pull/15317)) + +* Remove `[test].xml_dir`, `[update-build-files].fix_python_macros`, and `[java-infer].third_party_imports` ([#15311](https://github.com/pantsbuild/pants/pull/15311)) + +* Deprecate `[golang].expected_version` in favor of more flexible `[golang].minimum_expected_version` ([#15306](https://github.com/pantsbuild/pants/pull/15306)) + +### Plugin API Changes + +* Add `update_env` to `process_execution::local`. ([#15340](https://github.com/pantsbuild/pants/pull/15340)) + +### Bug fixes + +* Fix error output of `parametrize()` ([#15339](https://github.com/pantsbuild/pants/pull/15339)) + +* Don't strip source roots when building dists with an existing setup.py ([#15303](https://github.com/pantsbuild/pants/pull/15303)) + +* Fix a bug in the python venv export logic. ([#15294](https://github.com/pantsbuild/pants/pull/15294)) + +* Fix non-determinism of `package_data` in generated `setup.py` files ([#15292](https://github.com/pantsbuild/pants/pull/15292)) + +### Performance + +* Eagerly skip tools with default lockfiles in `export-lockfiles` goal ([#15304](https://github.com/pantsbuild/pants/pull/15304)) + +### Documentation + +* Improve error message for resolves x interpreter constraints issues ([#15314](https://github.com/pantsbuild/pants/pull/15314)) diff --git a/versioned_docs/version-2.20/notes/2.14.x.md b/versioned_docs/version-2.20/notes/2.14.x.md new file mode 100644 index 000000000..f17acd1e9 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.14.x.md @@ -0,0 +1,695 @@ +# 2.14.x Release Series + +## 2.14.2 (May 14, 2023) + +The third stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.2rc2 (Apr 23, 2023) + +### Bug Fixes + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18674](https://github.com/pantsbuild/pants/pull/18674)) + +### Documentation + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18797](https://github.com/pantsbuild/pants/pull/18797)) + +## 2.14.2rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18642](https://github.com/pantsbuild/pants/pull/18642)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18635](https://github.com/pantsbuild/pants/pull/18635)) + +## 2.14.2rc0 (Mar 24, 2023) + +### Bug fixes + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18538](https://github.com/pantsbuild/pants/pull/18538)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18060](https://github.com/pantsbuild/pants/pull/18060)) + +## 2.14.1 (Jan 16, 2023) + +The second stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.1rc0 (Dec 30, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17867](https://github.com/pantsbuild/pants/pull/17867)) + +* Fix twine env vars propagation for publish goal (Cherry-pick of #17650) ([#17658](https://github.com/pantsbuild/pants/pull/17658)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17583](https://github.com/pantsbuild/pants/pull/17583)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17547](https://github.com/pantsbuild/pants/pull/17547)) + +* Fix an unactionable `InteractiveProcessRequest` deprecation ([#17546](https://github.com/pantsbuild/pants/pull/17546)) + +* Fix dep inference from shuint2_tests targets. (Cherry-pick of #17417) ([#17421](https://github.com/pantsbuild/pants/pull/17421)) + +* Fix dirtying of uncacheable nodes (Cherry-pick of #17079) ([#17396](https://github.com/pantsbuild/pants/pull/17396)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17609](https://github.com/pantsbuild/pants/pull/17609)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17569](https://github.com/pantsbuild/pants/pull/17569)) + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17529](https://github.com/pantsbuild/pants/pull/17529)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17498](https://github.com/pantsbuild/pants/pull/17498)) + +* Fix typo in docs: debug-adaptor should be debug-adapter (Cherry-pick of #17452) ([#17453](https://github.com/pantsbuild/pants/pull/17453)) + +* Update nuke_if_too_big documentation (Cherry-pick of #17429) ([#17430](https://github.com/pantsbuild/pants/pull/17430)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17424](https://github.com/pantsbuild/pants/pull/17424)) + +* Add 2.14 blog post link to changelog page. (Cherry-pick of #17381) ([#17384](https://github.com/pantsbuild/pants/pull/17384)) + +* Document the existence of the init-pants action. (Cherry-pick of #17378) ([#17380](https://github.com/pantsbuild/pants/pull/17380)) + +* Fix linebreak issues in the targets docs page. (Cherry-pick of #17364) ([#17366](https://github.com/pantsbuild/pants/pull/17366)) + +## 2.14.0 (Oct 26, 2022) + +The first stable release of the `2.14.x` series, with no changes since the previous release candidate! + +## 2.14.0rc5 (Oct 21, 2022) + +### Bug fixes + +* Retry the streaming portion of downloads, as well as the setup. (Cherry-pick of #17298) ([#17302](https://github.com/pantsbuild/pants/pull/17302)) + +* Fix incomplete cherry-pick of #17177. ([#17312](https://github.com/pantsbuild/pants/pull/17312)) + +### Documentation + +* Fix a nit in the Getting Help docs. (Cherry-pick of #17295) ([#17296](https://github.com/pantsbuild/pants/pull/17296)) + +## 2.14.0rc4 (Oct 19, 2022) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode (Cherry-pick of #17272) ([#17275](https://github.com/pantsbuild/pants/pull/17275)) + +* Fix macros depending on macros from other files (Cherry-pick of #17183) ([#17245](https://github.com/pantsbuild/pants/pull/17245)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely (Cherry-pick of #17204) ([#17244](https://github.com/pantsbuild/pants/pull/17244)) + +### Performance + +* Set PEX_ROOT for export post-processing command. (cherry-pick of #17177) ([#17200](https://github.com/pantsbuild/pants/pull/17200)) + +### Documentation + +* Add CI talk to resources (Cherry-pick of #17238) ([#17241](https://github.com/pantsbuild/pants/pull/17241)) + +## 2.14.0rc3 (Oct 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.108. (Cherry-pick of #17112) ([#17120](https://github.com/pantsbuild/pants/pull/17120)) + +* Upgrade Pex to 2.1.107. (Cherry-pick of #17081) ([#17113](https://github.com/pantsbuild/pants/pull/17113)) + +### Bug fixes + +* Exit normally from K8S parser with unsupported manifests (Cherry-pick of #17037) ([#17143](https://github.com/pantsbuild/pants/pull/17143)) + +* Fix dep inference with empty lines in multiline imports. (Cherry-pick of #17284) ([#17285](https://github.com/pantsbuild/pants/pull/17285)) + +### Documentation + +* Fix spurious linebreaks in the CI docs page. (Cherry-pick of #17154) ([#17158](https://github.com/pantsbuild/pants/pull/17158)) + +* Add Marcelo to team page, move Josh Reed to Maintainer (Cherry-pick of #16826) ([#17152](https://github.com/pantsbuild/pants/pull/17152)) + +* Add Doron Somech's proudest contribution (Cherry-pick of #17029) ([#17150](https://github.com/pantsbuild/pants/pull/17150)) + +* Fix Helm K8S parser help message (Cherry-pick of #17091) ([#17145](https://github.com/pantsbuild/pants/pull/17145)) + +* Fix `bsp-groups.toml` example in documentation (Cherry-pick of #17125) ([#17148](https://github.com/pantsbuild/pants/pull/17148)) + +* Update maintainer job description (Cherry-pick of #17022) ([#17111](https://github.com/pantsbuild/pants/pull/17111)) + +* Update `pytest-xdist` docs. (Cherry-pick of #17071) ([#17072](https://github.com/pantsbuild/pants/pull/17072)) + +## 2.14.0rc2 (Sep 29, 2022) + +### User API Changes + +* Restore the deprecated `filter` goal indefinitely (Cherry-pick of #17027) ([#17052](https://github.com/pantsbuild/pants/pull/17052)) + +### Bug fixes + +* Add python 3.10 to acceptable GCF runtimes (Cherry-pick of #17028) ([#17053](https://github.com/pantsbuild/pants/pull/17053)) + +* Fix JVM resources jar file to be deterministic by default (Cherry-pick of #16950) ([#17033](https://github.com/pantsbuild/pants/pull/17033)) + +* Don't cache VCS version outside the current pants session. (Cherry-pick of #17017) ([#17021](https://github.com/pantsbuild/pants/pull/17021)) + +* Fix invalid field error message for parametrized fields. (Cherry-pick of #16911) ([#17010](https://github.com/pantsbuild/pants/pull/17010)) + +* Add `parametrize()` support for `__defaults__`. (Cherry-pick of #16977) ([#17008](https://github.com/pantsbuild/pants/pull/17008)) + +* go: prepend $GOROOT/bin to PATH for tests (Cherry pick of #16993) ([#16997](https://github.com/pantsbuild/pants/pull/16997)) + +* Fix for hang with redirected stdio. (Cherry-pick of #16970) ([#16973](https://github.com/pantsbuild/pants/pull/16973)) + +* `wait` for killed nailgun processes. (Cherry-pick of #16924) ([#16939](https://github.com/pantsbuild/pants/pull/16939)) + +* Fix venv re-population race. (Cherry-pick of #16931) ([#16935](https://github.com/pantsbuild/pants/pull/16935)) + +* remove override of register_plugin_field (Cherry pick of #16919) ([#16923](https://github.com/pantsbuild/pants/pull/16923)) + +* Only request source roots for PEP-517 deps that belong on the syspath (cherrypick of #16903) ([#16917](https://github.com/pantsbuild/pants/pull/16917)) + +### Performance + +* Add an optional speculation delay when using a remote cache (Cherry-pick of #16922) ([#16956](https://github.com/pantsbuild/pants/pull/16956)) + +### Documentation + +* Improve remote cache logging for hit or miss (Cherry-pick of #16975) ([#16986](https://github.com/pantsbuild/pants/pull/16986)) + +* Remove bad linebreaks from python-run-goal page. (Cherry-pick of #16976) ([#16982](https://github.com/pantsbuild/pants/pull/16982)) + +* Update changelog on docsite with 2.13, 2.14 links (Cherry-pick of #16918) ([#16958](https://github.com/pantsbuild/pants/pull/16958)) + +## 2.14.0rc1 (Sep 16, 2022) + +### New Features + +* Add retries to NetDownload intrinsic. (Cherry-pick of #16798) ([#16879](https://github.com/pantsbuild/pants/pull/16879)) + +### Bug fixes + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code (Cherry-pick of #16896) ([#16904](https://github.com/pantsbuild/pants/pull/16904)) + +* Preserve stdio when a local process times out. (Cherry-pick of #16841) ([#16880](https://github.com/pantsbuild/pants/pull/16880)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets (Cherry pick of #16386) ([#16799](https://github.com/pantsbuild/pants/pull/16799)) + +### Documentation + +* Don't mention a specific version in the manual install instructions (cherrypick of #16888) ([#16889](https://github.com/pantsbuild/pants/pull/16889)) + +* Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) ([#16814](https://github.com/pantsbuild/pants/pull/16814)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) ([#16811](https://github.com/pantsbuild/pants/pull/16811)) + +## 2.14.0rc0 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when `--no-colors` (Cherry-pick of #16586) ([#16808](https://github.com/pantsbuild/pants/pull/16808)) + +## 2.14.0a1 (Sep 04, 2022) + +### New Features + +* Add support for string interpolation in Helm deployments (Cherry-pick of #16611) ([#16723](https://github.com/pantsbuild/pants/pull/16723)) + +* Support Docker custom tags via plugin hook (Cherry-pick of #16662) ([#16719](https://github.com/pantsbuild/pants/pull/16719)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support (Cherry-pick of #16584) ([#16625](https://github.com/pantsbuild/pants/pull/16625)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds (Cherry-pick of #16709) ([#16725](https://github.com/pantsbuild/pants/pull/16725)) + +* Resolve properly provided symbol names for types defined at top level package (Cherry-pick of #16690) ([#16718](https://github.com/pantsbuild/pants/pull/16718)) + +* Make experimental_shell_command deterministic (Cherry-pick of #16675) ([#16700](https://github.com/pantsbuild/pants/pull/16700)) + +* Wire BUILD file formatters in `lint` (Cherry-pick of #16666) ([#16694](https://github.com/pantsbuild/pants/pull/16694)) + +* Include type bound constraints in consumed symbols during Scala inference (Cherry-pick of #16692) ([#16698](https://github.com/pantsbuild/pants/pull/16698)) + +* Make `FilespecMatcher` case-sensitive (Cherry-pick of #16673) ([#16677](https://github.com/pantsbuild/pants/pull/16677)) + +* Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) ([#16659](https://github.com/pantsbuild/pants/pull/16659)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. (Cherry-pick of #16627) ([#16701](https://github.com/pantsbuild/pants/pull/16701)) + +* Optimize `CreateDigest` implementation. (Cherry-pick of #16617) ([#16648](https://github.com/pantsbuild/pants/pull/16648)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier (Cherry-pick of #16706) ([#16742](https://github.com/pantsbuild/pants/pull/16742)) + +* Welcome community members to consider joining team (Cherry-pick of #16681) ([#16745](https://github.com/pantsbuild/pants/pull/16745)) + +* Clarify wording for `--skip` options (Cherry-pick of #16622) ([#16702](https://github.com/pantsbuild/pants/pull/16702)) + +* Fix example BSP groups file. (Cherry-pick of #16649) ([#16653](https://github.com/pantsbuild/pants/pull/16653)) + +* Fix `./pants help` docs on command line specs (Cherry-pick of #16616) ([#16624](https://github.com/pantsbuild/pants/pull/16624)) + +* Create page of Pants team members and proudest contribs (Cherry-pick of #16676) ([#16730](https://github.com/pantsbuild/pants/pull/16730)) + +## 2.14.0a0 (Aug 23, 2022) + +### New Features + +* Add Plugin hook for adding custom additional Docker image tags. ([#16077](https://github.com/pantsbuild/pants/pull/16077)) + +* Add new fmt plugins for build file formatting ([#16560](https://github.com/pantsbuild/pants/pull/16560)) + +* Add buildifier as a BUILD file formatter ([#16573](https://github.com/pantsbuild/pants/pull/16573)) + +* go: add support for test coverage ([#16550](https://github.com/pantsbuild/pants/pull/16550)) + +* Disable 80 col hard wrapping in mypy output ([#16488](https://github.com/pantsbuild/pants/pull/16488)) + +* Allow for automatic use of `pytest-xdist` ([#16499](https://github.com/pantsbuild/pants/pull/16499)) + +* Add `[pyoxidizer].lockfile` ([#16537](https://github.com/pantsbuild/pants/pull/16537)) + +* Add `[flake8].extra_files` to allow configuring plugins like Bandit ([#16470](https://github.com/pantsbuild/pants/pull/16470)) + +* Support 3rd party Helm artifacts in Helm deployments ([#16478](https://github.com/pantsbuild/pants/pull/16478)) + +### User API Changes + +* Mark `[python].requirement_constraints` as deprecated (but not planned for removal) ([#16606](https://github.com/pantsbuild/pants/pull/16606)) + +* Add `[python-repos].find_links` as preferred alias for `[python-repos].repos` ([#16582](https://github.com/pantsbuild/pants/pull/16582)) + +* Fix that running on a BUILD file expands to all of its targets ([#16546](https://github.com/pantsbuild/pants/pull/16546)) + +* Deprecate `[python].only_binary` and `[python].no_binary` in favor of more powerful `[python].resolves_to_only_binary` and `[python].resolves_to_no_binary` ([#16513](https://github.com/pantsbuild/pants/pull/16513)) + +### Plugin API Changes + +* Rename `FmtRequest` to `FmtTargetsRequest` (plus some `fix` refactoring) ([#16535](https://github.com/pantsbuild/pants/pull/16535)) + +### Bug fixes + +* Auto-detect Helm chart source roots ([#16531](https://github.com/pantsbuild/pants/pull/16531)) + +* Have `run` run `__main__.py` for non-zipapp PEXs ([#16568](https://github.com/pantsbuild/pants/pull/16568)) + +* Record `RemoteStoreBlobBytesUploaded` for all upload strategies, rather than only for large blobs. ([#16545](https://github.com/pantsbuild/pants/pull/16545)) + +* Prevent running N^2 publish processes during deploy goal ([#16516](https://github.com/pantsbuild/pants/pull/16516)) + +* Track Python indexes, find-links, and manylinux in lockfile headers ([#16525](https://github.com/pantsbuild/pants/pull/16525)) + +### Performance + +* Fix performance for generating lockfiles for `pytest` and `setuptools` ([#16591](https://github.com/pantsbuild/pants/pull/16591)) + +* Improve performance of `Owners` rule ([#16563](https://github.com/pantsbuild/pants/pull/16563)) + +### Documentation + +* More succinct phrasing and better formatting for cli help. ([#16549](https://github.com/pantsbuild/pants/pull/16549)) + +* Document `[python].resolves_to_constraints_file` and `[python].resolves_to_no_binary` ([#16548](https://github.com/pantsbuild/pants/pull/16548)) + +* Fix broken link to community page ([#16468](https://github.com/pantsbuild/pants/pull/16468)) + +## 2.14.0.dev6 (Aug 13, 2022) + +### New Features + +* Support adding to dict-valued options in config files. ([#16481](https://github.com/pantsbuild/pants/pull/16481)) + +* Add `[mypy].extra_type_stubs_lockfile` ([#16461](https://github.com/pantsbuild/pants/pull/16461)) + +* Proposal for a Helm Deployment goal implementation ([#15882](https://github.com/pantsbuild/pants/pull/15882)) + +* Add support for using environment variables in JVM tests ([#16455](https://github.com/pantsbuild/pants/pull/16455)) + +* Add `[python].resolves_to_constraints_file` ([#16420](https://github.com/pantsbuild/pants/pull/16420)) + +### Plugin API Changes + +* `GenerateToolLockfileSentinel` encouraged to use language-specific subclasses ([#16449](https://github.com/pantsbuild/pants/pull/16449)) + +* Allow backend packages to also register remote auth plugins ([#16444](https://github.com/pantsbuild/pants/pull/16444)) + +### Bug fixes + +* Fix `--process-cleanup` deprecation. ([#16447](https://github.com/pantsbuild/pants/pull/16447)) + +* Fix `CacheContentBehavior::Defer` with a remote cache ([#16439](https://github.com/pantsbuild/pants/pull/16439)) + +### Documentation + +* Update docs on how to run Pants in CI. ([#16503](https://github.com/pantsbuild/pants/pull/16503)) + +* Fix partition description for MyPy when multiple resolves ([#16486](https://github.com/pantsbuild/pants/pull/16486)) + +* Add IBM to user list. ([#16457](https://github.com/pantsbuild/pants/pull/16457)) + +## 2.14.0.dev5 (Aug 07, 2022) + +### New Features + +* Add `[pytest].config` to set custom config file paths ([#16423](https://github.com/pantsbuild/pants/pull/16423)) + +* java/protobuf: add support for grpc-java codegen ([#16350](https://github.com/pantsbuild/pants/pull/16350)) + +### User API Changes + +* Upgrade Pex to 2.1.103. ([#16313](https://github.com/pantsbuild/pants/pull/16426)) +* +* Deprecate `[python].lockfile_generator` ([#16418](https://github.com/pantsbuild/pants/pull/16418)) + +* Replace `--[no-]process-cleanup` with `--keep-sandboxes={always,never,on_failure}` ([#16415](https://github.com/pantsbuild/pants/pull/16415)) + +* Add a few popular python packages to default modules mapping ([#16330](https://github.com/pantsbuild/pants/pull/16330)) + +* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#16305](https://github.com/pantsbuild/pants/pull/16305)) + +* Upgrade Pex to 2.1.102. ([#16313](https://github.com/pantsbuild/pants/pull/16313)) + +* Enable `[python-infer].unowned_dependency_behavior="warning"` by default. ([#16281](https://github.com/pantsbuild/pants/pull/16281)) + +* Upgrade Pex to 2.1.101. ([#16297](https://github.com/pantsbuild/pants/pull/16297)) + +### Plugin API Changes + +* Add entry point support for remote auth plugin ([#16212](https://github.com/pantsbuild/pants/pull/16212)) + +* Provide foundations for a deploy goal ([#16335](https://github.com/pantsbuild/pants/pull/16335)) + +### Bug fixes + +* Fix docker invalidation bug. ([#16419](https://github.com/pantsbuild/pants/pull/16419)) + +* Add missing `help` message to experimental backends ([#16403](https://github.com/pantsbuild/pants/pull/16403)) + +* Set immutable_input_digests on a docker RunRequest. ([#16385](https://github.com/pantsbuild/pants/pull/16385)) + +* go: pass -p option to `go tool asm` on Go v1.19+ ([#16381](https://github.com/pantsbuild/pants/pull/16381)) + +* jvm: fix fetching artifacts with non-jar packaging ([#16358](https://github.com/pantsbuild/pants/pull/16358)) + +* [internal] Add missing timeout field to target generators ([#16314](https://github.com/pantsbuild/pants/pull/16314)) + +* Include Helm chart dependency inference rules ([#16368](https://github.com/pantsbuild/pants/pull/16368)) + +* [internal] Use `f_globals` instead of `inspect.getmodule` in `collect_rules` ([#16357](https://github.com/pantsbuild/pants/pull/16357)) + +* Silence mkdir, cp, and mv commands with MyPy caching ([#16340](https://github.com/pantsbuild/pants/pull/16340)) + +* fix kotlin tailor for junit tests ([#16333](https://github.com/pantsbuild/pants/pull/16333)) + +* Leverage a multiprocess-safe strategy for MyPy's cache ([#16290](https://github.com/pantsbuild/pants/pull/16290)) + +* Eagerly error for symlink loops ([#16319](https://github.com/pantsbuild/pants/pull/16319)) + +* Add a newline at the end of `paths` output ([#16302](https://github.com/pantsbuild/pants/pull/16302)) + +* Consume inits part of package object within the inner scope ([#16282](https://github.com/pantsbuild/pants/pull/16282)) + +* Explicitly add directory entries to resources JARs ([#16264](https://github.com/pantsbuild/pants/pull/16264)) + +### Performance + +* Implement a `validate` mode to reduce network usage for remote caches ([#16398](https://github.com/pantsbuild/pants/pull/16398)) + +### Documentation + +* Document how to use Pylint reports ([#16399](https://github.com/pantsbuild/pants/pull/16399)) + +* Fix source roots docs. ([#16363](https://github.com/pantsbuild/pants/pull/16363)) + +* Show advanced options with `help` if there are no basic options ([#16352](https://github.com/pantsbuild/pants/pull/16352)) + +* Improve a docker backend warning. ([#16355](https://github.com/pantsbuild/pants/pull/16355)) + +* Link to dev.to post on resource hub. ([#16331](https://github.com/pantsbuild/pants/pull/16331)) + +* Only show the deprecated option section with `help` if there are deprecated options ([#16339](https://github.com/pantsbuild/pants/pull/16339)) + +* add tailor docs for kotlin backend ([#16332](https://github.com/pantsbuild/pants/pull/16332)) + +* Fix the experimental_run_shell_command example. ([#16286](https://github.com/pantsbuild/pants/pull/16286)) + +* Fix typo in backend name ([#16312](https://github.com/pantsbuild/pants/pull/16312)) + +* docs: add initial Kotlin docs ([#16304](https://github.com/pantsbuild/pants/pull/16304)) + +* Document test sharding and update plugin docs with 2.13 changes ([#16293](https://github.com/pantsbuild/pants/pull/16293)) + +## 2.14.0.dev4 (Aug 05, 2022) + +There was no 2.14.0.dev4 because of technical issues. + +## 2.14.0.dev3 (Jul 22, 2022) + +### New Features + +* add Go ASDF support ([#16246](https://github.com/pantsbuild/pants/pull/16246)) + +* Add `[python].default_run_goal_use_sandbox` ([#16239](https://github.com/pantsbuild/pants/pull/16239)) + +* Add `include_sources` to `pex_binary` target ([#16215](https://github.com/pantsbuild/pants/pull/16215)) + +* allow JVM sources to have files dependencies ([#16203](https://github.com/pantsbuild/pants/pull/16203)) + +* Optionally strip metadata and timestamps from JVM jars ([#16134](https://github.com/pantsbuild/pants/pull/16134)) + +* Support timeouts in Helm unittest targets ([#16181](https://github.com/pantsbuild/pants/pull/16181)) + +* Allow for dependency inference plugins to provide excludes ([#16155](https://github.com/pantsbuild/pants/pull/16155)) + +* Add support for strict and color flags in Helm unittest ([#15947](https://github.com/pantsbuild/pants/pull/15947)) + +### User API Changes + +* Ban `../` in `source` and `sources` fields ([#16227](https://github.com/pantsbuild/pants/pull/16227)) + +* Warn users if they set remote cache and or/execution via config while the values are provided by the auth plugin. ([#16165](https://github.com/pantsbuild/pants/pull/16165)) + +* Upgrade Pex to 2.1.99. ([#16184](https://github.com/pantsbuild/pants/pull/16184)) + +* Upgrade python reqs, upgrade default setuptools to 63.1.0 ([#16168](https://github.com/pantsbuild/pants/pull/16168)) + +* Add test timeouts to JUnit and Scalatest targets. ([#16126](https://github.com/pantsbuild/pants/pull/16126)) + +### Plugin API Changes + +* Generically compute dynamic defaults for `Field`s ([#16206](https://github.com/pantsbuild/pants/pull/16206)) + +* Add support for auth plugin setting its name ([#16171](https://github.com/pantsbuild/pants/pull/16171)) + +* Fold dep injection into inference, and use FieldSet ([#16107](https://github.com/pantsbuild/pants/pull/16107)) + +### Bug fixes + +* Allow using `--import` option with Autoflake ([#16192](https://github.com/pantsbuild/pants/pull/16192)) + +* Dont use PEX as an API to fix `ModuleNotFoundError` for `--debug-adapter` ([#16263](https://github.com/pantsbuild/pants/pull/16263)) + +* Apply parameter filling for `parametrize`d dependencies to excludes, and fix accommodation for file-addressed atom targets ([#16249](https://github.com/pantsbuild/pants/pull/16249)) + +* [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields ([#16232](https://github.com/pantsbuild/pants/pull/16232)) + +* fix scala plugins args order causing cache issues ([#16228](https://github.com/pantsbuild/pants/pull/16228)) + +* Fix explicit dependencies of `parametrize`d targets not working for some target types ([#16197](https://github.com/pantsbuild/pants/pull/16197)) + +* Add `overrides` field to Scala targets ([#16204](https://github.com/pantsbuild/pants/pull/16204)) + +* Fill address parameters in all cases, rather than only when a consumer is `parametrize`d. ([#16198](https://github.com/pantsbuild/pants/pull/16198)) + +* Use filelists to make archive creation tasks more reliable ([#16183](https://github.com/pantsbuild/pants/pull/16183)) + +* Allow macros to raise builtin Errors ([#16174](https://github.com/pantsbuild/pants/pull/16174)) + +* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin ([#16176](https://github.com/pantsbuild/pants/pull/16176)) + +* java: add proper inference of Scrooge Java Thrift dependencies ([#16130](https://github.com/pantsbuild/pants/pull/16130)) + +* Fix "dependency" pluralization ([#16150](https://github.com/pantsbuild/pants/pull/16150)) + +* Improve memoization of interpreter constraints, Python parsing, and request classes ([#16141](https://github.com/pantsbuild/pants/pull/16141)) + +* Add support for `InteractiveProcess` consuming inputs while `run_in_workspace=True` ([#16093](https://github.com/pantsbuild/pants/pull/16093)) + +* Optimize `get_expanded_specs` for `StreamingWorkunit` plugins ([#16106](https://github.com/pantsbuild/pants/pull/16106)) + +### Performance + +* Port `@rule` `Get`s to rust ([#16160](https://github.com/pantsbuild/pants/pull/16160)) + +### Documentation + +* Add Vicara Solutions to the users page. ([#16221](https://github.com/pantsbuild/pants/pull/16221)) + +* Document the "fromfile" feature. ([#16205](https://github.com/pantsbuild/pants/pull/16205)) + +* Document `--filter` options working with any goal ([#16090](https://github.com/pantsbuild/pants/pull/16090)) + +* Updates installation docs to refer to the 1-step setup script ([#16149](https://github.com/pantsbuild/pants/pull/16149)) + +* Add 2.12 changelog to docsite ([#16136](https://github.com/pantsbuild/pants/pull/16136)) + +## 2.14.0.dev2 (Jul 11, 2022) + +### User API Changes + +* Revert "Upgrade Pex to 2.1.95. (#16110)" ([#16125](https://github.com/pantsbuild/pants/pull/16125)) + +* Add a lock for the Poetry tool. ([#16117](https://github.com/pantsbuild/pants/pull/16117)) + +* Upgrade Pex to 2.1.95. ([#16110](https://github.com/pantsbuild/pants/pull/16110)) + +* Fix poetry locks missing hashes. ([#16112](https://github.com/pantsbuild/pants/pull/16112)) + +* java/avro: inject runtime library dependency ([#15904](https://github.com/pantsbuild/pants/pull/15904)) + +### Bug fixes + +* Fix issue with `__defaults__` not propagating over gaps in the tree of BUILD files. ([#16089](https://github.com/pantsbuild/pants/pull/16089)) + +* Write to caches during backtracking ([#16078](https://github.com/pantsbuild/pants/pull/16078)) + +* Record ongoing backtrack attempts ([#16075](https://github.com/pantsbuild/pants/pull/16075)) + +### Documentation + +* New doc explaining vcs_version. ([#16092](https://github.com/pantsbuild/pants/pull/16092)) + +* Fix typo in warning for `[python].resolve_all_constraints` ([#16068](https://github.com/pantsbuild/pants/pull/16068)) + +## 2.14.0.dev1 (Jul 05, 2022) + +### New Features + +* Add support for extra env variables in go tests ([#16013](https://github.com/pantsbuild/pants/pull/16013)) + +* Add ability to `run` any `PythonSourceField` ([#15849](https://github.com/pantsbuild/pants/pull/15849)) + +* Add `--debug-adapter` flag to `run` ([#15829](https://github.com/pantsbuild/pants/pull/15829)) + +### User API Changes + +* Correct deprecation warning for addressing `pex_binary` targets by filename to 2.15 ([#16056](https://github.com/pantsbuild/pants/pull/16056)) + +* Default `scala-infer` `force_add_siblings_as_dependencies` to False. ([#16031](https://github.com/pantsbuild/pants/pull/16031)) + +* Upgrade Pex to 2.1.94. ([#16029](https://github.com/pantsbuild/pants/pull/16029)) + +* Remove `python-infer` `inits` option. ([#16036](https://github.com/pantsbuild/pants/pull/16036)) + +* Remove `golang` `expected_version` option. ([#16033](https://github.com/pantsbuild/pants/pull/16033)) + +* Remove the `filter` goal. ([#16032](https://github.com/pantsbuild/pants/pull/16032)) + +* Default `--use-deprecated-pex-binary-run-semantics` to `False`. ([#16034](https://github.com/pantsbuild/pants/pull/16034)) + +* Default `python` `tailor_pex_binary_targets` to `False`. ([#16035](https://github.com/pantsbuild/pants/pull/16035)) + +* Deprecate not setting `tailor_pex_binary_targets` explicitly ([#15962](https://github.com/pantsbuild/pants/pull/15962)) + +* `tailor` and `update-build-files` require specifying CLI arguments ([#15941](https://github.com/pantsbuild/pants/pull/15941)) + +* Upgrade default version of black to 22.6.0 ([#15960](https://github.com/pantsbuild/pants/pull/15960)) + +* Upgrade default version of pyupgrade to 2.34.0 ([#15956](https://github.com/pantsbuild/pants/pull/15956)) + +### Plugin API Changes + +* `fmt` plugins can add new files ([#15846](https://github.com/pantsbuild/pants/pull/15846)) + +* Pants internally uses dedicated Sources and Dependencies fields ([#16037](https://github.com/pantsbuild/pants/pull/16037)) + +### Bug fixes + +* Fix pantsd TTY handling. ([#16038](https://github.com/pantsbuild/pants/pull/16038)) + +* revert REAPI batch API PRs ([#16016](https://github.com/pantsbuild/pants/pull/16016)) + +* Backtrack through calls from `@rules` to synchronous engine methods ([#15979](https://github.com/pantsbuild/pants/pull/15979)) + +### Documentation + +* Fix CI provider table rendering. ([#16051](https://github.com/pantsbuild/pants/pull/16051)) + +* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints ([#16000](https://github.com/pantsbuild/pants/pull/16000)) + +* Fix alpha release email template typo. ([#16027](https://github.com/pantsbuild/pants/pull/16027)) + +* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. ([#16015](https://github.com/pantsbuild/pants/pull/16015)) + +* Update Python documentation with 2.11 changes ([#15857](https://github.com/pantsbuild/pants/pull/15857)) + +* Update the docs for `fmt` and test report changes ([#15968](https://github.com/pantsbuild/pants/pull/15968)) + +* Use Markdown h3 for ToC support ([#15964](https://github.com/pantsbuild/pants/pull/15964)) + +* Direct people to a quick form before they join Slack. ([#15957](https://github.com/pantsbuild/pants/pull/15957)) + +## 2.14.0.dev0 (Jun 25, 2022) + +### New Features + +* Add repository config option to Docker registries. ([#15884](https://github.com/pantsbuild/pants/pull/15884)) + +* Add `__defaults__` BUILD file symbol ([#15836](https://github.com/pantsbuild/pants/pull/15836)) + +### User API Changes + +* Deprecate `--use-deprecated-directory-cli-args-semantics` and default to false ([#15939](https://github.com/pantsbuild/pants/pull/15939)) + +* Remove deprecated `[golang].expected_version` in favor of `[golang].minimum_expected_version` ([#15942](https://github.com/pantsbuild/pants/pull/15942)) + +* Upgrade default iPython to 7.34, which drops Python 3.6 ([#15934](https://github.com/pantsbuild/pants/pull/15934)) + +* Remove deprecated `--excluded-target-regexp`, `--files-not-found-behavior`, and `--owners-not-found-behavior` global options ([#15929](https://github.com/pantsbuild/pants/pull/15929)) + +* Deprecate implicit setting of `--remote-cache-{read,write,eager-fetch}` with `--remote-execution` ([#15900](https://github.com/pantsbuild/pants/pull/15900)) + +* Upgrade Pex to 2.1.100. ([#16285](https://github.com/pantsbuild/pants/pull/16285)) + +### Plugin API Changes + +* Plugin fields should propagate to subclassed target types. ([#15876](https://github.com/pantsbuild/pants/pull/15876)) + +* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods ([#15890](https://github.com/pantsbuild/pants/pull/15890)) + +### Bug fixes + +* Assorted remote metrics fixes. ([#15914](https://github.com/pantsbuild/pants/pull/15914)) + +* Fix bad "" description in invalid addresses error messages ([#15859](https://github.com/pantsbuild/pants/pull/15859)) + +* Allow JVM memory controls to bound the process pool size to less than the process parallelism ([#15903](https://github.com/pantsbuild/pants/pull/15903)) + +* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. ([#15899](https://github.com/pantsbuild/pants/pull/15899)) + +* Increment the missing-digest backtracking level once per attempt ([#15889](https://github.com/pantsbuild/pants/pull/15889)) + +* Scala: should visit ctor args of base type ([#15880](https://github.com/pantsbuild/pants/pull/15880)) + +* Scala: mark an object that extends another type as recursive ([#15865](https://github.com/pantsbuild/pants/pull/15865)) + +* Fix reporting of time spent downloading files ([#15873](https://github.com/pantsbuild/pants/pull/15873)) + +### Performance + +* Dedupe `load_bytes_with` calls to a remote Store ([#15901](https://github.com/pantsbuild/pants/pull/15901)) + +* Improve mypy runs by adding the "incremental" mypy cache ([#16276](https://github.com/pantsbuild/pants/pull/16276)) + +### Documentation + +* Add test debugging doc ([#15948](https://github.com/pantsbuild/pants/pull/15948)) + +* Update certificate environment variable advice for #14808. ([#15943](https://github.com/pantsbuild/pants/pull/15943)) + +* Clarify deprecation messages for `tailor` and `update-build-files` requiring CLI arguments ([#15932](https://github.com/pantsbuild/pants/pull/15932)) + +* Fix GCF Handler documentation. ([#16284](https://github.com/pantsbuild/pants/pull/16284)) diff --git a/versioned_docs/version-2.20/notes/2.15.x.md b/versioned_docs/version-2.20/notes/2.15.x.md new file mode 100644 index 000000000..344929e3c --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.15.x.md @@ -0,0 +1,771 @@ +# 2.15.x Release Series + +## What's New + +Pants 2.15 brings support for several new features: + +### Environments + +Pants now supports alternate execution "environments" for build actions. These "environments" can be explicitly +configured as desired via several new target types (including having multiple environments of the same type). +The new `environment` field on many targets tells Pants which environment to use for a particular target. + +Pants previously supported local execution (which is now configured by the `local_environment` target type) and +remote execution via the Remote Execution API (which is now configured by the `remote_environment` target type). + +New in Pants 2.15 is support for executing build actions within a Docker container configured via the +`docker_environment` target type. + +See the [Environments documentation](https://www.pantsbuild.org/v2.15/docs/environments) for more information. + +### Test Batching + +`./pants test` now supports batching compatible tests together so that they execute in the same process. +This can improve performance of test execution by sharing test environment setup across multiple test files, +but must be balanced against the impact on caching and concurrency. + +The Python backend is the first user of the test batching support. + +### New goal: `fix` + +The `fix` goal has been added to run tools which generally will perform more invasive changes on your source +files than the `fmt` goal. The `fmt` goal remains for tools which merely format code without making +semantic changes. + +### Backends + +#### Python + +Several changes have been made to the Python backend: + +- Support for the new Environments feature. Relevant targets now have a new `environment` field +to configure which environment to use for that target. +- Batched execution of `pytest` tests. +- Support for `lcov` coverage format. +- Support for `pyright` typechecking. +- Python lockfiles are now represented in the build graph via synthetic targets. +- Upgrades to default version of several tools including coverage and Flake8. + +#### Go + +The Go backend received several changes including: + +- Basic support for Cgo +- Coverage reports can be generated in HTML and not just the raw data file used by `go tool cover`. +- Support for [the `golangci-lint` linter](https://www.pantsbuild.org/v2.15/docs/go#golangci-lint). +- Support for multiple `go_mod` targets in same repository. +- A new `go-generate` custom goal to run `go generate` on any `//go:generate` instructions in a package. +- `$GOROOT/bin` is now prepended to `PATH` when running tests to enable them to easily find the `go` binary for +the Go toolchain in use. + +Note: Due to certain changes in Go v1.20, Pants 2.15.x and earlier Pants versions will not work with Go v1.20 +and later releases. Instead, use Pants v2.16.x or later Pants versions to support Go v1.20 and later releases. + +#### New: OpenAPI + +The new OpenAPI backend provides support for linting OpenAPI API specifications using the `spectral` tool +and generating Java code from the OpenAPI specifications. + +Enable the `pants.backend.experimental.openapi` backend for base OpenAPI support, +the `pants.backend.experimental.openapi.lint.spectral` backend for linting support, and +the `pants.backend.experimental.openapi.codegen.java` backend for Java code generation support. + +### Plugin API changes + +Several changes were made to the Plugin API including the changes highlighted below. Read the +[Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#215) for a full description +of the changes highlighted below (as well as other changes not highlighted here), including how to migrate +existing plugins. + +#### Formatters / Linters + +The schema used for formatters and linters has been changed in order to allow for formatters and linters which +do not require a target on which to operate. See the [applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#lint-and-fmt-schema-changes) +for the specific changes. + +#### Batched Tests + +The plugin API used by the `test` goal has been changed significantly to support the explicit batching of tests. See the +[applicable section of the Plugin upgrade guide](https://www.pantsbuild.org/v2.15/docs/plugin-upgrade-guide#test-schema-changes) +for the specific changes. + +#### Synthetic Targets + +Plugins may now add "synthetic targets" to the build graph to create freestanding targets programmatically. +These synthetic targets can also be generator targets in order to further create generated targets. See the +[plugin documentation for the Synthetic Targets API](https://www.pantsbuild.org/v2.15/docs/target-api-concepts#synthetic-targets-api) +for more information. + +---- + +## 2.15.2 (Jun 14, 2023) + +The third stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.2rc0 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19266](https://github.com/pantsbuild/pants/pull/19266)) + +### Documentation + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19153](https://github.com/pantsbuild/pants/pull/19153)) + +* Fix docs link to pants_from_sources script. (Cherry-pick of #19088) ([#19089](https://github.com/pantsbuild/pants/pull/19089)) + +## 2.15.1 (May 18, 2023) + +The second stable release of the `2.15.x` series, with no changes since the previous `rc`! + +## 2.15.1rc3 (May 14, 2023) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18973](https://github.com/pantsbuild/pants/pull/18973)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18947](https://github.com/pantsbuild/pants/pull/18947)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (Cherry-pick of #18917) ([#18949](https://github.com/pantsbuild/pants/pull/18949)) + +### Documentation + +* Fix `awslambda-python` documentation (Cherry-pick of #18302) ([#18929](https://github.com/pantsbuild/pants/pull/18929)) + +## 2.15.1rc2 (Apr 23, 2023) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18798](https://github.com/pantsbuild/pants/pull/18798)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18733](https://github.com/pantsbuild/pants/pull/18733)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18723](https://github.com/pantsbuild/pants/pull/18723)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18675](https://github.com/pantsbuild/pants/pull/18675)) + +### Documentation + +* Jacob Floyd/Huon Wilson updates to team page (Cherry-pick of #18221) ([#18795](https://github.com/pantsbuild/pants/pull/18795)) + +* Remove defunct newsletter (Cherry-pick of #18355) ([#18796](https://github.com/pantsbuild/pants/pull/18796)) + +* Add Pylint post (Cherry-pick of #18079) ([#18794](https://github.com/pantsbuild/pants/pull/18794)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18651](https://github.com/pantsbuild/pants/pull/18651)) + +## 2.15.1rc1 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18641](https://github.com/pantsbuild/pants/pull/18641)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (cherry-pick of #18622) ([#18636](https://github.com/pantsbuild/pants/pull/18636)) + +* Fix export-codgen with multiple output types from same input type (Cherry-pick of #18373) ([#18377](https://github.com/pantsbuild/pants/pull/18377)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18603](https://github.com/pantsbuild/pants/pull/18603)) + +### Documentation + +* Fix `./pants` -> `pants` in some docs and help strings. (cherrypick of #18596) ([#18607](https://github.com/pantsbuild/pants/pull/18607)) + +## 2.15.1rc0 (Mar 24, 2023) + +### Bug fixes + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18567](https://github.com/pantsbuild/pants/pull/18567)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18550](https://github.com/pantsbuild/pants/pull/18550)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18537](https://github.com/pantsbuild/pants/pull/18537)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18467](https://github.com/pantsbuild/pants/pull/18467)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18446](https://github.com/pantsbuild/pants/pull/18446)) + +* go: skip go v1.20+ when searching for the GOROOT ([#18429](https://github.com/pantsbuild/pants/pull/18429)) + +### Documentation + +* Some doc fixes suggested by users. (Cherry-pick of #18393) ([#18394](https://github.com/pantsbuild/pants/pull/18394)) + +## 2.15.0 (Feb 24, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.15.0rc7 (Feb 22, 2023) + +### Bug fixes + +* Docker environment uses a volume for named caches (Cherry-pick of #18327) ([#18337](https://github.com/pantsbuild/pants/pull/18337)) + +* go: add backends which were missing from distribution (Cherrypick of #18312) ([#18316](https://github.com/pantsbuild/pants/pull/18316)) + +* Ensure that the pep-517 backend shim works on Python 2.7. (Cherry-pick of #18295) ([#18300](https://github.com/pantsbuild/pants/pull/18300)) + +## 2.15.0rc6 (Feb 16, 2023) + +### New Features + +* Allow exporting codegenerated files/resources (Cherry-pick of #18236) ([#18241](https://github.com/pantsbuild/pants/pull/18241)) + +### Bug fixes + +* Fix bootstrap issue with `__defaults__` and environments. (Cherry-pick of #18251) ([#18262](https://github.com/pantsbuild/pants/pull/18262)) + +* Upgrade to Lambdex 0.1.9 (Cherry-pick of #18257) ([#18261](https://github.com/pantsbuild/pants/pull/18261)) + +* Delete override of expected `exe` name for `shfmt`. (Cherry-pick of #18258) ([#18259](https://github.com/pantsbuild/pants/pull/18259)) + +* Allow breakpoints to be hit when run_in_sandbox is False (Cherry-pick of #18244) ([#18245](https://github.com/pantsbuild/pants/pull/18245)) + +### Documentation + +* docs: add What's New section for 2.15.x release notes ([#18226](https://github.com/pantsbuild/pants/pull/18226)) + +## 2.15.0rc5 (Feb 10, 2023) + +### Bug fixes + +* Fix published wheel RECORDs. (Cherry-pick of #18219) ([#18220](https://github.com/pantsbuild/pants/pull/18220)) + +* Always explicitly shutdown executors (Cherry-pick of #18216) ([#18218](https://github.com/pantsbuild/pants/pull/18218)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. (Cherry-pick of #18203) ([#18206](https://github.com/pantsbuild/pants/pull/18206)) + +* Have lambdex create a new output file. (Cherry-pick of #18200) ([#18201](https://github.com/pantsbuild/pants/pull/18201)) + +## 2.15.0rc4 (Feb 07, 2023) + +### Bug fixes + +* Shutdown all threads as part of Scheduler shutdown (Cherry-pick of #18166) ([#18188](https://github.com/pantsbuild/pants/pull/18188)) + +## 2.15.0rc3 (Feb 02, 2023) + +### New Features + +* Add `environment=` to `experimental_shell_command`. (Cherry-pick of #17575) ([#18064](https://github.com/pantsbuild/pants/pull/18064)) + +### Bug fixes + +* Add the `environment` field to most Python binary target types (Cherry-pick of #18144) ([#18150](https://github.com/pantsbuild/pants/pull/18150)) + +* Run `pyupgrade` until convergence (Cherry-pick of #18128) ([#18130](https://github.com/pantsbuild/pants/pull/18130)) + +* Make mypy cache per-repo (Cherry-pick of #18043) ([#18061](https://github.com/pantsbuild/pants/pull/18061)) + +* go: detect when `go.sum` needs additional entries filled in (Cherrypick of #17811) ([#18118](https://github.com/pantsbuild/pants/pull/18118)) + +* Explicitly use "python" ijson backend (cherry-pick of #17787) ([#18077](https://github.com/pantsbuild/pants/pull/18077)) + +* Fix caching of PATH lookups in remote execution (Cherry-pick of #18026) ([#18062](https://github.com/pantsbuild/pants/pull/18062)) + +### Documentation + +* Document the new get-pants.sh name. (Cherry-pick of #18137) ([#18139](https://github.com/pantsbuild/pants/pull/18139)) + +* Recommend checking the pantsup.sh script in. (Cherry-pick of #18120) ([#18134](https://github.com/pantsbuild/pants/pull/18134)) + +* Change ./pants to pants in the docs (cherry-pick of #18121) ([#18124](https://github.com/pantsbuild/pants/pull/18124)) + +* docs: fix markdown inline code typo in a docstring (Cherry-pick of #18002) ([#18103](https://github.com/pantsbuild/pants/pull/18103)) + +* docs: add tutorials to get started writing plugins (Cherry-pick) ([#18107](https://github.com/pantsbuild/pants/pull/18107)) + +* docs: mention name clashing between custom goals and options when writing plugins (Cherry-pick of #17899) ([#18105](https://github.com/pantsbuild/pants/pull/18105)) + +* docs: tidy up Writing plugins : rules-api directory files (Cherry-pick of #17710) ([#18102](https://github.com/pantsbuild/pants/pull/18102)) + +* Document new pants launcher binary, aka scie-pants. (Cherry-pick of #18056) ([#18075](https://github.com/pantsbuild/pants/pull/18075)) + +* Docs: improve docs on handling option values in cli (Cherry-pick of #17506) ([#18069](https://github.com/pantsbuild/pants/pull/18069)) + +* Update and reorganize resource hub (#17922) ([#18068](https://github.com/pantsbuild/pants/pull/18068)) + +* Add Daniel Goldman and Darcy Shen to team page (Cherry-pick of #17921) ([#18066](https://github.com/pantsbuild/pants/pull/18066)) + +* Nudge more technical support toward GH Discussions (Cherry-pick of #17906) ([#18065](https://github.com/pantsbuild/pants/pull/18065)) + +## 2.15.0rc2 (Jan 18, 2023) + +### New Features + +* Added support for discovering and patching `pyright` config files (cherry-pick of #17771) ([#18030](https://github.com/pantsbuild/pants/pull/18030)) + +### Bug fixes + +* Streamline local dist handling when running python sources. (Cherry-pick of #17742) ([#18035](https://github.com/pantsbuild/pants/pull/18035)) + +* Adds workunit for interactive processes. (Cherry-pick of #17544) ([#17996](https://github.com/pantsbuild/pants/pull/17996)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox (Cherry-pick of #17235) ([#17980](https://github.com/pantsbuild/pants/pull/17980)) + +* add `skip_pyright` field to python test targets (Cherry-pick of #17960) ([#17968](https://github.com/pantsbuild/pants/pull/17968)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. (Cherry-pick of #17939) ([#17941](https://github.com/pantsbuild/pants/pull/17941)) + +### Documentation + +* Document how to update the pants script. (Cherry-pick of #17976) ([#17979](https://github.com/pantsbuild/pants/pull/17979)) + +## 2.15.0rc1 (Dec 26, 2022) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts (Cherry pick of #17855) ([#17866](https://github.com/pantsbuild/pants/pull/17866)) + +* Restore support for :all: in `only_binary`/`no_binary`. (Cherry-pick of #17779) ([#17784](https://github.com/pantsbuild/pants/pull/17784)) + +* Test DebugAdapter requests, and fix issues (Cherry-pick of #17678) ([#17768](https://github.com/pantsbuild/pants/pull/17768)) + +* chdir in `rule_runner.run_interactive_process` (Cherry-pick of #17722) ([#17765](https://github.com/pantsbuild/pants/pull/17765)) + +### Performance + +* Run python sources with a VenvPex (Cherry-pick of #17700) ([#17761](https://github.com/pantsbuild/pants/pull/17761)) + +### Documentation + +* Document batched `pytest` execution. (Cherry-pick of #17845) ([#17853](https://github.com/pantsbuild/pants/pull/17853)) + +* Tweak the docs about __defaults__. (Cherry-pick of #17829) ([#17838](https://github.com/pantsbuild/pants/pull/17838)) + +## 2.15.0rc0 (Dec 08, 2022) + +### Bug fixes + +* More precise running workunit for processes executing remotely (Cherry-pick of #17719) ([#17725](https://github.com/pantsbuild/pants/pull/17725)) + +* Fix twine env vars propagation for `publish` goal. (Cherry-pick of #17650) ([#17659](https://github.com/pantsbuild/pants/pull/17659)) + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox (Cherry-pick of #17566) ([#17584](https://github.com/pantsbuild/pants/pull/17584)) + +* Do not try to create `""` output directory in `CreateArchive` (Cherry-pick of #17538) ([#17548](https://github.com/pantsbuild/pants/pull/17548)) + +### Documentation + +* Fix broken docs links to manual build instructions (Cherry-pick of #17608) ([#17610](https://github.com/pantsbuild/pants/pull/17610)) + +* Update team pages for SJ and Dan! (Cherry-pick of #17534) ([#17568](https://github.com/pantsbuild/pants/pull/17568)) + +* Add Shantanu Kumar to Contributors list (Cherry-pick of #17579) ([#17587](https://github.com/pantsbuild/pants/pull/17587)) + +## 2.15.0a1 (Nov 11, 2022) + +### New Features + +* A --resolve flag, to specify the resolves to export. (Cherry-pick of #17416) ([#17461](https://github.com/pantsbuild/pants/pull/17461)) + +### User API Changes + +* Deprecate the old export semantics. (Cherry-pick of #17465) ([#17466](https://github.com/pantsbuild/pants/pull/17466)) + +### Bug fixes + +* Fix memoization of `CoarsenedTarget.closure` (Cherry-pick of #17516) ([#17518](https://github.com/pantsbuild/pants/pull/17518)) + +* Support parsing targets from additional paths not containing BUILD files. (Cherry-pick of #17451) ([#17513](https://github.com/pantsbuild/pants/pull/17513)) + +* Ensure lockfile target exists before injecting a dependency to it. (Cherry-pick of #17365) ([#17505](https://github.com/pantsbuild/pants/pull/17505)) + +* Ensure correct eq/hash semantics for PythonArtifact. (Cherry-pick of #17484) ([#17492](https://github.com/pantsbuild/pants/pull/17492)) + +* Flip the default for `pull` on `docker_image` to `False` (Cherry-pick of #17459) ([#17460](https://github.com/pantsbuild/pants/pull/17460)) + +* Isolate config seed values from the DEFAULT section. (Cherry-pick of #17474) ([#17485](https://github.com/pantsbuild/pants/pull/17485)) + +* Fix poorly understood stdout redirection issue. (Cherry-pick of #17471) ([#17473](https://github.com/pantsbuild/pants/pull/17473)) + +* Fix propagation of the remote-execution-append-only-caches path (Cherry-pick of #17469) ([#17472](https://github.com/pantsbuild/pants/pull/17472)) + +* Fix dep inference from `shuint2_tests` targets. (Cherry-pick of #17417) ([#17422](https://github.com/pantsbuild/pants/pull/17422)) + +* Fix `EnvironmentName` used in `test` runs (Cherry-pick of #17412) ([#17415](https://github.com/pantsbuild/pants/pull/17415)) + +* Restore debug hints for `test` execution (Cherry-pick of #17406) ([#17407](https://github.com/pantsbuild/pants/pull/17407)) + +### Performance + +* Skip loading of local cache data when possible (Cherry-pick of #17495) ([#17524](https://github.com/pantsbuild/pants/pull/17524)) + +* Symlink site-packages into `pylint` venvs when possible. (Cherry-pick of #17488) ([#17491](https://github.com/pantsbuild/pants/pull/17491)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule (Cherry-pick of #17487) ([#17490](https://github.com/pantsbuild/pants/pull/17490)) + +### Documentation + +* Fix line breaks in a docs page. (Cherry-pick of #17527) ([#17528](https://github.com/pantsbuild/pants/pull/17528)) + +* Clarify how `__defaults__` apply to target generators. (Cherry-pick of #17493) ([#17499](https://github.com/pantsbuild/pants/pull/17499)) + +* Fix version templating in `vcs_version` docs (Cherry-pick of #17423) ([#17425](https://github.com/pantsbuild/pants/pull/17425)) + +## 2.15.0a0 (Oct 28, 2022) + +### New Features + +* Add support for batched `pytest` execution ([#17385](https://github.com/pantsbuild/pants/pull/17385)) + +* Add a `batch_size` parameter to the `test` subsystem. ([#17361](https://github.com/pantsbuild/pants/pull/17361)) + +* Replace `skip` placeholders with real `SkipOption`s in test subsystems. ([#17360](https://github.com/pantsbuild/pants/pull/17360)) + +### Plugin API Changes + +* Refactor optional typing in generic partitioning utils. ([#17371](https://github.com/pantsbuild/pants/pull/17371)) + +* Refactor plumbing for `test` goal to support batched tests. ([#17134](https://github.com/pantsbuild/pants/pull/17134)) + +* Rework partitioning types for more flexibility. ([#17288](https://github.com/pantsbuild/pants/pull/17288)) + +### Bug fixes + +* Ensure PATH to shims are absolute for the protobuf buf linter. ([#17367](https://github.com/pantsbuild/pants/pull/17367)) + +* Include process execution strategy in Process cache key ([#17340](https://github.com/pantsbuild/pants/pull/17340)) + +* Fix use of `--shard` with `--debug`/`--debug-adapter` in `test`. ([#17321](https://github.com/pantsbuild/pants/pull/17321)) + +* go: properly handle xtest packages when building ([#17307](https://github.com/pantsbuild/pants/pull/17307)) + +* Retry the streaming portion of downloads, as well as the setup. ([#17298](https://github.com/pantsbuild/pants/pull/17298)) + +### Performance + +* Implement cancellation of remote processes ([#17341](https://github.com/pantsbuild/pants/pull/17341)) + +### Documentation + +* Document Synthetic Targets API.([#17330](https://github.com/pantsbuild/pants/pull/17330)) + +* Initial documentation for Environments ([#17096](https://github.com/pantsbuild/pants/pull/17096)) + +* Add 2.14 blog post link to changelog page. ([#17381](https://github.com/pantsbuild/pants/pull/17381)) + +* Document the existence of the init-pants action. ([#17378](https://github.com/pantsbuild/pants/pull/17378)) + +* Add a section about `test` to plugin API guide. ([#17362](https://github.com/pantsbuild/pants/pull/17362)) + +* Revise the error message associated with OOM-killed events ([#17373](https://github.com/pantsbuild/pants/pull/17373)) + +* Fix linebreak issues in the targets docs page. ([#17364](https://github.com/pantsbuild/pants/pull/17364)) + +* Fix a nit in the Getting Help docs. ([#17295](https://github.com/pantsbuild/pants/pull/17295)) + +## 2.15.0.dev5 (Oct 19, 2022) + +### New Features + +* Synthesize targets for Python lockfiles ([#17097](https://github.com/pantsbuild/pants/pull/17097)) + +* Refactor `shunit2` into a proper subsystem. ([#17257](https://github.com/pantsbuild/pants/pull/17257)) + +* Add lcov support ([#17256](https://github.com/pantsbuild/pants/pull/17256)) + +* New API to create synthetic targets. ([#16998](https://github.com/pantsbuild/pants/pull/16998)) + +* Support custom post renderers in Helm deployments ([#17215](https://github.com/pantsbuild/pants/pull/17215)) + +* Add a `fix` goal ([#17202](https://github.com/pantsbuild/pants/pull/17202)) + +* Add basic support for pyright typechecking ([#17163](https://github.com/pantsbuild/pants/pull/17163)) + +### User API Changes + +* Upgrade Pex to 2.1.111. ([#17267](https://github.com/pantsbuild/pants/pull/17267)) + +* Upgrade the Pants-provided `coverage` to version 6.5.X ([#17254](https://github.com/pantsbuild/pants/pull/17254)) + +* Upgrade default Flake8 version to 5.0 ([#17226](https://github.com/pantsbuild/pants/pull/17226)) + +* Add Snowflake connector to module mapping ([#17165](https://github.com/pantsbuild/pants/pull/17165)) + +* Always include relevant params in workunit descriptions, and include descriptions in traces by default ([#17119](https://github.com/pantsbuild/pants/pull/17119)) + +### Plugin API Changes + +* Rename `SubPartition` to `Batch` in partitioning types. ([#17263](https://github.com/pantsbuild/pants/pull/17263)) + +* Make fmt/lint result types less boilerplate-y ([#17192](https://github.com/pantsbuild/pants/pull/17192)) + +* Begin migration to explicitly scoped environments ([#17155](https://github.com/pantsbuild/pants/pull/17155)) + +### Bug fixes + +* Fix remote execution not working with remote caching and eager fetch mode ([#17272](https://github.com/pantsbuild/pants/pull/17272)) + +* Remote cache reads are resilient to remote execution writing to the cache ([#17195](https://github.com/pantsbuild/pants/pull/17195)) + +* Adjust `ensure_remote_has_recursive` to succeed if content only exists remotely ([#17204](https://github.com/pantsbuild/pants/pull/17204)) + +* Declaring Javascript, Prettier, and Pyright backends/plugins in BUILD ([#17190](https://github.com/pantsbuild/pants/pull/17190)) + +* Set PEX_ROOT for export post-processing command. ([#17177](https://github.com/pantsbuild/pants/pull/17177)) + +* Fix macros depending on macros from other files ([#17183](https://github.com/pantsbuild/pants/pull/17183)) + +* go/gofmt: filter out non-go files from file list ([#17171](https://github.com/pantsbuild/pants/pull/17171)) + +* Fix dep inference with empty lines in multiline imports. ([#17284](https://github.com/pantsbuild/pants/pull/17284)) + +### Documentation + +* Change fmt/lint/check docs with latest changes ([#17133](https://github.com/pantsbuild/pants/pull/17133)) + +* Add CI talk to resources ([#17238](https://github.com/pantsbuild/pants/pull/17238)) + +## 2.15.0.dev4 (Oct 07, 2022) + +### New Features + +* Optionally export venvs via symlink into the pex_root. ([#17130](https://github.com/pantsbuild/pants/pull/17130)) + +* go: add cgo support for tailor ([#17087](https://github.com/pantsbuild/pants/pull/17087)) + +### User API Changes + +* Upgrade Pex to 2.1.108. ([#17112](https://github.com/pantsbuild/pants/pull/17112)) + +### Plugin API Changes + +* Switch `LintRequest.name` to `.tool_subsystem` ([#17103](https://github.com/pantsbuild/pants/pull/17103)) + +* Rename/Refactor `style_request` to better capture intent. ([#17084](https://github.com/pantsbuild/pants/pull/17084)) + +### Bug fixes + +* Move pyoxidized pants binary out of the main source tree ([#16703](https://github.com/pantsbuild/pants/pull/16703)) + +### Documentation + +* Generate help info about target_field_name to the docsite. ([#17138](https://github.com/pantsbuild/pants/pull/17138)) + +* Add Aiven to user list. ([#17131](https://github.com/pantsbuild/pants/pull/17131)) + +* Fix `bsp-groups.toml` example in documentation ([#17125](https://github.com/pantsbuild/pants/pull/17125)) + +* Update maintainer job description ([#17022](https://github.com/pantsbuild/pants/pull/17022)) + +## 2.15.0.dev3 (Oct 03, 2022) + +### New Features + +* Add `venv_site_packages_copies` field to `pex_binary` ([#17046](https://github.com/pantsbuild/pants/pull/17046)) + +* Add golangci-lint to go backend ([#16994](https://github.com/pantsbuild/pants/pull/16994)) + +* go: add `go-generate` goal to run `go generate` on a package ([#16909](https://github.com/pantsbuild/pants/pull/16909)) + +* Support Java codegen for the OpenAPI backend ([#16862](https://github.com/pantsbuild/pants/pull/16862)) + +* go: render coverage reports as HTML ([#16995](https://github.com/pantsbuild/pants/pull/16995)) + +* Environment-aware subsystems ([#16965](https://github.com/pantsbuild/pants/pull/16965)) + +* Environment sensitive options ([#16840](https://github.com/pantsbuild/pants/pull/16840)) + +* Add retries to NetDownload intrinsic. ([#16798](https://github.com/pantsbuild/pants/pull/16798)) + +* go: add basic support for cgo ([#16413](https://github.com/pantsbuild/pants/pull/16413)) + +* Add support for add-trailing-comma tool ([#16776](https://github.com/pantsbuild/pants/pull/16776)) + +### User API Changes + +* Upgrade Pex to 2.1.107. ([#17081](https://github.com/pantsbuild/pants/pull/17081)) + +* Restore the deprecated `filter` goal indefinitely ([#17027](https://github.com/pantsbuild/pants/pull/17027)) + +### Plugin API Changes + +* Improve usability of the `--engine-visualize-to` option ([#17080](https://github.com/pantsbuild/pants/pull/17080)) + +* Change `fmt` plugin schema to allow for targetless formatters ([#16980](https://github.com/pantsbuild/pants/pull/16980)) + +* Renames `SubsystemRule()` to `Subsystem.rules()` ([#16954](https://github.com/pantsbuild/pants/pull/16954)) + +* Introduce new schema for lint plugins ([#16735](https://github.com/pantsbuild/pants/pull/16735)) + +* `Environment`, `EnvironmentRequest`, and `CompleteEnvironment` now include `Vars` in the name ([#16851](https://github.com/pantsbuild/pants/pull/16851)) + +* `MockGet` expects `input_types` kwarg, not `input_type` ([#16839](https://github.com/pantsbuild/pants/pull/16839)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make interpreter path expansion cache-correct ([#17051](https://github.com/pantsbuild/pants/pull/17051)) + +* Add python 3.10 to acceptable GCF runtimes ([#17028](https://github.com/pantsbuild/pants/pull/17028)) + +* Don't cache VCS version outside the current pants session. ([#17017](https://github.com/pantsbuild/pants/pull/17017)) + +* Fix Pantsd not properly invalidating when `CPPFLAGS` and `LDFLAGS` change ([#17009](https://github.com/pantsbuild/pants/pull/17009)) + +* Add `parametrize()` support for `__defaults__`. ([#16977](https://github.com/pantsbuild/pants/pull/16977)) + +* go: prepend $GOROOT/bin to PATH for tests ([#16993](https://github.com/pantsbuild/pants/pull/16993)) + +* Fix for hang with redirected stdio. ([#16970](https://github.com/pantsbuild/pants/pull/16970)) + +* Fix invalid field error message for parametrized fields. ([#16911](https://github.com/pantsbuild/pants/pull/16911)) + +* Fix venv re-population race. ([#16931](https://github.com/pantsbuild/pants/pull/16931)) + +* `wait` for killed nailgun processes. ([#16924](https://github.com/pantsbuild/pants/pull/16924)) + +* remove override of register_plugin_field ([#16919](https://github.com/pantsbuild/pants/pull/16919)) + +* Only request source roots for PEP-517 deps that belong on the syspath ([#16903](https://github.com/pantsbuild/pants/pull/16903)) + +* Upgrade `javaparser`, and use a permissive language level to support parsing more code ([#16896](https://github.com/pantsbuild/pants/pull/16896)) + +* docker: upgrade bollard crate for bug fix ([#16850](https://github.com/pantsbuild/pants/pull/16850)) + +* Preserve stdio when a local process times out. ([#16841](https://github.com/pantsbuild/pants/pull/16841)) + +### Performance + +* Add an optional speculation delay when using a remote cache ([#16922](https://github.com/pantsbuild/pants/pull/16922)) + +* Only use remote cache when cache scope is Always or Successful ([#16920](https://github.com/pantsbuild/pants/pull/16920)) + +### Documentation + +* Fix Helm K8S parser help message ([#17091](https://github.com/pantsbuild/pants/pull/17091)) + +* Update `pytest-xdist` docs. ([#17071](https://github.com/pantsbuild/pants/pull/17071)) + +* Fix the [python-bootstrap].search_path option name in the docs. ([#17063](https://github.com/pantsbuild/pants/pull/17063)) + +* Add Doron Somech's proudest contribution ([#17029](https://github.com/pantsbuild/pants/pull/17029)) + +* improve remote cache logging for hit or miss ([#16975](https://github.com/pantsbuild/pants/pull/16975)) + +* Remove bad linebreaks from python-run-goal page. ([#16976](https://github.com/pantsbuild/pants/pull/16976)) + +* Update changelog on docsite with 2.13, 2.14 links ([#16918](https://github.com/pantsbuild/pants/pull/16918)) + +* Add Marcelo to team page, move Josh Reed to Maintainer ([#16826](https://github.com/pantsbuild/pants/pull/16826)) + +* Don't mention a specific version in the manual install instructions. ([#16888](https://github.com/pantsbuild/pants/pull/16888)) + +## 2.15.0.dev2 (Sep 09, 2022) + +### New Features + +* Force colors from mypy always, strip in pants when --no-colors ([#16586](https://github.com/pantsbuild/pants/pull/16586)) + +* Add OpenAPI backend ([#16199](https://github.com/pantsbuild/pants/pull/16199)) + +* go: analyze imports paths by module to enable multiple `go_mod` targets ([#16386](https://github.com/pantsbuild/pants/pull/16386)) + +### Bug fixes + +* docker: capture output once after container exits ([#16783](https://github.com/pantsbuild/pants/pull/16783)) + +* docker: lazily initialize docker connection ([#16779](https://github.com/pantsbuild/pants/pull/16779)) + +### Documentation + +* Add IBM, Coinbase, and Astranis case studies ([#16805](https://github.com/pantsbuild/pants/pull/16805)) + +* Fix broken shortlinks that invoked "docs:" instead of "doc:" ([#16804](https://github.com/pantsbuild/pants/pull/16804)) + +* Add Brand24 to user list. ([#16793](https://github.com/pantsbuild/pants/pull/16793)) + +## 2.15.0.dev1 (Sep 04, 2022) + +### New Features + +* go: support placing resource files in packages (and not just embedding) ([#16688](https://github.com/pantsbuild/pants/pull/16688)) + +* "naive" docker command runner ([#16670](https://github.com/pantsbuild/pants/pull/16670)) + +* Adds `binary_name` field to PyOxidizer support ([#16696](https://github.com/pantsbuild/pants/pull/16696)) + +### Plugin API Changes + +* The environment to use becomes a context-specific parameter ([#16721](https://github.com/pantsbuild/pants/pull/16721)) + +* Deprecate `Platform.current` in favor of requesting an injected `Platform` ([#16765](https://github.com/pantsbuild/pants/pull/16765)) + +* Allow `@union`s to declare additional types which are provided to implementers ([#16717](https://github.com/pantsbuild/pants/pull/16717)) + +* Deprecate remote_auth_plugin option - plugins can use entry points now. ([#16691](https://github.com/pantsbuild/pants/pull/16691)) + +### Bug fixes + +* Add support for inferring dependencies used in type context bounds ([#16709](https://github.com/pantsbuild/pants/pull/16709)) + +* Resolve properly provided symbol names for types defined at top level package ([#16690](https://github.com/pantsbuild/pants/pull/16690)) + +* Include type bound constraints in consumed symbols during Scala inference ([#16692](https://github.com/pantsbuild/pants/pull/16692)) + +* Make experimental_shell_command deterministic ([#16675](https://github.com/pantsbuild/pants/pull/16675)) + +### Documentation + +* List commercial Pants services that optionally supplement community's extensive free tier ([#16706](https://github.com/pantsbuild/pants/pull/16706)) + +* In python resource example, use importlib.resources to read assets ([#16695](https://github.com/pantsbuild/pants/pull/16695)) + +* Welcome community members to consider joining team ([#16681](https://github.com/pantsbuild/pants/pull/16681)) + +## 2.15.0.dev0 (Aug 29, 2022) + +### New Features + +* Add support for string interpolation in Helm deployments ([#16611](https://github.com/pantsbuild/pants/pull/16611)) + +* Add --squash and --pull options support for docker build ([#16607](https://github.com/pantsbuild/pants/pull/16607)) + +* Support Pex's `--path-mapping` with lockfiles for better local requirement support ([#16584](https://github.com/pantsbuild/pants/pull/16584)) + +* [experimental] adds `pants_oxidized_experimental` target, creating a standalone binary distribution for Pants ([#16484](https://github.com/pantsbuild/pants/pull/16484)) + +### User API Changes + +* Remove deprecated `[python].only_binary`, `[python].no_binary`, and `[python].tailor_ignore_solitary_init_files` ([#16638](https://github.com/pantsbuild/pants/pull/16638)) + +* Remove deprecated `[python].lockfile_generator` and deprecate `poetry` subsystem (used previously for lockfile generation) ([#16633](https://github.com/pantsbuild/pants/pull/16633)) + +* Remove deprecated `use_deprecated_directory_cli_args_semantics` option ([#16630](https://github.com/pantsbuild/pants/pull/16630)) + +### Plugin API Changes + +* Add support for passing multiple input params to a `@rule` `Get` ([#16668](https://github.com/pantsbuild/pants/pull/16668)) + +* Remove deprecated `matches_filespec` and `get_git` functions ([#16629](https://github.com/pantsbuild/pants/pull/16629)) + +* Remove unnecessary type parameter from `Get` ([#16634](https://github.com/pantsbuild/pants/pull/16634)) + +### Bug fixes + +* Fix dirtying of uncacheable nodes ([#17079](https://github.com/pantsbuild/pants/pull/17079)) + +* Make `FilespecMatcher` case-sensitive ([#16673](https://github.com/pantsbuild/pants/pull/16673)) + +* Ensure the sandbox distdir exists when creating dists via PEP517. ([#16647](https://github.com/pantsbuild/pants/pull/16647)) + +### Performance + +* Implement a batched local lookup for missing fingerprints. ([#16627](https://github.com/pantsbuild/pants/pull/16627)) + +* Optimize `CreateDigest` implementation. ([#16617](https://github.com/pantsbuild/pants/pull/16617)) + +### Documentation + +* Create page of Pants team members and proudest contribs ([#16676](https://github.com/pantsbuild/pants/pull/16676)) + +* Fix example BSP groups file. ([#16649](https://github.com/pantsbuild/pants/pull/16649)) + +* Clarify wording for `--skip` options ([#16622](https://github.com/pantsbuild/pants/pull/16622)) + +* Fix `./pants help` docs on command line specs ([#16616](https://github.com/pantsbuild/pants/pull/16616)) + +* Mention team meetings as a Contributor permission ([#16543](https://github.com/pantsbuild/pants/pull/16543)) diff --git a/versioned_docs/version-2.20/notes/2.16.x.md b/versioned_docs/version-2.20/notes/2.16.x.md new file mode 100644 index 000000000..82c490a5b --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.16.x.md @@ -0,0 +1,1147 @@ +# 2.16.x Release Series + +## What's New + +### BUILD files + +The new `env` function in BUILD files allows access to environment variables in BUILD files. + +Run `pants help symbols` for documentation of all builtin symbols and macros provided by prelude files +which are usable in BUILD files. + +The visibility rules syntax now supports matching on target names. The rules glob syntax also now uses +the same syntax as target selectors. + +### Backends + +#### Docker + +The [`{pants.hash}`](https://www.pantsbuild.org/docs/tagging-docker-images#string-interpolation-using-placeholder-values) +generation code was changed such that the generated hash for the same input will be different in pants 2.16. + +#### Python + +The Python backend added or improved support for various tools including: + +- [`pydocstyle`](https://www.pydocstyle.org/) is now supported for linting Python doc strings. Enable the +`pants.backend.python.lint.pydocstyle` backend to add this support. + +- [`ruff`](https://github.com/charliermarsh/ruff) is now supported for linting and formatting Python code. Enable the +`pants.backend.experimental.python.lint.ruff` backend to add this support. + +- [`pyenv`](https://github.com/pyenv/pyenv) is now supported as a way for Pants to provide a hermetic version of Python +for each relevant Interpreter required to run user code. Enable the `pants.backend.python.providers.experimental.pyenv` +backend to add this support. + +- Pants now understands how to parse dependencies of projects using the OpenStack/Stevedore ((https://github.com/openstack/stevedore) +project. Enable the `pants.backend.python.framework.stevedore` backend to add this support. + +- More Python target types now have the `environment` field and thus can execute in non-local environments. + +Deprecations: + +- The default value of `CPython>=3.7,<4` for the `[python].interpreter_constraints` option is now +deprecated and will be removed in Pants v2.17.x. This options sets Python interpreter +constraints for Python-related targets which did not otherwise specify their own interpreter +constraints. Instead of relying on this default, explicitly set the +`[python].interpreter_constraints` option appropriately. We recommend constraining to a single +interpreter minor version if you can, e.g., `interpreter_constraints = ['==3.11.*']`, or at least +a small number of interpreter minor versions, e.g., `interpreter_constraints = ['>=3.10,<3.12']`. + +- The special Python "tool lockfile" functionality is deprecated. Repos can now use regular "user lockfiles" to provide custom versions of tools. + +#### Shell command improvements and support for ad-hoc tools + +The Shell backend along with the new `pants.backend.experimental.adhoc` backend have received a number of improvements so that +Pants is able to invoke workflows that include tools for which Pants does not yet have a +dedicated backend. + +In recognition of these improvements, the `experimental_shell_command` and `experimental_run_shell_command` target types have +graduated to no longer have the `experimental_` prefix; deprecating the prefixed variants with removal in 2.17. Upgrade to use +`shell_command` and `run_shell_command` respectively instead. + +The improvements include: + +- The `shell_command` continues to provide a way to run a tool for its side effects and capture +outputs from the tool invocation for consumption as dependencies by other target types, but has had several improvements: + + - the `dependencies` field has been deprecated, and separated into three fields: `execution_dependencies` for + dependencies required to execute the command, `output_dependencies` for dependencies required to + use the output, and `runnable_dependencies` for targets that need to exist as directly + executable on the sandbox's `PATH` + - the `outputs` field has been separated into `output_files` and `output_directories` + - the directory in which the command is invoked can be controlled via the new `workdir` field + - the location of the output files when consumed as a dependency can be controlled via the new `root_output_directory` field + +- Preserving symlinks as symlinks in process output, rather than resolving them to their target +file. This eliminates the need for work-arounds in `shell_command`s that happen to generate +semantically-relevant symlinks, such as the contents of `node_modules/.bin` if using `shell_command` +to invoke `npm ci` or `npm install`. + +- The new `adhoc_tool` target type supplied by the `adhoc` backend allows executing most "runnable" target types (those supported for `pants run` goal) exported by another Pants backend in an execution sandbox goal, allowing you to capture their outputs to be captured. The outputs can then be consumed by another Pants target in a similar manner to the `shell_command` target type. +"Runnable" target types include: + * Adhoc: `system_binary` + * Docker: `docker_image` + * Go: `go_binary` + * JVM: `jvm_artifact`, and `deploy_jar` + * Python: `pex_binary`, `python_requirement`, `python_source`, and `pyoxidizer_binary` + +- The new `system_binary` target type supplied by the `adhoc` backend wraps any externally-managed tool so that the +tool may be invoked as a "runnable" by the `adhoc_tool` target type, while also allowing tool versions to be pinned for reproducibility. + +- Support for running in non-local environments as specified by the `environment` field on `shell_command`, `adhoc_tool`, and related target types. + +- Defining arbitrary shell commands as tests which can be invoked using `pants test` via the +new `experimental_test_shell_command` target type. + +- The `workdir` field to `run_shell_command` has been switched to match the documented behavior: it now runs from the same directory as the `BUILD` file by default. To preserve the old behavior, explicitly set `workdir="/"`. The stabilisation also fixes other bugs with relative paths passed to the `workdir` field and thus may require updates. + +Ad-hoc tool support, with the `adhoc_tool` or `shell_command` targets, can be used to compile third party +libraries in unsupported languages, run tools from ecosystems Pants doesn't yet directly support, and other similar code-generation tasks. +These targets can be used for first-party code generation, making use of existing backends that define +"runnable" targets if needed. For instance, exporting a OpenAPI schema from a Python API server, letting Pants +manage the interpreters and dependencies required. + +Enable the `pants.backend.experimental.adhoc` backend to add the features supplied by the `adhoc` backend. +Enable the `pants.backend.shell` backend for the shell-related functionality including `shell_command` and +`run_shell_command` target types. + +#### Go + +The Go backend has received a large number of changes in order to be ready for Go v1.20 +and to make continued progress on [stabilizing the Go backend](https://github.com/pantsbuild/pants/issues/17447). + +The main change is that Pants will now compile Go SDK packages from scratch and no longer rely on +the prebuilt package archives distributed with the Go SDK. Go v1.20 will no longer ship with those +prebuilt package archives, and so this change was necessary for Pants to continue to work +with Go v1.20 and later releases. (It is also a correctness issue since Pants will now be able to +apply compiler options consistently to both first-party Go code and Go SDK packages.) + +The Pants team would appreciate if the community could try out 2.16.x with your Go code as an additional +check to ensure there are no regressions. + +The Go backend also now supports: +- Environments are supported via the `environment` field available now on `go_binary` targets. +- Code coverage can now analyze coverage for packages beyond just the package under test via the new +`--go-test-cover-packages` option. +- Numerous bug fixes to the Cgo support. +- The [data race detector](https://go.dev/doc/articles/race_detector) is supported via the `race` field now available on `go_binary` targets. +- Compiler and other flags may be set via the `compiler_flags`, `linker_flags`, and `assembler_flags` fields +available on various target types. + +#### Buf + +Pants is now able to discover and supply configuration files for the `Buf` protobuf linter. + +#### New: Preamble + +The new "preamble" plugin allows formatting/linting files to ensure they start with specific text, such as a copyright header. Enable the +`pants.backend.tools.preamble` backend to add this support. + +#### New: CUE + +Pants now have basic support for the [CUE language](https://cuelang.org/) for defining, generating, and validating configuration data. +Enable the `pants.backend.experimental.cue` backend to use this support. + +#### New: YamlLint + +Pants now the supports the [yamllint](https://yamllint.readthedocs.io) linter for YAML files. Enable the `pants.backend.experimental.tools.yamllint` backend to add this support. + +#### New: AWS S3 support for URLs + +Pants now supports referencing S3 URLs via the scheme (E.g. `s3://`), or authority (E.g. `*.s3*amazonaws.com` or `s3.*amazonaws.com`) +anywhere a URL can be specified. +Credentials are loaded similar to the AWS CLI (most regularly `~/.aws/credentials`) and attached as headers in the request (which aren't cached or logged). + +Enable the `pants.backend.url_handlers.s3` backend to add this support. + +#### New + +### Plugin API Changes + +The `URLDownloadHandler` union has been added to allow plugins to modify native URL downloading, such as transforming the URL or attaching headers for auth. + +The `frozen_after_init` decorator on dataclasses has been removed from many parts of the Pants codebase. Plugin authors should avoid use of this decorator because it will likely be removed in a future Pants version. + +The deprecated `Platform.current` has been removed. Instead, have the affected rules take a `Platform` directly as a parameter and the engine will supply the relevant `Platform` instance. + +The `ToolCustomLockfile` and `ToolDefaultLockfile` classes [have been removed](https://github.com/pantsbuild/pants/pull/17843). + +---- + +## 2.16.1rc4 (Oct 17, 2023) + +### Bug fixes + +* Fix algorithm for gathering Go build requests with coverage. (Cherry-pick of #20030) ([#20032](https://github.com/pantsbuild/pants/pull/20032)) + +## 2.16.1rc3 (Oct 06, 2023) + +### Bug fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19968](https://github.com/pantsbuild/pants/pull/19968)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19908](https://github.com/pantsbuild/pants/pull/19908)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19857](https://github.com/pantsbuild/pants/pull/19857)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19839](https://github.com/pantsbuild/pants/pull/19839)) + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19653](https://github.com/pantsbuild/pants/pull/19653)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19649](https://github.com/pantsbuild/pants/pull/19649)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19647](https://github.com/pantsbuild/pants/pull/19647)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19617](https://github.com/pantsbuild/pants/pull/19617)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19614](https://github.com/pantsbuild/pants/pull/19614)) + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19594](https://github.com/pantsbuild/pants/pull/19594)) + +* Fix the new tool lockfile deprecation message. (cherrypick of #19565) ([#19571](https://github.com/pantsbuild/pants/pull/19571)) + +* Fix `golangci-lint` runner script (Cherry-pick of #19015) ([#19472](https://github.com/pantsbuild/pants/pull/19472)) + +* Use the `package_name` variable to fix an `UnboundLocalError`. (Cherry-pick of #19433) ([#19452](https://github.com/pantsbuild/pants/pull/19452)) + +### Documentation + +* Update release docs with latest changes ([#19895](https://github.com/pantsbuild/pants/pull/19895)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19638](https://github.com/pantsbuild/pants/pull/19638)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19598](https://github.com/pantsbuild/pants/pull/19598)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19577](https://github.com/pantsbuild/pants/pull/19577)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19569](https://github.com/pantsbuild/pants/pull/19569)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19560](https://github.com/pantsbuild/pants/pull/19560)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19495](https://github.com/pantsbuild/pants/pull/19495)) + +## 2.16.1rc2 (Sep 23, 2023) + +Never released due to build issues. + +## 2.16.1rc1 (Sep 20, 2023) + +Never released due to build issues. + +## 2.16.1rc0 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19457](https://github.com/pantsbuild/pants/pull/19457)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19310](https://github.com/pantsbuild/pants/pull/19310)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19420](https://github.com/pantsbuild/pants/pull/19420)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19422](https://github.com/pantsbuild/pants/pull/19422)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19417](https://github.com/pantsbuild/pants/pull/19417)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19320](https://github.com/pantsbuild/pants/pull/19320)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19331](https://github.com/pantsbuild/pants/pull/19331)) + +## 2.16.0 (Jun 14, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.16.0rc7 (Jun 11, 2023) + +### Bug Fixes + +* Fix S3 URL Handler for good (Cherry-pick of #19285) ([#19288](https://github.com/pantsbuild/pants/pull/19288)) + +## 2.16.0rc6 (Jun 08, 2023) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19267](https://github.com/pantsbuild/pants/pull/19267)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19110](https://github.com/pantsbuild/pants/pull/19110)) + + +## 2.16.0rc5 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version`/`extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19210](https://github.com/pantsbuild/pants/pull/19210)) + +### Bug Fixes + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19196](https://github.com/pantsbuild/pants/pull/19196)) + +* Use `{bin_name()} run` as `$0` in `run_shell_command` (Cherry-pick of #19020) ([#19036](https://github.com/pantsbuild/pants/pull/19036)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19206](https://github.com/pantsbuild/pants/pull/19206)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19108](https://github.com/pantsbuild/pants/pull/19108)) + +* update scie-jump cache directory reference (Cherry-pick of #18485) ([#19154](https://github.com/pantsbuild/pants/pull/19154)) + +## 2.16.0rc4 (May 25, 2023) + +### User API Changes + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19135](https://github.com/pantsbuild/pants/pull/19135)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19086](https://github.com/pantsbuild/pants/pull/19086)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19081](https://github.com/pantsbuild/pants/pull/19081)) + +### Bug Fixes + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19137](https://github.com/pantsbuild/pants/pull/19137)) + +### Documentation + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19114](https://github.com/pantsbuild/pants/pull/19114)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19090](https://github.com/pantsbuild/pants/pull/19090)) + +## 2.16.0rc3 (May 18, 2023) + +### User API Changes + +* Support Python requirement target addrs in tool requirements. (Cherry-pick of #19014) ([#19023](https://github.com/pantsbuild/pants/pull/19023)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` (Cherry-pick of #19019) ([#19031](https://github.com/pantsbuild/pants/pull/19031)) + +* Docs tweaks for 2.16.x (Cherry-pick of #19009) ([#19012](https://github.com/pantsbuild/pants/pull/19012)) + +## 2.16.0rc2 (May 11, 2023) + +### User API Changes + +* Use the resolve's ICs for tools. (Cherry-pick of #18776) ([#18806](https://github.com/pantsbuild/pants/pull/18806)) + +* Default to using the entire tool lockfile. (Cherry-pick of #18793) ([#18807](https://github.com/pantsbuild/pants/pull/18807)) + +### Bug Fixes + +* Require urllib3<2, to reduce installation issues (cherry-pick of #18959) ([#18971](https://github.com/pantsbuild/pants/pull/18971)) + +* Make `DigestSubset` symlink-aware (Cherry-pick of #18963) ([#18970](https://github.com/pantsbuild/pants/pull/18970)) + +* Do not choke on missing lockfiles. (Cherry-pick of #18940) ([#18948](https://github.com/pantsbuild/pants/pull/18948)) + +* Actually run deprecated targets fixer (Cherry-pick of #18860) ([#18893](https://github.com/pantsbuild/pants/pull/18893)) + +* Remove existing entry if any when materialising symlink (Cherry-pick of #18873) ([#18878](https://github.com/pantsbuild/pants/pull/18878)) + +* Ensure non-ambiguous args/env vars injection into PEXes (Cherry-pick of #18861) ([#18877](https://github.com/pantsbuild/pants/pull/18877)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. (Cherry-pick of #18713) ([#18866](https://github.com/pantsbuild/pants/pull/18866)) + +* help backends: Only list enabled experimental backends unless advanced help. (Cherry-pick of #18821) ([#18867](https://github.com/pantsbuild/pants/pull/18867)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. (Cherry-pick of #18826) ([#18870](https://github.com/pantsbuild/pants/pull/18870)) + +* Handle workdir="."/default properly in run_shell_command (Cherry-pick of #18840) ([#18850](https://github.com/pantsbuild/pants/pull/18850)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths (Cherry-pick of #18814) ([#18839](https://github.com/pantsbuild/pants/pull/18839)) + +* Use build root as workdir for shell_command(workdir="") (Cherry-pick of #18813) ([#18832](https://github.com/pantsbuild/pants/pull/18832)) + +### Performance + +* Optimize `Target` and `FieldSet` operations (cherry-pick #18917) ([#18944](https://github.com/pantsbuild/pants/pull/18944)) + +### Documentation + +* update troubleshooting document about self-hosted action runner (Cherry-pick of #18900) ([#18943](https://github.com/pantsbuild/pants/pull/18943)) + +* doc: mention `use_local_alias` for the `[docker].registries` option. (Cherry-pick of #18946) ([#18950](https://github.com/pantsbuild/pants/pull/18950)) + +* Fix adhoc output_... example, document run_shell_command workdir changes (Cherry-pick of #18894) ([#18910](https://github.com/pantsbuild/pants/pull/18910)) + +* Include `symbols` as topic in usage help. (Cherry-pick of #18825) ([#18869](https://github.com/pantsbuild/pants/pull/18869)) + +* Update mypy and pytest documentation to refer to install_from_resolve (Cherry pick of #18791) ([#18858](https://github.com/pantsbuild/pants/pull/18858)) + +## 2.16.0rc1 (Apr 23, 2023) + +### User API Changes + +* Upgrade Pex to 2.1.134. (Cherry-pick of #18785) ([#18789](https://github.com/pantsbuild/pants/pull/18789)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. (Cherry-pick of #18787) ([#18799](https://github.com/pantsbuild/pants/pull/18799)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests (Cherry-pick of #18692) ([#18694](https://github.com/pantsbuild/pants/pull/18694)) + +* Use address as stable key when batching field sets in `lint`/`test` (Cherry-pick of #18725) ([#18734](https://github.com/pantsbuild/pants/pull/18734)) + +* Add `ruff` lint rules (Cherry-pick of #18716) ([#18739](https://github.com/pantsbuild/pants/pull/18739)) + +* Fix `repr` for `Field`s that don't define `default`. (Cherry-pick of #18719) ([#18724](https://github.com/pantsbuild/pants/pull/18724)) + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s (Cherry-pick of #18699) ([#18700](https://github.com/pantsbuild/pants/pull/18700)) + +* Add timeout to remote store calls, and adjust name of cache timeout. (Cherry-pick of #18695) ([#18697](https://github.com/pantsbuild/pants/pull/18697)) + +* Bump minimum supported version of Pex to v2.1.129. (Cherry-pick of #18678) ([#18687](https://github.com/pantsbuild/pants/pull/18687)) + +* Fix JVM resource JAR creation on older Mac OSes (Cherry-pick of #18673) ([#18676](https://github.com/pantsbuild/pants/pull/18676)) + +### Documentation + +* Update linter documentation to refer to `install_from_resolve` (Cherry-pick of #18781) ([#18782](https://github.com/pantsbuild/pants/pull/18782)) + +* Add PEP 621 `pyproject.toml` file docs (Cherry-pick of #18672) ([#18677](https://github.com/pantsbuild/pants/pull/18677)) + +* Improve lockfile consumption error message. (Cherry-pick of #18638) ([#18653](https://github.com/pantsbuild/pants/pull/18653)) + +* Document AWS CDK issue that multiple users have encountered. (Cherry-pick of #18656) ([#18666](https://github.com/pantsbuild/pants/pull/18666)) + +* Remove a python-specific tip from the general prereqs page. (Cherry-pick of #18637) ([#18650](https://github.com/pantsbuild/pants/pull/18650)) + +## 2.16.0rc0 (Mar 31, 2023) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are clean… ([#18640](https://github.com/pantsbuild/pants/pull/18640)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` (Cherry-pick of #18622) ([#18634](https://github.com/pantsbuild/pants/pull/18634)) + +* Fix PexPEX invocations (Cherry-pick of #18610) ([#18633](https://github.com/pantsbuild/pants/pull/18633)) + +* narrow pex_binary files warning (Cherry-pick of #18619) ([#18628](https://github.com/pantsbuild/pants/pull/18628)) + +* Improve debug information for docker auth, and expose an environment variable. (Cherry-pick of #18599) ([#18604](https://github.com/pantsbuild/pants/pull/18604)) + +### Documentation + +* Fix a string that should have been an f-string (Cherry-pick of #18608) ([#18611](https://github.com/pantsbuild/pants/pull/18611)) + +* Fix `./pants` -> `pants` in some docs and help strings. (Cherry-pick of #18596) ([#18606](https://github.com/pantsbuild/pants/pull/18606)) + +## 2.16.0a1 (Mar 24, 2023) + +### New Features + +* Always provide Python-for-Pants-scripts (Cherry-pick of #18433) ([#18495](https://github.com/pantsbuild/pants/pull/18495)) + +* Expose environment information on process metadata (Cherry-pick of #18458) ([#18463](https://github.com/pantsbuild/pants/pull/18463)) + +### User API Changes + +* Upgrade Pex to 2.1.130. (Cherry-pick of #18576) ([#18578](https://github.com/pantsbuild/pants/pull/18578)) + +* Deprecate old-style custom tool lockfiles. (#18494) ([#18498](https://github.com/pantsbuild/pants/pull/18498)) + +* Let a user resolve shadow a tool lockfile of the same name (Cherry-pick of #18481) ([#18493](https://github.com/pantsbuild/pants/pull/18493)) + +* Audit and update requirements for Python tools. (cherrypick #18431) ([#18460](https://github.com/pantsbuild/pants/pull/18460)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. (Cherry-pick of #18575) ([#18585](https://github.com/pantsbuild/pants/pull/18585)) + +* Fail fast for attempts to use `test --debug` with a docker environment (Cherry-pick of #18560) ([#18568](https://github.com/pantsbuild/pants/pull/18568)) + +* Declare ruff outputs as files. (Cherry-pick of #18551) ([#18557](https://github.com/pantsbuild/pants/pull/18557)) + +* Add support for Docker registry auth (Cherry-pick of #18541) ([#18549](https://github.com/pantsbuild/pants/pull/18549)) + +* Fix Poetry req synthesis for URLs with markers. (Cherry-pick of #18535) ([#18536](https://github.com/pantsbuild/pants/pull/18536)) + +* Preserve environment variables in `pantsd` to allow Docker auth. (Cherry-pick of #18465) ([#18468](https://github.com/pantsbuild/pants/pull/18468)) + +* Only expose the equiv of `from typing import *` in prelude files (Cherry-pick of #18452) ([#18455](https://github.com/pantsbuild/pants/pull/18455)) + +* Support type hints in prelude files. (Cherry-pick of #18442) ([#18449](https://github.com/pantsbuild/pants/pull/18449)) + +* Synthesized lockfile targets should never err on missing lockfiles. (Cherry-pick of #18406) ([#18447](https://github.com/pantsbuild/pants/pull/18447)) + +### Documentation + +* First pass at `adhoc_tool` documentation (Cherry-pick of #18531) ([#18581](https://github.com/pantsbuild/pants/pull/18581)) + +* Update docs on running pants from sources with scie-pants. (Cherry-pick of #18513) ([#18514](https://github.com/pantsbuild/pants/pull/18514)) + +* Remove the superfluous updated: front matter from readme docs. (cherrypick of #18475) ([#18476](https://github.com/pantsbuild/pants/pull/18476)) + +* Expand lockfile documentation to its own page. (cherrypick of #18471) ([#18474](https://github.com/pantsbuild/pants/pull/18474)) + +## 2.16.0a0 (Mar 06, 2023) + +### New Features + +* Allow python tools to be installed from a user resolve. ([#18418](https://github.com/pantsbuild/pants/pull/18418)) + +* golang: add support for passthrough args for gofmt ([#18409](https://github.com/pantsbuild/pants/pull/18409)) + +* Add the ability for Pants to provide Python via a union (with a pyenv impl) ([#18352](https://github.com/pantsbuild/pants/pull/18352)) + +* Add `sources_fingerprint` to `peek` on source-creating targets ([#18383](https://github.com/pantsbuild/pants/pull/18383)) + +* New `BUILD` file symbols help info ([#18378](https://github.com/pantsbuild/pants/pull/18378)) + +* Visibility: support matching on target names. ([#18369](https://github.com/pantsbuild/pants/pull/18369)) + +* Support for `peek`ing at dependency/dependents rules ([#18112](https://github.com/pantsbuild/pants/pull/18112)) + +* Adds support for supplying "runnable" dependencies to the `execution_dependencies` field ([#18347](https://github.com/pantsbuild/pants/pull/18347)) + +* javascript: Support esm modules and commonjs specific javascript file extensions ([#18208](https://github.com/pantsbuild/pants/pull/18208)) + +* Adds `system_binary` target, which can be used to reproducibly find a pre-installed binary for use with `adhoc_tool` ([#18332](https://github.com/pantsbuild/pants/pull/18332)) + +* Enable running third-party Go `main` packages ([#17449](https://github.com/pantsbuild/pants/pull/17449)) + +### User API Changes + +* Add `python311` runtime to `python_google_cloud_function` target ([#18405](https://github.com/pantsbuild/pants/pull/18405)) + +* Delegate lockfile requirement validation to Pex when possible. ([#18415](https://github.com/pantsbuild/pants/pull/18415)) + +* Upgrade Pex to 2.1.126. ([#18408](https://github.com/pantsbuild/pants/pull/18408)) + +* Deprecate the default interpreter constraints. ([#18390](https://github.com/pantsbuild/pants/pull/18390)) + +* Give pantsd more RAM by default. ([#18389](https://github.com/pantsbuild/pants/pull/18389)) + +### Plugin API Changes + +* Support specifying a named resolve as the superset in a `PexRequirements`. ([#18397](https://github.com/pantsbuild/pants/pull/18397)) + +* Deprecate the `@rule_helper` decorator. ([#18330](https://github.com/pantsbuild/pants/pull/18330)) + +* Get rid of the `LockfileContent` class ([#18305](https://github.com/pantsbuild/pants/pull/18305)) + +### Bug fixes + +* python: collect files with '[tool.ruff' sections as candidates for Ruff config files ([#18413](https://github.com/pantsbuild/pants/pull/18413)) + +* Fix OSError when running pants in systemd-nspawn container ([#18398](https://github.com/pantsbuild/pants/pull/18398)) + +* Fix `paths` issue with transitive excludes. ([#18396](https://github.com/pantsbuild/pants/pull/18396)) + +* Fix export-codgen with multiple output types from same input type ([#18373](https://github.com/pantsbuild/pants/pull/18373)) + +* Errors in `--loop` wait for changes rather than re-running immediately ([#18367](https://github.com/pantsbuild/pants/pull/18367)) + +* Support using `env()` in prelude macro files ([#18273](https://github.com/pantsbuild/pants/pull/18273)) + +* Docker environment uses a volume for named caches ([#18327](https://github.com/pantsbuild/pants/pull/18327)) + +* Load `fromfile` files relative to build root ([#18311](https://github.com/pantsbuild/pants/pull/18311)) + +* Ensure that the pep-517 backend shim works on Python 2.7. ([#18295](https://github.com/pantsbuild/pants/pull/18295)) + +### Documentation + +* Update documentation on how to install the pants binary ([#18372](https://github.com/pantsbuild/pants/pull/18372)) + +* Some doc fixes suggested by users. ([#18393](https://github.com/pantsbuild/pants/pull/18393)) + +* docs: tidy up writing plugins tutorial ([#18380](https://github.com/pantsbuild/pants/pull/18380)) + +* docs: upgrade plugin writing tutorial to 2.15.0 ([#18371](https://github.com/pantsbuild/pants/pull/18371)) + +* Use valid container/app names in helm examples ([#18358](https://github.com/pantsbuild/pants/pull/18358)) + +* Remove defunct newsletter ([#18355](https://github.com/pantsbuild/pants/pull/18355)) + +* docs: mention code generation when troubleshooting missing imports from first-party code ([#18073](https://github.com/pantsbuild/pants/pull/18073)) + +* Fix documentation example for `python_awslambda` targets ([#18302](https://github.com/pantsbuild/pants/pull/18302)) + +* Change bool values to lowercase in TOML snippets ([#18299](https://github.com/pantsbuild/pants/pull/18299)) + + +## 2.16.0.dev7 (Feb 17, 2023) + +### New Features + +* Allow exporting codegenerated files/resources ([#18236](https://github.com/pantsbuild/pants/pull/18236)) + +* python: teach tailor goal to create resource targets for py.typed marker files ([#18174](https://github.com/pantsbuild/pants/pull/18174)) + +* The beginnings of a Django plugin. ([#18173](https://github.com/pantsbuild/pants/pull/18173)) + +* Add backend for projects that use openstack/stevedore ([#18132](https://github.com/pantsbuild/pants/pull/18132)) + +* [python-infer]: allow ignoring unowned imports ([#18094](https://github.com/pantsbuild/pants/pull/18094)) + +* Print diff report when generating Python lockfiles. ([#17347](https://github.com/pantsbuild/pants/pull/17347)) + +### User API Changes + +* Deprecates `experimental_run_shell_command` in favour of `run_shell_command` ([#18266](https://github.com/pantsbuild/pants/pull/18266)) + +* Deprecates `experimental_shell_command`, replacing with `shell_command` ([#18255](https://github.com/pantsbuild/pants/pull/18255)) + +* Extracts `backend.adhoc` package and `backend.experimental.adhoc` backend for `adhoc_tool` ([#18237](https://github.com/pantsbuild/pants/pull/18237)) + +* Upgrade Pex to 2.1.122. ([#18230](https://github.com/pantsbuild/pants/pull/18230)) + +* Relativize the pants_bin_name if necessary. ([#18204](https://github.com/pantsbuild/pants/pull/18204)) + +* Adjust the default for `root_output_directory` ([#18192](https://github.com/pantsbuild/pants/pull/18192)) + +* Visibility backend: adjust rule set selector syntax making path values default rather than target types. ([#18154](https://github.com/pantsbuild/pants/pull/18154)) + +* Adds fields to capture stdout/stderr to `experimental_run_in_sandbox` ([#18165](https://github.com/pantsbuild/pants/pull/18165)) + +* `shell_command`/`run_in_sandbox` workdir/output dir adjustments ([#18157](https://github.com/pantsbuild/pants/pull/18157)) + +* Default to the new "Dependents" header in the py_constraints report. ([#18142](https://github.com/pantsbuild/pants/pull/18142)) + +### Plugin API Changes + +* Improve type inference for `@rule`s ([#17947](https://github.com/pantsbuild/pants/pull/17947)) + +* deprecate `frozen_after_init` ([#18127](https://github.com/pantsbuild/pants/pull/18127)) + +### Bug fixes + +* go: support embed configuration in stdlib packages ([#18271](https://github.com/pantsbuild/pants/pull/18271)) + +* Upgrade to Lambdex 0.1.9 ([#18257](https://github.com/pantsbuild/pants/pull/18257)) + +* Delete override of expected `exe` name for `shfmt`. ([#18258](https://github.com/pantsbuild/pants/pull/18258)) + +* Fix bootstrap issue with `__defaults__` and environments. ([#18251](https://github.com/pantsbuild/pants/pull/18251)) + +* Allow breakpoints to be hit when run_in_sandbox is False ([#18244](https://github.com/pantsbuild/pants/pull/18244)) + +* Avoid bind-mounts for docker environments on macOS ([#18225](https://github.com/pantsbuild/pants/pull/18225)) + +* Move ruff from fmt to fix ([#18228](https://github.com/pantsbuild/pants/pull/18228)) + +* Stream large remote cache downloads directly to disk ([#18054](https://github.com/pantsbuild/pants/pull/18054)) + +* BUILD file target field default should respect values from `__defaults__`. ([#18172](https://github.com/pantsbuild/pants/pull/18172)) + +* Fix published wheel RECORDs. ([#18219](https://github.com/pantsbuild/pants/pull/18219)) + +* Always explicitly shutdown executors ([#18216](https://github.com/pantsbuild/pants/pull/18216)) + +* go: upgrade golangci-lint to fix issue with Go v1.20 ([#18207](https://github.com/pantsbuild/pants/pull/18207)) + +* go: disable coverage redesign experiment on Go v1.20+ ([#18205](https://github.com/pantsbuild/pants/pull/18205)) + +* Use `EnvironmentAwarePackageRequest` in many more contexts. ([#18203](https://github.com/pantsbuild/pants/pull/18203)) + +* Have lambdex create a new output file. ([#18200](https://github.com/pantsbuild/pants/pull/18200)) + +* Shutdown all threads as part of Scheduler shutdown ([#18166](https://github.com/pantsbuild/pants/pull/18166)) + +* Fix the dep inference scripts source root bug. ([#18164](https://github.com/pantsbuild/pants/pull/18164)) + +* Add the `environment` field to most Python binary target types ([#18144](https://github.com/pantsbuild/pants/pull/18144)) + +* go: don't check for `Target` attribute on stdlib packages ([#18148](https://github.com/pantsbuild/pants/pull/18148)) + +* go: fix backend to work when run in non-local environments ([#18140](https://github.com/pantsbuild/pants/pull/18140)) + +* Run `pyupgrade` until convergence ([#18128](https://github.com/pantsbuild/pants/pull/18128)) + +### Documentation + +* docs: use an example black version that does not explode ([#18270](https://github.com/pantsbuild/pants/pull/18270)) + +* docs: fix typo ([#18238](https://github.com/pantsbuild/pants/pull/18238)) + +* Update the stated release target to match our desired reality. ([#18234](https://github.com/pantsbuild/pants/pull/18234)) + +* docs: add What's New section for 2.15.x release notes (#18226) ([#18232](https://github.com/pantsbuild/pants/pull/18232)) + +* Add warning about dependency inference + `extra_type_stubs`. ([#17076](https://github.com/pantsbuild/pants/pull/17076)) + +* docs: further updates to 2.16.x What's New ([#18227](https://github.com/pantsbuild/pants/pull/18227)) + +* Jacob Floyd/Huon Wilson updates to team page ([#18221](https://github.com/pantsbuild/pants/pull/18221)) + +* docs: add "What's New" section to 2.16 release notes ([#18146](https://github.com/pantsbuild/pants/pull/18146)) + +* Document the new get-pants.sh name. ([#18137](https://github.com/pantsbuild/pants/pull/18137)) + +* Add Pylint post ([#18079](https://github.com/pantsbuild/pants/pull/18079)) + +* Change to Pantsbuild's custom YouTube url ([#18133](https://github.com/pantsbuild/pants/pull/18133)) + +* Recommend checking the pantsup.sh script in. ([#18120](https://github.com/pantsbuild/pants/pull/18120)) + +* Don't update old release notes. ([#18123](https://github.com/pantsbuild/pants/pull/18123)) + +* Change `./pants` to `pants` in the docs ([#18121](https://github.com/pantsbuild/pants/pull/18121)) + + +## 2.16.0.dev6 (Jan 29, 2023) + +### New Features + +* go: add `environment` field to `go_binary` ([#18113](https://github.com/pantsbuild/pants/pull/18113)) + +* Add experimental backend for ruff with lint and fmt goals ([#17945](https://github.com/pantsbuild/pants/pull/17945)) + +* Add support for `fmt` cue files. ([#18106](https://github.com/pantsbuild/pants/pull/18106)) + +* Add new experimental backend for CUE with initial support for the `lint` goal. ([#17943](https://github.com/pantsbuild/pants/pull/17943)) + +* Add yamllint as a lint tool for YAML sources ([#17821](https://github.com/pantsbuild/pants/pull/17821)) + +* lint: add pydocstyle python backend ([#17596](https://github.com/pantsbuild/pants/pull/17596)) + +### User API Changes + +* Upgrade Pex to 2.1.121. ([#18037](https://github.com/pantsbuild/pants/pull/18037)) + +### Plugin API Changes + +* Make the python dep inference script extensible. ([#17997](https://github.com/pantsbuild/pants/pull/17997)) + +* Remove some dead code from `lockfile.py` ([#18041](https://github.com/pantsbuild/pants/pull/18041)) + +### Bug fixes + +* Inject a path-safe target spec into `experimental_shell_command` etc processes ([#18092](https://github.com/pantsbuild/pants/pull/18092)) + +* docker: Allow overriding FROM args when determining upstream image dependencies ([#18009](https://github.com/pantsbuild/pants/pull/18009)) + +* Make mypy cache per-repo ([#18043](https://github.com/pantsbuild/pants/pull/18043)) + +* Fix caching of PATH lookups in remote execution ([#18026](https://github.com/pantsbuild/pants/pull/18026)) + +### Documentation + +* docs: make tutorials to get started writing plugins visible on readme pages ([#18083](https://github.com/pantsbuild/pants/pull/18083)) + +* Document new pants launcher binary, aka scie-pants. ([#18056](https://github.com/pantsbuild/pants/pull/18056)) + +* Front matter for new tutorial pages. ([#18074](https://github.com/pantsbuild/pants/pull/18074)) + +* Cosmetic fix for current value information in help output for pass-through arguments. ([#18051](https://github.com/pantsbuild/pants/pull/18051)) + +* docs: add pydocstyle to the docs and help reference ([#18033](https://github.com/pantsbuild/pants/pull/18033)) + +* docs: add tutorial to get started writing plugins: No 3 ([#18018](https://github.com/pantsbuild/pants/pull/18018)) + + +## 2.16.0.dev5 (Jan 16, 2023) + +### New Features + +* New `env()` BUILD file function. ([#17652](https://github.com/pantsbuild/pants/pull/17652)) + +* Support REPL command history. ([#17959](https://github.com/pantsbuild/pants/pull/17959)) + +* Resolve Python dep inference ambiguity via locality. ([#17931](https://github.com/pantsbuild/pants/pull/17931)) + +* Add targets to re-wrap source files in different `SourcesField` types. ([#17877](https://github.com/pantsbuild/pants/pull/17877)) + +* Allow plugins to add custom schema/authority URL handler rules ([#17898](https://github.com/pantsbuild/pants/pull/17898)) + +* Support freezing command line args and env vars into pex binaries. ([#17905](https://github.com/pantsbuild/pants/pull/17905)) + +* Support catching `@rule` errors ([#17911](https://github.com/pantsbuild/pants/pull/17911)) + +### User API Changes + +* Ugrade Pex to 2.1.120 ([#17957](https://github.com/pantsbuild/pants/pull/17957)) + +* Adds `workdir` field for `experimental_shell_command` and friends ([#17928](https://github.com/pantsbuild/pants/pull/17928)) + +### Bug fixes + +* Let pyright see dependencies in other source roots. ([#18014](https://github.com/pantsbuild/pants/pull/18014)) + +* go: gather and link transitive prebuilt object files for cgo mode ([#17971](https://github.com/pantsbuild/pants/pull/17971)) + +* add skip_pyright field to python test targets ([#17960](https://github.com/pantsbuild/pants/pull/17960)) + +* Allow `experimental_shell_command`/`experimental_run_in_sandbox` to specify `output_`s from anywhere under the buildroot ([#17938](https://github.com/pantsbuild/pants/pull/17938)) + +* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. ([#17939](https://github.com/pantsbuild/pants/pull/17939)) + +### Documentation + +* WSL disclaimer in Getting Started/Prerequisites ([#18000](https://github.com/pantsbuild/pants/pull/18000)) + +* Add Daniel Goldman and Darcy Shen to team page ([#17921](https://github.com/pantsbuild/pants/pull/17921)) + +* Clarify runtime vs. complete_platforms for serverless. ([#18001](https://github.com/pantsbuild/pants/pull/18001)) + +* docs: add tutorial to get started writing plugins: No 2 ([#17890](https://github.com/pantsbuild/pants/pull/17890)) + +* docs: generate a JSON schema file to be used in IDEs when editing pants.toml ([#17915](https://github.com/pantsbuild/pants/pull/17915)) + +* docs: fix markdown inline code typo in a docstring ([#18002](https://github.com/pantsbuild/pants/pull/18002)) + +* fix type in `check` help output ([#17969](https://github.com/pantsbuild/pants/pull/17969)) + +* Document how to update the pants script. ([#17976](https://github.com/pantsbuild/pants/pull/17976)) + +* Add Kaiko to "who uses Pants" page. ([#17949](https://github.com/pantsbuild/pants/pull/17949)) + +* docs: provide a link to Google Cloud Function in the backend docstring ([#17948](https://github.com/pantsbuild/pants/pull/17948)) + +* docs: add info about beta stage support of protobuf for Scala and Java ([#17935](https://github.com/pantsbuild/pants/pull/17935)) + +* docs: add the first tutorial on writing plugins to readme docs directory ([#17930](https://github.com/pantsbuild/pants/pull/17930)) + +* docs: reformat the kotlin docs to have better line breaks on readme.com ([#17929](https://github.com/pantsbuild/pants/pull/17929)) + +* Update and reorganize resource hub ([#17922](https://github.com/pantsbuild/pants/pull/17922)) + +* Add Payhere to user list. ([#17917](https://github.com/pantsbuild/pants/pull/17917)) + +* Nudge more technical support toward GH Discussions ([#17906](https://github.com/pantsbuild/pants/pull/17906)) + +* go: update docs to remove caveats about implemented features ([#17913](https://github.com/pantsbuild/pants/pull/17913)) + + +## 2.16.0.dev4 (Dec 30, 2022) + +### New Features + +* Add [buf] config and config_discovery options ([#17885](https://github.com/pantsbuild/pants/pull/17885)) + +* New help topic: `backends`. ([#17600](https://github.com/pantsbuild/pants/pull/17600)) + +* Make pants work when the uid doesn't map to a user. ([#17881](https://github.com/pantsbuild/pants/pull/17881)) + +* Make JVM sources runnable ([#17847](https://github.com/pantsbuild/pants/pull/17847)) + +* Support `python_requirement` as a `run`/`experimental_run_in_sandbox` target ([#17864](https://github.com/pantsbuild/pants/pull/17864)) + +* Support `experimental_run_in_sandbox`/`./pants run` for `jvm_artifact` targets ([#17827](https://github.com/pantsbuild/pants/pull/17827)) + +* go: support the `go test` profiling options ([#17836](https://github.com/pantsbuild/pants/pull/17836)) + +* Add output_path field to python_distribution. ([#17841](https://github.com/pantsbuild/pants/pull/17841)) + +### User API Changes + +* Upgrade default mypy-protobuf version to 3.4 ([#17887](https://github.com/pantsbuild/pants/pull/17887)) + +* allow each resolve to be exported for multiple python interpreters ([#17711](https://github.com/pantsbuild/pants/pull/17711)) + +* More default Python module mappings. ([#17879](https://github.com/pantsbuild/pants/pull/17879)) + +* Make export cleanup a subset of `dist/export`, not the whole thing ([#17849](https://github.com/pantsbuild/pants/pull/17849)) + +* Unify the messages for lockfile validation errors. ([#17842](https://github.com/pantsbuild/pants/pull/17842)) + +* Unify validation of tool and user lockfile metadata. ([#17834](https://github.com/pantsbuild/pants/pull/17834)) + +* Detect Pants-generated lockfiles before attempting to validate. ([#17833](https://github.com/pantsbuild/pants/pull/17833)) + +### Plugin API Changes + +* Remove `immutable_input_digests` from shell code ([#17886](https://github.com/pantsbuild/pants/pull/17886)) + +* Default `use_pantsd` to `False` in `run_pants` ([#17874](https://github.com/pantsbuild/pants/pull/17874)) + +* Remove the ToolCustomLockfile/ToolDefaultLockfile classes. ([#17843](https://github.com/pantsbuild/pants/pull/17843)) + +### Bug fixes + +* scala: support scala v3 which has different compiler/library artifacts ([#17855](https://github.com/pantsbuild/pants/pull/17855)) + +### Performance + +* Bring back hardlinking big files ([#17878](https://github.com/pantsbuild/pants/pull/17878)) + +* Don't invalidate watched files if non-perms metadata changed ([#17875](https://github.com/pantsbuild/pants/pull/17875)) + +### Documentation + +* docs: mention name clashing between custom goals and options when writing plugins ([#17899](https://github.com/pantsbuild/pants/pull/17899)) + +* docs: add tutorial to get started writing plugins: No 1 ([#17732](https://github.com/pantsbuild/pants/pull/17732)) + +* Document batched `pytest` execution. ([#17845](https://github.com/pantsbuild/pants/pull/17845)) + +* Tweak the docs about __defaults__. ([#17829](https://github.com/pantsbuild/pants/pull/17829)) + +* docs: extend python test goal with info on collecting tests with pytests ([#17894](https://github.com/pantsbuild/pants/pull/17894)) + + +## 2.16.0.dev3 (Dec 16, 2022) + +### New Features + +* Allow targets that implement `RunFieldSet` to be executed in the sandbox for side effects ([#17716](https://github.com/pantsbuild/pants/pull/17716)) + +* `python_requirements` target generator can parse PEP 621 pyproject.toml files ([#16932](https://github.com/pantsbuild/pants/pull/16932)) + +### User API Changes + +* Bump default version of shfmt from 3.2.4 to 3.6.0 ([#17777](https://github.com/pantsbuild/pants/pull/17777)) + +* An enum of Python export formats. ([#17800](https://github.com/pantsbuild/pants/pull/17800)) + +* Add export-codegen goal to more backends ([#17773](https://github.com/pantsbuild/pants/pull/17773)) + +* Adds `execution_dependencies` for `experimental_shell_command` ([#17743](https://github.com/pantsbuild/pants/pull/17743)) + +### Plugin API Changes + +* Remove boilerplate for run and test plugins ([#17774](https://github.com/pantsbuild/pants/pull/17774)) + +### Bug fixes + +* go: detect when `go.sum` needs additional entries filled in ([#17811](https://github.com/pantsbuild/pants/pull/17811)) + +* go: pass module sources through to linker if `${SRCDIR}` is referenced ([#17780](https://github.com/pantsbuild/pants/pull/17780)) + +* go: improve options passed to assembler invocations ([#17796](https://github.com/pantsbuild/pants/pull/17796)) + +* Explicitly use "python" ijson backend ([#17787](https://github.com/pantsbuild/pants/pull/17787)) + +* Do not clear the `pantsd` log while restarting ([#17783](https://github.com/pantsbuild/pants/pull/17783)) + +* Restore support for :all: in `only_binary`/`no_binary`. ([#17779](https://github.com/pantsbuild/pants/pull/17779)) + +* go: remove notion of separate `__obj__` directory ([#17775](https://github.com/pantsbuild/pants/pull/17775)) + +* Visibility: empty selector should match no target. ([#17763](https://github.com/pantsbuild/pants/pull/17763)) + +* [Visibility] `**/..` globs can match root level files ([#17681](https://github.com/pantsbuild/pants/pull/17681)) + +* Visibility: fix rules path for generated targets. ([#17760](https://github.com/pantsbuild/pants/pull/17760)) + +### Documentation + +* Documentation for the new visibility rules ([#17632](https://github.com/pantsbuild/pants/pull/17632)) + +* Add Doctrine's eng blog post and example repo to resource hub. ([#17810](https://github.com/pantsbuild/pants/pull/17810)) + +* Add Astranis to user list. ([#17812](https://github.com/pantsbuild/pants/pull/17812)) + +* Add Doctrine to user list ([#17793](https://github.com/pantsbuild/pants/pull/17793)) + +* Doc: update `Get` docstring for multiple inputs. ([#17730](https://github.com/pantsbuild/pants/pull/17730)) + + +## 2.16.0.dev2 (Dec 08, 2022) + +### New Features + +* go: use target spec for coverage output directories plus support import path ([#17734](https://github.com/pantsbuild/pants/pull/17734)) + +* go: add `assembler_flags` field for adding arbitrary extra assembler flags ([#17731](https://github.com/pantsbuild/pants/pull/17731)) + +* Expose target field defaults in BUILD files. ([#17649](https://github.com/pantsbuild/pants/pull/17649)) + +* Add a new "preamble" plugin ([#17682](https://github.com/pantsbuild/pants/pull/17682)) + +* go: support code coverage over multiple packages during single test ([#17701](https://github.com/pantsbuild/pants/pull/17701)) + +* go: add `linker_flags` field to `go_mod` and `go_binary` target types ([#17697](https://github.com/pantsbuild/pants/pull/17697)) + +* go: add `compiler_flags` field for adding arbitrary extra compiler flags ([#17683](https://github.com/pantsbuild/pants/pull/17683)) + +### User API Changes + +* Include transitive requirements missing for `python_distribution`. ([#17594](https://github.com/pantsbuild/pants/pull/17594)) + +* Extend default module mapping for Python 3rd-party dependency inference: pysocks and atlassian-python-api ([#17654](https://github.com/pantsbuild/pants/pull/17654)) + +### Bug fixes + +* Test DebugAdapter requests, and fix issues ([#17678](https://github.com/pantsbuild/pants/pull/17678)) + +* chdir in `rule_runner.run_interactive_process` ([#17722](https://github.com/pantsbuild/pants/pull/17722)) + +* More precise running workunit for processes executing remotely ([#17719](https://github.com/pantsbuild/pants/pull/17719)) + +* Don't strip the input of a `DictOption` file config ([#17705](https://github.com/pantsbuild/pants/pull/17705)) + +* Visibility rules: error if more than one declaration per BUILD file. ([#17669](https://github.com/pantsbuild/pants/pull/17669)) + +* Allow JVM source to depend on relocated_files target ([#17005](https://github.com/pantsbuild/pants/pull/17005)) + +* Fix bug in Go test result exit code interpretation. ([#17661](https://github.com/pantsbuild/pants/pull/17661)) + +### Performance + +* Immutably hardlink "large" files in a sandbox ([#17520](https://github.com/pantsbuild/pants/pull/17520)) + +* Run python sources with a VenvPex ([#17700](https://github.com/pantsbuild/pants/pull/17700)) + +### Documentation + +* Doc fixes and updates: ([#17708](https://github.com/pantsbuild/pants/pull/17708)) + +* docs: tidy up Writing plugins : rules-api directory files ([#17710](https://github.com/pantsbuild/pants/pull/17710)) + +* Update docker docs to clarify dependency handling. ([#17655](https://github.com/pantsbuild/pants/pull/17655)) + + +## 2.16.0.dev1 (Nov 27, 2022) + +### New Features + +* go: address sanitizer support ([#17651](https://github.com/pantsbuild/pants/pull/17651)) + +* go: add support for C/C++ memory sanitizer ([#17644](https://github.com/pantsbuild/pants/pull/17644)) + +* shell: add `experimental_test_shell_command` for arbitrary shell-driven tests ([#17640](https://github.com/pantsbuild/pants/pull/17640)) + +* support Go data race detector ([#17510](https://github.com/pantsbuild/pants/pull/17510)) + +* Add `Field.none_is_valid_value` bool class var option. ([#17577](https://github.com/pantsbuild/pants/pull/17577)) + +### User API Changes + +* Remove deprecated `run --cleanup` option. ([#17647](https://github.com/pantsbuild/pants/pull/17647)) + +* Upgrade Pex to 2.1.116. ([#17637](https://github.com/pantsbuild/pants/pull/17637)) + +### Plugin API Changes + +* Remove deprecated Platform.current. ([#17646](https://github.com/pantsbuild/pants/pull/17646)) + +### Bug fixes + +* Fix twine env vars propagation for `publish` goal. ([#17650](https://github.com/pantsbuild/pants/pull/17650)) + +* Support `source=None` for `docker_image` targets. ([#17578](https://github.com/pantsbuild/pants/pull/17578)) + +* Specify local environment for python source analysis goal ([#17603](https://github.com/pantsbuild/pants/pull/17603)) + +* go: allow use of `go_asm.h` assembly header in assembly files ([#17611](https://github.com/pantsbuild/pants/pull/17611)) + +* Visibility rule glob tweaks for `*` and `**` ([#17588](https://github.com/pantsbuild/pants/pull/17588)) + +### Documentation + +* Fix broken docs links to manual build instructions ([#17608](https://github.com/pantsbuild/pants/pull/17608)) + +* Docs: improve docs on handling option values in cli ([#17506](https://github.com/pantsbuild/pants/pull/17506)) + + +## 2.16.0.dev0 (Nov 19, 2022) + +### New Features + +* Add `environment=` to `experimental_shell_command`. ([#17575](https://github.com/pantsbuild/pants/pull/17575)) + +* Add debug goals to python ([#17057](https://github.com/pantsbuild/pants/pull/17057)) + +* Target visibility rules ([#17401](https://github.com/pantsbuild/pants/pull/17401)) + +* Emit a `__run.sh` into InteractiveProcess sandboxes. ([#17532](https://github.com/pantsbuild/pants/pull/17532)) + +* Support newer pip versions. ([#17555](https://github.com/pantsbuild/pants/pull/17555)) + +* New dependency rules Plugin API ([#17550](https://github.com/pantsbuild/pants/pull/17550)) + +* Export metadata about a packaged docker image ([#17299](https://github.com/pantsbuild/pants/pull/17299)) + +* Don't require hardcoded name in `python_distribution.provides` ([#17522](https://github.com/pantsbuild/pants/pull/17522)) + +* Add `per_platform` object ([#17334](https://github.com/pantsbuild/pants/pull/17334)) + +* Process output capturing is symlink-aware ([#17496](https://github.com/pantsbuild/pants/pull/17496)) + +* go: introduce `GoBuildOptions` and `cgo_enabled` field ([#17475](https://github.com/pantsbuild/pants/pull/17475)) + +* Disambiguate Python module providers by level of ancestry. ([#17489](https://github.com/pantsbuild/pants/pull/17489)) + +* go: support ".syso" prebuilt object files ([#17479](https://github.com/pantsbuild/pants/pull/17479)) + +* Add Docker registries `use_local_alias` configuration option. ([#17265](https://github.com/pantsbuild/pants/pull/17265)) + +* Proposal for supporting Jar shading rules ([#17251](https://github.com/pantsbuild/pants/pull/17251)) + +* A --resolve flag, to specify the resolves to export. ([#17416](https://github.com/pantsbuild/pants/pull/17416)) + +* Handle duplicate JAR entries in `deploy_jar` ([#17419](https://github.com/pantsbuild/pants/pull/17419)) + +### User API Changes + +* Upgrade default version of golangci-lint to 1.50.1 ([#17574](https://github.com/pantsbuild/pants/pull/17574)) + +* Deprecate the old export semantics. ([#17465](https://github.com/pantsbuild/pants/pull/17465)) + +* Add `restartable` field to `python_sources` ([#17400](https://github.com/pantsbuild/pants/pull/17400)) + +* Deprecate the `# Dependees` column name in the py-constraints summary. ([#17399](https://github.com/pantsbuild/pants/pull/17399)) + +* Rename the dependees goal to dependents. ([#17397](https://github.com/pantsbuild/pants/pull/17397)) + +* Rename --changed-dependees to --changed-dependents ([#17395](https://github.com/pantsbuild/pants/pull/17395)) + +### Bug fixes + +* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox ([#17566](https://github.com/pantsbuild/pants/pull/17566)) + +* Created an `NpxToolBase` as an inheritable Subsystem for `nodejs` tools ([#17567](https://github.com/pantsbuild/pants/pull/17567)) + +* Fix loading of `SymlinkNodes` from the `Store`. ([#17549](https://github.com/pantsbuild/pants/pull/17549)) + +* Do not try to create `""` output directory in `CreateArchive` ([#17538](https://github.com/pantsbuild/pants/pull/17538)) + +* Persist digests before emitting them in `fs_util` ([#17525](https://github.com/pantsbuild/pants/pull/17525)) + +* Fix memoization of `CoarsenedTarget.closure` ([#17516](https://github.com/pantsbuild/pants/pull/17516)) + +* Support parsing targets from additional paths not containing BUILD files. ([#17451](https://github.com/pantsbuild/pants/pull/17451)) + +* Ensure lockfile target exists before injecting a dependency to it. ([#17365](https://github.com/pantsbuild/pants/pull/17365)) + +* Ensure correct eq/hash semantics for PythonArtifact. ([#17484](https://github.com/pantsbuild/pants/pull/17484)) + +* Isolate config seed values from the DEFAULT section. ([#17474](https://github.com/pantsbuild/pants/pull/17474)) + +* Fix poorly understood stdout redirection issue. ([#17471](https://github.com/pantsbuild/pants/pull/17471)) + +* Fix propagation of the remote-execution-append-only-caches path ([#17469](https://github.com/pantsbuild/pants/pull/17469)) + +* Pyright should grab non-transitive dependencies and make them available in the sandbox ([#17235](https://github.com/pantsbuild/pants/pull/17235)) + +* Plumb symlink support through the Pants engine ([#16844](https://github.com/pantsbuild/pants/pull/16844)) + +* Flip the default for `pull` on `docker_image` to `False` ([#17459](https://github.com/pantsbuild/pants/pull/17459)) + +* Merge pytest addopts ([#16614](https://github.com/pantsbuild/pants/pull/16614)) + +* Fix dep inference from `shuint2_tests` targets. ([#17417](https://github.com/pantsbuild/pants/pull/17417)) + +* Fix `EnvironmentName` used in `test` runs ([#17412](https://github.com/pantsbuild/pants/pull/17412)) + +* Add the m1 homebrew bin dir to the system binary search path. ([#17411](https://github.com/pantsbuild/pants/pull/17411)) + +* Restore debug hints for `test` execution ([#17406](https://github.com/pantsbuild/pants/pull/17406)) + +### Performance + +* Skip loading of local cache data when possible ([#17495](https://github.com/pantsbuild/pants/pull/17495)) + +* Symlink site-packages into `pylint` venvs when possible. ([#17488](https://github.com/pantsbuild/pants/pull/17488)) + +* Filter coarsened targets to only those that are relevant in `pylint` runner rule ([#17487](https://github.com/pantsbuild/pants/pull/17487)) + +### Documentation + +* correct docs: direnv can't save ulimit ([#17561](https://github.com/pantsbuild/pants/pull/17561)) + +* Update team pages for SJ and Dan! ([#17534](https://github.com/pantsbuild/pants/pull/17534)) + +* Fix line breaks in a docs page. ([#17527](https://github.com/pantsbuild/pants/pull/17527)) + +* Clarify how `__defaults__` apply to target generators. ([#17493](https://github.com/pantsbuild/pants/pull/17493)) + +* Fix typo in docs: debug-adaptor should be debug-adapter ([#17452](https://github.com/pantsbuild/pants/pull/17452)) + +* Update `nuke_if_too_big` documentation ([#17429](https://github.com/pantsbuild/pants/pull/17429)) + +* Fix version templating in `vcs_version` docs ([#17423](https://github.com/pantsbuild/pants/pull/17423)) diff --git a/versioned_docs/version-2.20/notes/2.17.x.md b/versioned_docs/version-2.20/notes/2.17.x.md new file mode 100644 index 000000000..0355b56ba --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.17.x.md @@ -0,0 +1,667 @@ +# 2.17.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +## What's New + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +### Overall + +The [`pants` launcher binary](https://github.com/pantsbuild/scie-pants) (aka `scie-pants`) is now the recommended way to run Pants. +Use of a `./pants` shell script in a repository is deprecated. + +The `pants` launcher has numerous benefits, such as: + +* automatically download and maintain a Python distribution for running Pants +* run `pants` from any directory within a repository and not just the build root +* far less overhead when starting commands (up to 4-5×) + +See the [Pants installation +instructions](https://www.pantsbuild.org/docs/installation) for additional information on how to migrate to the `pants` launcher binary. + +Related to this, pants' distribution model is changing, and 2.17 will be the last version where: + +* the `pantsbuild.pants` package is published to PyPI. Use [the `pants_requirements` target](https://www.pantsbuild.org/v2.17/docs/reference-pants_requirements) for installing the requisite packages for plugins, rather than `python_requirement` or similar. +* the universal (cross-platform) `pants` PEX is published to GitHub Releases. For future releases, smaller per-platform PEXes will be attached instead. + +### Performance + +As mentioned above, the new launcher binary reduces start-up overhead. + +Large files are now cached as standalone files on disk, rather than stored directly in the internal database pants uses for cache (but still under the `~/.cache/pants/lmdb_store` directory). This improves performance for manipulating these files, especially when the cache directory and sandbox temporary directory are on the same file system and thus allow hard-linking. + +### Backends + +#### Python + +Python dependencies are now analyzed via an intrinsic rule implemented in Rust for increased performance +over the prior Python implementation of the rule. See [#18854](https://github.com/pantsbuild/pants/pull/18854) for +discusion of the performance improvements. + +Exported mutable virtualenvs can now include [PEP-660](https://peps.python.org/pep-0660/) editable installs of `python_distribution` targets. +To enable this feature for a resolve, add that resolve's name to the `[export].py_editables_in_resolves` list in `pants.toml`. +See [#18639](https://github.com/pantsbuild/pants/pull/18639) for details on Pants' PEP-660 implementation. + +The default `pip` Pants uses under the hood has changed from 20.3.4 to 23.1.2. This newer `pip` has better dependency resolution performance in many cases, but may give different results than the earlier `pip`. Of course those results will still be correct in the sense that they will be compatible with your requirements and constraints. + +The `python_awslambda` or `python_google_cloud_function` targets now support a new 'zip' layout, as recommended by the cloud vendors. This layout gives smaller packages and faster cold starts than the existing Lambdex layout, and will become the default in 2.18. See the docs [for `python_awslambda`](https://www.pantsbuild.org/v2.17/docs/awslambda-python#migrating-from-pants-216-and-earlier) and [for `python_google_cloud_function`](https://www.pantsbuild.org/v2.17/docs/google-cloud-function-python#migrating-from-pants-216-and-earlier). + +The default value for the `[python].interpreter_constraints` option was deprecated in 2.16 and is now removed: `pants.toml` must provide this option. We recommend constraining to a single interpreter minor version if you can, for instance: `interpreter_constraints = ['==3.11.*']`. See [the Interpreter Compatibility docs for more details](https://www.pantsbuild.org/v2.17/docs/python-interpreter-compatibility). + +#### Docker + +The Docker backend now supports authenticating with registries via the `DOCKER_HOST`, `DOCKER_CONFIG` and `DOCKER_CERT_PATH` environment variables. + +#### New: Javascript (experimental!) + +Pants now has _very early_ experimental support for Javascript thanks to ongoing efforts by Tobias Nilsson and +Theo Ribeiro. Please note that the Javascript backend is still incomplete, is being actively developed, and _probably +has critical bugs_. Despite that, the Pants maintainers would appreciate any feedback from the community to help +guide our development efforts. + +Supported goals are: + +* `test`: Letting you run tests via runners installed with the package manager of your choice. +* `package` goal, either to run a customized `package.json` script that produces an artifact via `node_build_script`, or to pack a tarball for npm-registry publication via the `npm_distribution` target. +* `tailor`: Generates build file targets for `*.js`, `*.test.js` and `package.json` files. +* `generate-lockfile`: Creates the lockfile in the format matching a projects package manager. + +The backend supports all package managers provided by `corepack`. `yarn@v2` and [PlugNPlay](https://yarnpkg.com/features/pnp) is not supported. + +Enable the `pants.backend.experimental.javascript` backend to try out this support. Please [file issues](https://github.com/pantsbuild/pants/issues/new/choose) for any issues encountered, and follow along [the stabilization ticket on github](https://github.com/pantsbuild/pants/issues/19240). + +#### New: Taplo TOML Formatter + +Pants now supports the [Taplo TOML formatter](https://taplo.tamasfe.dev/). Enable the `pants.backend.tools.taplo` +backend to add this support. + +### Plugin API Changes + +Rules should now request output types which do not need an input type via the new one-argument form of `Get`. For +example, rules can now write `await Get(ChosenLocalEnvironmentName)`. Certain request types which exists only to +work around the previous lack of such synax are now deprecated in favor of the one argument `Get()` form. + +The `PythonBinary` type is now deprecated, use `PythonBuildStandalone` instead. + +## 2.17.1rc1 (Oct 06, 2023) + +### Bug Fixes + +* Support using `__defaults__` in same BUILD file as environment targets. (Cherry-pick of #19446) ([#19969](https://github.com/pantsbuild/pants/pull/19969)) + +* Fetch shellcheck from vscode-shellcheck for M1 support (Cherry-pick of #19945) ([#19952](https://github.com/pantsbuild/pants/pull/19952)) + +* Immediately invalidate written files in write_digest (Cherry-pick of #19903) ([#19949](https://github.com/pantsbuild/pants/pull/19949)) + +* Fix "failed to create hardlink" error due to multiple mounts on the same device (Cherry-pick of #19894) ([#19914](https://github.com/pantsbuild/pants/pull/19914)) + +* Add missing `__init__.py` file for the `yamllint` backend. (Cherry-pick of #19899) ([#19906](https://github.com/pantsbuild/pants/pull/19906)) + +### Documentation + +* Add Tom and Gautham to the Contributors page. (Cherry-pick of #19955) ([#19962](https://github.com/pantsbuild/pants/pull/19962)) + +* Remove references to PyPI/`pantsbuild.pants` wheels in docs (Cherry-pick of #19924) ([#19936](https://github.com/pantsbuild/pants/pull/19936)) + +## 2.17.1rc0 (Sep 20, 2023) + +### New Features + +* `with contextlib.suppress(ImportError)` weakens imports (Cherry-pick of #19293) ([#19789](https://github.com/pantsbuild/pants/pull/19789)) + +### Bug Fixes + +* Port `pantsd` fingerprinting to Rust, and validate from native client (Cherry-pick of #19833) ([#19867](https://github.com/pantsbuild/pants/pull/19867)) + +* Add additional directories with register.py to pants bin deps (Cherry pick of #19848) ([#19855](https://github.com/pantsbuild/pants/pull/19855)) + +* Fix global report coverage for namespaced packages (Cherry-pick of #19821) ([#19837](https://github.com/pantsbuild/pants/pull/19837)) + +* Allow requesters of `TargetRootsToFieldSets` to turn off the secondary ownership warning (Cherry-pick of #19721) ([#19734](https://github.com/pantsbuild/pants/pull/19734)) + +### Performance + +* Remove memoization of the `Paths` intrinsic to reduce memory usage (Cherry-pick of #19689) ([#19717](https://github.com/pantsbuild/pants/pull/19717)) + +### Documentation + +* docs: remove Toolchain references (cherrypick #19508) ([#19828](https://github.com/pantsbuild/pants/pull/19828)) + +* docs: Improve the help string for the global option 'PANTS_CONCURRENT'. (Cherry-pick of #19822) ([#19824](https://github.com/pantsbuild/pants/pull/19824)) + +* Fix Documentation (InitialConfiguration) go backend (Cherry-pick of #19806) ([#19809](https://github.com/pantsbuild/pants/pull/19809)) + +* Fix typoed artifact name in Lambda docs (Cherry-pick of #19739) ([#19746](https://github.com/pantsbuild/pants/pull/19746)) + +* Update the docs changelog to include 2.17.x. (Cherry-pick of #19729) ([#19736](https://github.com/pantsbuild/pants/pull/19736)) + +## 2.17.0 (Aug 29, 2023) + +The first stable release of the series, with no changes since the previous `rc`! + +## 2.17.0rc5 (Aug 26, 2023) + +### Bug Fixes + +* Remove `tensorboard` mapping from our default mapping (Cherry-pick of #19673) ([#19677](https://github.com/pantsbuild/pants/pull/19677)) + +### Documentation + +* Backport to 2.17: docs: set EnvironmentBehavior in plugin Goal examples (#19590) ([#19664](https://github.com/pantsbuild/pants/pull/19664)) + +## 2.17.0rc4 (Aug 23, 2023) + +### User API Changes + +* Require scie-pants 0.9.2 or newer, for new distribution model (Cherry-pick of #19654) ([#19655](https://github.com/pantsbuild/pants/pull/19655)) + +* Add Python 3.12 to the default interpreter universe (Cherry-pick of #19641) ([#19651](https://github.com/pantsbuild/pants/pull/19651)) + +### Bug Fixes + +* Have Pants create the `immutable_inputs` base parent(s) (Cherry-pick of #19646) ([#19652](https://github.com/pantsbuild/pants/pull/19652)) + +* Use hardlinking when possible for mypy cache (Cherry-pick of #19633) ([#19650](https://github.com/pantsbuild/pants/pull/19650)) + +* Undo pyenv install marking files as RO (Cherry-pick of #19645) ([#19648](https://github.com/pantsbuild/pants/pull/19648)) + +* Make mypy cache move truly atomic (Cherry-pick of #19610) ([#19615](https://github.com/pantsbuild/pants/pull/19615)) + +* Use named cache for Docker-env PBS (Cherry-pick of #19611) ([#19616](https://github.com/pantsbuild/pants/pull/19616)) + +* Add path to cache key for Rust dep inference, for relative imports (cherry-pick of #19630) ([#19640](https://github.com/pantsbuild/pants/pull/19640)) + +### Documentation + +* Backport to 2.17: Fix dead doc links (#19546) ([#19659](https://github.com/pantsbuild/pants/pull/19659)) + +* Additional mentions and tweaks in 2.17's "What's new" (Cherry-pick of #19629) ([#19642](https://github.com/pantsbuild/pants/pull/19642)) + +* docs: fix code examples for `setting-up-ide` and `interpreter-compatibility` docs (Cherry-pick of #19624) ([#19639](https://github.com/pantsbuild/pants/pull/19639)) + +* docs: fix markdown inconsistencies (Cherry pick of #19363) ([#19622](https://github.com/pantsbuild/pants/pull/19622)) + +* docs: add 2.16 entry to changelog (Cherry-pick of #19589) ([#19597](https://github.com/pantsbuild/pants/pull/19597)) + +## 2.17.0rc3 (Aug 13, 2023) + +### User API Changes + +* Upgrade the default pip to v23.1.2. (Cherry-pick of #19538) ([#19541](https://github.com/pantsbuild/pants/pull/19541)) + +### Bug Fixes + +* Scala: support Enums in dependency inference (Cherry pick of #19588) ([#19593](https://github.com/pantsbuild/pants/pull/19593)) + +* Fix the new tool lockfile deprecation message. ([#19565](https://github.com/pantsbuild/pants/pull/19565)) + +* Fix golangci-lint runner script (Cherry-pick of #19015) ([#19473](https://github.com/pantsbuild/pants/pull/19473)) + +### Documentation + +* Initial draft of What's New for v2.17.x (Cherry-pick of #19168) ([#19595](https://github.com/pantsbuild/pants/pull/19595)) + +* Add ruff, adjust pyugprade, autoflake in docs (Cherry-pick of #19555) ([#19576](https://github.com/pantsbuild/pants/pull/19576)) + +* Catch google artifact registry gotcha (Cherry-pick of #19568) ([#19570](https://github.com/pantsbuild/pants/pull/19570)) + +* Stop referring to ~/.cache/pants/setup in CI docs (Cherry-pick of #19554) ([#19561](https://github.com/pantsbuild/pants/pull/19561)) + +* Visibility: documentation fixes and clarifications. (Cherry-pick of #19438) ([#19494](https://github.com/pantsbuild/pants/pull/19494)) + +## 2.17.0rc2 (Jul 14, 2023) + +### Bug Fixes + +* Visibility: fix issue with using target type in verbose rule selector. (Cherry-pick of #19437) ([#19456](https://github.com/pantsbuild/pants/pull/19456)) + +* Use the "package_name" variable to fix an UnboundLocalError. (Cherry-pick of #19433) ([#19453](https://github.com/pantsbuild/pants/pull/19453)) + +* Fix helm documentation example (Cherry-pick of #19271) ([#19313](https://github.com/pantsbuild/pants/pull/19313)) + +### Documentation + +* Tweak getting-help docs (Cherry-pick of #19418) ([#19419](https://github.com/pantsbuild/pants/pull/19419)) + +* Refine `run_shell_command` docs (Cherry-pick of #19413) ([#19421](https://github.com/pantsbuild/pants/pull/19421)) + +* Add a sponsorships page to the docsite. (Cherry-pick of #19412) ([#19416](https://github.com/pantsbuild/pants/pull/19416)) + +* Get doc titles from the in-repo markdown files (Cherry-pick of #19311) ([#19321](https://github.com/pantsbuild/pants/pull/19321)) + +* docs: layout tweak of caching info, remove toolchain :( and additional info about bazel-remote-cache (Cherry-pick of #19299) ([#19329](https://github.com/pantsbuild/pants/pull/19329)) + +## 2.17.0rc1 (Jun 08, 2023) + +### Plugin API Changes + +* Deprecate using `PythonBinary` (Cherry-pick of #19209) ([#19222](https://github.com/pantsbuild/pants/pull/19222)) + +### Bug Fixes + +* Improve handling of additional files in Helm unit tests (Cherry-pick of #19263) ([#19268](https://github.com/pantsbuild/pants/pull/19268)) + +* Add taplo to the release (Cherry-pick of #19258) ([#19259](https://github.com/pantsbuild/pants/pull/19259)) + +* Handle from foo import * wildcard imports in Rust dep inference parser (Cherry-pick of #19249) ([#19255](https://github.com/pantsbuild/pants/pull/19255)) + +* Fix secondary ownership warning semantics (Cherry-pick of #19191) ([#19224](https://github.com/pantsbuild/pants/pull/19224)) + +## 2.17.0rc0 (Jun 01, 2023) + +### User API Changes + +* Deprecate the `version/extra_requirements` options on python tools. (Cherry-pick of #19204) ([#19211](https://github.com/pantsbuild/pants/pull/19211)) + +* Terraform: Hashes for MacOS binaries have changed (Cherry-pick of #19004) ([#19136](https://github.com/pantsbuild/pants/pull/19136)) + +* Implement layout="zip" for Lambda/GCF, deprecating lambdex (Cherry-pick of #19076) ([#19120](https://github.com/pantsbuild/pants/pull/19120)) + +* Deprecate `[mypy].extra_type_stubs` and its lockfile. (Cherry-pick of #19084) ([#19087](https://github.com/pantsbuild/pants/pull/19087)) + +* Bring the tool `--export` option deprecation forward. (Cherry-pick of #19079) ([#19083](https://github.com/pantsbuild/pants/pull/19083)) + +### Bug Fixes + +* Discover Scala REPL main class and coordinates (Cherry-pick of #19189) ([#19203](https://github.com/pantsbuild/pants/pull/19203)) + +* Scrub the Pyenv install dir before attempting an install. (Cherry-pick of #19193) ([#19197](https://github.com/pantsbuild/pants/pull/19197)) + +* Avoid extra `.` in `from .. import` parent imports in Rust Python dep inference (Cherry-pick of #19175) ([#19177](https://github.com/pantsbuild/pants/pull/19177)) + +* Don't try and garbage collect tempfiles (Cherry-pick of #19103) ([#19113](https://github.com/pantsbuild/pants/pull/19113)) + +* If a shebang already exists when adding a preamble, preserve it. (Cherry-pick of #19133) ([#19138](https://github.com/pantsbuild/pants/pull/19138)) + +* Workaround `botocore` bug in S3 URL Handler backend (Cherry-pick of #19056) ([#19111](https://github.com/pantsbuild/pants/pull/19111)) + +### Documentation + +* Add `tobni` to Maintainers (Cherry-pick of #19195) ([#19207](https://github.com/pantsbuild/pants/pull/19207)) + +* Adjust FaaS docs for `layout = "zip"` (Cherry-pick of #19180) ([#19198](https://github.com/pantsbuild/pants/pull/19198)) + +* Add `botocore-a-la-carte` reference to `s3` URL Handler (Cherry-pick of #19055) ([#19109](https://github.com/pantsbuild/pants/pull/19109)) + +* add bazel-remote to list of compatible remote caches (Cherry-pick of #19041) ([#19115](https://github.com/pantsbuild/pants/pull/19115)) + +* Fix docs link to `pants_from_sources` script. (Cherry-pick of #19088) ([#19091](https://github.com/pantsbuild/pants/pull/19091)) + +## 2.17.0a1 (May 19, 2023) + +Due to infrastructure issues, `2.17.0a1` is a second attempt at publishing `2.17.0a0`. + +## 2.17.0a0 (May 18, 2023) + +NOTE: `2.17.0a0` was not released to PyPI due to infrastructure issues. + +### New Features + +* Add a workunit logging plugin ([#18984](https://github.com/pantsbuild/pants/pull/18984)) + +* javascript: Add `yarn@v1` support ([#18928](https://github.com/pantsbuild/pants/pull/18928)) + +* javascript: Support Node.js subpath imports ([#18934](https://github.com/pantsbuild/pants/pull/18934)) + +* Add Taplo toml formatter ([#18865](https://github.com/pantsbuild/pants/pull/18865)) + +* Include the Pants native client in released wheels ([#18957](https://github.com/pantsbuild/pants/pull/18957)) + +* Extract Python dependencies in an intrinsic ([#18854](https://github.com/pantsbuild/pants/pull/18854)) + +### User API Changes + +* Do not publish wheels for all SHAs, and publish to PyPI from Github Actions. ([#19028](https://github.com/pantsbuild/pants/pull/19028)) + +* Support Python requirement target addrs in tool requirements. ([#19014](https://github.com/pantsbuild/pants/pull/19014)) + +* javascript: Add an explicit `npm_distribution` target instead of coupling to `node_package` ([#18925](https://github.com/pantsbuild/pants/pull/18925)) + +* Shorten the deprecation for `export` without `--resolve`. ([#19000](https://github.com/pantsbuild/pants/pull/19000)) + +* Upgrade Pex to 2.1.137. ([#19003](https://github.com/pantsbuild/pants/pull/19003)) + +* Remove the underlying implementation of `anonymous-telemetry` ([#18952](https://github.com/pantsbuild/pants/pull/18952)) + +### Plugin API Changes + +* Port Django migrations inference away from `PythonDependencyVisitorRequest` ([#19008](https://github.com/pantsbuild/pants/pull/19008)) + +* fmtrequest -> abstractfmtrequest ([#18935](https://github.com/pantsbuild/pants/pull/18935)) + +### Bug Fixes + +* Use `{bin_name()} run` as `$0` in `run_shell_command` ([#19020](https://github.com/pantsbuild/pants/pull/19020)) + +* Make `DigestSubset` symlink-aware ([#18963](https://github.com/pantsbuild/pants/pull/18963)) + +* javascript: Do not add literal {chroot} to pnpm cache path ([#18921](https://github.com/pantsbuild/pants/pull/18921)) + +### Documentation + +* Clarify how to set $0 properly in `run_in_shell_command` ([#19019](https://github.com/pantsbuild/pants/pull/19019)) + +* Docs tweaks for 2.16.x ([#19009](https://github.com/pantsbuild/pants/pull/19009)) + +* Fix example `first_party_dependency_version_scheme` in docs ([#18993](https://github.com/pantsbuild/pants/pull/18993)) + +## 2.17.0.dev5 (May 08, 2023) + +### New Features + +* javascript: Implement dependency inference opt-out and improve resilience ([#18931](https://github.com/pantsbuild/pants/pull/18931)) + +* javascript: Add support for the pnpm package manager ([#18864](https://github.com/pantsbuild/pants/pull/18864)) + +* Eagerly clean running nodes rather than interrupting them. ([#18855](https://github.com/pantsbuild/pants/pull/18855)) + +* javascript: Nodejs tests batch support ([#18742](https://github.com/pantsbuild/pants/pull/18742)) + +* New API type: `CurrentExecutingGoals`. ([#18788](https://github.com/pantsbuild/pants/pull/18788)) + +### User API Changes + +* javascript: Support `package` goal in `node_build_script` target ([#18926](https://github.com/pantsbuild/pants/pull/18926)) + +* Deprecate running Pants outside scie-pants. ([#18833](https://github.com/pantsbuild/pants/pull/18833)) + +* Upgrade Pex to 2.1.135. ([#18876](https://github.com/pantsbuild/pants/pull/18876)) + +### Plugin API Changes + +* Remove redundant PythonToolBase/JvmToolBase features. ([#18805](https://github.com/pantsbuild/pants/pull/18805)) + +### Bug Fixes + +* Ensure packaged artefacts are fully replaced in dist/ ([#18930](https://github.com/pantsbuild/pants/pull/18930)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* Use a set when calculating resolve names ([#18939](https://github.com/pantsbuild/pants/pull/18939)) + +* javascript: Handle package.json placed at the root of the repository ([#18919](https://github.com/pantsbuild/pants/pull/18919)) + +* Actually run deprecated targets fixer ([#18860](https://github.com/pantsbuild/pants/pull/18860)) + +* Remove existing entry if any when materialising symlink ([#18873](https://github.com/pantsbuild/pants/pull/18873)) + +* Ensure non-ambiguous args/env vars injection into PEXes ([#18861](https://github.com/pantsbuild/pants/pull/18861)) + +* Handle workdir="."/default properly in run_shell_command ([#18840](https://github.com/pantsbuild/pants/pull/18840)) + +* Write adhoc_tool(stdout/stderr="...") relative to workdir, support absolute paths ([#18814](https://github.com/pantsbuild/pants/pull/18814)) + +* Patch `StreamingWorkunitContext.get_expanded_specs()`. ([#18713](https://github.com/pantsbuild/pants/pull/18713)) + +* help backends: Only list enabled experimental backends unless advanced help. ([#18821](https://github.com/pantsbuild/pants/pull/18821)) + +* Use build root as workdir for shell_command(workdir="") ([#18813](https://github.com/pantsbuild/pants/pull/18813)) + +* Include `pants.backend.url_handlers.s3` in pants distribution. ([#18826](https://github.com/pantsbuild/pants/pull/18826)) + +### Performance + +* Optimize `Target` and `FieldSet` operations ([#18917](https://github.com/pantsbuild/pants/pull/18917)) + +* Triage some noqa: PNT30 await-in-loops ([#18831](https://github.com/pantsbuild/pants/pull/18831)) + +### Documentation + +* Update the identity of the response team for CoC violation reporting. ([#16410](https://github.com/pantsbuild/pants/pull/16410)) + +* Fix adhoc output_... example, document run_shell_command workdir changes ([#18894](https://github.com/pantsbuild/pants/pull/18894)) + +* Add missing backtick in help string ([#18907](https://github.com/pantsbuild/pants/pull/18907)) + +* Add Salesforce to the users list ([#18891](https://github.com/pantsbuild/pants/pull/18891)) + +* update troubleshooting document about self-hosted action runner ([#18900](https://github.com/pantsbuild/pants/pull/18900)) + +* Credit the Works on ARM program for our CI resources. ([#18892](https://github.com/pantsbuild/pants/pull/18892)) + +* feat: update installation.md ([#18836](https://github.com/pantsbuild/pants/pull/18836)) + +* Remove reference to readme.com as the way to edit documentation ([#18863](https://github.com/pantsbuild/pants/pull/18863)) + +* Fix library name typo in third party example ([#18862](https://github.com/pantsbuild/pants/pull/18862)) + +* Update mypy and pytest documentation to refer to install_from_resolve ([#18791](https://github.com/pantsbuild/pants/pull/18791)) + +* Include `symbols` as topic in usage help. ([#18825](https://github.com/pantsbuild/pants/pull/18825)) + +* docs: reorder contributor steps, rustup is required for git hooks install to work smoothly ([#18828](https://github.com/pantsbuild/pants/pull/18828)) + +## 2.17.0.dev4 (Apr 23, 2023) + +### New Features + +* javascript: Manage `npm` version with corepack ([#18748](https://github.com/pantsbuild/pants/pull/18748)) + +* `python_distribution` editable installs in exports ([#18639](https://github.com/pantsbuild/pants/pull/18639)) + +### User API Changes + +* Default to using the entire tool lockfile. ([#18793](https://github.com/pantsbuild/pants/pull/18793)) + +* Upgrade Pex to 2.1.134. ([#18785](https://github.com/pantsbuild/pants/pull/18785)) + +* Use the resolve's ICs for tools. ([#18776](https://github.com/pantsbuild/pants/pull/18776)) + +* Use Self backport in `BinaryPath` factory method. ([#18763](https://github.com/pantsbuild/pants/pull/18763)) + +* Deprecate "Secondary Ownership" semantics ([#18737](https://github.com/pantsbuild/pants/pull/18737)) + +* Expand versions range for `ruff` + upgrade it ([#18707](https://github.com/pantsbuild/pants/pull/18707)) + +### Plugin API Changes + +* Allow `BinaryPaths` to close over their type. ([#18760](https://github.com/pantsbuild/pants/pull/18760)) + +* Set a central default ICs for tools. ([#18714](https://github.com/pantsbuild/pants/pull/18714)) + +### Bug Fixes + +* The `OverridesField.compute_value()` must return a hashable value. ([#18787](https://github.com/pantsbuild/pants/pull/18787)) + +* Dedup graph errors. ([#18770](https://github.com/pantsbuild/pants/pull/18770)) + +* Flush metadata to disk before renaming immutable store files ([#18768](https://github.com/pantsbuild/pants/pull/18768)) + +* Clear FSDB materialization cache when `remove`ing a file ([#18747](https://github.com/pantsbuild/pants/pull/18747)) + +* Use address as stable key when batching field sets in `lint`/`test` ([#18725](https://github.com/pantsbuild/pants/pull/18725)) + +* Fix `repr` for `Field`s that don't define `default`. ([#18719](https://github.com/pantsbuild/pants/pull/18719)) + +* Add `ruff` lint rules ([#18716](https://github.com/pantsbuild/pants/pull/18716)) + +* javascript: Use binary shims in nodejs sandboxes ([#18682](https://github.com/pantsbuild/pants/pull/18682)) + +### Documentation + +* Improve error location for invalid targets/target fields. ([#18366](https://github.com/pantsbuild/pants/pull/18366)) + +* Add info on how to configure Docker Desktop for using `docker_environment` ([#18786](https://github.com/pantsbuild/pants/pull/18786)) + +* Update linter documentation to refer to `install_from_resolve` ([#18781](https://github.com/pantsbuild/pants/pull/18781)) + +* docs: Fix typo on requirements-overrides code snippet ([#18750](https://github.com/pantsbuild/pants/pull/18750)) + +* Edit Python publishing docs for clarity. ([#18718](https://github.com/pantsbuild/pants/pull/18718)) + +## 2.17.0.dev3 (Apr 10, 2023) + +### New Features + +* Helm: Add support for DNS lookups in Chart templates ([#18670](https://github.com/pantsbuild/pants/pull/18670)) + +* Include global Git ignore file and `.git/info/exclude` in `pants_ignore` to ignore for file watching ([#18649](https://github.com/pantsbuild/pants/pull/18649)) + +### User API Changes + +* Remove deprecated default ICs. ([#18627](https://github.com/pantsbuild/pants/pull/18627)) + +### Plugin API Changes + +* Move/Rename: `goals/setup_py.py` -> `{util_rules,goals}/package_dists.py` + `subsystems/setup_py_generation.py` ([#18702](https://github.com/pantsbuild/pants/pull/18702)) + +* Deprecate some `Request` types in favor of `Get()` with only one arg ([#18655](https://github.com/pantsbuild/pants/pull/18655)) + +* Add support for `Get(MyType)` syntax with no input args ([#18648](https://github.com/pantsbuild/pants/pull/18648)) + +### Bug fixes + +* Adds a fully-qualified path to a Python interpreter for `pex_binary` `RunRequest`s ([#18699](https://github.com/pantsbuild/pants/pull/18699)) + +* Remove implicit conversion from `std::io::Error` to `StoreError` ([#18696](https://github.com/pantsbuild/pants/pull/18696)) + +* Add timeout to remote store calls, and adjust name of cache timeout. ([#18695](https://github.com/pantsbuild/pants/pull/18695)) + +* Makes `adhoc_tool` actually respect the `extra_env_vars` field; adds tests ([#18692](https://github.com/pantsbuild/pants/pull/18692)) + +* doc: Describe relevant error modes during rule compilation ([#18663](https://github.com/pantsbuild/pants/pull/18663)) + +* Bump minimum supported version of Pex to v2.1.129. ([#18678](https://github.com/pantsbuild/pants/pull/18678)) + +* Fix JVM resource JAR creation on older Mac OSes ([#18673](https://github.com/pantsbuild/pants/pull/18673)) + +* javascript: Do not read none mapped package.json files in javascript rules ([#18523](https://github.com/pantsbuild/pants/pull/18523)) + +### Documentation + +* Add PEP 621 pyproject.toml file docs ([#18672](https://github.com/pantsbuild/pants/pull/18672)) + +* Document AWS CDK issue that multiple users have encountered. ([#18656](https://github.com/pantsbuild/pants/pull/18656)) + +* Error when goals used without relevant backends activated ([#18420](https://github.com/pantsbuild/pants/pull/18420)) + +* Improve lockfile consumption error message. ([#18638](https://github.com/pantsbuild/pants/pull/18638)) + +* Remove a python-specific tip from the general prereqs page. ([#18637](https://github.com/pantsbuild/pants/pull/18637)) + +* Make UUID message clearer ([#18561](https://github.com/pantsbuild/pants/pull/18561)) + +## 2.17.0.dev2 (Mar 31, 2023) + +### New Features + +* javascript: Test goal with package manager installed test runner support ([#18554](https://github.com/pantsbuild/pants/pull/18554)) + +* expose PANTS_VERSION and make it string-comparable ([#18573](https://github.com/pantsbuild/pants/pull/18573)) + +### User API Changes + +* Upgrade Pex to 2.1.131. ([#18626](https://github.com/pantsbuild/pants/pull/18626)) + +### Bug fixes + +* Ensure that sandboxed processes exit before their sandboxes are cleaned up ([#18632](https://github.com/pantsbuild/pants/pull/18632)) + +* Plumb entire lockfile/internal only code through `create_pex_from_targets` ([#18622](https://github.com/pantsbuild/pants/pull/18622)) + +* narrow pex_binary files warning ([#18619](https://github.com/pantsbuild/pants/pull/18619)) + +* Fix PexPEX invocations ([#18610](https://github.com/pantsbuild/pants/pull/18610)) + +* Improve debug information for docker auth, and expose an environment variable. ([#18599](https://github.com/pantsbuild/pants/pull/18599)) + +### Performance + +* Only materialize immutable files once per process ([#18600](https://github.com/pantsbuild/pants/pull/18600)) + +### Documentation + +* Fix a string that should have been an f-string ([#18608](https://github.com/pantsbuild/pants/pull/18608)) + +* Fix `./pants` -> `pants` in some docs and help strings. ([#18596](https://github.com/pantsbuild/pants/pull/18596)) + +## 2.17.0.dev1 (Mar 24, 2023) + +### New Features + +* engine: add an option to clear the destination directory when writing digest to disk ([#18534](https://github.com/pantsbuild/pants/pull/18534)) + +* javascript: NodeJS bootstrapping via binary paths, PATH, asdf or nvm ([#18520](https://github.com/pantsbuild/pants/pull/18520)) + +* javascript: Initial NPM support ([#18326](https://github.com/pantsbuild/pants/pull/18326)) + +* Always provide Python-for-Pants-scripts ([#18433](https://github.com/pantsbuild/pants/pull/18433)) + +### User API Changes + +* Upgrade Pex to 2.1.130. ([#18576](https://github.com/pantsbuild/pants/pull/18576)) + +* Deprecate old-style custom tool lockfiles. ([#18494](https://github.com/pantsbuild/pants/pull/18494)) + +* Let a user resolve shadow a tool lockfile of the same name ([#18481](https://github.com/pantsbuild/pants/pull/18481)) + +### Bug fixes + +* Ensure that a symlinked exported venv exists and is valid. ([#18575](https://github.com/pantsbuild/pants/pull/18575)) + +* Fail fast for attempts to use `test --debug` with a docker environment ([#18560](https://github.com/pantsbuild/pants/pull/18560)) + +* Declare ruff outputs as files. ([#18551](https://github.com/pantsbuild/pants/pull/18551)) + +* Add support for Docker registry auth ([#18541](https://github.com/pantsbuild/pants/pull/18541)) + +* Fix Poetry req synthesis for URLs with markers. ([#18535](https://github.com/pantsbuild/pants/pull/18535)) + +* Re-enable hardlinking using `fclonefileat` on macOS. ([#18501](https://github.com/pantsbuild/pants/pull/18501)) + +### Performance + +* Materialize "large" files in a new store location and hardlink them in sandboxes ([#18153](https://github.com/pantsbuild/pants/pull/18153)) + +* Finish parallelizing materialization of Process inputs ([#18469](https://github.com/pantsbuild/pants/pull/18469)) + +### Documentation + +* First pass at `adhoc_tool` documentation ([#18531](https://github.com/pantsbuild/pants/pull/18531)) + +* Add Tobias Nilsson to team page ([#18571](https://github.com/pantsbuild/pants/pull/18571)) + +* docs: fix an f-string in help ([#18539](https://github.com/pantsbuild/pants/pull/18539)) + +* Clarify that `experimental_` shell functions are deprecated and replaced ([#18529](https://github.com/pantsbuild/pants/pull/18529)) + +* Update docs on running pants from sources with scie-pants. ([#18513](https://github.com/pantsbuild/pants/pull/18513)) + +* Add ExoFlare to user list. ([#18496](https://github.com/pantsbuild/pants/pull/18496)) + +* Fix malformed pantsbuild/example-python link in documentation ([#18484](https://github.com/pantsbuild/pants/pull/18484)) + +* update scie-jump cache directory reference ([#18485](https://github.com/pantsbuild/pants/pull/18485)) + +* Expand lockfile documentation to its own page. ([#18471](https://github.com/pantsbuild/pants/pull/18471)) + +## 2.17.0.dev0 (Mar 10, 2023) + +### New Features + +* Expose environment information on process metadata ([#18458](https://github.com/pantsbuild/pants/pull/18458)) + +* Support running `pants` from anywhere in the project. ([#18412](https://github.com/pantsbuild/pants/pull/18412)) + +### User API Changes + +* Audit and update requirements for Python tools. ([#18431](https://github.com/pantsbuild/pants/pull/18431)) + +* Upgrade Pex to 2.1.128. ([#18453](https://github.com/pantsbuild/pants/pull/18453)) + +### Bug fixes + +* Preserve environment variables in `pantsd` to allow Docker auth. ([#18465](https://github.com/pantsbuild/pants/pull/18465)) + +* Only expose the equiv of `from typing import *` in prelude files ([#18452](https://github.com/pantsbuild/pants/pull/18452)) + +* Support type hints in prelude files. ([#18442](https://github.com/pantsbuild/pants/pull/18442)) + +* Synthesized lockfile targets should never err on missing lockfiles. ([#18406](https://github.com/pantsbuild/pants/pull/18406)) + +* Fixes to visualisations for xdot ([#18421](https://github.com/pantsbuild/pants/pull/18421)) diff --git a/versioned_docs/version-2.20/notes/2.18.x.md b/versioned_docs/version-2.20/notes/2.18.x.md new file mode 100644 index 000000000..cef26f56f --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.18.x.md @@ -0,0 +1,206 @@ +# 2.18.x Release Series + +❗❗❗ This project is no longer being released via PyPI, and is instead released via GitHub Releases. See https://github.com/pantsbuild/pants/releases + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/docs/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/docs/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- The improvements to AWS Lambda and Google Cloud Function support in 2.17 have continued in 2.18, including simpler configuration and support for AWS Lambda Layers. +- Many more options can now be controlled when building Docker images. +- Significant feature work and bug fixes to "deploy" backends like Helm and Terraform. + +Keep reading to see the details and what's also included. + +### Overall + +[The `pants` launcher binary](https://www.pantsbuild.org/v2.18/docs/installation) is now **required** to run Pants. It must be version 0.10.0 or greater: run `PANTS_BOOTSTRAP_VERSION=report pants` to check and `SCIE_BOOT=update pants` to upgrade to the latest. Pants 2.18 and later are not distributed via PyPI, and thus the launcher is required to coordinate downloading the appropriate versions from GitHub Releases. + +[The `[cli.alias]` section](https://www.pantsbuild.org/v2.18/docs/reference-cli) of `pants.toml` now supports defining flag-like aliases. For example: `--all-changed = "--changed-since=HEAD --changed-dependents=transitive"`. + +[The `paths` goal](https://www.pantsbuild.org/v2.18/docs/reference-paths) now supports passing groups of targets to `--from` and/or `--to`. + +The `help` goal now supports showing help for an environment variable. For example: `pants help PANTS_FIX_ONLY`. + +Additional bug fixes: + +- The client now detects changes in pants configuration that require restarting the pants daemon. +- Sequences of goals that mutate files on disk and then immediately re-read them now no longer fail spuriously if the second goal happens faster than the OS file-change notification is received. For instance, `pants fix lint ::` would sometimes run the `lint` goal on the files before the `fix` changes were applied. +- More reliable detection of when optimised hard-linking can be used for creating sandboxes. For instance, no longer hitting errors when a single device is mounted multiple times. + +The deprecation for referring to a "secondary" owner target via the file name has expired, and so this is no longer supported. For example, if `path/to/main.py` is the entry point of the `path/to:binary` `pex_binary` target, an invocation like `pants package path/to/main.py` must now use the target address instead: `pants package path/to:binary`. + +### BUILD files + +Several bug fixes: + +- Better error messages when a `BUILD` file refers to an unknown value. +- `__defaults__` can now be used in the same `BUILD` file as [environment targets](https://www.pantsbuild.org/v2.18/docs/environments) like `local_environment`. + +### Performance + +Memory usage has been reduced, particularly for the Go backend. + +A best-effort limit has been placed on the number of open cache file handles (approximately 1000), reducing the need for `ulimit` adjustments. + +### Remote caching/execution + +Remote caching using the gRPC remote execution API now supports mTLS, via the new [`remote_client_certs_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_certs_path) and [`remote_client_key_path`](https://www.pantsbuild.org/v2.18/docs/reference-global#remote_client_key_path) options in the `[GLOBAL]` section. + +### Backends + +Several backends that were intended to be included in previous releases were accidentally missing from the released pants artifacts, these are now available in 2.18: + +- `pants.backend.experimental.openapi.codegen.java`: Enables generating Java from OpenAPI. +- `pants.backend.experimental.python.framework.django`: Enables better support for projects using Django. +- `pants.backend.experimental.swift`: Enables core Swift support. +- `pants.backend.python.providers.experimental.pyenv.custom_install`: Enables customising how the pyenv provider builds a Python interpreter. + +In addition, the [documentation of backends](https://www.pantsbuild.org/v2.18/docs/enabling-backends) now lists all backends, including preview ones that were not previously advertised. Please go check it out, try backends relevant to you and let us know how they go for your use cases, [report bugs](https://www.pantsbuild.org/v2.18/docs/getting-help) and/or [submit fixes](https://www.pantsbuild.org/v2.18/docs/contributor-overview)! + +#### Docker + +More options can be passed when building images (see and docs for more details: + +- on [the `[docker]` subsystem](https://www.pantsbuild.org/v2.18/docs/reference-docker): `build_hosts`, `build_no_cache` +- on [the `docker_image` target](https://www.pantsbuild.org/v2.18/docs/reference-docker_image): `build_network`, `build_platform`, `extra_build_hosts` + +Additional features and bug fixes: + +- Registries with the same address no longer silently overwrite each other, and instead now emit an error. +- [The `secrets` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codesecretscode) now supports expanding `~` to refer to the current user's home directory. +- [The `image_tags` field](https://www.pantsbuild.org/v2.18/docs/reference-docker_image#codeimage_tagscode) now has an explanatory error if it is incorrectly empty. + +#### Helm + +[The `helm_unittest_tests` target](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-unit-tests) has had several improvements: + +- support for being added by the `tailor` goal (this can be disabled with the new `[helm].tailor_unittests` option) +- support for [snapshot testing](https://www.pantsbuild.org/v2.18/docs/helm-overview#snapshot-testing) via the new `generate-snapshots` goal + +[The new `pants.backend.experimental.helm.check.kubeconform` backend](https://www.pantsbuild.org/v2.18/docs/helm-kubeconform) allows running Kubeconform on `helm_chart` and `helm_deployment` targets as part of the `check` goal. + +**Deprecations**: + +- The `helm_deployment` target should now specify the [new `chart` field](https://www.pantsbuild.org/v2.18/docs/reference-helm_deployment#codechartcode) to explicitly indicate which chart is being deployed. +- The `create_namespace` field for `helm_deployment` will not be supported in future, use the passthrough argument `--create-namespace` instead. +- The `{env.VAR_NAME}` interpolation syntax some fields of `helm_deployment` has been replaced by the more [general `env` build file function](https://www.pantsbuild.org/v2.18/docs/targets#environment-variables); for instance `"text-{env.VAR_NAME}"` can become `f"text-{env('VAR_NAME')}"`. +- The `[helm].tailor` option has been renamed to [`tailor_charts`](https://www.pantsbuild.org/v2.18/docs/reference-helm#tailor_charts). + +Additional features and bug fixes: + +- Relative target addresses for `docker_image`s can be passed like `helm_deployment(values={"some_image": ":target-name"})`, and are expanded in the same way as non-relative addreses `path/to:target-name`. +- If the passthrough `--debug` argument is specified, like `pants experimental-deploy path/to:helm-deployment -- --debug`, that flag is now passed to all Helm invocations pants does. +- The Helm binary has been upgraded to 3.12.3 by default. +- [The new `version` field to `helm_chart`](https://www.pantsbuild.org/v2.18/docs/helm-overview#helm-chart-version) allows overriding the version in `Chart.yaml`. + + +#### JavaScript + +The `node_build_script` function now supports `extra_env_vars` to specify additional environment variables when executing. + +Node-based tools can now install from a user-provided 'resolve'/`package.json`, similar to Python tools. + +The dependency inference for JavaScript has been rewritten into Rust, and thus runs much faster. + +#### Python + +The functions-as-a-service (FaaS) backends, [`pants.backend.awslambda.python`](https://www.pantsbuild.org/v2.18/docs/awslambda-python) and [`pants.backend.google_cloud_function.python`](https://www.pantsbuild.org/v2.18/docs/google-cloud-function-python) have seen more improvements in 2.18: + +- Deprecation: the `python_awslambda` target has been renamed to `python_aws_lambda_function`. +- Deprecation: the `[lambdex].layout = "zip"` value in `pants.toml` is now the default, and the `[lambdex]` section should be removed. +- New: [the `python_aws_lambda_layer` target](https://www.pantsbuild.org/v2.18/docs/awslambda-python#building-a-lambda-layer) can be used to build Layers for AWS Lambda. +- New: the `runtime` field is no longer necessary when the interpreter constraints unambiguously refer to an entire single major version. For instance, with `[python].interpreter_constraints = ["==3.11.*"]`, one doesn't need to specify `runtime="python3.11"` to `python_aws_lambda_function` or `runtime="python311"` to `python_google_cloud_function`, as it will be inferred. +- New: for AWS Lambda targets, the `complete_platforms` argument now has default values provided by Pants, which gives more reliable builds, especially when building on a different platform than the AWS Lambda itself. This change also means that only one of the `complete_platforms` or `platforms` fields should be provided. + +The new, faster parser for dependency inference is now the default, so the `[python-infer].use_rust_parser` option can be removed from `pants.toml`, if it is being explicitly set to `true`. The old parser is deprecated and will be removed: follow the warnings in 2.17 to move to the new parser. + +The [new `pants.backend.experimental.python.typecheck.pytype` backend](https://www.pantsbuild.org/v2.18/docs/reference-pytype) allows running the `pytype` type checker as part of the `check` goal. + +Additional features and bug fixes: + +- The `tailor` goal now supports automatically creating `python_requirements` targets for in `pyproject.toml` files that follow [PEP 621 to specify dependencies](https://peps.python.org/pep-0621/#dependencies-optional-dependencies). +- Imports within a `with contextlib.suppress(ImportError): ...` construct are now considered weak imports. +- The global coverage report now correctly handles namespaced packages. +- `pex_binary` targets that consume `python_distribution` targets now work with just the distributions, not their transitive dependencies (the files that are used to build the distribution). +- Pants now emits an error if `isort` cannot read its configuration file (NB. `isort` itself emits warnings for this, but they would not be visible when running `isort` under the default Pants configuration). +- [The `pants.backend.python.typecheck.mypy` backend](https://www.pantsbuild.org/v2.18/docs/python-check-goal) is now more resilient to its cache being removed. + +Some deprecations have expired and the supporting code has been removed: + +- the "old style" tool lockfiles are no longer supported, and instead customising the versions/installation of tools like `black`, `mypy` and `pytest` should configure [a "normal" resolve](https://www.pantsbuild.org/v2.18/docs/python-lockfiles#lockfiles-for-tools) +- using `pants export` without a `--resolve` flag is no longer supported, always pass that flag + +#### Go + +Memory usage has been reduced. + +Go processes are now cached using the full version of the Go compiler (for example, `go1.20.6`) so that artifacts are not incorrectly reused between different patch versions. + +Building with coverage no longer has an exponential blow-up when preparing the build requests. + +#### JVM + +The deprecation for the `excludes` field on `jvm_artifact` has expired, use `exclusions` instead. + +[The coursier tool](https://www.pantsbuild.org/v2.18/docs/reference-coursier) now uses v2.1.6 by default, and, for this version, supports a native binary on ARM macOS (Apple Silicon). + +The `deploy_jar` target now supports [an `exclude_files` field](https://www.pantsbuild.org/v2.18/docs/reference-deploy_jar#codeexclude_filescode). + +#### NEW: Rust + +The new `pants.backend.experimental.rust` backend has been added, with support for using `rustfmt` to format Rust source files. + +#### Scala + +The [new `scala_artifact` target](https://www.pantsbuild.org/v2.18/docs/reference-scala_artifact) can be used to track third-party artifacts from Scala, with Pants then understanding how Scala artifacts include the Scala version in their coordinates. + +#### Shell + +The `shellcheck` binary for [the `pants.backend.shell.lint.shellcheck` backend](https://www.pantsbuild.org/v2.18/docs/shell#shellcheck-linter) is now fetched from `vscode-shellcheck`, and thus now supports AArch64 macOS (Apple Silicon) natively. + +The deprecations for the pre-2.16 target names have expired, and thus these have been removed: + +- `experimental_shell_command`: use `shell_command` +- `experimental_run_shell_command`: use `run_shell_command` + +#### Terraform + +The [new `terraform_deployment` target](https://www.pantsbuild.org/v2.18/docs/reference-terraform_deployment) allows configuring a `terraform_module` to be deployed with [the `experimental-deploy` goal](https://www.pantsbuild.org/v2.18/docs/reference-experimental-deploy). + +A new `pants.backend.experimental.terraform.lint.tfsec` backend has been added to run the `tfsec` linter as part of the `lint` goal. + +The `check` goal now runs `terraform init` to ensure modules are installed before validating. + +#### Visibility + +[The `pants.backend.experimental.visibility` backend](https://www.pantsbuild.org/v2.18/docs/validating-dependencies) is now also runs as a linter, such as when running `pants lint ::`, to report all visibility violations at one time. + +Visibility rules about dependencies in the root of the repository are now supported. + +### Plugin API Changes + +Pants no longer publishes wheels to PyPI. The only supported way to depend on pants itself is [the `pants_requirements` target](https://www.pantsbuild.org/v2.18/docs/reference-pants_requirements), which now supports a new `version_spec` field if one needs to depend on a different version of Pants than the currently executing one. + +The `include_special_cased_deps` flag (on `DependenciesRequest`, `TransitiveTargetsRequest`, and `CoarsenedTargetsRequest`) is replaced with `should_traverse_deps_predicate`. If set to `True`, use `should_traverse_deps_predicate=pants.engine.target.AlwaysTraverseDeps()` instead. See [#19272](https://github.com/pantsbuild/pants/pull/19272) and [#19387](https://github.com/pantsbuild/pants/pull/19387) for details. + +The `TestResult` `stdout` and `stderr` fields have been renamed to `stdout_bytes` and `stderr_bytes`, and store `bytes` instead of `str`, to handle non-UTF-8 data without crashing. + +Other changes: + +- Plugins can now declare additional requirements in a `requirements.txt` file next to `register.py`. +- Pants only supports running on Python 3.9 now. +- Named caches can now used digits in addition to lower-case letters and underscores. +- The `pants.core.goals.package.TraverseIfNotPackageTarget` type can be used with the new `should_traverse_deps_predicate` to treat packageable targets as "leaves" when finding dependencies; for instance, stopping at a `pex_binary` without also surfacing the `python_sources` that are used for it. + +The deprecations for many request types has expired (follow instructions in warnings in 2.17 to resolve), so they are now removed: `AllAssetTargetsRequest`, `AllTargetsRequest`, `BashBinaryRequest`, `CatBinaryRequest`, `CGoCompilerWrapperScriptRequest`, `ChmodBinaryRequest`, `DiffBinaryRequest`, `DjangoAppsRequest`, `DockerBinaryRequest`, `GitBinaryRequest`, `GunzipBinaryRequest`, `MkdirBinaryRequest`, `PythonBinary`, `ReadlinkBinaryRequest`, `TarBinaryRequest`, `UnzipBinaryRequest`, `ZipBinaryRequest`. + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/versioned_docs/version-2.20/notes/2.19.x.md b/versioned_docs/version-2.20/notes/2.19.x.md new file mode 100644 index 000000000..5db704aa4 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.19.x.md @@ -0,0 +1,170 @@ +# 2.19.x Release Series + +Pants 2 is a fast, scalable, user-friendly build system for codebases of all sizes. It's currently focused on Python, Go, Java, Scala, Kotlin, Shell, and Docker, with support for other languages and frameworks coming soon. + +Individuals and companies can now [sponsor Pants financially](https://www.pantsbuild.org/sponsorship). + +Pants is an open-source project that is not owned or controlled by any one company or organization, and does incur some expenses. These expenses are managed by Pants Build, a non-profit that was established for this purpose. This non-profit's only source of revenue is sponsorship by individuals and companies that use Pants. + +We offer [formal sponsorship tiers for companies](https://www.pantsbuild.org/sponsorship), as well as individual sponsorships via [GitHub](https://github.com/sponsors/pantsbuild). + +## What's New + +### Highlights + +- Test retries for flaky Python tests. +- Using the `parametrize` to set multiple fields at once when generating new groups of targets. +- `buildx` support in the Docker backend. +- New backends for running semgrep and openapi-format. + +Keep reading to see the details and what's also included. + +### Overall + +The `.pids/` internal directory is now under `.pants.d/` by default, rather that adjacent to it (this can be controlled via [the `[GLOBAL].pants_subprocessdir` option](https://www.pantsbuild.org/2.19/reference/global-options#pants_subprocessdir)). + +[The new `[system-binaries]` subsystem](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries) allows controlling where Pants searches for binaries like `bash`, `zip`, `tar` that is uses as part of normal operation. Set [the `system_binaries_paths`](https://www.pantsbuild.org/2.19/reference/subsystems/system-binaries#system_binary_paths) as appropriate, potentially using the `` special value. This can also be set on specific [environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) using the `system_binaries_system_binary_paths` field. + +Additional features and fixes: + +- New versions of [the `get-pants.sh` script](https://www.pantsbuild.org/2.19/docs/getting-started/installing-pants) install to `~/.local/bin`, not `~/bin`. +- Environment variables that aren't valid UTF-8 no longer cause Pants to crash (note, `PANTS_...` environment variables that Pants needs to read but aren't UTF-8 will be ignored). +- Reference documentation for subsystem options includes how to set them in `pants.toml`, in addition to the environment variable and CLI arguments. +- [Environments](https://www.pantsbuild.org/2.19/docs/using-pants/environments) are now more resilient to being (partially) defined via macros, although this is not recommended. +- [Docker environments](https://www.pantsbuild.org/2.19/reference/targets/docker_environment) can now pull public images without credentials, and can now handle docker images without Python. +- The `fix` goal now partitions files across multiple processes in a way that's more similar to the partitioning of the `lint` goal, which can work around some spurious linting failures. + +### BUILD files + +[The `parametrize` helper](https://www.pantsbuild.org/2.19/docs/using-pants/key-concepts/targets-and-build-files#field-default-values#parametrizing-targets) now supports parametrizing multiple fields together, in lock step. For instance: + +``` python +# Creates two targets: +# +# example:tests@parametrize=py2 +# example:tests@parametrize=py3 + +python_test( + name="tests", + source="tests.py", + **parametrize("py2", interpreter_constraints=["==2.7.*"], resolve="lock-a"), + **parametrize("py3", interpreter_constraints=[">=3.6,<3.7"], resolve="lock-b"), +) +``` + +In addition, `parametrize` can now be used with a single value (`field=parametrize("for-consistency")`), and now works on target generations in more cases (particularly those with "plugin" fields). + +### Performance + +Some processes are run with more consistent "color" configuration which may result in more cache hits: Pytest, Helm unittest and shunit2 processes now always run with colored output enabled. If [`[GLOBAL].colors`](https://www.pantsbuild.org/2.19/reference/global-options#colors) is not enabled, Pants removes the coloring before displaying. + +### Remote caching/execution + +Large files that need to be stored to a remote cache are now streamed to it directly from disk, in a way that should reduce overhead and increase concurrency ([#19711](https://github.com/pantsbuild/pants/pull/19711)). + +The deprecation has expired for the `[GLOBAL].remote_store_chunk_upload_timeout_seconds` and `[GLOBAL].remote_cache_read_timeout_millis` options. Use [`[GLOBAL].remote_store_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_store_rpc_timeout_millis) and [`[GLOBAL].remote_cache_rpc_timeout_millis`](https://www.pantsbuild.org/2.19/reference/global-options#remote_cache_rpc_timeout_millis) instead. + +### Backends + +#### Docker + +The [docker backend](https://www.pantsbuild.org/2.19/docs/docker) now has explicit [support for using `buildx`](https://www.pantsbuild.org/2.19/docs/docker#buildx-support) (and thus BuildKit), via the new [`use_buildx` option](https://www.pantsbuild.org/2.19/reference/subsystems/docker#use_buildx). This also allows adding few additional fields for [`docker_image` targets](https://www.pantsbuild.org/2.19/reference/targets/docker_image), for `buildx`-specific functionality: + +- [`cache_from` and `cache_to`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#cache_to) for using external cache storage backends +- [`build_platform`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#build_platform) for configuring multi-platform builds +- [`output`](https://www.pantsbuild.org/2.19/reference/targets/docker_image#output) to control how/where `buildx` outputs an image when running `pants package ::` + +#### JVM + +JVM lock-files are more reliable, handling [some cases](https://github.com/pantsbuild/pants/issues/20162) of Coursier not including dependencies when expected. + +Using [`shading_rules`](https://www.pantsbuild.org/2.19/reference/targets/deploy_jar#shading_rules) is now supported on `deploy_jar` targets defined in directories of the build root. + +##### Kotlin + +The Kotlin analyzer now runs using the Zulu JDK, to be able to run natively on Apple Silicon (arm64 macOS). + +##### Java + +Dependency inference for Java now supports code using recently added syntax like `sealed class` & `permits`, `switch` expressions and `yield`. + +##### Scala + +Scala 3 is now supported when using [the BSP in an IDE](https://www.pantsbuild.org/2.19/docs/jvm/java-and-scala#working-in-an-ide). + +#### OpenAPI + +[The new `pants.backend.experimental.openapi.lint.openapi_format` backend](https://www.pantsbuild.org/2.19/reference/subsystems/openapi-format) supports running [openapi-format](https://github.com/thim81/openapi-format) to format `openapi_...` targets. + +#### Protobuf + +[The `pants.backend.codegen.protobuf.python` backend](https://www.pantsbuild.org/2.19/docs/python/integrations/protobuf-and-grpc) now supports: + +- `protobuf_sources` targets that are part of multiple Python resolves, like `python_resolve=parametrize("first-resolve", "second-resolve")`. +- `[python-infer].ambiguity_resolution = "by_source_root"` to infer dependencies without warnings or errors in more cases. + +Version 24.4 of [the `protoc` compiler](https://www.pantsbuild.org/2.19/reference/subsystems/protoc) is included as a known version (but is not the default). It can be selected by setting `[protoc].version = "24.4"`. This version has native support for Apple Silicon (arm64 macOS). + +[Buf (`pants.backend.codegen.protobuf.lint.buf`)](https://www.pantsbuild.org/2.19/reference/subsystems/buf) now correctly ignores `buf.work.yaml`, `buf.lock`, `buf.gen.lock` when running as a linter. + +#### Python + +**Deprecation**: Using the `platforms` field on `pex_binary` is now deprecated. It is not a recommended way to build for platforms other than the local one, as it is a lossy abbreviation of the target platform and often leads to binaries that don't work. To replace this, either [use `complete_platforms` to continue cross-compiling](https://www.pantsbuild.org/2.19/docs/python/overview/pex#setting-the-target-platforms-for-a-pex) or use [an environment matching the target platform](https://www.pantsbuild.org/2.19/docs/using-pants/environments). + +Python tests can now be [attempted multiple times](https://www.pantsbuild.org/2.19/docs/using-pants/using-pants-in-ci#tip-automatically-retry-failed-tests), if they fail. This can help with limiting the impact of flaky tests. For instance, to require tests to fail three times before the overall `pants test` goal fails, set [`[test].attempts_default = 3`](https://www.pantsbuild.org/2.19/reference/goals/test#attempts_default). In this case, a very flaky test might fail on the first and second runs but finally pass on the third run, and thus the overall Pants invocation would pass. + +Pants now uses version 2.1.148 of the PEX CLI by default, which includes support for Python 3.12. To use Python 3.12, you will need to set [`[python].pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) to `23.2` or newer (or `latest`), and ensure all of your tools use resolves generated with this new version (Pants' built-in ones are not, yet). + +Python interpreters provided by ASDF are now searched by default, in addition those provided by pyenv and on the system `PATH`, by being included in the [`[python-bootstrap].search_path`](https://www.pantsbuild.org/2.19/reference/subsystems/python-bootstrap#search_path) option. + +Many more "groups" of PyPI dependencies have default module mappings that guide how an `import` statement in code matches particular `python_requirement`s. All packages from the `azure-...`, `django-...`, `google-cloud-...`, `opentelemetry-instrumentation-...`, `oslo-...` ecosystems are now matched to modules matching their usual conventions. In addition, packages starting with `python-...` now have that `python-` prefix removed by default: for instance, a package like `python-example-name` will be implicitly assumed to be imported like `import example_name`. [The value of any `module_mapping` field](https://www.pantsbuild.org/2.19/reference/targets/python_requirements#module_mapping) can thus be tweaked (hopefully simplified!). + +[The `[generate-lockfiles].diff` option](https://www.pantsbuild.org/2.19/reference/goals/generate-lockfiles#diff) is now `True` by default, so running `pants generate-lockfiles` now pretty-prints any differences in the dependencies and their versions. + +Additional features and fixes: + +- [Additional arguments](https://www.pantsbuild.org/2.19/reference/goals/repl#args) can be passed to the IPython REPL, like `pants repl --shell=ipython :: -- -i helloworld/main.py`. +- Additional arguments can be passed to the underlying PEX invocations when building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via the new [`pex3_venv_create_extra_args`](https://www.pantsbuild.org/2.19/reference/targets/python_aws_lambda_function#pex3_venv_create_extra_args) field. For instance, if dependencies have packaged files in unexpected locations, passing `pex3_venv_create_extra_args=["--collisions-ok"]` can side-step collision errors. +- The [`pip_version`](https://www.pantsbuild.org/2.19/reference/subsystems/python#pip_version) field no longer restricts the values, and so allows more flexibility when upgrading the PEX CLI if it supports newer Pip versions. +- Running tests or `pants run` a source file now make binaries provided by `python_requirement` available for execution as normal processes (for instance, using `subprocess.run(["name-of-binary", ...])`). +- The `PATH` environment variable can now be set using [`[subprocess-environment].env_vars`](https://www.pantsbuild.org/2.19/reference/subsystems/subprocess-environment#env_vars) +- Import statements within a `with contextlib.suppress(ImportError)` context are now weak, and so no longer warn if not provided by a dependency. +- Computing an aggregate coverage sandbox report is now more reliable in the presence of name collisions in files created via code-generation (including `relocated_files`). +- Pyright (`pants.backend.experimental.python.typecheck.pyright`) now runs with an appropriately initialised environment and so runs more reliably (especially in transient CI environments, where "named caches" might not be preserved). +- [Ruff (`pants.backend.experimental.python.lint.ruff`)](https://www.pantsbuild.org/2.19/reference/subsystems/ruff) now properly respects any `exclude` configuration from `ruff.toml` or `pyproject.toml`. + +The following code has been removed, because deprecations have expired: + +- Support for building FaaS artifacts ([AWS Lambda](https://www.pantsbuild.org/2.19/docs/python/integrations/aws-lambda), [Google Cloud Functions](https://www.pantsbuild.org/2.19/docs/python/integrations/google-cloud-functions)) via Lambdex has been fully replaced with the new `zip` layout: remove the `[lambdex]` section and its `layout` setting from `pants.toml`. +- Passing both `runtime` and `complete_platforms` to a FaaS target (`python_aws_lambda_function`, `python_google_cloud_function`) is now longer supported, as `complete_platforms` fully overrides `runtime`. +- Dependency inference now only supports running with the new Rust-based parser. That is, the `[python-infer].use_rust_parser` option cannot be disabled and is now unnecessary. + +#### NEW: Semgrep + +[The new `pants.backend.experimental.tools.semgrep` backend](https://www.pantsbuild.org/2.19/reference/subsystems/semgrep) supports running [Semgrep](https://semgrep.dev) as a local linter on all files that Pants knows about (any target with a `source` or `sources` field). Configuration files are automatically discovered. + +#### Shell + +[The `experimental_test_shell_command` target](https://www.pantsbuild.org/2.19/reference/targets/experimental_test_shell_command) now obeys its `environment` field, and thus runs the command within the specified environment instead of the host. + +#### Terraform + +The `check` goal runs `terraform validate` on [`terraform_module`s targets](https://www.pantsbuild.org/2.19/reference/targets/terraform_module) by default, again. For modules for which this doesn't work and/or isn't desirable, use [the new `skip_terraform_validate` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_module#skip_terraform_validate). (This restores the behaviour from Pants 2.17 and earlier, with the addition of the `skip` field, based on feedback about Pants 2.18.0 which switched to only validating `terraform_deployment`s.) + +[`terraform_deployment`'s `var_files` field](https://www.pantsbuild.org/2.19/reference/targets/terraform_deployment#var_files) now supports files in a different directory to the `root_module`. + +Transitive dependencies are now automatically included, in addition to direct dependencies. + +### Plugin API changes + +Processes, especially tests, can now be run with retries on failure using `ProcessWithRetries` ([#20378](https://github.com/pantsbuild/pants/issues/20378)). In addition, to support tests that have been retried multiple times, `TestResult.from_fallible_process_result` now accepts a tuple of multiple `FallibleProcessResult`s, instead of just one. ([#19760](https://github.com/pantsbuild/pants/pull/19760)). + +Some `@rule`s may now need to pass `canonical_name_suffix` in preparation for ["call by name"](https://github.com/pantsbuild/pants/issues/19730). ([#19755](https://github.com/pantsbuild/pants/pull/19755)) + +The new `TransitivelyExcludeDependenciesRequest` can be used to emulate transitive excludes (`!!
`). ([#20080](https://github.com/pantsbuild/pants/pull/20080)) + +The `TestResult.stdout` and `TestResult.stderr` fields are now removed, in favour of `stdout_bytes` and `stderr_bytes`. ([#19768](https://github.com/pantsbuild/pants/pull/19768)) + +## Full Changelog + +For the full changelog, see the individual GitHub Releases for this series: https://github.com/pantsbuild/pants/releases diff --git a/versioned_docs/version-2.20/notes/2.2.x.md b/versioned_docs/version-2.20/notes/2.2.x.md new file mode 100644 index 000000000..bd0c83037 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.2.x.md @@ -0,0 +1,257 @@ +# 2.2.x Stable Releases + +See https://www.pantsbuild.org/v2.2/docs/release-notes-2-2 for an overview of the changes in this release series. + +This is the first release to require having a Python 3.7 or 3.8 interpreter to run Pants. Run `curl -L -o ./pants +https://raw.githubusercontent.com/pantsbuild/setup/2f079cbe4fc6a1d9d87decba51f19d7689aee69e/pants` to update your +`./pants` script to choose the correct interpreter. + +## 2.2.4 (Jun 16, 2021) + +The fifth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.4rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12161](https://github.com/pantsbuild/pants/pull/12161)) + +## 2.2.3 (May 6, 2021) + +The fourth stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.3rc0 (Apr 29, 2021) + +### User API Changes + +* Revert deprecation of `interpreter_constraints` field for `pex_binary` and `python_awslambda` ([#11981](https://github.com/pantsbuild/pants/pull/11981)) + +## 2.2.2 (Apr 20, 2021) + +The third stable release of the `2.2.x` series, with no changes since the previous `rc`. + +## 2.2.2rc1 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11918](https://github.com/pantsbuild/pants/pull/11918)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11906](https://github.com/pantsbuild/pants/pull/11906)) + +## 2.2.2rc0 (April 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11881](https://github.com/pantsbuild/pants/pull/11881)) + +## 2.2.1 (Mar 18, 2021) + +The second stable release in the `2.2.x` series, with no changes since the previous rc. + +## 2.2.1rc2 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11725](https://github.com/pantsbuild/pants/pull/11725)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (cherrypick of #11711) ([#11714](https://github.com/pantsbuild/pants/pull/11714)) + +## 2.2.1rc1 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (Cherry-pick of #11673) ([#11676](https://github.com/pantsbuild/pants/pull/11676)) + +## 2.2.1rc0 (March 10, 2021) + +### Bug fixes + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11661](https://github.com/pantsbuild/pants/pull/11661)) + +* Fix MyPy to work by default with Python 3.9+ (Cherry-pick of #11537) ([#11542](https://github.com/pantsbuild/pants/pull/11542)) + +* Fix excessive mmap-ing in LMDB (cherrypick of #11513) ([#11516](https://github.com/pantsbuild/pants/pull/11516)) + +## 2.2.0 (Jan 20, 2021) + +The first stable release in the `2.2.x` series, with no changes since the previous `rc`! + +## 2.2.0rc2 (Jan 11, 2021) + +### Bug fixes + +* Fix `--opt` options in constraints.txt files erroring (#11407) ([#11425](https://github.com/pantsbuild/pants/pull/11425)) + +* Fix older versions of `tar` not working when creating an `archive` (#11413) ([#11419](https://github.com/pantsbuild/pants/pull/11419)) + +## 2.2.0rc1 (Dec 30, 2020) + +### Bug fixes + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +* Fix docstring deprecation warning for Bandit. ([#11395](https://github.com/pantsbuild/pants/pull/11395)) + +## 2.2.0rc0 (Dec 28, 2020) + +### New Features + +* Infer imports of the style `__import__("string_literal")`. ([#11326](https://github.com/pantsbuild/pants/pull/11326)) + +* Make the number of threads used to run @rules in the Engine configurable. ([#11325](https://github.com/pantsbuild/pants/pull/11325)) + +* Expose `--resolver-version` to support using the new pip resolver, deprecate `--cache-ttl`. ([#11349](https://github.com/pantsbuild/pants/pull/11349)) + +### User API Changes + +* Bump default version of Pytest to 6.2.x ([#11381](https://github.com/pantsbuild/pants/pull/11381)) + +* Upgrade packaging from 20.7 to 20.8 ([#11343](https://github.com/pantsbuild/pants/pull/11343)) + +* Deprecate the `sources` field for `pex_binary` and `python_awslambda` ([#11332](https://github.com/pantsbuild/pants/pull/11332)) + +### Plugin API Changes + +* Deprecate Subsystems as global singletons ([#11388](https://github.com/pantsbuild/pants/pull/11388)) + +* Add shortcut public API method to return cumulative timings data. ([#11385](https://github.com/pantsbuild/pants/pull/11385)) + +* Remove unused get_critical_path_timings() API ([#11387](https://github.com/pantsbuild/pants/pull/11387)) + +* Deprecate not setting `help` for Targets, Fields, and Subsystems ([#11380](https://github.com/pantsbuild/pants/pull/11380)) + +* RunTracker: add goals property ([#11382](https://github.com/pantsbuild/pants/pull/11382)) + +### Bug fixes + +* Explicitly flush stdio in the nailgun client. ([#11383](https://github.com/pantsbuild/pants/pull/11383)) + +* Ignore exit on the nailgun Client output_stream. ([#11358](https://github.com/pantsbuild/pants/pull/11358)) + +### Performance + +* avoid unnecessary copy in cache code path ([#11348](https://github.com/pantsbuild/pants/pull/11348)) + +* use Bytes instead of Vec for protobuf binary fields ([#11342](https://github.com/pantsbuild/pants/pull/11342)) + +* refactor all gRPC usages to use Tonic instead of grpcio ([#11307](https://github.com/pantsbuild/pants/pull/11307)) + +* fs.Snapshot is declared in Rust ([#11328](https://github.com/pantsbuild/pants/pull/11328)) + +* Interrupt Graph tasks on Ctrl+C ([#11322](https://github.com/pantsbuild/pants/pull/11322)) + +### Documentation + +* Pin references to docs to the current version ([#11369](https://github.com/pantsbuild/pants/pull/11369)) + +* Generate docs references for target types ([#11340](https://github.com/pantsbuild/pants/pull/11340)) + +## 2.2.0.dev2 (Dec 16, 2020) + +### Plugin API Changes + +* Upgrade packaging from 20.4 to 20.7 ([#11302](https://github.com/pantsbuild/pants/pull/11302)) + +* Update default values for run tracker and streaming work unit handlers to more commonly used values. ([#11292](https://github.com/pantsbuild/pants/pull/11292)) + +### Bug fixes + +* Fix filtering of log messages generated in native code. ([#11313](https://github.com/pantsbuild/pants/pull/11313)) + +* Upgrade to Pex 2.1.24 to fix macOS Big Sur. ([#11312](https://github.com/pantsbuild/pants/pull/11312)) + +* Clean the graph speculatively, and cancel nodes when interest is lost ([#11308](https://github.com/pantsbuild/pants/pull/11308)) + +* Implement native Process cache scoping to fix --test-force ([#11291](https://github.com/pantsbuild/pants/pull/11291)) + +## 2.2.0.dev1 (Dec 09, 2020) + +### New Features + +* Add shorthand to use a file name for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` field ([#11261](https://github.com/pantsbuild/pants/pull/11261)) + +* Add dependency inference for `pex_binary`'s `entry_point` and `python_awslambda`'s `handler` fields ([#11245](https://github.com/pantsbuild/pants/pull/11245)) + +* Allow file arguments to work with the `app.py` shorthand for `pex_binary` and `python_awslambda` ([#11263](https://github.com/pantsbuild/pants/pull/11263)) + +* Warn if `package` and `test` have no matching files/targets ([#11240](https://github.com/pantsbuild/pants/pull/11240)) + +### User API Changes + +* 2.2.0.dev1 deprecations. ([#11281](https://github.com/pantsbuild/pants/pull/11281)) + +* Require `pex_binary`'s `platforms` field to be a list ([#11246](https://github.com/pantsbuild/pants/pull/11246)) + +* Remove deprecated `--pants-distdir-legacy-paths` option ([#11247](https://github.com/pantsbuild/pants/pull/11247)) + +### Bug fixes + +* Increase Pants' python recursion limit by default, and allow it to be overridden. ([#11271](https://github.com/pantsbuild/pants/pull/11271)) + +* Stop logging if Pyenv not installed ([#11243](https://github.com/pantsbuild/pants/pull/11243)) + +### Performance + +* Reduce interning overhead ([#11262](https://github.com/pantsbuild/pants/pull/11262)) + +* Parallelize the `Owners` rule more ([#11260](https://github.com/pantsbuild/pants/pull/11260)) + +### Documentation + +* Update Pants prerequisites facts. ([#11265](https://github.com/pantsbuild/pants/pull/11265)) + +## 2.2.0.dev0 (Nov 24, 2020) + +### New Features + +* Add dependency inference for Protobuf <-> Protobuf imports ([#11205](https://github.com/pantsbuild/pants/pull/11205)) + +* Add dependency inference for Python imports of Protobuf/gRPC ([#11195](https://github.com/pantsbuild/pants/pull/11195)) + +* Allow setting the entry point for a `pex_binary` to `` ([#11199](https://github.com/pantsbuild/pants/pull/11199)) + +* Add support for filtering file vs BUILD targets ([#11126](https://github.com/pantsbuild/pants/pull/11126)) + +* Cancel sessions rather than killing pantsd ([#11123](https://github.com/pantsbuild/pants/pull/11123)) + +* Remoting: allow timeout parameters to be configured ([#11125](https://github.com/pantsbuild/pants/pull/11125)) + +### User API Changes + +* Require Python 3.7 or 3.8 to run Pants ([#11135](https://github.com/pantsbuild/pants/pull/11135)) + +* Deprecate `mypy_source_plugin` and `pylint_source_plugin` targets in favor of `python_library` ([#11233](https://github.com/pantsbuild/pants/pull/11233)) + +* Remove deprecated `compatibility` field in favor of `interpreter_constraints` ([#11225](https://github.com/pantsbuild/pants/pull/11225)) + +* Upgrade to Pex 2.1.21. ([#11131](https://github.com/pantsbuild/pants/pull/11131)) + +### Plugin API Changes + +* Remove `PrimitiveField` and align `AsyncField` with `Field` ([#11231](https://github.com/pantsbuild/pants/pull/11231)) + +* Change `AsyncField` to be `AsyncFieldMixin` ([#11232](https://github.com/pantsbuild/pants/pull/11232)) + +* Deprecate `TransitiveTargetsRequestLite` and `DependenciesRequestLite` now that graph cycle is fixed ([#11188](https://github.com/pantsbuild/pants/pull/11188)) + +### Bug fixes + +* Fix dependency inference parsing of Python 3.8 and 3.9 syntax ([#11213](https://github.com/pantsbuild/pants/pull/11213)) + +* Set the soft ulimit value more conservatively to fix macOS Big Sur issue ([#11194](https://github.com/pantsbuild/pants/pull/11194)) + +* Move graph cycle detection to Rust to fix recursion limit. ([#11202](https://github.com/pantsbuild/pants/pull/11202)) + +* Fix relative imports in dependency inference ([#11181](https://github.com/pantsbuild/pants/pull/11181)) + +* Remove extraneous info level log line ([#11228](https://github.com/pantsbuild/pants/pull/11228)) + +* Fix Coverage not finding resource files when generating a report ([#11129](https://github.com/pantsbuild/pants/pull/11129)) + +* Fix `test` results showing up twice by removing `TargetsWithOrigin` ([#11128](https://github.com/pantsbuild/pants/pull/11128)) + +* Make a few minor reliability fixes to remote caching code ([#11130](https://github.com/pantsbuild/pants/pull/11130)) + +### Documentation + +* Improve error message for no applicable targets ([#11215](https://github.com/pantsbuild/pants/pull/11215)) diff --git a/versioned_docs/version-2.20/notes/2.20.x.md b/versioned_docs/version-2.20/notes/2.20.x.md new file mode 100644 index 000000000..e224bb98f --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.20.x.md @@ -0,0 +1 @@ +# 2.20.x Placeholder diff --git a/versioned_docs/version-2.20/notes/2.3.x.md b/versioned_docs/version-2.20/notes/2.3.x.md new file mode 100644 index 000000000..5fb472fd6 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.3.x.md @@ -0,0 +1,241 @@ +# 2.3.x Stable Releases + +See https://www.pantsbuild.org/v2.3/docs/release-notes-2-3 for an overview of the changes in this release series. + +## 2.3.3 (Jun 16, 2021) + +The fourth stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.3rc0 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12160](https://github.com/pantsbuild/pants/pull/12160)) + +## 2.3.2 (May 6, 2021) + +The third stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.2rc0 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11980](https://github.com/pantsbuild/pants/pull/11980)) + +## 2.3.1 (Apr 20, 2021) + +The second stable release of the `2.3.x` series, with no changes since the previous `rc`. + +## 2.3.1rc3 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11917](https://github.com/pantsbuild/pants/pull/11917)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11903](https://github.com/pantsbuild/pants/pull/11903)) + +## 2.3.1rc2 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11882](https://github.com/pantsbuild/pants/pull/11882)) + +### Documentation + +* Fix typo in `tags` help message ([#11838](https://github.com/pantsbuild/pants/pull/11838)) + +## 2.3.1rc1 (Mar 25, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.35 to fix interpreter-rexec loop. (cherrypick of #11799) ([#11801](https://github.com/pantsbuild/pants/pull/11801)) + +* Kill `SETTABLE_ENV_VARS` allow list to allow passing ssh-agent config. (cherrypick of #11743) ([#11791](https://github.com/pantsbuild/pants/pull/11791)) + +## 2.3.1rc0 (Mar 21, 2021) + +### Bug fixes + +* Fix remote execution: use `append_only_caches` in Pex processes. (#11760) ([#11765](https://github.com/pantsbuild/pants/pull/11765)) + +## 2.3.0 (Mar 18, 2021) + +The first stable release in the `2.3.x` series, with no changes since the previous rc. + +## 2.3.0rc4 (Mar 17, 2021) + +### Bug fixes + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. (cherrypick of #11723) ([#11726](https://github.com/pantsbuild/pants/pull/11726)) + +* Upgrade to Pex 2.1.34 to pull in a fix for an import race. (#11711) ([#11713](https://github.com/pantsbuild/pants/pull/11713)) + +## 2.3.0rc3 (Mar 12, 2021) + +### Bug fixes + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` (#11673) ([#11675](https://github.com/pantsbuild/pants/pull/11675)) + +* Do not interpret passthrough args. (cherrypick of #11656) ([#11660](https://github.com/pantsbuild/pants/pull/11660)) + +## 2.3.0rc2 (Mar 08, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. (Cherry-pick of #11647) ([#11651](https://github.com/pantsbuild/pants/pull/11651)) + +* Ensure that ancestor files at the buildroot are found (Cherry-pick of #11632) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +* Handle two edge cases with `./pants tailor` (Cherry-pick of #11625) ([#11637](https://github.com/pantsbuild/pants/pull/11637)) + +## 2.3.0rc1 (Feb 25, 2021) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv shebangs being too long for some Linux systems. (Cherry-pick of #11604) ([#11606](https://github.com/pantsbuild/pants/pull/11606)) + +### Documentation + +* Less chatty plugin resolution logging (Cherry-pick of #11593) ([#11595](https://github.com/pantsbuild/pants/pull/11595)) + +## 2.3.0rc0 (Feb 23, 2021) + +### New Features + +* A `tailor` goal to generate BUILD file targets automatically ([#11517](https://github.com/pantsbuild/pants/pull/11517)) + +* Generate `protobuf_library` targets with `./pants tailor` ([#11582](https://github.com/pantsbuild/pants/pull/11582)) + +* Support `--venv` mode for `pex_binary` targets. ([#11510](https://github.com/pantsbuild/pants/pull/11510)) + +* Auto-discover CA certs if TLS is used and `--remote-ca-certs-path` is unset ([#11572](https://github.com/pantsbuild/pants/pull/11572)) + +### User API Changes + +* Deprecate --setuptools-{entry-point,interpreter-constraints} ([#11539](https://github.com/pantsbuild/pants/pull/11539)) + +* Deprecate `--remote-store-server` and `--remote-execution-server` in favor of `--remote-store-address` and `--remote-execution-address` ([#11570](https://github.com/pantsbuild/pants/pull/11570)) + +* Deprecate unused `--remote-store-initial-timeout`, `--remote-store-timeout-multiplier`, `--remote-store-maximum-timeout`, `--remote-store-connection-limit`, and `--remote-store-thread-count` ([#11577](https://github.com/pantsbuild/pants/pull/11577)) + +* Upgrade Pex to 2.1.31. ([#11588](https://github.com/pantsbuild/pants/pull/11588)) + +### Bug fixes + +* Fix Black to work by default with Python 3.9 ([#11541](https://github.com/pantsbuild/pants/pull/11541)) + +* Fix MyPy to work by default with Python 3.9 ([#11537](https://github.com/pantsbuild/pants/pull/11537)) + +### Performance + +* Use --venv mode for internal PEXes. ([#11557](https://github.com/pantsbuild/pants/pull/11557)) + +### Documentation + +* Improve error message for unrecognized BUILD file symbols ([#11564](https://github.com/pantsbuild/pants/pull/11564)) + +## 2.3.0.dev3 (Feb 3, 2021) + +### New Features + +* Add `--remote-auth-plugin` ([#11503](https://github.com/pantsbuild/pants/pull/11503)) + +### User API Changes + +* Stop pinning `zipp` by default in `[pytest].pytest_plugins` ([#11512](https://github.com/pantsbuild/pants/pull/11512)) + +* Change default for `[pytest].pytest_plugins` to use pytest-cov 2.11.x ([#11514](https://github.com/pantsbuild/pants/pull/11514)) + +* Change default versions for `setuptools` options ([#11515](https://github.com/pantsbuild/pants/pull/11515)) + +### Plugin API Changes + +* Upgrade packaging from 20.8 to 20.9 ([#11508](https://github.com/pantsbuild/pants/pull/11508)) + +## 2.3.0.dev2 (Jan 31, 2021) + +### New Features + +* Allow specifying files with `--url-template`. ([#11499](https://github.com/pantsbuild/pants/pull/11499)) + +### User API Changes + +* Bump default MyPy version to 0.800 ([#11506](https://github.com/pantsbuild/pants/pull/11506)) + +* Add `--remote-store-headers` and fix `--remote-execution-headers` to not impact remote caching ([#11501](https://github.com/pantsbuild/pants/pull/11501)) + +* Deprecate `[python-setup].resolver_version` defaulting to pip legacy resolver ([#11497](https://github.com/pantsbuild/pants/pull/11497)) + +### Performance + +* Make remote cache writes async ([#11479](https://github.com/pantsbuild/pants/pull/11479)) + +## 2.3.0.dev1 (Jan 21, 2021) + +### New Features + +* Support Pex CLI `--unzip` and `--include-tools`. ([#11483](https://github.com/pantsbuild/pants/pull/11483)) + +### User API Changes + +* Remove deprecated `--pants-bootstrapdir` and `--pants-configdir` options ([#11491](https://github.com/pantsbuild/pants/pull/11491)) + +### Plugin API Changes + +* Remove `RunInfo` class ([#11456](https://github.com/pantsbuild/pants/pull/11456)) + +### Bug fixes + +* Fix use of remote store when in eager cache mode ([#11468](https://github.com/pantsbuild/pants/pull/11468)) + +* Workaround Rust 1.49 breaking macOS processes with a materialized argv0 ([#11452](https://github.com/pantsbuild/pants/pull/11452)) + +### Performance + +* Use speculation for remote cache reads ([#11429](https://github.com/pantsbuild/pants/pull/11429)) + +### Documentation + +* Change logging level for Scrubbed PYTHONPATH to be debug ([#11480](https://github.com/pantsbuild/pants/pull/11480)) + +* Add failure logging to the StoreGCService. ([#11460](https://github.com/pantsbuild/pants/pull/11460)) + +* Document address storage in AsyncFieldMixin. ([#11448](https://github.com/pantsbuild/pants/pull/11448)) + +## 2.3.0.dev0 (Jan 10, 2021) + +### User API Changes + +* Remove support for pex_binary sources. ([#11445](https://github.com/pantsbuild/pants/pull/11445)) + +* Remove custom targets for Pylint and MyPy. ([#11441](https://github.com/pantsbuild/pants/pull/11441)) + +* Remove deprecated --pantsd-pailgun-quit-timeout option. ([#11440](https://github.com/pantsbuild/pants/pull/11440)) + +* Remove DeprecatedRunTracker. ([#11439](https://github.com/pantsbuild/pants/pull/11439)) + +* Remove deprecated PythonAwsLambda fields. ([#11438](https://github.com/pantsbuild/pants/pull/11438)) + +### Plugin API Changes + +* Remove support for 'Lite' request object hacks. ([#11444](https://github.com/pantsbuild/pants/pull/11444)) + +* Remove support for docstring help. ([#11442](https://github.com/pantsbuild/pants/pull/11442)) + +* Remove deprecated v1 Subsystem facilities ([#11424](https://github.com/pantsbuild/pants/pull/11424)) + +* Remove python workunits ([#11416](https://github.com/pantsbuild/pants/pull/11416)) + +### Bug fixes + +* Add `--remote-cache-eager-fetch` to reduce unreliability ([#11396](https://github.com/pantsbuild/pants/pull/11396)) + +* Fix older versions of `tar` not working when creating an `archive` ([#11413](https://github.com/pantsbuild/pants/pull/11413)) + +* Fix `--opt` options in constraints.txt files erroring ([#11407](https://github.com/pantsbuild/pants/pull/11407)) + +* Move to having the Scheduler directly handle SIGINT to cancel all relevant Sessions. ([#11399](https://github.com/pantsbuild/pants/pull/11399)) + +### Documentation + +* docs: fix simple typo, processs -> process ([#11402](https://github.com/pantsbuild/pants/pull/11402)) diff --git a/versioned_docs/version-2.20/notes/2.4.x.md b/versioned_docs/version-2.20/notes/2.4.x.md new file mode 100644 index 000000000..a2e3a10f3 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.4.x.md @@ -0,0 +1,248 @@ +# 2.4.x Stable Releases + +See https://www.pantsbuild.org/v2.4/docs/release-notes-2-4 for an overview of the changes in this release series. + +## 2.4.2 (June 16, 2021) + +The third stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.2rc1 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12159](https://github.com/pantsbuild/pants/pull/12159)) + +## 2.4.2rc0 (May 25, 2021) + +### Performance + +* Halve memory usage for remote cache writes (Cherry-pick of #12083) ([#12118](https://github.com/pantsbuild/pants/pull/12118)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12117](https://github.com/pantsbuild/pants/pull/12117)) + +## 2.4.1 (May 6, 2021) + +The second stable release of the `2.4.x` series, with no changes since the previous `rc`. + +## 2.4.1rc1 (Apr 29, 2021) + +### User API Changes + +* Add back `interpreter_constraints` field to `pex_binary` and `python_awslambda` ([#11979](https://github.com/pantsbuild/pants/pull/11979)) + +* Revert "Run MyPy only on specified files, not transitive closure" ([#11969](https://github.com/pantsbuild/pants/pull/11969)) + +### Documentation + +* Make remote cache warning less chatty for missing files (Cherry-pick of #11976) ([#11983](https://github.com/pantsbuild/pants/pull/11983)) + +## 2.4.1rc0 (Apr 20, 2021) + +### User API Changes + +* Run MyPy only on specified files, not transitive closure (Cherry-pick of #11936) ([#11938](https://github.com/pantsbuild/pants/pull/11938)) + +### Bug fixes + +* Fix remote cache writes to not block the Pants run (Cherry-pick of #11947) ([#11950](https://github.com/pantsbuild/pants/pull/11950)) + +## 2.4.0 (Apr 19, 2021) + +The first stable release of the `2.4.x` series, with no changes since the previous `rc`! + +## 2.4.0rc5 (Apr 17, 2021) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown (cherrypick of #11929) ([#11934](https://github.com/pantsbuild/pants/pull/11934)) + +* Retrieve RunTracker args from the OptionsBootstrapper. (cherrypick of #11931) ([#11932](https://github.com/pantsbuild/pants/pull/11932)) + +## 2.4.0rc4 (Apr 14, 2021) + +### Bug fixes + +* Allow Python files without a file ending (Cherry-pick of #11905) ([#11916](https://github.com/pantsbuild/pants/pull/11916)) + +* Fix bug in Python 2.7 string dep inference. (Cherry-pick of #11900) ([#11904](https://github.com/pantsbuild/pants/pull/11904)) + +* Fix remote cache storing of `output_directories` (Cherry-pick of #11895) ([#11896](https://github.com/pantsbuild/pants/pull/11896)) + +## 2.4.0rc3 (Apr 10, 2021) + +### Bug fixes + +* Fix a bug in unicode string dep inference. (cherrypick of #11879) ([#11883](https://github.com/pantsbuild/pants/pull/11883)) + +## 2.4.0rc2 (Apr 08, 2021) + +### New Features + +* Add `--remote-cache-warnings` and make remote cache warnings less chatty (Cherry-pick of #11859) ([#11863](https://github.com/pantsbuild/pants/pull/11863)) + +## 2.4.0rc1 (Apr 05, 2021) + +### Bug fixes + +* Fix transitive excludes for generating setup.py (Cherry-pick of #11811) ([#11839](https://github.com/pantsbuild/pants/pull/11839)) + +### Documentation + +* Escape generated markdown values (Cherry-pick of #11841) ([#11846](https://github.com/pantsbuild/pants/pull/11846)) + +* Fix typo in `tags` help message (Cherry-pick of #11838) ([#11837](https://github.com/pantsbuild/pants/pull/11837)) + +## 2.4.0rc0 (Mar 25, 2021) + +### New Features + +* Warn when dependency inference is not used due to ambiguity from >1 target exporting the same Python module. ([#11792](https://github.com/pantsbuild/pants/pull/11792)) + +* Dependency inference: can disambiguate modules with multiple owners via `!` ignores ([#11786](https://github.com/pantsbuild/pants/pull/11786)) + +### User API Changes + +* Deprecate `--process-execution-cleanup-local-dirs` in favor of `--process-execution-local-cleanup` ([#11785](https://github.com/pantsbuild/pants/pull/11785)) + +* Deprecate `--process-execution-use-local-cache` in favor of `--process-execution-local-cache` ([#11781](https://github.com/pantsbuild/pants/pull/11781)) + +### Bug fixes + +* Do not infer dependencies in some edge cases with ambiguity ([#11780](https://github.com/pantsbuild/pants/pull/11780)) + +* Ensure that metrics are gathered during abnormal exits ([#11793](https://github.com/pantsbuild/pants/pull/11793)) + +* Enable configuration of local store size limits ([#11777](https://github.com/pantsbuild/pants/pull/11777)) + +* Fix remote execution of Pexes by properly using `append_only_caches`. ([#11760](https://github.com/pantsbuild/pants/pull/11760)) + +## 2.4.0.dev3 (Mar 19, 2021) + +### New Features + +* Add support for gRPC mypy stub files ([#11658](https://github.com/pantsbuild/pants/pull/11658)) + +* Support extra test runner output. ([#11741](https://github.com/pantsbuild/pants/pull/11741)) + +* Send opt-in anonymous telemetry to bugout ([#11697](https://github.com/pantsbuild/pants/pull/11697)) + +* Add `[python-setup].requirement_constraints_target` for upcoming Poetry macro ([#11724](https://github.com/pantsbuild/pants/pull/11724)) + +### User API Changes + +* Kill `SETTABLE_ENV_VARS` allow list. ([#11743](https://github.com/pantsbuild/pants/pull/11743)) + +### Plugin API Changes + +* Implement the IO methods required for `input`, and add `Console.input`. ([#11703](https://github.com/pantsbuild/pants/pull/11703)) + +* Mutually exclusive options no longer change the `dest` ([#11718](https://github.com/pantsbuild/pants/pull/11718)) + +### Bug fixes + +* Invalidate all files in the graph when file watching receives a rescan event. ([#11734](https://github.com/pantsbuild/pants/pull/11734)) + +* Fix a deadlock involving `scheduler.all_digests`, and add a note. ([#11723](https://github.com/pantsbuild/pants/pull/11723)) + +* Fix source root stripping to not strip `requirements.txt` files in plugins ([#11712](https://github.com/pantsbuild/pants/pull/11712)) + +* Fix the mypy-protobuf interpreter constraint. ([#11695](https://github.com/pantsbuild/pants/pull/11695)) + +### Documentation + +* Make `-ldebug` less chatty when using remote caching ([#11667](https://github.com/pantsbuild/pants/pull/11667)) + +* Improve error message for unmatched globs ([#11699](https://github.com/pantsbuild/pants/pull/11699)) + +## 2.4.0.dev2 (Mar 12, 2021) + +### New Features + +* Add a default `module_mapping` for Python 3rd-party dependency inference. ([#11635](https://github.com/pantsbuild/pants/pull/11635)) + +### User API Changes + +* Warn when depending on `files` targets in a `pex_binary` or `python_awslambda` ([#11659](https://github.com/pantsbuild/pants/pull/11659)) + +* Bump default for `[python-protobuf].mypy_plugin_version` to 2.4 ([#11662](https://github.com/pantsbuild/pants/pull/11662)) + +### Plugin API Changes + +* Require subclassing `WorkunitsCallback` ([#11677](https://github.com/pantsbuild/pants/pull/11677)) + +### Bug fixes + +* Fix the `local_only` option to properly disable remote execution and caching ([#11678](https://github.com/pantsbuild/pants/pull/11678)) + +* Fix PYTHONPATH not including protobuf targets using `python_source_root` ([#11673](https://github.com/pantsbuild/pants/pull/11673)) + +* Fix streaming workunit handler plugins to log to console during run ([#11674](https://github.com/pantsbuild/pants/pull/11674)) + +* Avoid std::io::std usage in UI fallback. ([#11671](https://github.com/pantsbuild/pants/pull/11671)) + +* Improve phrasing for "unknown goal" and "unknown flag" errors. ([#11664](https://github.com/pantsbuild/pants/pull/11664)) + +* Do not interpret passthrough args. ([#11656](https://github.com/pantsbuild/pants/pull/11656)) + +### Performance + +* Streaming workunit handler can finalize async when pantsd used ([#11683](https://github.com/pantsbuild/pants/pull/11683)) + +## 2.4.0.dev1 (Mar 08, 2021) + +### New Features + +* Add support for Pytest config files ([#11624](https://github.com/pantsbuild/pants/pull/11624)) + +### Plugin API Changes + +* Add Python tool support for console scripts. ([#11620](https://github.com/pantsbuild/pants/pull/11620)) + +* Require explicit environment usage ([#11641](https://github.com/pantsbuild/pants/pull/11641)) + +### Bug fixes + +* Upgrade to Pex 2.1.33 to fix `et-xmlfile` issue. ([#11647](https://github.com/pantsbuild/pants/pull/11647)) + +* Ensure that ancestor files at the buildroot are found. ([#11632](https://github.com/pantsbuild/pants/pull/11632)) + +* Handle two edge cases with `./pants tailor` ([#11625](https://github.com/pantsbuild/pants/pull/11625)) + +### Documentation + +* Wrap `./pants help` based on actual terminal width ([#11378](https://github.com/pantsbuild/pants/pull/11378)) + +* Fix references to the deprecated pants log location. ([#11636](https://github.com/pantsbuild/pants/pull/11636)) + +## 2.4.0.dev0 (Feb 27, 2021) + +### New Features + +* Add `--stats-log` to log metrics at end of run ([#11599](https://github.com/pantsbuild/pants/pull/11599)) + +### User API Changes + +* Deprecate --python-setup-resolver-version option. ([#11611](https://github.com/pantsbuild/pants/pull/11611)) + +* Remove deprecated --remote-store options. ([#11609](https://github.com/pantsbuild/pants/pull/11609)) + +* Remove deprecated --process-execution-speculation options. ([#11610](https://github.com/pantsbuild/pants/pull/11610)) + +* Remove deprecated `--remote-execution-server` and `--remote-store-server` options ([#11603](https://github.com/pantsbuild/pants/pull/11603)) + +* Deprecate unused `--process-execution-local-enable-nailgun` ([#11600](https://github.com/pantsbuild/pants/pull/11600)) + +### Bug fixes + +* Upgrade Pex to 2.1.32 to fix venv script shebangs being too long for some Linux systems. ([#11604](https://github.com/pantsbuild/pants/pull/11604)) + +### Performance + +* Release the Pants PEX in `--venv` mode. ([#11591](https://github.com/pantsbuild/pants/pull/11591)) + +### Documentation + +* Less chatty plugin resolution logging ([#11593](https://github.com/pantsbuild/pants/pull/11593)) + diff --git a/versioned_docs/version-2.20/notes/2.5.x.md b/versioned_docs/version-2.20/notes/2.5.x.md new file mode 100644 index 000000000..a17920088 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.5.x.md @@ -0,0 +1,307 @@ +# 2.5.x Stable Releases + +See https://www.pantsbuild.org/v2.5/docs/release-notes-2-5 for an overview of the changes in this release series. + +## 2.5.2 (Aug 23, 2021) + +The third stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.2rc3 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (cherrypick of #12547) ([#12550](https://github.com/pantsbuild/pants/pull/12550)) + +## 2.5.2rc2 (Aug 06, 2021) + +### Bug fixes + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12505](https://github.com/pantsbuild/pants/pull/12505)) + +## 2.5.2rc1 (Jul 28, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12398](https://github.com/pantsbuild/pants/pull/12398)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12401](https://github.com/pantsbuild/pants/pull/12401)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12440](https://github.com/pantsbuild/pants/pull/12440)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12403](https://github.com/pantsbuild/pants/pull/12403)) + +## 2.5.2rc0 (Jul 20, 2021) + +### Bug fixes + +* Fix anonymous telemetry logging. ([#12345](https://github.com/pantsbuild/pants/pull/12345)) + +## 2.5.1 (Jul 12, 2021) + +The second stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.1rc6 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12309](https://github.com/pantsbuild/pants/pull/12309)) + +* Hash the repo_id in the tag. ([#12306](https://github.com/pantsbuild/pants/pull/12306)) + +## 2.5.1rc5 (Jul 7, 2021) + +### Bug fixes + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12270](https://github.com/pantsbuild/pants/pull/12270)) + +## 2.5.1rc4 (Jun 30, 2021) + +### Bug fixes + +* Fix dependency inference to be ambiguous when >1 type stub for same module (Cherry-pick of #12244) ([#12245](https://github.com/pantsbuild/pants/pull/12245)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped (Cherry-pick of #12230) ([#12233](https://github.com/pantsbuild/pants/pull/12233)) + +## 2.5.1rc3 (Jun 16, 2021) + +### Bug fixes + +* Fix Process output capture re: `working_directory`. (#12197) ([#12198](https://github.com/pantsbuild/pants/pull/12198)) + +## 2.5.1rc2 (Jun 02, 2021) + +### Bug fixes + +* Fix `Key` interning race causing `panic while processing panic` failure (Cherry-pick of #12152) ([#12158](https://github.com/pantsbuild/pants/pull/12158)) + +## 2.5.1rc1 (May 28, 2021) + +### Bug fixes + +* Fix `[python-setup].resolver_jobs` default value to recognize containers (Cherry-pick of #12139) ([#12140](https://github.com/pantsbuild/pants/pull/12140)) + +* Fix `[coverage-py].global_report` for >9 test files. (Cherry-pick of #12144) ([#12146](https://github.com/pantsbuild/pants/pull/12146)) + +### Performance + +* Add retries for reads and writes from remote CAS (Cherry pick of #12132) ([#12136](https://github.com/pantsbuild/pants/pull/12136)) + +## 2.5.1rc0 (May 25, 2021) + +### New Features + +* Add support for global coverage reports. (Cherry-pick of #12080) ([#12088](https://github.com/pantsbuild/pants/pull/12088)) + +### User API Changes + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default (Cherry-pick of #12099) ([#12101](https://github.com/pantsbuild/pants/pull/12101)) + +### Performance + +* Halve memory usage for remote cache writes. (Cherry-pick of #12083) ([#12084](https://github.com/pantsbuild/pants/pull/12084)) + +* Fix remote cache writes memory exhaustion. (Cherry-pick of #12087) ([#12089](https://github.com/pantsbuild/pants/pull/12089)) + +* Add retries with exponential back-off for remote cache (Cherry pick of #12102) ([#12124](https://github.com/pantsbuild/pants/pull/12124)) + +### Documentation + +* Rewrite error message when Pantsd is shut down during run (Cherry-pick of #12107) ([#12116](https://github.com/pantsbuild/pants/pull/12116)) + +* Clarify the default values for parallelism options (Cherry-pick of #12119) ([#12126](https://github.com/pantsbuild/pants/pull/12126)) + +* Make timeouts in tests less confusing (Cherry-pick of #12120) ([#12125](https://github.com/pantsbuild/pants/pull/12125)) + +* Fix scheduler initialization log (Cherry-pick of #12105) ([#12111](https://github.com/pantsbuild/pants/pull/12111)) + +## 2.5.0 (May 15, 2021) + +The first stable release of the `2.5.x` series, with no changes since the previous `rc`. + +## 2.5.0rc3 (May 14, 2021) + +### Bug fixes + +* Fix constraints resolves to pass additional args. (Cherry-pick of #12076) ([#12077](https://github.com/pantsbuild/pants/pull/12077)) + +* Fix `skip_tool` fields not working with `./pants fmt` (Cherry-pick of #12073) ([#12074](https://github.com/pantsbuild/pants/pull/12074)) + +## 2.5.0rc2 (May 12, 2021) + +### Bug fixes + +* Fix module_mapping to work regardless of capitalization and `-` vs `_` (Cherry-pick of #12068) ([#12070](https://github.com/pantsbuild/pants/pull/12070)) + +* Fix PEX_ROOT leak for run and repl goals. (Cherry-pick of #12066) ([#12067](https://github.com/pantsbuild/pants/pull/12067)) + +* Fix Python run for apps that re-exec themselves (Cherry-pick of #12060) ([#12063](https://github.com/pantsbuild/pants/pull/12063)) + +* Fix Shell dependency inference not caching (Cherry-pick of #12052) ([#12056](https://github.com/pantsbuild/pants/pull/12056)) + +## 2.5.0rc1 (May 10, 2021) + +### New Features + +* Add `extra_env_vars` field to `python_tests` target (Cherry-pick of #12022) ([#12023](https://github.com/pantsbuild/pants/pull/12023)) + +### Plugin API Changes + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` (Cherry-pick of #12029) ([#12046](https://github.com/pantsbuild/pants/pull/12046)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd (#12020) ([#12031](https://github.com/pantsbuild/pants/pull/12031)) + +## 2.5.0rc0 (May 04, 2021) + +### New Features + +* Allow skipping linters/formatters/typecheckers by target ([#12008](https://github.com/pantsbuild/pants/pull/12008)) + +* Add `runtime_package_dependencies` field to `shunit2_tests` ([#11997](https://github.com/pantsbuild/pants/pull/11997)) + +* Tell isort to use the config file at `[isort].config` when safe to do so ([#11994](https://github.com/pantsbuild/pants/pull/11994)) + +* Support `[coverage.py]` config files using `pyproject.toml`, `setup.cfg`, and `tox.ini` ([#11993](https://github.com/pantsbuild/pants/pull/11993)) + +* Check parent directories too for config files for tools Pants runs ([#11992](https://github.com/pantsbuild/pants/pull/11992)) + +### User API Changes + +* Make python-setup resolve_all_constraints a bool. ([#11985](https://github.com/pantsbuild/pants/pull/11985)) + +* Add back `interpreter_constraints` field to `python_awslambda` ([#11982](https://github.com/pantsbuild/pants/pull/11982)) + +* Add back `interpreter_constraints` field to `pex_binary` ([#11977](https://github.com/pantsbuild/pants/pull/11977)) + +### Plugin API Changes + +* Add mechanism for targets to opt out of field sets ([#12002](https://github.com/pantsbuild/pants/pull/12002)) + +* Add `TriBoolField` field template ([#12004](https://github.com/pantsbuild/pants/pull/12004)) + +* Discover config files automatically for tools Pants runs ([#11995](https://github.com/pantsbuild/pants/pull/11995)) + +* Don't require a kwarg for `Target` and `Field` constructors ([#11984](https://github.com/pantsbuild/pants/pull/11984)) + +### Performance + +* Don't parse string imports if not enabled ([#11975](https://github.com/pantsbuild/pants/pull/11975)) + +### Documentation + +* Don't include file name in deprecation warnings ([#12007](https://github.com/pantsbuild/pants/pull/12007)) + +* Stop falling back to docstring for help messages for `Target` and `Field` ([#12003](https://github.com/pantsbuild/pants/pull/12003)) + +* Suggest using `./pants tailor` when target doesn't exist for a file argument ([#11996](https://github.com/pantsbuild/pants/pull/11996)) + +* Make remote cache warning less chatty for missing files ([#11976](https://github.com/pantsbuild/pants/pull/11976)) + +## 2.5.0.dev3 (Apr 23, 2021) + +### User API Changes + +* Upgrade the default mypy to a version that works with namespace packages ([#11945](https://github.com/pantsbuild/pants/pull/11945)) + +* Run MyPy only on specified files, not transitive closure ([#11936](https://github.com/pantsbuild/pants/pull/11936)) + +### Plugin API Changes + +* Upgrade Pants to Pex 2.1.40. ([#11964](https://github.com/pantsbuild/pants/pull/11964)) + +### Bug fixes + +* Release pants.pex in `--unzip` mode to workaround not loading properly ([#11955](https://github.com/pantsbuild/pants/pull/11955)) + +* Fix remote cache writes to not block the Pants run ([#11947](https://github.com/pantsbuild/pants/pull/11947)) + +* Fix python process name extraction. ([#11966](https://github.com/pantsbuild/pants/pull/11966)) + +## 2.5.0.dev2 (Apr 16, 2021) + +### New Features + +* Handle URL requirements with constraints files. ([#11907](https://github.com/pantsbuild/pants/pull/11907)) + +* Release Pants with Python 3.9 ([#11858](https://github.com/pantsbuild/pants/pull/11858)) + +* Allow Python files without a file ending ([#11905](https://github.com/pantsbuild/pants/pull/11905)) + +### Bug fixes + +* Wait for all Sessions during pantsd shutdown ([#11929](https://github.com/pantsbuild/pants/pull/11929)) + +* Fix bug in Python 2.7 string dep inference. ([#11900](https://github.com/pantsbuild/pants/pull/11900)) + +* Fix remote cache storing of `output_directories` ([#11895](https://github.com/pantsbuild/pants/pull/11895)) + +### Documentation + +* Finesse some docgen markdown<->html issues. ([#11927](https://github.com/pantsbuild/pants/pull/11927)) + +## 2.5.0.dev1 (Apr 10, 2021) + +### New Features + +* Add dependency inference for Shell ([#11857](https://github.com/pantsbuild/pants/pull/11857)) + +* Add Shell support with Shellcheck, shmft, and shunit2 test runner ([#11844](https://github.com/pantsbuild/pants/pull/11844)) + +* Warn if config files detected but not wired up to Pants ([#11852](https://github.com/pantsbuild/pants/pull/11852)) + +* Warn when dependency inference fails for `protobuf_library` targets due to ambiguity ([#11849](https://github.com/pantsbuild/pants/pull/11849)) + +### User API Changes + +* Remove deprecated `unzip` field for `pex_binary` ([#11868](https://github.com/pantsbuild/pants/pull/11868)) + +* Deprecate `--ignore-pants-warnings` in favor of `--ignore-warnings` ([#11851](https://github.com/pantsbuild/pants/pull/11851)) + +### Plugin API changes + +* Require `WorkunitsCallback` to set `can_finish_async` ([#11687](https://github.com/pantsbuild/pants/pull/11687)) + +### Documentation + +* Fix type in tags help message ([#11836](https://github.com/pantsbuild/pants/pull/11836)) + +## 2.5.0.dev0 (Apr 02, 2021) + +### New Features + +* Subset lockfile resolves. ([#11773](https://github.com/pantsbuild/pants/pull/11773)) + +### User API Changes + +* Remove deprecated `--process-execution-cleanup-local-dirs`, `--process-execution-use-local-cache`, and `--process-execution-local-enable-nailgun` ([#11821](https://github.com/pantsbuild/pants/pull/11821)) + +* Always use new pip resolver and remove deprecated `[python-setup].resolver_version` ([#11819](https://github.com/pantsbuild/pants/pull/11819)) + +* Remove deprecated `[setuptools].entry_point` and `[setuptools].interpreter_constraints` ([#11822](https://github.com/pantsbuild/pants/pull/11822)) + +* Remove deprecated `--mypy-plugin-version`, `pantsd.log` file, `--plugin-cache-dir` + +### Plugin API Changes + +* Remove deprecated `InteractiveProcess.hermetic_env`. + +* Add `RuleRunner.write_files()` for more declarative tests ([#11817](https://github.com/pantsbuild/pants/pull/11817)) + +* Upgrade Pex to 2.1.38. ([#11829](https://github.com/pantsbuild/pants/pull/11829)) + +### Bug fixes + +* Fix transitive excludes for generating setup.py ([#11811](https://github.com/pantsbuild/pants/pull/11811)) + +* Fix workunit visibility calculation. ([#11816](https://github.com/pantsbuild/pants/pull/11816)) + +* Fix `__run.sh` to respect working_directory. ([#11814](https://github.com/pantsbuild/pants/pull/11814)) + +### Documentation + +* Fix misleading docs for `[mypy].skip` ([#11810](https://github.com/pantsbuild/pants/pull/11810)) diff --git a/versioned_docs/version-2.20/notes/2.6.x.md b/versioned_docs/version-2.20/notes/2.6.x.md new file mode 100644 index 000000000..6caac4975 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.6.x.md @@ -0,0 +1,287 @@ +# 2.6.x Stable Releases + +## 2.6.1 (Sep 15, 2021) + +The second stable release of the `2.6.x` series, with no changes since the previous rc! + +## 2.6.1rc3 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12752](https://github.com/pantsbuild/pants/pull/12752)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` (#12711) ([#12730](https://github.com/pantsbuild/pants/pull/12730)) + +### Documentation + +* Fix Toolchain plugin being included in generated reference docs (Cherry-pick of #12642) ([#12647](https://github.com/pantsbuild/pants/pull/12647)) + +## 2.6.1rc2 (Aug 24, 2021) + +### New Features + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs (Cherry-pick of #12598) ([#12600](https://github.com/pantsbuild/pants/pull/12600)) + +### Bug fixes + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS (Cherry-pick of #12581) ([#12631](https://github.com/pantsbuild/pants/pull/12631)) + +* pyenv should fall back to $HOME/.pyenv (Cherry-pick of #12527) ([#12628](https://github.com/pantsbuild/pants/pull/12628)) + +### Documentation + +* Embrace that help strings are markdown. (#12606) ([#12608](https://github.com/pantsbuild/pants/pull/12608)) + +## 2.6.1rc1 (Aug 16, 2021) + +### Bug fixes + +* Fix shlexing of passthrough args. (#12547) ([#12551](https://github.com/pantsbuild/pants/pull/12551)) + +### Performance + +* Stream files into the local store while capturing them (cherrypick of #12563) ([#12572](https://github.com/pantsbuild/pants/pull/12572)) + +## 2.6.1rc0 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations (Cherry-pick of #12510) ([#12511](https://github.com/pantsbuild/pants/pull/12511)) + +* Adds support for Poetry group dependencies (Cherry-pick of #12492) ([#12497](https://github.com/pantsbuild/pants/pull/12497)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv (Cherry-pick of #12506) ([#12507](https://github.com/pantsbuild/pants/pull/12507)) + +### Bug fixes + +* Make the pantsd crash error message more precise. (#12512) ([#12513](https://github.com/pantsbuild/pants/pull/12513)) + +* Resolve plugins using the PEX --python option. (cherrypick of #12500) ([#12504](https://github.com/pantsbuild/pants/pull/12504)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. (cherrypick of #12483) ([#12485](https://github.com/pantsbuild/pants/pull/12485)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used (Cherry-pick of #12488) ([#12490](https://github.com/pantsbuild/pants/pull/12490)) + +## 2.6.0 (Jul 30, 2021) + +The first stable release of the `2.6.x` series, with no changes since the previous `rc`! + +## 2.6.0rc4 (Jul 27, 2021) + +### New Features + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (Cherry-pick of #12392) ([#12399](https://github.com/pantsbuild/pants/pull/12399)) + +### Performance + +* Skip preparation of workunit log messages which will never be rendered. (Cherry-pick of #12396) ([#12400](https://github.com/pantsbuild/pants/pull/12400)) + +* Do not upload Action inputs for remote cache writes. (Cherry-pick of #12443) ([#12444](https://github.com/pantsbuild/pants/pull/12444)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies (Cherry-pick of #12435) ([#12439](https://github.com/pantsbuild/pants/pull/12439)) + +* Fix the content type for Pants' wheel long_descriptions. (Cherry-pick of #12391) ([#12402](https://github.com/pantsbuild/pants/pull/12402)) + +## 2.6.0rc3 (Jul 20, 2021) + +### User API Changes + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters (Cherry-pick of #12379) ([#12383](https://github.com/pantsbuild/pants/pull/12383)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers` and`extras`) (Cherry-pick of #12323) ([#12385](https://github.com/pantsbuild/pants/pull/12385)) + +* Mark workunits blocked, and skip rendering completed workunits (#12369) ([#12376](https://github.com/pantsbuild/pants/pull/12376)) + +* Fix anonymous telemetry logging. ([#12344](https://github.com/pantsbuild/pants/pull/12344)) + +### Performance + +* Reduce # of resolves when packaging pex_binary and python_awslambda targets (Cherry-pick of #12343) ([#12350](https://github.com/pantsbuild/pants/pull/12350)) + +## 2.6.0rc2 (Jul 08, 2021) + +### Bug fixes + +* Set up pants to use the latest version of humbug ([#12303](https://github.com/pantsbuild/pants/pull/12303)) + +## 2.6.0rc1 (Jul 7, 2021) + +### New Features + +* Add support for MyPy report files (Cherry-pick of #12271) ([#12289](https://github.com/pantsbuild/pants/pull/12289)) + +### Bug fixes + +* Hotfix `poetry_requirements` not being recognized as a macro in BUILD files (Cherry-pick of #12263) ([#12264](https://github.com/pantsbuild/pants/pull/12264)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` (Cherry-pick of #12268) ([#12269](https://github.com/pantsbuild/pants/pull/12269)) + +* Fix poetry_requirements: ignore internal projects. (Cherry-pick of #12280) ([#12296](https://github.com/pantsbuild/pants/pull/12296)) + +* Fix poetry_requirements handling of python. (#12278) ([#12282](https://github.com/pantsbuild/pants/pull/12282)) + +* Include experimental Go backends in pantsbuild.pants (Cherry-pick of #12290) ([#12291](https://github.com/pantsbuild/pants/pull/12291)) + +### Documentation + +* Change how we embed docsite links in help text (Cherry-pick of #12261) ([#12266](https://github.com/pantsbuild/pants/pull/12266)) + +## 2.6.0rc0 (Jun 30, 2021) + +### New Features + +* Add dependency inference for Python third-party type stubs ([#12248](https://github.com/pantsbuild/pants/pull/12248)) + +* Add `poetry_requirements` macro for Poetry support ([#12174](https://github.com/pantsbuild/pants/pull/12174)) + +### User API Changes + +* Update default MyPy to 0.910 ([#12249](https://github.com/pantsbuild/pants/pull/12249)) + +* Update linter versions for `pylint`, `black`, `bandit` ([#12135](https://github.com/pantsbuild/pants/pull/12135)) + +* Upgrade Go distribution to v1.16.5 ([#12247](https://github.com/pantsbuild/pants/pull/12247)) + +### Plugin API Changes + +* Set default user-agent header on gRPC requests with Pants version ([#12241](https://github.com/pantsbuild/pants/pull/12241)) + +* Increment counter on missing file digests ([#12235](https://github.com/pantsbuild/pants/pull/12235)) + +### Bug fixes + +* Add support for multiple requirements for a single package name in the `python_requirements` macro ([#12232](https://github.com/pantsbuild/pants/pull/12232)) + +* Fix dependency inference to be ambiguous when >1 type stub for same module ([#12244](https://github.com/pantsbuild/pants/pull/12244)) + +* Hash the `repo_id` in the tag. ([#12151](https://github.com/pantsbuild/pants/pull/12151)) + +* Fix `skip_tool` not working with `./pants fmt` if all files are skipped ([#12230](https://github.com/pantsbuild/pants/pull/12230)) + +## 2.6.0.dev2 (Jun 16, 2021) + +### New Features + +* Adds `--[no-]watch-filesystem` switch ([#12210](https://github.com/pantsbuild/pants/pull/12210)) + +### User API Changes + +* Deprecate unused `interpreter_constraints` field for `python_awslambda` ([#12208](https://github.com/pantsbuild/pants/pull/12208)) + +### Plugin API Changes + +* Rename remote cache write start and finished metrics ([#12202](https://github.com/pantsbuild/pants/pull/12202)) + +* Support for custom target types in tailor. ([#12156](https://github.com/pantsbuild/pants/pull/12156)) + +### Bug fixes + +* Fallback to `[python-setup].interpreter_constraints` for `python_distribution` targets with no first-party dependencies ([#12207](https://github.com/pantsbuild/pants/pull/12207)) + +* Fix remote cache write attempts metric to record even if write does not finish ([#12204](https://github.com/pantsbuild/pants/pull/12204)) + +* Fix Process output capture re: working_directory. ([#12197](https://github.com/pantsbuild/pants/pull/12197)) + +* Fix `Key` interning race. ([#12152](https://github.com/pantsbuild/pants/pull/12152)) + +### Documentation + +* Fix relocated files help display. ([#12185](https://github.com/pantsbuild/pants/pull/12185)) + +* Suggest `-ldebug` and `--no-process-execution-local-cleanup` in exception messages ([#12180](https://github.com/pantsbuild/pants/pull/12180)) + +## 2.6.0.dev1 (May 29, 2021) + +### New Features + +* Allow setting `--pantsd-max-memory-usage` with `GiB`, `MiB`, and `KiB` units ([#12123](https://github.com/pantsbuild/pants/pull/12123)) + +* Register `strip_pex_env` field with pex_binary. ([#12147](https://github.com/pantsbuild/pants/pull/12147)) + +### User API Changes + +* Fix `[python-setup].resolver_jobs` default value to better recognize containers ([#12139](https://github.com/pantsbuild/pants/pull/12139)) + +* Deprecate broken [lint].reports_dir and make mechanism more flexible ([#12122](https://github.com/pantsbuild/pants/pull/12122)) + +* Change Docformatter to not try to use Python 2 and Python 3.5 by default ([#12099](https://github.com/pantsbuild/pants/pull/12099)) + +### Plugin API Changes + +* Allow overriding option default help display. ([#12128](https://github.com/pantsbuild/pants/pull/12128)) + +* Rename `ProcessCacheScope.NEVER` to `ProcessCacheScope.PER_SESSION` ([#12100](https://github.com/pantsbuild/pants/pull/12100)) + +* Replace `ProcessCacheScope.PER_RESTART` with `ProcessCacheScope.PER_RESTART_ALWAYS` and `ProcessCacheScope.PER_RESTART_SUCCESSFUL` ([#12094](https://github.com/pantsbuild/pants/pull/12094)) + +### Performance + +* add retries for reads and writes from remote CAS ([#12132](https://github.com/pantsbuild/pants/pull/12132)) + +* Fix --coverage-py-global-report for >9 test files. ([#12144](https://github.com/pantsbuild/pants/pull/12144)) + +### Documentation + +* Clarify the default values for parallelism options ([#12119](https://github.com/pantsbuild/pants/pull/12119)) + +* Make timeouts in tests less confusing ([#12120](https://github.com/pantsbuild/pants/pull/12120)) + +* Rewrite error message when Pantsd is shut down during run ([#12107](https://github.com/pantsbuild/pants/pull/12107)) + +* Fix scheduler initialization log ([#12105](https://github.com/pantsbuild/pants/pull/12105)) + +## 2.6.0.dev0 (May 19, 2021) + +### New Features + +* Add support for global coverage reports. ([#12080](https://github.com/pantsbuild/pants/pull/12080)) + +* Add `extra_env_vars` capability to `python_tests()` ([#12022](https://github.com/pantsbuild/pants/pull/12022)) + +* Add `pex_binary` support for `--no-strip-pex-env`. ([#12061](https://github.com/pantsbuild/pants/pull/12061)) + +### User API Changes + +* Remove deprecated `[pytest].config` in favor of `[pytest].config_discovery` ([#12033](https://github.com/pantsbuild/pants/pull/12033)) + +* Remove deprecated `ignore_pants_warnings` in favor of `ignore_warnings` ([#12032](https://github.com/pantsbuild/pants/pull/12032)) + +* Enforce `[python-setup].resolve_all_constraints` being a bool option ([#12034](https://github.com/pantsbuild/pants/pull/12034)) + +* Remove experimental and unused `[python-setup].requirement_constraints_target` option and `_python_constraints` target ([#11998](https://github.com/pantsbuild/pants/pull/11998)) + +### Plugin API Changes + +* Rename `PexInterpreterConstraints` to `InterpreterConstraints` and move to dedicated file ([#12021](https://github.com/pantsbuild/pants/pull/12021)) + +* Add plugin hook for setting up Pytest context ([#12091](https://github.com/pantsbuild/pants/pull/12091)) + +* Auth plugins can inspect the prior result, set an expiration, and override `--remote-{store,execution}-address` ([#12029](https://github.com/pantsbuild/pants/pull/12029)) + +### Bug fixes + +* Fix `--remote-auth-plugin` and `--remote-oauth-bearer-token-path` to execute every run with Pantsd ([#12020](https://github.com/pantsbuild/pants/pull/12020)) + +* Fix `module_mapping` to work regardless of capitalization and `-` vs `_` ([#12068](https://github.com/pantsbuild/pants/pull/12068)) + +* Fix `PEX_ROOT` leak with run and repl goals. ([#12066](https://github.com/pantsbuild/pants/pull/12066)) + +* Fix constraints resolves to pass additional args. ([#12076](https://github.com/pantsbuild/pants/pull/12076)) + +* Fix `skip_tool` fields not working with `./pants fmt` ([#12073](https://github.com/pantsbuild/pants/pull/12073)) + +* Fix Python run for apps that re-exec themselves. ([#12060](https://github.com/pantsbuild/pants/pull/12060)) + +* Fix remote cache writes memory exhaustion. ([#12087](https://github.com/pantsbuild/pants/pull/12087)) + +* Halve memory usage for remote cache writes. ([#12083](https://github.com/pantsbuild/pants/pull/12083)) + +* Fix Shell dependency inference not caching ([#12052](https://github.com/pantsbuild/pants/pull/12052)) diff --git a/versioned_docs/version-2.20/notes/2.7.x.md b/versioned_docs/version-2.20/notes/2.7.x.md new file mode 100644 index 000000000..aa8a42028 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.7.x.md @@ -0,0 +1,379 @@ +# 2.7.x Stable Releases + +## 2.7.2 (Nov 17, 2021) + +The third stable release of the `2.7.x` series, with no changes since the previous release candidate. + +## 2.7.2rc2 (Nov 10, 2021) + +### Bug fixes + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13540](https://github.com/pantsbuild/pants/pull/13540)) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13560](https://github.com/pantsbuild/pants/pull/13560)) + +## 2.7.2rc1 (Nov 02, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13460](https://github.com/pantsbuild/pants/pull/13460)) + +## 2.7.2rc0 (Oct 28, 2021) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13402](https://github.com/pantsbuild/pants/pull/13402)) + +## 2.7.1 (Oct 27, 2021) + +The second stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.1rc1 (Oct 11, 2021) + +### User API Changes + +* Add `[mypy].extra_type_stubs` (Cherry-pick of #13180) ([#13211](https://github.com/pantsbuild/pants/pull/13211)) + +### Bug fixes + +* `pantsd` falls back to socket usage if it cannot open a TTY. (cherrypick of #13155) ([#13157](https://github.com/pantsbuild/pants/pull/13157)) + +* Release the GIL while creating a Session. (cherrypick of #13127) ([#13158](https://github.com/pantsbuild/pants/pull/13158)) + +* Do not change working directory when extracting archives (cherrypick of #12497 and #13077) ([#13159](https://github.com/pantsbuild/pants/pull/13159)) + +## 2.7.1rc0 (Oct 04, 2021) + +### Bug fixes + +* Upgrade to Pex 2.1.51. (#13098) (Cherry picks of 513647c1 b1d7ab9d) ([#13102](https://github.com/pantsbuild/pants/pull/13102)) + +* Upgrade to Pex 2.1.50 and leverage packed layout. (Cherry picks of 433a4dd 0d36002 7ba06a5) ([#13078](https://github.com/pantsbuild/pants/pull/13078)) + +* Don't invalidate the scheduler when piping output. (cherrypick of #13028) ([#13030](https://github.com/pantsbuild/pants/pull/13030)) + +* Ensure that `Tree` contents are uploaded after creation. (cherrypick of #13008) ([#13009](https://github.com/pantsbuild/pants/pull/13009)) + +## 2.7.0 (Sep 24, 2021) + +The first stable release of the `2.7.x` series, with no changes since the previous release candidate! + +## 2.7.0rc5 (Sep 22, 2021) + +### Bug fixes + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` (Cherry-pick of #12980) ([#12981](https://github.com/pantsbuild/pants/pull/12981)) + +* Fix spurious "Scheduling: ..." workunits with remote caching (cherrypick of #12973) ([#12975](https://github.com/pantsbuild/pants/pull/12975)) + +## 2.7.0rc4 (Sep 17, 2021) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (cherry-pick of #12842) ([#12861](https://github.com/pantsbuild/pants/pull/12861)) + +### Bug fixes + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile (Cherry-pick of #12900) ([#12905](https://github.com/pantsbuild/pants/pull/12905)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile (#12807) ([#12836](https://github.com/pantsbuild/pants/pull/12836)) + +## 2.7.0rc3 (Sep 10, 2021) + +### User API Changes + +* Add `version` to lockfile metadata headers (cherry-pick of #12788) ([#12816](https://github.com/pantsbuild/pants/pull/12816)) + +### Bug fixes + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference (Cherry-pick of #12818) ([#12819](https://github.com/pantsbuild/pants/pull/12819)) + +* Properly include file dependencies in docker build context (cherrypick of #12758) ([#12823](https://github.com/pantsbuild/pants/pull/12823)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation (cherrypick of #12800) ([#12828](https://github.com/pantsbuild/pants/pull/12828)) + +## 2.7.0rc2 (Sep 05, 2021) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) ([#12750](https://github.com/pantsbuild/pants/pull/12750)) + +## 2.7.0rc1 (Sep 01, 2021) + +### Bug fixes + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile (cherrypick of #12738) ([#12741](https://github.com/pantsbuild/pants/pull/12741)) + +* Add specific and actionable instructions to stale lockfile errors (cherrypick of #12699). ([#12717](https://github.com/pantsbuild/pants/pull/12717)) + +* Improve descriptions of the process executions for PEX_PATH composition. (cherrypick of #12736) ([#12737](https://github.com/pantsbuild/pants/pull/12737)) + +* Absolutize all of the execute_pex_args in the venv script. (cherrypick of #12727) ([#12729](https://github.com/pantsbuild/pants/pull/12729)) + +## 2.7.0rc0 (Aug 31, 2021) + +### New Features + +* Add `[tool].lockfile` (e.g. `[black].lockfile`) for Python tools and activate `./pants generate-lockfiles` by default ([#12684](https://github.com/pantsbuild/pants/pull/12684)) + +* Add `--generate-lockfiles-resolve` to allow generating for only certain tools ([#12676](https://github.com/pantsbuild/pants/pull/12676)) + +* Add `[generate-lockfiles].custom_command` ([#12687](https://github.com/pantsbuild/pants/pull/12687)) + +* Add experimental Docker build rules. ([#12467](https://github.com/pantsbuild/pants/pull/12467)) + +### User API Changes + +* Use Pants's default tool lockfiles by default for Python tools like Black, Pytest, and Flake8 ([#12689](https://github.com/pantsbuild/pants/pull/12689)) + +* Set `[python-setup].invalid_lockfile_behavior` to `error` by default ([#12686](https://github.com/pantsbuild/pants/pull/12686)) + +* Bump default for `pytest-cov` (`[pytest].extra_requirements`) and `[coverage-py].version` so both use `coverage 5.5` ([#12690](https://github.com/pantsbuild/pants/pull/12690)) + +* Pin `GitPython==3.1.18` by default with Bandit to ensure yanked release isn't used in lockfile generation ([#12691](https://github.com/pantsbuild/pants/pull/12691)) + +* Stop pinning `stevedore<3` by default for Bandit ([#12681](https://github.com/pantsbuild/pants/pull/12681)) + +* Stop installing `setuptools` by default with Black, Flake8, Isort, and Yapf ([#12673](https://github.com/pantsbuild/pants/pull/12673)) + +* Stop using `[python-setup].requirements_constraints` when installing tools like Black and MyPy ([#12639](https://github.com/pantsbuild/pants/pull/12639)) + +* Default to `my-dep-stubs` and `stubs-my-dep` being third-party type stubs ([#12598](https://github.com/pantsbuild/pants/pull/12598)) + +* Type stubs should be registered as normal requirements, not in `[mypy].extra_requirements` ([#12597](https://github.com/pantsbuild/pants/pull/12597)) + +### Plugin API Changes + +* Support indivisible Sources fields ([#12685](https://github.com/pantsbuild/pants/pull/12685)) + +* Render EngineAware parameters in cycle errors from Graph. ([#12668](https://github.com/pantsbuild/pants/pull/12668)) + +* Split PexRequirements into three unioned types ([#12644](https://github.com/pantsbuild/pants/pull/12644)) + +* Add `__repr__` impl for PySnapshot ([#12622](https://github.com/pantsbuild/pants/pull/12622)) + +* Remove the `rationale` field from BashBinaryRequest. ([#12624](https://github.com/pantsbuild/pants/pull/12624)) + +### Bug fixes + +* The `pex_binary` "venv" mode now sees bin scripts. ([#12664](https://github.com/pantsbuild/pants/pull/12664)) + +* Fix UI rendering when multiple tasks have the same label. ([#12659](https://github.com/pantsbuild/pants/pull/12659)) + +* tailor: do not append comma to kwarg with empty tuple ([#12653](https://github.com/pantsbuild/pants/pull/12653)) + +* Fix `FindBinary` when `which` is discoverable on `$PATH` on macOS ([#12581](https://github.com/pantsbuild/pants/pull/12581)) + +* Fix coloring of stderr logs with pantsd ([#12585](https://github.com/pantsbuild/pants/pull/12585)) + +### Performance + +* Decompose requirements pexes ([#12675](https://github.com/pantsbuild/pants/pull/12675)) + +### Documentation + +* Switch log warning rendering to yellow. ([#12596](https://github.com/pantsbuild/pants/pull/12596)) + +* Align `Enriched*Result` colors, sigils, and log levels. ([#12645](https://github.com/pantsbuild/pants/pull/12645)) + +* Fix Toolchain plugin being included in generated reference docs ([#12642](https://github.com/pantsbuild/pants/pull/12642)) + +## 2.7.0.dev4 (Aug 15, 2021) + +### New Features + +* Add additional Google Cloud libraries to dependency inference's default module mapping ([#12553](https://github.com/pantsbuild/pants/pull/12553)) + +* Validate that `pytest-cov` is installed when `[test].use_coverage` is set ([#12534](https://github.com/pantsbuild/pants/pull/12534)) + +### User API Changes + +* Deprecate `--pants-supportdir`, rename `--engine-visualize-to`, and fix help for `--loop`. ([#12558](https://github.com/pantsbuild/pants/pull/12558)) + +* Change the PythonProtobufMypyPlugin option scope. ([#12525](https://github.com/pantsbuild/pants/pull/12525)) + +### Plugin API Changes + +* Upgrade packaging from 20.9 to 21.0 ([#12561](https://github.com/pantsbuild/pants/pull/12561)) + +* Allow newer versions of setuptools and wheel. ([#12555](https://github.com/pantsbuild/pants/pull/12555)) + +* Deprecate an options scope with underscores. ([#12532](https://github.com/pantsbuild/pants/pull/12532)) + +* Remove `TestResult.skip()` in favor of `TestFieldSet.opt_out()` ([#12516](https://github.com/pantsbuild/pants/pull/12516)) + +* Finally get rid of Optionable entirely. ([#12538](https://github.com/pantsbuild/pants/pull/12538)) + +### Bug fixes + +* Fix `shfmt` and `--test-open-coverage` to handle CPU architecture `Platform` changes ([#12546](https://github.com/pantsbuild/pants/pull/12546)) + +* Fix asdf directory lookup. ([#12528](https://github.com/pantsbuild/pants/pull/12528)) + +* Fix shlexing of passthrough args. ([#12547](https://github.com/pantsbuild/pants/pull/12547)) + +* pyenv should fall back to $HOME/.pyenv ([#12527](https://github.com/pantsbuild/pants/pull/12527)) + +### Performance + +* Stream files into the local store while capturing them ([#12563](https://github.com/pantsbuild/pants/pull/12563)) + +* use REAPI batch API for small blob writes ([#12537](https://github.com/pantsbuild/pants/pull/12537)) + +* add capabilties cache for remote store client ([#12522](https://github.com/pantsbuild/pants/pull/12522)) + +## 2.7.0.dev3 (Aug 06, 2021) + +### New Features + +* Add `skip_tests` field to `python_tests` to facilitate incremental migrations ([#12510](https://github.com/pantsbuild/pants/pull/12510)) + +* Adds support for Poetry group dependencies ([#12492](https://github.com/pantsbuild/pants/pull/12492)) + +* Tailor pex_binary targets for entry points. ([#12478](https://github.com/pantsbuild/pants/pull/12478)) + +### User API Changes + +* Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv ([#12506](https://github.com/pantsbuild/pants/pull/12506)) + +### Plugin API Changes + +* Refactor Pex working directory handling. ([#12479](https://github.com/pantsbuild/pants/pull/12479)) + +### Bug fixes + +* Make the pantsd crash error message more precise. ([#12512](https://github.com/pantsbuild/pants/pull/12512)) + +* Resolve plugins using the PEX --python option. ([#12500](https://github.com/pantsbuild/pants/pull/12500)) + +* Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. ([#12483](https://github.com/pantsbuild/pants/pull/12483)) + +* Fix default coverage collection. ([#12477](https://github.com/pantsbuild/pants/pull/12477)) + +### Performance + +* Don't resolve constraints file / lockfile if no 3rd-party requirements used ([#12488](https://github.com/pantsbuild/pants/pull/12488)) + +## 2.7.0.dev2 (Jul 30, 2021) + +### New Features + +* Provide a peek goal to easily view BUILD metadata from command line ([#11347](https://github.com/pantsbuild/pants/pull/11347)) + +* Add `entry_points` field to python_distribution ([#11872](https://github.com/pantsbuild/pants/pull/11872)) + +* Add hadolint to lint Docker files ([#12426](https://github.com/pantsbuild/pants/pull/12426)) + +* Add experimental Docker target type and tailor ([#12431](https://github.com/pantsbuild/pants/pull/12431)) + +* Support `pex_binary` addresses in `provides=setup_py(entry_points)` field ([#12414](https://github.com/pantsbuild/pants/pull/12414)) + +* Add option for async completion of StreamingWorkunitHandlers, disable by default in containers ([#12392](https://github.com/pantsbuild/pants/pull/12392)) + +* Dependency inference for `pex_binary` and `python_awslambda` can disambiguate ambiguous modules based on file paths ([#12326](https://github.com/pantsbuild/pants/pull/12326)) + +### User API Changes + +* Deprecate `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12450](https://github.com/pantsbuild/pants/pull/12450)) + +* Deprecate `setup_py().with_binaries()` in favor of `entry_points` field ([#12413](https://github.com/pantsbuild/pants/pull/12413)) + +* Add instruction set architecture awareness to platforms and `--url-platform-mapping` options ([#12367](https://github.com/pantsbuild/pants/pull/12367)) + +* Add `[python-setup].interpreter_versions_universe` to ensure Pants works robustly with future Python interpreters ([#12379](https://github.com/pantsbuild/pants/pull/12379)) + +* Upgrade to Lambdex 0.1.5. ([#12461](https://github.com/pantsbuild/pants/pull/12461)) + +* Upgrade to Pex 2.1.44. ([#12342](https://github.com/pantsbuild/pants/pull/12342)) + +### Bug fixes + +* More robust support for Poetry dependency attributes (`markers`, and`extras`) ([#12323](https://github.com/pantsbuild/pants/pull/12323)) + +* Mark workunits blocked, and skip rendering completed workunits ([#12369](https://github.com/pantsbuild/pants/pull/12369)) + +### Performance + +* Do not upload Action inputs for remote cache writes. ([#12443](https://github.com/pantsbuild/pants/pull/12443)) + +* Skip preparation of workunit log messages which will never be rendered. ([#12396](https://github.com/pantsbuild/pants/pull/12396)) + +### Documentation + +* Clarify when we are subsetting the lockfile for 3rdparty dependencies ([#12435](https://github.com/pantsbuild/pants/pull/12435)) + +* Add counters for blob bytes uploaded/downloaded to/from CAS ([#12471](https://github.com/pantsbuild/pants/pull/12471)) + +* Add cache and runtime metadata to Process workunits ([#12469](https://github.com/pantsbuild/pants/pull/12469)) + +* Fix the content type for Pants' wheel long_descriptions. ([#12391](https://github.com/pantsbuild/pants/pull/12391)) + +## 2.7.0.dev1 (Jul 16, 2021) + +### New Features + +* Allow restricting which versions are valid for `ExternalTools`. ([#12332](https://github.com/pantsbuild/pants/pull/12332)) + +* Add yapf Python formatter ([#12317](https://github.com/pantsbuild/pants/pull/12317)) + +* Add ASDF support to interpreter-search-paths ([#12028](https://github.com/pantsbuild/pants/pull/12028)) + +### Plugin API Changes + +* Validate option default values to be of correct type. ([#12331](https://github.com/pantsbuild/pants/pull/12331)) + +### Bug fixes + +* Do not leak subsystems as goals to the command line interface ([#12337](https://github.com/pantsbuild/pants/pull/12337)) + +* Fix anonymous telemetry logging. ([#12340](https://github.com/pantsbuild/pants/pull/12340)) + +* Fixup incorrect platform help message. ([#12320](https://github.com/pantsbuild/pants/pull/12320)) + +### Documentation + +* Improve wording for `pex_binary` `platforms` field help ([#12304](https://github.com/pantsbuild/pants/pull/12304)) + +-------------------------------------------------------------------- + +## 2.7.0.dev0 (Jul 09, 2021) + +### New Features + +* Add skimage module mapping for dependency inference ([#12301](https://github.com/pantsbuild/pants/pull/12301)) + +* Add experimental terraform plugin with fmt and lint rules ([#11973](https://github.com/pantsbuild/pants/pull/11973)) + +* Add support for MyPy report files ([#12271](https://github.com/pantsbuild/pants/pull/12271)) + +* Support running tailor on subdirs. ([#12262](https://github.com/pantsbuild/pants/pull/12262)) + +* Support building dists from preexisting setup.py. ([#12250](https://github.com/pantsbuild/pants/pull/12250)) + +### User API Changes + +* Don't tailor a python_library for a solitary __init__.py. ([#12288](https://github.com/pantsbuild/pants/pull/12288)) + +* Apply a concurrency limit to remote store/cache/execution gRPC requests ([#12256](https://github.com/pantsbuild/pants/pull/12256)) + +### Bug fixes + +* Fix poetry_requirements: ignore internal projects. ([#12280](https://github.com/pantsbuild/pants/pull/12280)) + +* Fix poetry_requirements handling of python. ([#12278](https://github.com/pantsbuild/pants/pull/12278)) + +* Do not use `[python-setup].resolve_all_constraints` when using `platforms` ([#12268](https://github.com/pantsbuild/pants/pull/12268)) + +* Hotfix for `poetry_requirements` not being recognized as a macro in build files ([#12263](https://github.com/pantsbuild/pants/pull/12263)) + +* Include experimental Go backends in pantsbuild.pants ([#12290](https://github.com/pantsbuild/pants/pull/12290)) + +### Documentation + +* Improve error for out-of-line Gets. ([#12305](https://github.com/pantsbuild/pants/pull/12305)) diff --git a/versioned_docs/version-2.20/notes/2.8.x.md b/versioned_docs/version-2.20/notes/2.8.x.md new file mode 100644 index 000000000..1605905e9 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.8.x.md @@ -0,0 +1,498 @@ +# 2.8.x Release Series + +## 2.8.1 (May 13, 2022) + +The second stable release of the `2.8.x` series, with no changes since the previous `rc`! + +## 2.8.1rc2 (Jan 03, 2022) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14036](https://github.com/pantsbuild/pants/pull/14036)) + +* Fix bug when `docker push`ing multiple tags. (cherrypick of #13764) ([#14042](https://github.com/pantsbuild/pants/pull/14042)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13941](https://github.com/pantsbuild/pants/pull/13941)) + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13923](https://github.com/pantsbuild/pants/pull/13923)) + +* Fix `.pyi` files not automatically depending on `__init__.py` (Cherry-pick of #13844) ([#13858](https://github.com/pantsbuild/pants/pull/13858)) + +## 2.8.1rc1 (Nov 30, 2021) + +### Bug fixes + +* [bugfix] Pass Docker env vars to `docker publish`. (cherrypick of #13669) ([#13752](https://github.com/pantsbuild/pants/pull/13752)) + +* Make tailor generate correct fields for `python_requirements`. (cherrypick of #13687) ([#13688](https://github.com/pantsbuild/pants/pull/13688)) + + +## 2.8.1rc0 (Nov 17, 2021) + +### Bug fixes + +* Fix download URL for `grpc_python_plugin` on macos (cherrypick of #13656) ([#13659](https://github.com/pantsbuild/pants/pull/13659)) + +## 2.8.0 (Nov 17, 2021) + +The first stable release of the `2.8.x` series, with no changes since the previous release candidate! + +## 2.8.0rc6 (Nov 16, 2021) + +### New features + +* Add `[twine].ca_certs_path` option (Cherry-pick of #13593) ([#13642](https://github.com/pantsbuild/pants/pull/13642)) + +### User API Changes + +* Ban `*` globs and `!` ignores in `source: str` field (Cherry-pick of #13629) ([#13636](https://github.com/pantsbuild/pants/pull/13636)) + +* Bump twine to 3.6.0 and add tool lockfile (Cherry-pick of #13594) ([#13640](https://github.com/pantsbuild/pants/pull/13640)) + +### Bug fixes + +* Fix Python dependency inference breaking with `python_source` targets (Cherry-pick of #13627) ([#13633](https://github.com/pantsbuild/pants/pull/13633)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. (Cherry-pick of #13616) ([#13623](https://github.com/pantsbuild/pants/pull/13623)) + +## 2.8.0rc5 (Nov 10, 2021) + +### Performance + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes (cherrypick of #13559) ([#13561](https://github.com/pantsbuild/pants/pull/13561)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets (cherrypick of #13574) ([#13582](https://github.com/pantsbuild/pants/pull/13582)) + +## 2.8.0rc4 (Nov 09, 2021) + +### Bug fixes + +* Don't duplicate Go error logs when dependency failed to compile (Cherry-pick of #13502) ([#13538](https://github.com/pantsbuild/pants/pull/13538)) + +* Fix `--no-print-stacktrace`. (cherrypick of #13539) ([#13541](https://github.com/pantsbuild/pants/pull/13541)) + +### Documentation + +* Fix formatting of overrides field in docs (Cherry-pick of #13549) ([#13552](https://github.com/pantsbuild/pants/pull/13552)) + +## 2.8.0rc3 (Nov 04, 2021) + +### Performance + +* Go: improve performance of first-party package analysis (Cherry-pick of #13476) ([#13486](https://github.com/pantsbuild/pants/pull/13486)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go (Cherry-pick of #13492) ([#13493](https://github.com/pantsbuild/pants/pull/13493)) + +## 2.8.0rc2 (Nov 02, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements (Cherry-pick of #13458) ([#13475](https://github.com/pantsbuild/pants/pull/13475)) + +* Add `--tailor-check` (Cherry-pick of #13432) ([#13457](https://github.com/pantsbuild/pants/pull/13457)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` (Cherry-pick of #13422) ([#13454](https://github.com/pantsbuild/pants/pull/13454)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` (Cherry-pick of #13420) ([#13446](https://github.com/pantsbuild/pants/pull/13446)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value (Cherry-pick of #13456) ([#13466](https://github.com/pantsbuild/pants/pull/13466)) + +### Bug fixes + +* Do not cache Docker invocations between Pants runs (Cherry-pick of #13464) ([#13467](https://github.com/pantsbuild/pants/pull/13467)) + +* Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) ([#13459](https://github.com/pantsbuild/pants/pull/13459)) + +## 2.8.0rc1 (Oct 28, 2021) + +### Bug fixes + +* Assume version 1 for older lockfiles without `version` key (cherrypick of #13399) ([#13406](https://github.com/pantsbuild/pants/pull/13406)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13394](https://github.com/pantsbuild/pants/pull/13394)) + +* Go: don't error for unsupported third-party sources with project introspection (Cherry-pick of #13377) ([#13381](https://github.com/pantsbuild/pants/pull/13381)) + +* Don't error for invalid Go third-party packages unless building them (Cherry-pick of #13405) ([#13410](https://github.com/pantsbuild/pants/pull/13410)) + +* Fix missing field for `tffmt` in `lint`. (cherrypick of #13355) ([#13356](https://github.com/pantsbuild/pants/pull/13356)) + +### Performance + +* Use `--layout=packed` for all monolithic resolves. (cherrypick of #13400) ([#13403](https://github.com/pantsbuild/pants/pull/13403)) + +* Don't download Go third-party dependencies multiple times (Cherry-pick of #13352) ([#13378](https://github.com/pantsbuild/pants/pull/13378)) + +### Documentation + +* Make `check` output more useful for Go and Java (cherrypick of #13379) ([#13388](https://github.com/pantsbuild/pants/pull/13388)) + +## 2.8.0rc0 (Oct 24, 2021) + +### New Features + +* `update-build-files` goal formats BUILD files with Black ([#13279](https://github.com/pantsbuild/pants/pull/13279)) + +* Add `overrides` field to `files` and `resources` targets ([#13304](https://github.com/pantsbuild/pants/pull/13304)) + +* Add `overrides` field to `shell_sources`, `shunit2_sources`, and `protobuf_sources` ([#13298](https://github.com/pantsbuild/pants/pull/13298)) + +* Add `overrides` field to `python_sources` and `python_tests` target ([#13270](https://github.com/pantsbuild/pants/pull/13270)) + +* Depending on a `python_distribution` with `pex_binary` now includes the built dist ([#13306](https://github.com/pantsbuild/pants/pull/13306)) + +* Support arbitrary PEP-517 build systems. ([#13285](https://github.com/pantsbuild/pants/pull/13285)) + +### User API Changes + +* Pants's CLI output uses the full address `dir:dir` instead of the shorthand `dir` ([#13274](https://github.com/pantsbuild/pants/pull/13274)) + +* Rename `[python-setup]` to `[python]` and move into the python backend. ([#13345](https://github.com/pantsbuild/pants/pull/13345)) + +* The default `sources` for `conftest.py` and `*_test.pyi` now belong to new target generator `python_test_utils`, not `python_tests` ([#13299](https://github.com/pantsbuild/pants/pull/13299)) + +* Deprecate including `conftest.py` and `.pyi` files in `python_tests` target's `sources` field ([#13320](https://github.com/pantsbuild/pants/pull/13320)) + +* Rename `docker_image` field `sources` to `source` ([#13327](https://github.com/pantsbuild/pants/pull/13327)) + +* Merge docker `version` field into the `image_tags` field. ([#13308](https://github.com/pantsbuild/pants/pull/13308)) + +* Upgrade default black version from 21.8b0 to 21.9b0 ([#13326](https://github.com/pantsbuild/pants/pull/13326)) + +* Terraform: move `terraform validate` from `lint` to `check` ([#13301](https://github.com/pantsbuild/pants/pull/13301)) + +* Autoflake and Pyupgrade are now activated by experimental backends ([#13317](https://github.com/pantsbuild/pants/pull/13317)) + +* Add google cloud logging to default Python module map ([#13305](https://github.com/pantsbuild/pants/pull/13305)) + +### Plugin API Changes + +* Add support for structured output from `publish` goal. ([#13292](https://github.com/pantsbuild/pants/pull/13292)) + +### Bug fixes + +* Do not choke on `.` in tool names for `experimental_shell_command`s. ([#13293](https://github.com/pantsbuild/pants/pull/13293)) + +### Documentation + +* Fix documentation for `file:` URLs, and add an assist for malformed URLs. ([#13272](https://github.com/pantsbuild/pants/pull/13272)) + +## 2.8.0.dev5 (Oct 17, 2021) + +### New Features + +* Add `./pants update-build-files` to automate fixing some deprecation warnings ([#13273](https://github.com/pantsbuild/pants/pull/13273)) + +* Add `[cli.alias]` config section for command line alias support. ([#13228](https://github.com/pantsbuild/pants/pull/13228)) + +* Add `run` support for new `experimental_run_shell_command` target. ([#13229](https://github.com/pantsbuild/pants/pull/13229)) + +* Add `azure` to default Python module mapping ([#13275](https://github.com/pantsbuild/pants/pull/13275)) + +* Support linux arm64 binary tools. ([#13249](https://github.com/pantsbuild/pants/pull/13249)) + +* Add minimal Scala backend ([#13130](https://github.com/pantsbuild/pants/pull/13130)) + +### User API Changes + +* Fix `dir:` and `dir::` to include generated targets ([#13263](https://github.com/pantsbuild/pants/pull/13263)) + +* Merge Docker `image_name` into the `repository` field. ([#13225](https://github.com/pantsbuild/pants/pull/13225)) + +* `python_sources` and `python_tests` targets no longer use dependency inference, only `python_source` and `python_test` targets ([#13231](https://github.com/pantsbuild/pants/pull/13231)) + +### Plugin API Changes + +* Verify each observed URL and Digest pair ([#13266](https://github.com/pantsbuild/pants/pull/13266)) + +### Bug fixes + +* Fix pyupgrade alias name conflict ([#13282](https://github.com/pantsbuild/pants/pull/13282)) + +* Fix generate_all_lockfiles. ([#13280](https://github.com/pantsbuild/pants/pull/13280)) + +* Don't invalidate dependency inference when unrelated file names change ([#13248](https://github.com/pantsbuild/pants/pull/13248)) + +* Fix `./pants help targets` to not include deprecated target names ([#13236](https://github.com/pantsbuild/pants/pull/13236)) + +## 2.8.0.dev4 (Oct 11, 2021) + +### New Features + +* Add support for pyupgrade ([#13063](https://github.com/pantsbuild/pants/pull/13063)) + +* Support optionally restarting interactive processes when input files change ([#13178](https://github.com/pantsbuild/pants/pull/13178)) + +* Package dependencies for shell command. ([#13168](https://github.com/pantsbuild/pants/pull/13168)) + +* Add `help tools` ([#13135](https://github.com/pantsbuild/pants/pull/13135)) + +* Docker build args config option ([#13147](https://github.com/pantsbuild/pants/pull/13147)) + +* Add `[docker].env_vars` option. ([#13146](https://github.com/pantsbuild/pants/pull/13146)) + +* Support for directly `run`ning a Docker image ([#13120](https://github.com/pantsbuild/pants/pull/13120)) + +* Docker image version tag ([#13097](https://github.com/pantsbuild/pants/pull/13097)) + +* Docker `publish` support ([#13085](https://github.com/pantsbuild/pants/pull/13085)) + +* New `publish` goal ([#13057](https://github.com/pantsbuild/pants/pull/13057)) + +### User API Changes + +* Add `[mypy].extra_type_stubs` ([#13180](https://github.com/pantsbuild/pants/pull/13180)) + +* Deprecate `requirements_relpath` and `pyproject_toml_relpath` in favor of `source` for `python_requirements` and `poetry_requirements` ([#13204](https://github.com/pantsbuild/pants/pull/13204)) + +* Deprecate `module_mapping` and `type_stubs_module_mapping` fields for `python_requirement` in favor of `modules` and `type_stub_modules` ([#13197](https://github.com/pantsbuild/pants/pull/13197)) + +* Deprecate `python_library`, `protobuf_library`, and `shell_library` in favor of `python_sources`, `protobuf_sources`, and `shell_sources` ([#13196](https://github.com/pantsbuild/pants/pull/13196)) + +* Add `scikit-learn` to the default module mapping ([#13198](https://github.com/pantsbuild/pants/pull/13198)) + +* Deprecate `python_requirement_library` in favor of `python_requirement` ([#13133](https://github.com/pantsbuild/pants/pull/13133)) + +* An explicit `generate_setup` field on `python_distribution`. ([#13111](https://github.com/pantsbuild/pants/pull/13111)) + +* Upgrade to Pex 2.1.51. ([#13098](https://github.com/pantsbuild/pants/pull/13098)) + +### Plugin API Changes + +* Deprecate `Sources` in favor of `SourcesField`, `SingleSourceField`, and `MultipleSourcesField` ([#13202](https://github.com/pantsbuild/pants/pull/13202)) + +* Rename `ResourcesSources` and split target into generator vs. atom ([#13194](https://github.com/pantsbuild/pants/pull/13194)) + +* Rename `FilesSources` and split target into target generator vs. atom target ([#13190](https://github.com/pantsbuild/pants/pull/13190)) + +* Add `engine_error()` context manager for testing plugin exceptions ([#13108](https://github.com/pantsbuild/pants/pull/13108)) + +### Bug fixes + +* [jvm] Ignore symbols exposed by unnamed packages. ([#13214](https://github.com/pantsbuild/pants/pull/13214)) + +* `f.ext` is now a file argument, not a goal ([#13212](https://github.com/pantsbuild/pants/pull/13212)) + +* `pantsd` falls back to socket usage if it cannot open a TTY. ([#13155](https://github.com/pantsbuild/pants/pull/13155)) + +* Do not change working directory when extracting archives ([#13077](https://github.com/pantsbuild/pants/pull/13077)) + +* Release the GIL while creating a Session. ([#13127](https://github.com/pantsbuild/pants/pull/13127)) + +### Performance + +* Changing global options doesn't invalidate as much ([#13144](https://github.com/pantsbuild/pants/pull/13144)) + +### Documentation + +* Improve a couple of log messages. ([#13121](https://github.com/pantsbuild/pants/pull/13121)) + +* [Docs] Filter out self from list of related subsystems. ([#13148](https://github.com/pantsbuild/pants/pull/13148)) + +## 2.8.0.dev3 (Oct 01, 2021) + +### New Features + +* Make the number of dots in string dep inference an option. ([#13059](https://github.com/pantsbuild/pants/pull/13059)) + +* Docker image name tags ([#13048](https://github.com/pantsbuild/pants/pull/13048)) + +* Add a `--closed` option to the dependencies goal. ([#13043](https://github.com/pantsbuild/pants/pull/13043)) + +* Support multiple Docker registries per image. ([#13047](https://github.com/pantsbuild/pants/pull/13047)) + +* Add Docker registry field ([#13017](https://github.com/pantsbuild/pants/pull/13017)) + +* Support for PEP-517/518 builds. ([#13012](https://github.com/pantsbuild/pants/pull/13012)) + +* Add autoflake unused import remover to Python lint tools. ([#13010](https://github.com/pantsbuild/pants/pull/13010)) + +* Support tailoring non-addressable macros. ([#12989](https://github.com/pantsbuild/pants/pull/12989)) + +* Implement Java dep inference mapper and rules ([#12978](https://github.com/pantsbuild/pants/pull/12978)) + +* Include the experimental java backend in the Pants distribution. ([#13003](https://github.com/pantsbuild/pants/pull/13003)) + +* Have `peek` emit expanded sources and dependencies ([#12882](https://github.com/pantsbuild/pants/pull/12882)) + +* New experimental_shell_command ([#12878](https://github.com/pantsbuild/pants/pull/12878)) + +* Support tailoring with an alternative BUILD file name ([#12979](https://github.com/pantsbuild/pants/pull/12979)) + +* Add Java dependency analysis types and launcher using javaparser library. ([#12890](https://github.com/pantsbuild/pants/pull/12890)) + +### User API Changes + +* Remove Gofmt backend and activate it with `pants.experimental.go` ([#13014](https://github.com/pantsbuild/pants/pull/13014)) + +* Register terraform lint & validate backends when the terraform backend is registered ([#13002](https://github.com/pantsbuild/pants/pull/13002)) + +* Deprecate --type in the dependencies goal. ([#12998](https://github.com/pantsbuild/pants/pull/12998)) + +### Plugin API Changes + +* Add `RuleRunner.write_digest()` ([#13044](https://github.com/pantsbuild/pants/pull/13044)) + +* Change `BinaryNotFoundError` constructor to be more generic ([#13001](https://github.com/pantsbuild/pants/pull/13001)) + +### Bug fixes + +* Don't invalidate the scheduler when piping output. ([#13028](https://github.com/pantsbuild/pants/pull/13028)) + +* Ensure that `Tree` contents are uploaded after creation. ([#13008](https://github.com/pantsbuild/pants/pull/13008)) + +* Fix case sensitivity of `module_mapping` for `python_requirements` and `poetry_requirements` ([#12980](https://github.com/pantsbuild/pants/pull/12980)) + +* Fix spurious "Scheduling: ..." workunits with remote caching ([#12973](https://github.com/pantsbuild/pants/pull/12973)) + +* Fix `./pants dependencies --transitive` when run on a target generator like `python_library` ([#12956](https://github.com/pantsbuild/pants/pull/12956)) + +### Performance + +* Use nailgun for javac and import parser ([#12982](https://github.com/pantsbuild/pants/pull/12982)) + +## 2.8.0.dev2 (Sep 17, 2021) + +### New Features + +* Build and install `python_distribution` deps for test, run, and repl ([#12573](https://github.com/pantsbuild/pants/pull/12573)) + +* Tailor `python_requirements` macro invocations. ([#12862](https://github.com/pantsbuild/pants/pull/12862)) + +* Add `script` field to `pex_binary` for console scripts ([#12849](https://github.com/pantsbuild/pants/pull/12849)) + +* Add option to `[python-setup]` to handle a quirk when building `python_distribution` on MacOS Big Sur. ([#12857](https://github.com/pantsbuild/pants/pull/12857)) + +### User API Changes + +* Rename the `typecheck` goal to `check` ([#12858](https://github.com/pantsbuild/pants/pull/12858)) + +* Ban `#` in an address's target name ([#12940](https://github.com/pantsbuild/pants/pull/12940)) + +* Upgrade to Pex 2.1.50. ([#12888](https://github.com/pantsbuild/pants/pull/12888)) + +* Add new version of `LockfileMetadata` to support checking for identically specified requirements ([#12782](https://github.com/pantsbuild/pants/pull/12782)) + +### Plugin API Changes + +* Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 ([#12842](https://github.com/pantsbuild/pants/pull/12842)) + +### Bug fixes + +* Fix "file-level dependencies" on `files` and `resources` targets to not pull in sibling files ([#12941](https://github.com/pantsbuild/pants/pull/12941)) + +* Add google_cloud_function to plugin dependencies. Fix typo. ([#12932](https://github.com/pantsbuild/pants/pull/12932)) + +* If `[python-setup].invalid_lockfile_behavior = ignore`, don't require Pants metadata in the lockfile ([#12900](https://github.com/pantsbuild/pants/pull/12900)) + +### Performance + +* Don't find `tar`, `unzip`, and `zip` as frequently ([#12947](https://github.com/pantsbuild/pants/pull/12947)) + +## 2.8.0.dev1 (Sep 10, 2021) + +### New Features + +* Support --fail-under on merged coverage. ([#12778](https://github.com/pantsbuild/pants/pull/12778)) + +* Add python-docx to the module mapping dictionary ([#12775](https://github.com/pantsbuild/pants/pull/12775)) + +* Add python-pptx to the module mapping dictionary ([#12776](https://github.com/pantsbuild/pants/pull/12776)) + +* Add `opencv-python` to the default Python module mapping ([#12777](https://github.com/pantsbuild/pants/pull/12777)) + +* Add `PyMuPDF` to the default Python module mapping ([#12774](https://github.com/pantsbuild/pants/pull/12774)) + +### User API Changes + +* Deprecate `--list-provides` option. ([#12759](https://github.com/pantsbuild/pants/pull/12759)) + +* Upgrade default `isort` to latest `isort==5.9.3` ([#12756](https://github.com/pantsbuild/pants/pull/12756)) + +* Add `version` to lockfile metadata headers ([#12788](https://github.com/pantsbuild/pants/pull/12788)) + +### Plugin API Changes + +* `OutputPathField.value_or_default()` no longer has an `Address` argument ([#12837](https://github.com/pantsbuild/pants/pull/12837)) + +### Bug fixes + +* Properly include file dependencies in docker build context ([#12758](https://github.com/pantsbuild/pants/pull/12758)) + +* DigestSubset should not short-circuit when there are ignores involved. ([#12648](https://github.com/pantsbuild/pants/pull/12648)) + +* Fix backports of std lib modules like `dataclasses` not working with dependency inference ([#12818](https://github.com/pantsbuild/pants/pull/12818)) + +### Performance + +* Improve cache reuse for `./pants package` when using a constraints file or lockfile ([#12807](https://github.com/pantsbuild/pants/pull/12807)) + +* Upgrade to Pex 2.1.48 and leverage packed layout. ([#12808](https://github.com/pantsbuild/pants/pull/12808)) + +### Documentation + +* Warn if `[python-repos]` is set during lockfile generation ([#12800](https://github.com/pantsbuild/pants/pull/12800)) + +* Fix a markdown issue in a help string. ([#12766](https://github.com/pantsbuild/pants/pull/12766)) + +## 2.8.0.dev0 (Sep 03, 2021) + +### New Features + +* Add support for creating GCP Cloud Functions. ([#12735](https://github.com/pantsbuild/pants/pull/12735)) + +* [experimental] Add proof-of-concept Java junit test rule. ([#12177](https://github.com/pantsbuild/pants/pull/12177)) + +* Support TOML tables for dict options in pants.toml ([#12707](https://github.com/pantsbuild/pants/pull/12707)) + +### User API Changes + +* Remove undocumented `pants_version()` symbol from BUILD files ([#12745](https://github.com/pantsbuild/pants/pull/12745)) + +* Remove deprecated `[python-protobuf.mypy-plugin]` in favor of `[mypy-protobuf]` ([#12743](https://github.com/pantsbuild/pants/pull/12743)) + +* Stop interpolating `pants_supportdir` in `pants.toml` and deprecate the option ([#12705](https://github.com/pantsbuild/pants/pull/12705)) + +* Error, don't warn, when `--generate-lockfiles-resolve` is set to a disabled tool lockfile ([#12738](https://github.com/pantsbuild/pants/pull/12738)) + +* Remove deprecated `.with_binaries()`. ([#12724](https://github.com/pantsbuild/pants/pull/12724)) + +* Update default `[black].version` to 21.8b0 ([#12718](https://github.com/pantsbuild/pants/pull/12718)) + +* Update `futures` to` 0.3.17`. ([#12722](https://github.com/pantsbuild/pants/pull/12722)) + +* Upgrade to Pex 2.1.47. ([#12715](https://github.com/pantsbuild/pants/pull/12715)) + +* Remove deprecated `[pytest].pytest_plugins` in favor of `[pytest].extra_requirements` ([#12704](https://github.com/pantsbuild/pants/pull/12704)) + +* Remove deprecated `[grpc_python_plugin]` in favor of `[grpc-python-plugin]` ([#12706](https://github.com/pantsbuild/pants/pull/12706)) + +### Plugin API Changes + +* Add intrinsic to produce a `DigestEntries` from a `Digest` which reference file content by hash ([#12693](https://github.com/pantsbuild/pants/pull/12693)) + +### Bug fixes + +* Fix UI rendering when a workunit has completed children but no running children ([#12748](https://github.com/pantsbuild/pants/pull/12748)) + +* Improve descriptions of the process executions for `PEX_PATH` composition. ([#12736](https://github.com/pantsbuild/pants/pull/12736)) + +* Absolutize all of the `execute_pex_args` in the venv script. ([#12727](https://github.com/pantsbuild/pants/pull/12727)) + +* Include `.gitignore` in default `pantsd_invalidation_globs` ([#12711](https://github.com/pantsbuild/pants/pull/12711)) + +### Performance + +* Simplify implementation of materialize directories ([#12696](https://github.com/pantsbuild/pants/pull/12696)) + +### Documentation + +* Fix rendering of the ABOUT file. ([#12744](https://github.com/pantsbuild/pants/pull/12744)) + +* Add specific and actionable instructions to stale lockfile errors ([#12699](https://github.com/pantsbuild/pants/pull/12699)) + +* Link to pants slack from pypi project page ([#12701](https://github.com/pantsbuild/pants/pull/12701)) diff --git a/versioned_docs/version-2.20/notes/2.9.x.md b/versioned_docs/version-2.20/notes/2.9.x.md new file mode 100644 index 000000000..a7bfa3a32 --- /dev/null +++ b/versioned_docs/version-2.20/notes/2.9.x.md @@ -0,0 +1,471 @@ +# 2.9.x Release Series + +## 2.9.2 (May 13, 2022) + +The third stable release of the `2.9.x` series, with no changes since the previous `rc`! + +## 2.9.2rc0 (Apr 07, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.73. (Cherry-pick of #14875) ([#15029](https://github.com/pantsbuild/pants/pull/15029)) + +### Bug fixes + +* Fix empty `sys.path` entries causing an error during invalidation glob calculation. (cherrypick of #14819) ([#14961](https://github.com/pantsbuild/pants/pull/14961)) + +## 2.9.1 (Mar 25, 2022) + +The second stable release of the `2.9.x` series, with no changes since the previous `rc`. + +## 2.9.1rc2 (Mar 14, 2022) + +### Bug fixes + +* Upgrade Pex to 2.1.71, which fixes issues installing some PEXes. (Cherry-pick of #14768) ([#14770](https://github.com/pantsbuild/pants/pull/14770)) + +## 2.9.1rc1 (Mar 04, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.70. (#14700) ([#14704](https://github.com/pantsbuild/pants/pull/14704)) + +### Bug fixes + +* Fix dropped output race during UI teardown (cherrypick of #14093) ([#14690](https://github.com/pantsbuild/pants/pull/14690)) + +## 2.9.1rc0 (Feb 26, 2022) + +### User API Changes + +* Upgrade Pex to 2.1.65. (Cherry-pick of #14256) ([#14617](https://github.com/pantsbuild/pants/pull/14617)) + +### Bug fixes + +* Fix coverage base global report creation bug. (cherrypick of #14547) ([#14550](https://github.com/pantsbuild/pants/pull/14550)) + +* Fix executability of materialized files for non-owners. (cherrypick of #14298) ([#14308](https://github.com/pantsbuild/pants/pull/14308)) + +* Fix bad default module mapping for PyMongo (Cherry-pick of #14284) ([#14285](https://github.com/pantsbuild/pants/pull/14285)) + +* Fix complex `__import__` statements failing to parse with Python 2.7 - 3.7 (Cherry-pick of #14232) ([#14233](https://github.com/pantsbuild/pants/pull/14233)) + +### Performance + +* add timeout for remote cache lookups (cherry-pick of #14224) ([#14226](https://github.com/pantsbuild/pants/pull/14226)) + +### Documentation + +* Rewrite `help` for `dependencies` field to mention generated targets (Cherry-pick of #14621) ([#14628](https://github.com/pantsbuild/pants/pull/14628)) + +* Don't leak local paths into generated docs. (cherrypick #14591) ([#14593](https://github.com/pantsbuild/pants/pull/14593)) + +* Add some missing backends to generated docs (Cherry-pick of #14290) ([#14292](https://github.com/pantsbuild/pants/pull/14292)) + +## 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](https://github.com/pantsbuild/pants/pull/14131)) + +## 2.9.0rc5 (Jan 07, 2022) + +### Bug fixes + +* Hook up Scalafmt and Google Java Format to `./pants lint` (cherrypick of #14108) ([#14117](https://github.com/pantsbuild/pants/pull/14117)) + +* Reduce output from `scalafmt`, and lower reflective access option threshold for Google Java Format. (cherrypick of #14109) ([#14118](https://github.com/pantsbuild/pants/pull/14118)) + +## 2.9.0rc4 (Jan 06, 2022) + +### New Features + +* JVM Resources support (cherrypick of #13908) ([#14088](https://github.com/pantsbuild/pants/pull/14088)) + +## 2.9.0rc3 (Jan 05, 2022) + +### Bug fixes + +* Fix incorrectly setting `name` on `python_requirements` macro (Cherry-pick of #14065) ([#14067](https://github.com/pantsbuild/pants/pull/14067)) + +* Fix help strings which were accidentally tuples, and add a validation. (cherrypick of #14057) ([#14068](https://github.com/pantsbuild/pants/pull/14068)) + +## 2.9.0rc2 (Jan 03, 2022) + +### New Features + +* Add duration and cache source to test output. (cherrypick of #13889) ([#14002](https://github.com/pantsbuild/pants/pull/14002)) + +* Support Docker build target stage (Cherry pick of #13956) ([#13997](https://github.com/pantsbuild/pants/pull/13997)) + +* Support `test --debug` with scalatest and junit. (cherrypick of #13958 and #13966) ([#14000](https://github.com/pantsbuild/pants/pull/14000)) + +* Docker context troubleshooter (Cherry pick of #13896) ([#13953](https://github.com/pantsbuild/pants/pull/13953)) + +### User API Changes + +* Upgrade to Pex 2.1.61 and use `--venv` copies. (Cherry pick of #13979) ([#13980](https://github.com/pantsbuild/pants/pull/13980)) + +### Bug fixes + +* Fix `.pyi` type stubs to show up in `python_distribution` (cherrypick of #14033) ([#14035](https://github.com/pantsbuild/pants/pull/14035)) + +* Restore the `pants` namespace package. (Cherry picked from #13972) ([#13977](https://github.com/pantsbuild/pants/pull/13977)) + +* Fix deprecated `[python-setup].interpreter_search_paths` and `[pex].bootstrap_interpreter_names` not working ([#14009](https://github.com/pantsbuild/pants/pull/14009)) + +* Fix file sources codegen for the Docker build context. (Cherry pick of #14024) ([#14025](https://github.com/pantsbuild/pants/pull/14025)) + +* [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (cherrypick of #14038) ([#14046](https://github.com/pantsbuild/pants/pull/14046)) + +* [jvm] Parse maven coordinates using regular expression (cherrypick of #14010) ([#14015](https://github.com/pantsbuild/pants/pull/14015)) + +* [jvm] Fix parsing of `Coursier` report coordinates when `packaging` is reported. (cherrypick of #13996) ([#13998](https://github.com/pantsbuild/pants/pull/13998)) + +* [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (cherrypick of #14012) ([#14014](https://github.com/pantsbuild/pants/pull/14014)) + +## 2.9.0rc1 (Dec 21, 2021) + +### User API Changes + +* Set a default for `[jvm].resolves` and `[jvm].default_resolve` (cherrypick of #13925) ([#13930](https://github.com/pantsbuild/pants/pull/13930)) + +* [jvm] Normalize the layout of JVM subsystems and add support for compiler options (cherrypick of #13926) ([#13931](https://github.com/pantsbuild/pants/pull/13931)) + +* Upgrade Pex to 2.1.59. (#13932) ([#13933](https://github.com/pantsbuild/pants/pull/13933)) + +### Bug fixes + +* Fix `tailor` not setting the `name` field (Cherry-pick of #13913) ([#13924](https://github.com/pantsbuild/pants/pull/13924)) + +* Fix `--log-levels-by-target` not working for logs from Python code (Cherry-pick of #13939) ([#13940](https://github.com/pantsbuild/pants/pull/13940)) + +* Revert "Turn off validation for unset `SourcesField` if `required=False`" (#13856) (cherrypick of #13944) ([#13946](https://github.com/pantsbuild/pants/pull/13946)) + +* [jvm] Expose additional JVM backends and symbols (cherrypick of #13943) ([#13947](https://github.com/pantsbuild/pants/pull/13947)) + +## 2.9.0rc0 (Dec 17, 2021) + +### New Features + +* Add `--docker-run-args` option to support `docker run [args] `. ([#13818](https://github.com/pantsbuild/pants/pull/13818)) + +* An include_requirements field on pex_binary. ([#13894](https://github.com/pantsbuild/pants/pull/13894)) + +* Add new `secrets` field to `docker_image`. ([#13830](https://github.com/pantsbuild/pants/pull/13830)) + +* [jvm] Add support for Scalatest ([#13872](https://github.com/pantsbuild/pants/pull/13872)) + +### Bug fixes + +* [jvm] Apply the resolve for `deploy_jar` and restore validation of resolve compatibility ([#13911](https://github.com/pantsbuild/pants/pull/13911)) + +* Fix `java_junit_test` and `scala_junit_test` targets to use `resolve` instead of `compatible_resolves` ([#13870](https://github.com/pantsbuild/pants/pull/13870)) + +* [jvm] Fix `tailor` for the addition of `Scalatest`. ([#13887](https://github.com/pantsbuild/pants/pull/13887)) + +* Fix `setup_py` resource packaging. ([#13878](https://github.com/pantsbuild/pants/pull/13878)) + +### Documentation + +* Fix rendering of default field values in reference docs. ([#13891](https://github.com/pantsbuild/pants/pull/13891)) + +* Provide helpful error message in case of undefined Docker build arg. ([#13880](https://github.com/pantsbuild/pants/pull/13880)) + +* [docs] Enable `Java` and `Scala` backends on the docsite. ([#13909](https://github.com/pantsbuild/pants/pull/13909)) + +* Update the project description. ([#13906](https://github.com/pantsbuild/pants/pull/13906)) + +* Add warning when building AWS Lambdas and Google Cloud Functions on macOS. ([#13790](https://github.com/pantsbuild/pants/pull/13790)) + +## 2.9.0.dev4 (Dec 13, 2021) + +### New Features + +* [jvm] Hook up the ability to run JUnit tests written in Scala ([#13868](https://github.com/pantsbuild/pants/pull/13868)) + +* scala: add `scalafmt` support for `fmt` and `lint` goals ([#13814](https://github.com/pantsbuild/pants/pull/13814)) + +* scala: add protobuf codegen support via `scalapb` ([#13853](https://github.com/pantsbuild/pants/pull/13853)) + +* Add support for global `scalac` plugins. ([#13827](https://github.com/pantsbuild/pants/pull/13827)) + +* JVM: Adds `jar` field to `jvm_artifact` ([#13834](https://github.com/pantsbuild/pants/pull/13834)) + +### User API Changes + +* `relocate_files` no longer used with `export-codegen` goal ([#13829](https://github.com/pantsbuild/pants/pull/13829)) + +* Include `shell_source(s)` in `docker_image` build context. ([#13761](https://github.com/pantsbuild/pants/pull/13761)) + +### Plugin API Changes + +* Codegen plugins can turn off `export-codegen` integration. ([#13828](https://github.com/pantsbuild/pants/pull/13828)) + +* Deprecate `testutil.RuleRunner.create_files()` `.create_file()` and `.add_to_build_file()` ([#13817](https://github.com/pantsbuild/pants/pull/13817)) + +### Bug fixes + +* Fix `.pyi` files not automatically depending on `__init__.py` ([#13844](https://github.com/pantsbuild/pants/pull/13844)) + +### Performance + +* [jvm] Use `immutable_inputs` to provide the compiletime classpath ([#13862](https://github.com/pantsbuild/pants/pull/13862)) + +### Documentation + +* Improve Docker undefined build arg behavior ([#13723](https://github.com/pantsbuild/pants/pull/13723)) + +* Add missing backtick ([#13861](https://github.com/pantsbuild/pants/pull/13861)) + +* Do not log extra deprecation info when there are no changes for `update-build-files --check`. ([#13855](https://github.com/pantsbuild/pants/pull/13855)) + +## 2.9.0.dev3 (Dec 06, 2021) + +### New Features + +* java: add support for Google Java Format ([#13811](https://github.com/pantsbuild/pants/pull/13811)) + +* Adds support for remote jvm artifact urls ([#13793](https://github.com/pantsbuild/pants/pull/13793)) + +* Go tests can depend on `file` targets (e.g. `testdata` folder) ([#13781](https://github.com/pantsbuild/pants/pull/13781)) + +* An option to test/run/repl against the entire lockfile. ([#13732](https://github.com/pantsbuild/pants/pull/13732)) + +* Add `test_timeout` fields to `go_package` ([#13707](https://github.com/pantsbuild/pants/pull/13707)) + +* Added the `paths` goal to render all paths between two targets ([#13778](https://github.com/pantsbuild/pants/pull/13778)) + +* Add support for inferring relative imports from Scala ([#13775](https://github.com/pantsbuild/pants/pull/13775)) + +* go: add `go vet` linter ([#13438](https://github.com/pantsbuild/pants/pull/13438)) + +* Support interpolating Docker build args into the `repository` field of `docker_image` targets. ([#13721](https://github.com/pantsbuild/pants/pull/13721)) + +* Expose Pex `--resolve-local-platforms` option. ([#13715](https://github.com/pantsbuild/pants/pull/13715)) + +* Expose Pex `--layout` option for `pex_binary`. ([#13714](https://github.com/pantsbuild/pants/pull/13714)) + +* Add `skip_tests` field to `go_package` and `shunit2_test` ([#13708](https://github.com/pantsbuild/pants/pull/13708)) + +* JVM: Support strong first-party declarations of provided types ([#13698](https://github.com/pantsbuild/pants/pull/13698)) + +* scala: add `repl` support ([#13576](https://github.com/pantsbuild/pants/pull/13576)) + +* Capture pylint reports. ([#13689](https://github.com/pantsbuild/pants/pull/13689)) + +### User API Changes + +* Rename `pypi_repositories` field to `repositories` ([#13794](https://github.com/pantsbuild/pants/pull/13794)) + +* Add `--local-cache` and `--process-cleanup` to replace `--process-execution-local-cache` and `--process-execution-local-cleanup` ([#13769](https://github.com/pantsbuild/pants/pull/13769)) + +* Add `pants_requirements` target generator and deprecate `pants_requirement` macro ([#13512](https://github.com/pantsbuild/pants/pull/13512)) + +* Stop generating `go_package` targets from `go_mod` ([#13702](https://github.com/pantsbuild/pants/pull/13702)) + +* Rename `go_first_party_package` target to `go_package` ([#13681](https://github.com/pantsbuild/pants/pull/13681)) + +* Upgrade default version of Black from 21.9b0 to 21.12b0 ([#13816](https://github.com/pantsbuild/pants/pull/13816)) + +* Upgrade to Pex 2.1.56. ([#13713](https://github.com/pantsbuild/pants/pull/13713)) + +### Plugin API Changes + +* `IntField` and `FloatField` can ban negative numbers and zero ([#13705](https://github.com/pantsbuild/pants/pull/13705)) + +### Bug fixes + +* Support materializing files through file symlinks. ([#13789](https://github.com/pantsbuild/pants/pull/13789)) + +* Fix duplicate error message for `publish` with no matching targets ([#13776](https://github.com/pantsbuild/pants/pull/13776)) + +* Fix bug when `docker push`ing multiple tags. ([#13764](https://github.com/pantsbuild/pants/pull/13764)) + +* Fix Java / Scala cycle artifact filename collision. ([#13759](https://github.com/pantsbuild/pants/pull/13759)) + +* Fix `run` goal for `pex_binary` with a script entry point from a 3rdparty dependency. ([#13748](https://github.com/pantsbuild/pants/pull/13748)) + +* Fix hadolint SIGSEGV. ([#13736](https://github.com/pantsbuild/pants/pull/13736)) + +* Fix `--resolve-local-platforms` help. ([#13722](https://github.com/pantsbuild/pants/pull/13722)) + +* Avoid calling disabled stream handlers. ([#13680](https://github.com/pantsbuild/pants/pull/13680)) + +* Fix Go compilation failures causing `test` goal to error ([#13711](https://github.com/pantsbuild/pants/pull/13711)) + +* Fix UI rendering of Go packages with no tests ([#13710](https://github.com/pantsbuild/pants/pull/13710)) + +* Fix dup 3rdparty dists introduced by local dists. ([#13690](https://github.com/pantsbuild/pants/pull/13690)) + +* Make tailor generate correct fields for python_requirements. ([#13687](https://github.com/pantsbuild/pants/pull/13687)) + +* Interactive processes kill the process and its children on Ctrl+C. ([#13678](https://github.com/pantsbuild/pants/pull/13678)) + +## 2.9.0.dev2 (Nov 18, 2021) + +### New Features + +* [jvm] Add support for compiling cycles between Java and Scala ([#13653](https://github.com/pantsbuild/pants/pull/13653)) + +* [jvm]: Add Export types to dependency inference code and include exports in compile results for Java sources ([#13603](https://github.com/pantsbuild/pants/pull/13603)) + +* Allow tailor to pick up `docker_image` targets for any file with "Dockerfile" in it ([#13601](https://github.com/pantsbuild/pants/pull/13601)) + +* [jvm] Add Scala consumed-symbols inference. ([#13632](https://github.com/pantsbuild/pants/pull/13632)) + +* [jvm] Add basic extraction of consumed symbols for Scala ([#13628](https://github.com/pantsbuild/pants/pull/13628)) + +### User API Changes + +* Report standard backends in anonymous telemetry ([#13670](https://github.com/pantsbuild/pants/pull/13670)) + +* Add `[twine].ca_certs_path` option. ([#13593](https://github.com/pantsbuild/pants/pull/13593)) + +* Bump twine to 3.6.0 and add tool lockfile ([#13594](https://github.com/pantsbuild/pants/pull/13594)) + +* Ban `*` globs and `!` ignores in `source: str` field ([#13629](https://github.com/pantsbuild/pants/pull/13629)) + +### Bug fixes + +* Pass Docker env vars to `docker publish`. ([#13669](https://github.com/pantsbuild/pants/pull/13669)) + +* Fix download URL for `grpc_python_plugin` on macos. ([#13656](https://github.com/pantsbuild/pants/pull/13656)) + +* Fix Python dependency inference breaking with `python_source` targets ([#13627](https://github.com/pantsbuild/pants/pull/13627)) + +* Fix swallowing of git stderr. ([#13626](https://github.com/pantsbuild/pants/pull/13626)) + +* Register skip fields for python linters and mypy also on the `python_test_utils` target. ([#13616](https://github.com/pantsbuild/pants/pull/13616)) + +## 2.9.0.dev1 (Nov 13, 2021) + +### New Features + +* Add `instructions` field to `docker_image` to support generating the Dockerfile ([#13386](https://github.com/pantsbuild/pants/pull/13386)) + +* Add `--unowned-dependency-behavior` option for Python ([#13491](https://github.com/pantsbuild/pants/pull/13491)) + +### User API Changes + +* Upgrade default pylint to v2.11.1 ([#13585](https://github.com/pantsbuild/pants/pull/13585)) + +### Plugin API Changes + +* [plugin-api] Add `default_glob_match_error_behavior` to `SourcesField`. ([#13578](https://github.com/pantsbuild/pants/pull/13578)) + +### Bug fixes + +* Fix `--no-print-stacktrace`. ([#13539](https://github.com/pantsbuild/pants/pull/13539)) + +### Performance + +* Do not invalidate parent paths when only file content has changed ([#13566](https://github.com/pantsbuild/pants/pull/13566)) + +* Fix caching of binary lookups and avoid re-running `pytest` setup for environment changes ([#13559](https://github.com/pantsbuild/pants/pull/13559)) + +* Fix slow performance from recursive `__repr__` and `__hash__` for Go ([#13492](https://github.com/pantsbuild/pants/pull/13492)) + +* Go: improve performance of first-party package analysis ([#13476](https://github.com/pantsbuild/pants/pull/13476)) + +### Documentation + +* Fix `tailor` confusion with macros vs. targets ([#13574](https://github.com/pantsbuild/pants/pull/13574)) + +## 2.9.0.dev0 (Nov 03, 2021) + +### New Features + +* Add overrides to python_requirements and poetry_requirements ([#13458](https://github.com/pantsbuild/pants/pull/13458)) + +* Add `--tailor-check` ([#13432](https://github.com/pantsbuild/pants/pull/13432)) + +* An option to not clean up the binary chroot for the run goal. ([#13427](https://github.com/pantsbuild/pants/pull/13427)) + +* Add `[tailor].ignore_paths` and `[tailor].ignore_adding_targets` ([#13422](https://github.com/pantsbuild/pants/pull/13422)) + +* Validate that `[tailor].build_file_name` is compatible with `[GLOBAL].build_patterns` ([#13420](https://github.com/pantsbuild/pants/pull/13420)) + +### User API Changes + +* Remove deprecated `pex_binary` fields. ([#13479](https://github.com/pantsbuild/pants/pull/13479)) + +* Remove deprecated --pants-supportdir. ([#13473](https://github.com/pantsbuild/pants/pull/13473)) + +* Remove setup_py_commands from python_distribution. ([#13450](https://github.com/pantsbuild/pants/pull/13450)) + +* Remove deprecated `InferredDependencies.sibling_dependencies_inferrable` kwarg ([#13440](https://github.com/pantsbuild/pants/pull/13440)) + +* `CheckResults` no longer accepts deprecated `typechecker_name` kwarg ([#13434](https://github.com/pantsbuild/pants/pull/13434)) + +* Remove deprecated `[pytest].junit_xml_dir` option. ([#13444](https://github.com/pantsbuild/pants/pull/13444)) + +* Remove deprecated `--list-provides` option ([#13441](https://github.com/pantsbuild/pants/pull/13441)) + +* Remove deprecated `module_mapping` and `type_stubs_module_mapping` fields ([#13442](https://github.com/pantsbuild/pants/pull/13442)) + +* Remove `entry_point=` for `pex_binary` in favor of leaving off the field ([#13443](https://github.com/pantsbuild/pants/pull/13443)) + +* Remove deprecated `Sources` type in favor of `SourcesField` ([#13439](https://github.com/pantsbuild/pants/pull/13439)) + +* Remove deprecated `requirements_relpath` from `python_requirements` macro ([#13437](https://github.com/pantsbuild/pants/pull/13437)) + +* Remove deprecated `protobuf_library`, `python_library`, `shell_library`, and `python_requirement_library` target aliases ([#13429](https://github.com/pantsbuild/pants/pull/13429)) + +* Remove deprecated `--peek-output` ([#13433](https://github.com/pantsbuild/pants/pull/13433)) + +* Remove dependencies goal deprecated --type option. ([#13431](https://github.com/pantsbuild/pants/pull/13431)) + +* Remove dependees `--output-format` option. ([#13430](https://github.com/pantsbuild/pants/pull/13430)) + +* Validate `python_test` and `python_tests` targets not used for `conftest.py` and `test_foo.pyi` ([#13436](https://github.com/pantsbuild/pants/pull/13436)) + +* Move `[python] interpreter_search_paths` to `[python-bootstrap] search_path`, and add support for sandboxed Python scripts in `@rule`s ([#13340](https://github.com/pantsbuild/pants/pull/13340)) + +### Plugin API Changes + +* Fix `fmt`, `lint`, `test`, and `check` plugins having to use `sources` `FieldSet` value ([#13456](https://github.com/pantsbuild/pants/pull/13456)) + +* Add support for extracting `.gz` files. ([#13335](https://github.com/pantsbuild/pants/pull/13335)) + +### Bug fixes + +* [bugfix] Do not cache Docker invocations between pants runs. Fixes #13461. ([#13464](https://github.com/pantsbuild/pants/pull/13464)) + +* Fix Python bootstrap interpreter search. ([#13278](https://github.com/pantsbuild/pants/pull/13278)) + +* Upgrade to Pex 2.1.54. ([#13426](https://github.com/pantsbuild/pants/pull/13426)) + +* Upgrade to Pex 2.1.53. ([#13423](https://github.com/pantsbuild/pants/pull/13423)) + +* Consume the `go` directive when compiling ([#13387](https://github.com/pantsbuild/pants/pull/13387)) + +* Don't error for invalid Go third-party packages unless building them ([#13405](https://github.com/pantsbuild/pants/pull/13405)) + +* assume version 1 for older lockfiles without `version` key ([#13399](https://github.com/pantsbuild/pants/pull/13399)) + +* Removes leading whitespace when `tailor`ing BUILD files without header text ([#13375](https://github.com/pantsbuild/pants/pull/13375)) + +* Go: don't error for unsupported third-party sources with project introspection ([#13377](https://github.com/pantsbuild/pants/pull/13377)) + +* Fix missing field for `tffmt` in `lint`. ([#13355](https://github.com/pantsbuild/pants/pull/13355)) + +* Use strict resolves by default for the JVM ([#13353](https://github.com/pantsbuild/pants/pull/13353)) + +* Parse SSH git requirements in poetry config. ([#13344](https://github.com/pantsbuild/pants/pull/13344)) + +### Performance + +* Check for `@rule` graph cycles asynchronously ([#13370](https://github.com/pantsbuild/pants/pull/13370)) + +* Use `--layout=packed` for all monolithic resolves. ([#13400](https://github.com/pantsbuild/pants/pull/13400)) + +### Documentation + +* Improve dynamic UI for Go ([#13412](https://github.com/pantsbuild/pants/pull/13412)) + +* Make `check` output more useful for Go and Java ([#13379](https://github.com/pantsbuild/pants/pull/13379)) diff --git a/versioned_sidebars/version-2.19-sidebars.json b/versioned_sidebars/version-2.19-sidebars.json index 3684f76b7..5c2b9a77b 100644 --- a/versioned_sidebars/version-2.19-sidebars.json +++ b/versioned_sidebars/version-2.19-sidebars.json @@ -27,8 +27,100 @@ }, { "type": "ref", - "id": "docs/introduction/welcome-to-pants", + "id": "docs/introduction/how-does-pants-work", "label": "Docs" } + ], + "releaseNotesSidebar": [ + { + "type": "category", + "label": "Release Notes", + "link": { + "type": "doc", + "id": "notes/2.19.x" + }, + "items": [ + { + "type": "doc", + "id": "notes/2.19.x" + }, + { + "type": "doc", + "id": "notes/2.18.x" + }, + { + "type": "doc", + "id": "notes/2.17.x" + }, + { + "type": "doc", + "id": "notes/2.16.x" + }, + { + "type": "doc", + "id": "notes/2.15.x" + }, + { + "type": "doc", + "id": "notes/2.14.x" + }, + { + "type": "doc", + "id": "notes/2.13.x" + }, + { + "type": "doc", + "id": "notes/2.12.x" + }, + { + "type": "doc", + "id": "notes/2.11.x" + }, + { + "type": "doc", + "id": "notes/2.10.x" + }, + { + "type": "doc", + "id": "notes/2.9.x" + }, + { + "type": "doc", + "id": "notes/2.8.x" + }, + { + "type": "doc", + "id": "notes/2.7.x" + }, + { + "type": "doc", + "id": "notes/2.6.x" + }, + { + "type": "doc", + "id": "notes/2.5.x" + }, + { + "type": "doc", + "id": "notes/2.4.x" + }, + { + "type": "doc", + "id": "notes/2.3.x" + }, + { + "type": "doc", + "id": "notes/2.2.x" + }, + { + "type": "doc", + "id": "notes/2.1.x" + }, + { + "type": "doc", + "id": "notes/2.0.x" + } + ] + } ] } diff --git a/versioned_sidebars/version-2.20-sidebars.json b/versioned_sidebars/version-2.20-sidebars.json index 7de565ec7..88c9280f0 100644 --- a/versioned_sidebars/version-2.20-sidebars.json +++ b/versioned_sidebars/version-2.20-sidebars.json @@ -30,5 +30,101 @@ "id": "docs/introduction/how-does-pants-work", "label": "Docs" } + ], + "releaseNotesSidebar": [ + { + "type": "category", + "label": "Release Notes", + "link": { + "type": "doc", + "id": "notes/2.20.x" + }, + "items": [ + { + "type": "doc", + "id": "notes/2.20.x" + }, + { + "type": "doc", + "id": "notes/2.19.x" + }, + { + "type": "doc", + "id": "notes/2.18.x" + }, + { + "type": "doc", + "id": "notes/2.17.x" + }, + { + "type": "doc", + "id": "notes/2.16.x" + }, + { + "type": "doc", + "id": "notes/2.15.x" + }, + { + "type": "doc", + "id": "notes/2.14.x" + }, + { + "type": "doc", + "id": "notes/2.13.x" + }, + { + "type": "doc", + "id": "notes/2.12.x" + }, + { + "type": "doc", + "id": "notes/2.11.x" + }, + { + "type": "doc", + "id": "notes/2.10.x" + }, + { + "type": "doc", + "id": "notes/2.9.x" + }, + { + "type": "doc", + "id": "notes/2.8.x" + }, + { + "type": "doc", + "id": "notes/2.7.x" + }, + { + "type": "doc", + "id": "notes/2.6.x" + }, + { + "type": "doc", + "id": "notes/2.5.x" + }, + { + "type": "doc", + "id": "notes/2.4.x" + }, + { + "type": "doc", + "id": "notes/2.3.x" + }, + { + "type": "doc", + "id": "notes/2.2.x" + }, + { + "type": "doc", + "id": "notes/2.1.x" + }, + { + "type": "doc", + "id": "notes/2.0.x" + } + ] + } ] }